summaryrefslogtreecommitdiff
path: root/asm/code_80036F88.s
blob: 93775235f4d68fc3d65713efe71f4016f1f25ff8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
.include "macros.inc"

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

.global func_80036F88
func_80036F88:
/* 80036F88 00032BE8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80036F8C 00032BEC  7C 08 02 A6 */	mflr r0
/* 80036F90 00032BF0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80036F94 00032BF4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80036F98 00032BF8  7C 9F 23 78 */	mr r31, r4
/* 80036F9C 00032BFC  93 C1 00 08 */	stw r30, 8(r1)
/* 80036FA0 00032C00  7C 7E 1B 78 */	mr r30, r3
/* 80036FA4 00032C04  48 1A 45 19 */	bl func_801DB4BC
/* 80036FA8 00032C08  2C 03 00 00 */	cmpwi r3, 0
/* 80036FAC 00032C0C  40 82 00 30 */	bne lbl_80036FDC
/* 80036FB0 00032C10  7F C3 F3 78 */	mr r3, r30
/* 80036FB4 00032C14  7F E4 FB 78 */	mr r4, r31
/* 80036FB8 00032C18  48 21 28 65 */	bl func_8024981C
/* 80036FBC 00032C1C  48 00 00 0C */	b lbl_80036FC8
lbl_80036FC0:
/* 80036FC0 00032C20  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 80036FC4 00032C24  48 1E D5 C5 */	bl func_80224588
lbl_80036FC8:
/* 80036FC8 00032C28  7F C3 F3 78 */	mr r3, r30
/* 80036FCC 00032C2C  7F E4 FB 78 */	mr r4, r31
/* 80036FD0 00032C30  48 1A 44 ED */	bl func_801DB4BC
/* 80036FD4 00032C34  2C 03 00 00 */	cmpwi r3, 0
/* 80036FD8 00032C38  41 82 FF E8 */	beq lbl_80036FC0
lbl_80036FDC:
/* 80036FDC 00032C3C  7F C3 F3 78 */	mr r3, r30
/* 80036FE0 00032C40  7F E4 FB 78 */	mr r4, r31
/* 80036FE4 00032C44  48 1A 45 19 */	bl func_801DB4FC
/* 80036FE8 00032C48  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80036FEC 00032C4C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80036FF0 00032C50  83 C1 00 08 */	lwz r30, 8(r1)
/* 80036FF4 00032C54  7C 08 03 A6 */	mtlr r0
/* 80036FF8 00032C58  38 21 00 10 */	addi r1, r1, 0x10
/* 80036FFC 00032C5C  4E 80 00 20 */	blr

.global func_80037000
func_80037000:
/* 80037000 00032C60  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80037004 00032C64  7C 08 02 A6 */	mflr r0
/* 80037008 00032C68  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003700C 00032C6C  DB E1 00 20 */	stfd f31, 0x20(r1)
/* 80037010 00032C70  F3 E1 00 28 */	psq_st f31, 40(r1), 0, qr0
/* 80037014 00032C74  C3 E2 82 20 */	lfs f31, lbl_80640820-_SDA2_BASE_(r2)
/* 80037018 00032C78  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003701C 00032C7C  3B E0 00 00 */	li r31, 0
/* 80037020 00032C80  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80037024 00032C84  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80037028 00032C88  3B A0 00 00 */	li r29, 0
/* 8003702C 00032C8C  93 81 00 10 */	stw r28, 0x10(r1)
/* 80037030 00032C90  7C 7C 1B 78 */	mr r28, r3
/* 80037034 00032C94  7F 9E E3 78 */	mr r30, r28
/* 80037038 00032C98  93 E3 00 00 */	stw r31, 0(r3)
lbl_8003703C:
/* 8003703C 00032C9C  80 7E 00 0C */	lwz r3, 0xc(r30)
/* 80037040 00032CA0  2C 03 00 00 */	cmpwi r3, 0
/* 80037044 00032CA4  41 82 00 4C */	beq lbl_80037090
/* 80037048 00032CA8  80 03 01 04 */	lwz r0, 0x104(r3)
/* 8003704C 00032CAC  60 00 00 04 */	ori r0, r0, 4
/* 80037050 00032CB0  90 03 01 04 */	stw r0, 0x104(r3)
/* 80037054 00032CB4  D3 E3 01 10 */	stfs f31, 0x110(r3)
/* 80037058 00032CB8  80 9E 00 0C */	lwz r4, 0xc(r30)
/* 8003705C 00032CBC  80 64 00 C0 */	lwz r3, 0xc0(r4)
/* 80037060 00032CC0  2C 03 00 00 */	cmpwi r3, 0
/* 80037064 00032CC4  41 82 00 08 */	beq lbl_8003706C
/* 80037068 00032CC8  48 1B B1 C1 */	bl func_801F2228
lbl_8003706C:
/* 8003706C 00032CCC  80 7E 00 0C */	lwz r3, 0xc(r30)
/* 80037070 00032CD0  2C 03 00 00 */	cmpwi r3, 0
/* 80037074 00032CD4  41 82 00 18 */	beq lbl_8003708C
/* 80037078 00032CD8  81 83 01 00 */	lwz r12, 0x100(r3)
/* 8003707C 00032CDC  38 80 00 01 */	li r4, 1
/* 80037080 00032CE0  81 8C 00 08 */	lwz r12, 8(r12)
/* 80037084 00032CE4  7D 89 03 A6 */	mtctr r12
/* 80037088 00032CE8  4E 80 04 21 */	bctrl
lbl_8003708C:
/* 8003708C 00032CEC  93 FE 00 0C */	stw r31, 0xc(r30)
lbl_80037090:
/* 80037090 00032CF0  3B BD 00 01 */	addi r29, r29, 1
/* 80037094 00032CF4  3B DE 00 04 */	addi r30, r30, 4
/* 80037098 00032CF8  2C 1D 00 08 */	cmpwi r29, 8
/* 8003709C 00032CFC  41 80 FF A0 */	blt lbl_8003703C
/* 800370A0 00032D00  80 7C 00 04 */	lwz r3, 4(r28)
/* 800370A4 00032D04  2C 03 00 00 */	cmpwi r3, 0
/* 800370A8 00032D08  40 82 00 10 */	bne lbl_800370B8
/* 800370AC 00032D0C  80 1C 00 08 */	lwz r0, 8(r28)
/* 800370B0 00032D10  2C 00 00 00 */	cmpwi r0, 0
/* 800370B4 00032D14  41 82 00 0C */	beq lbl_800370C0
lbl_800370B8:
/* 800370B8 00032D18  80 9C 00 08 */	lwz r4, 8(r28)
/* 800370BC 00032D1C  48 1A 44 8D */	bl func_801DB548
lbl_800370C0:
/* 800370C0 00032D20  38 00 00 00 */	li r0, 0
/* 800370C4 00032D24  90 1C 00 04 */	stw r0, 4(r28)
/* 800370C8 00032D28  90 1C 00 08 */	stw r0, 8(r28)
/* 800370CC 00032D2C  E3 E1 00 28 */	psq_l f31, 40(r1), 0, qr0
/* 800370D0 00032D30  CB E1 00 20 */	lfd f31, 0x20(r1)
/* 800370D4 00032D34  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 800370D8 00032D38  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 800370DC 00032D3C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 800370E0 00032D40  83 81 00 10 */	lwz r28, 0x10(r1)
/* 800370E4 00032D44  80 01 00 34 */	lwz r0, 0x34(r1)
/* 800370E8 00032D48  7C 08 03 A6 */	mtlr r0
/* 800370EC 00032D4C  38 21 00 30 */	addi r1, r1, 0x30
/* 800370F0 00032D50  4E 80 00 20 */	blr

.global func_800370F4
func_800370F4:
/* 800370F4 00032D54  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 800370F8 00032D58  38 00 00 00 */	li r0, 0
/* 800370FC 00032D5C  98 03 00 00 */	stb r0, 0(r3)
/* 80037100 00032D60  D0 03 00 04 */	stfs f0, 4(r3)
/* 80037104 00032D64  D0 03 00 08 */	stfs f0, 8(r3)
/* 80037108 00032D68  D0 03 00 0C */	stfs f0, 0xc(r3)
/* 8003710C 00032D6C  90 03 00 10 */	stw r0, 0x10(r3)
/* 80037110 00032D70  90 03 00 14 */	stw r0, 0x14(r3)
/* 80037114 00032D74  90 03 00 18 */	stw r0, 0x18(r3)
/* 80037118 00032D78  90 03 00 1C */	stw r0, 0x1c(r3)
/* 8003711C 00032D7C  90 03 00 20 */	stw r0, 0x20(r3)
/* 80037120 00032D80  90 03 00 24 */	stw r0, 0x24(r3)
/* 80037124 00032D84  90 03 00 28 */	stw r0, 0x28(r3)
/* 80037128 00032D88  4E 80 00 20 */	blr
lbl_8003712C:
/* 8003712C 00032D8C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80037130 00032D90  7C 08 02 A6 */	mflr r0
/* 80037134 00032D94  90 01 00 24 */	stw r0, 0x24(r1)
/* 80037138 00032D98  39 61 00 20 */	addi r11, r1, 0x20
/* 8003713C 00032D9C  48 18 FF E9 */	bl _savegpr_26
/* 80037140 00032DA0  7C 7A 1B 78 */	mr r26, r3
/* 80037144 00032DA4  7C 9B 23 78 */	mr r27, r4
/* 80037148 00032DA8  48 01 66 C5 */	bl func_8004D80C
/* 8003714C 00032DAC  2C 03 00 00 */	cmpwi r3, 0
/* 80037150 00032DB0  7C 7D 1B 78 */	mr r29, r3
/* 80037154 00032DB4  40 82 00 0C */	bne lbl_80037160
/* 80037158 00032DB8  38 60 00 00 */	li r3, 0
/* 8003715C 00032DBC  48 00 00 60 */	b lbl_800371BC
lbl_80037160:
/* 80037160 00032DC0  7F 5E D3 78 */	mr r30, r26
/* 80037164 00032DC4  3B 80 00 00 */	li r28, 0
/* 80037168 00032DC8  3B E0 00 00 */	li r31, 0
lbl_8003716C:
/* 8003716C 00032DCC  80 9E 00 14 */	lwz r4, 0x14(r30)
/* 80037170 00032DD0  2C 04 00 00 */	cmpwi r4, 0
/* 80037174 00032DD4  41 82 00 10 */	beq lbl_80037184
/* 80037178 00032DD8  7F A3 EB 78 */	mr r3, r29
/* 8003717C 00032DDC  48 01 6B 31 */	bl func_8004DCAC
/* 80037180 00032DE0  93 FE 00 14 */	stw r31, 0x14(r30)
lbl_80037184:
/* 80037184 00032DE4  7F A3 EB 78 */	mr r3, r29
/* 80037188 00032DE8  48 01 6A C9 */	bl func_8004DC50
/* 8003718C 00032DEC  90 7E 00 14 */	stw r3, 0x14(r30)
/* 80037190 00032DF0  7F 65 DB 78 */	mr r5, r27
/* 80037194 00032DF4  38 80 00 0C */	li r4, 0xc
/* 80037198 00032DF8  38 C0 00 00 */	li r6, 0
/* 8003719C 00032DFC  48 01 70 99 */	bl func_8004E234
/* 800371A0 00032E00  3B 9C 00 01 */	addi r28, r28, 1
/* 800371A4 00032E04  3B DE 00 04 */	addi r30, r30, 4
/* 800371A8 00032E08  2C 1C 00 06 */	cmpwi r28, 6
/* 800371AC 00032E0C  41 80 FF C0 */	blt lbl_8003716C
/* 800371B0 00032E10  38 00 00 00 */	li r0, 0
/* 800371B4 00032E14  38 60 00 01 */	li r3, 1
/* 800371B8 00032E18  98 1A 00 00 */	stb r0, 0(r26)
lbl_800371BC:
/* 800371BC 00032E1C  39 61 00 20 */	addi r11, r1, 0x20
/* 800371C0 00032E20  48 18 FF B1 */	bl _restgpr_26
/* 800371C4 00032E24  80 01 00 24 */	lwz r0, 0x24(r1)
/* 800371C8 00032E28  7C 08 03 A6 */	mtlr r0
/* 800371CC 00032E2C  38 21 00 20 */	addi r1, r1, 0x20
/* 800371D0 00032E30  4E 80 00 20 */	blr

.global func_800371D4
func_800371D4:
/* 800371D4 00032E34  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 800371D8 00032E38  7C 08 02 A6 */	mflr r0
/* 800371DC 00032E3C  90 01 00 34 */	stw r0, 0x34(r1)
/* 800371E0 00032E40  DB E1 00 20 */	stfd f31, 0x20(r1)
/* 800371E4 00032E44  F3 E1 00 28 */	psq_st f31, 40(r1), 0, qr0
/* 800371E8 00032E48  39 61 00 20 */	addi r11, r1, 0x20
/* 800371EC 00032E4C  48 18 FF 3D */	bl _savegpr_27
/* 800371F0 00032E50  7C 7B 1B 78 */	mr r27, r3
/* 800371F4 00032E54  48 01 66 19 */	bl func_8004D80C
/* 800371F8 00032E58  2C 03 00 00 */	cmpwi r3, 0
/* 800371FC 00032E5C  7C 7D 1B 78 */	mr r29, r3
/* 80037200 00032E60  41 82 00 64 */	beq lbl_80037264
/* 80037204 00032E64  C3 E2 82 20 */	lfs f31, lbl_80640820-_SDA2_BASE_(r2)
/* 80037208 00032E68  7F 7E DB 78 */	mr r30, r27
/* 8003720C 00032E6C  3B 80 00 00 */	li r28, 0
/* 80037210 00032E70  3B E0 00 00 */	li r31, 0
lbl_80037214:
/* 80037214 00032E74  80 7E 00 14 */	lwz r3, 0x14(r30)
/* 80037218 00032E78  2C 03 00 00 */	cmpwi r3, 0
/* 8003721C 00032E7C  41 82 00 30 */	beq lbl_8003724C
/* 80037220 00032E80  80 63 00 40 */	lwz r3, 0x40(r3)
/* 80037224 00032E84  2C 03 00 00 */	cmpwi r3, 0
/* 80037228 00032E88  41 82 00 14 */	beq lbl_8003723C
/* 8003722C 00032E8C  80 03 01 04 */	lwz r0, 0x104(r3)
/* 80037230 00032E90  60 00 00 04 */	ori r0, r0, 4
/* 80037234 00032E94  90 03 01 04 */	stw r0, 0x104(r3)
/* 80037238 00032E98  D3 E3 01 10 */	stfs f31, 0x110(r3)
lbl_8003723C:
/* 8003723C 00032E9C  80 9E 00 14 */	lwz r4, 0x14(r30)
/* 80037240 00032EA0  7F A3 EB 78 */	mr r3, r29
/* 80037244 00032EA4  48 01 6A 69 */	bl func_8004DCAC
/* 80037248 00032EA8  93 FE 00 14 */	stw r31, 0x14(r30)
lbl_8003724C:
/* 8003724C 00032EAC  3B 9C 00 01 */	addi r28, r28, 1
/* 80037250 00032EB0  3B DE 00 04 */	addi r30, r30, 4
/* 80037254 00032EB4  2C 1C 00 06 */	cmpwi r28, 6
/* 80037258 00032EB8  41 80 FF BC */	blt lbl_80037214
/* 8003725C 00032EBC  38 00 00 00 */	li r0, 0
/* 80037260 00032EC0  98 1B 00 00 */	stb r0, 0(r27)
lbl_80037264:
/* 80037264 00032EC4  E3 E1 00 28 */	psq_l f31, 40(r1), 0, qr0
/* 80037268 00032EC8  39 61 00 20 */	addi r11, r1, 0x20
/* 8003726C 00032ECC  CB E1 00 20 */	lfd f31, 0x20(r1)
/* 80037270 00032ED0  48 18 FF 05 */	bl _restgpr_27
/* 80037274 00032ED4  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80037278 00032ED8  7C 08 03 A6 */	mtlr r0
/* 8003727C 00032EDC  38 21 00 30 */	addi r1, r1, 0x30
/* 80037280 00032EE0  4E 80 00 20 */	blr

.global func_80037284
func_80037284:
/* 80037284 00032EE4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80037288 00032EE8  7C 08 02 A6 */	mflr r0
/* 8003728C 00032EEC  90 01 00 24 */	stw r0, 0x24(r1)
/* 80037290 00032EF0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80037294 00032EF4  7C 7F 1B 78 */	mr r31, r3
/* 80037298 00032EF8  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003729C 00032EFC  3B C3 00 04 */	addi r30, r3, 4
/* 800372A0 00032F00  93 A1 00 14 */	stw r29, 0x14(r1)
/* 800372A4 00032F04  3B A3 02 20 */	addi r29, r3, 0x220
lbl_800372A8:
/* 800372A8 00032F08  7F C3 F3 78 */	mr r3, r30
/* 800372AC 00032F0C  48 01 90 79 */	bl func_80050324
/* 800372B0 00032F10  3B DE 00 24 */	addi r30, r30, 0x24
/* 800372B4 00032F14  7C 1E E8 40 */	cmplw r30, r29
/* 800372B8 00032F18  41 80 FF F0 */	blt lbl_800372A8
/* 800372BC 00032F1C  3B DF 04 60 */	addi r30, r31, 0x460
lbl_800372C0:
/* 800372C0 00032F20  7F A3 EB 78 */	mr r3, r29
/* 800372C4 00032F24  48 01 9E 25 */	bl func_800510E8
/* 800372C8 00032F28  3B BD 00 C0 */	addi r29, r29, 0xc0
/* 800372CC 00032F2C  7C 1D F0 40 */	cmplw r29, r30
/* 800372D0 00032F30  41 80 FF F0 */	blt lbl_800372C0
/* 800372D4 00032F34  7F C3 F3 78 */	mr r3, r30
/* 800372D8 00032F38  48 01 92 55 */	bl func_8005052C
/* 800372DC 00032F3C  38 7F 04 94 */	addi r3, r31, 0x494
/* 800372E0 00032F40  48 01 98 55 */	bl func_80050B34
/* 800372E4 00032F44  38 7F 04 D0 */	addi r3, r31, 0x4d0
/* 800372E8 00032F48  48 01 98 4D */	bl func_80050B34
/* 800372EC 00032F4C  38 7F 05 24 */	addi r3, r31, 0x524
/* 800372F0 00032F50  48 00 76 21 */	bl func_8003E910
/* 800372F4 00032F54  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 800372F8 00032F58  3C 60 00 02 */	lis r3, 0x00020007@ha
/* 800372FC 00032F5C  3B C0 00 00 */	li r30, 0
/* 80037300 00032F60  C0 42 82 24 */	lfs f2, lbl_80640824-_SDA2_BASE_(r2)
/* 80037304 00032F64  C0 22 82 28 */	lfs f1, lbl_80640828-_SDA2_BASE_(r2)
/* 80037308 00032F68  38 03 00 07 */	addi r0, r3, 0x00020007@l
/* 8003730C 00032F6C  D0 5F 0C 0C */	stfs f2, 0xc0c(r31)
/* 80037310 00032F70  38 7F 0D 04 */	addi r3, r31, 0xd04
/* 80037314 00032F74  D0 5F 0C 10 */	stfs f2, 0xc10(r31)
/* 80037318 00032F78  D0 5F 0C 14 */	stfs f2, 0xc14(r31)
/* 8003731C 00032F7C  D0 3F 0C 18 */	stfs f1, 0xc18(r31)
/* 80037320 00032F80  D0 3F 0C 1C */	stfs f1, 0xc1c(r31)
/* 80037324 00032F84  D0 3F 0C 20 */	stfs f1, 0xc20(r31)
/* 80037328 00032F88  93 DF 0C 24 */	stw r30, 0xc24(r31)
/* 8003732C 00032F8C  93 DF 0B FC */	stw r30, 0xbfc(r31)
/* 80037330 00032F90  93 DF 0C 00 */	stw r30, 0xc00(r31)
/* 80037334 00032F94  93 DF 0C B0 */	stw r30, 0xcb0(r31)
/* 80037338 00032F98  B3 DF 0B F8 */	sth r30, 0xbf8(r31)
/* 8003733C 00032F9C  9B DF 0B F6 */	stb r30, 0xbf6(r31)
/* 80037340 00032FA0  B3 DF 0B F4 */	sth r30, 0xbf4(r31)
/* 80037344 00032FA4  90 1F 00 00 */	stw r0, 0(r31)
/* 80037348 00032FA8  D0 1F 0D 80 */	stfs f0, 0xd80(r31)
/* 8003734C 00032FAC  D0 1F 0D 84 */	stfs f0, 0xd84(r31)
/* 80037350 00032FB0  D0 1F 0D 8C */	stfs f0, 0xd8c(r31)
/* 80037354 00032FB4  9B DF 0D 88 */	stb r30, 0xd88(r31)
/* 80037358 00032FB8  9B DF 0D 89 */	stb r30, 0xd89(r31)
/* 8003735C 00032FBC  9B DF 0D 94 */	stb r30, 0xd94(r31)
/* 80037360 00032FC0  93 DF 0C 08 */	stw r30, 0xc08(r31)
/* 80037364 00032FC4  93 DF 0C 04 */	stw r30, 0xc04(r31)
/* 80037368 00032FC8  93 DF 0C 48 */	stw r30, 0xc48(r31)
/* 8003736C 00032FCC  93 DF 0C 4C */	stw r30, 0xc4c(r31)
/* 80037370 00032FD0  93 DF 0C 74 */	stw r30, 0xc74(r31)
/* 80037374 00032FD4  D0 1F 0C 78 */	stfs f0, 0xc78(r31)
/* 80037378 00032FD8  D0 1F 0C 7C */	stfs f0, 0xc7c(r31)
/* 8003737C 00032FDC  D0 1F 0C 80 */	stfs f0, 0xc80(r31)
/* 80037380 00032FE0  D0 1F 0C 84 */	stfs f0, 0xc84(r31)
/* 80037384 00032FE4  D0 1F 0C 88 */	stfs f0, 0xc88(r31)
/* 80037388 00032FE8  D0 1F 0C 8C */	stfs f0, 0xc8c(r31)
/* 8003738C 00032FEC  4B FF FD 69 */	bl func_800370F4
/* 80037390 00032FF0  38 7F 0D 30 */	addi r3, r31, 0xd30
/* 80037394 00032FF4  48 00 55 89 */	bl func_8003C91C
/* 80037398 00032FF8  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003739C 00032FFC  38 00 FF FF */	li r0, -1
/* 800373A0 00033000  B3 DF 05 0C */	sth r30, 0x50c(r31)
/* 800373A4 00033004  38 7F 05 24 */	addi r3, r31, 0x524
/* 800373A8 00033008  B3 DF 05 10 */	sth r30, 0x510(r31)
/* 800373AC 0003300C  B3 DF 05 12 */	sth r30, 0x512(r31)
/* 800373B0 00033010  9B DF 05 16 */	stb r30, 0x516(r31)
/* 800373B4 00033014  B3 DF 05 14 */	sth r30, 0x514(r31)
/* 800373B8 00033018  93 DF 05 18 */	stw r30, 0x518(r31)
/* 800373BC 0003301C  B3 DF 05 1C */	sth r30, 0x51c(r31)
/* 800373C0 00033020  9B DF 05 21 */	stb r30, 0x521(r31)
/* 800373C4 00033024  B3 DF 0C 68 */	sth r30, 0xc68(r31)
/* 800373C8 00033028  D0 1F 0D 78 */	stfs f0, 0xd78(r31)
/* 800373CC 0003302C  D0 1F 0D 7C */	stfs f0, 0xd7c(r31)
/* 800373D0 00033030  D0 1F 0D 64 */	stfs f0, 0xd64(r31)
/* 800373D4 00033034  D0 1F 0D 68 */	stfs f0, 0xd68(r31)
/* 800373D8 00033038  D0 1F 0D 6C */	stfs f0, 0xd6c(r31)
/* 800373DC 0003303C  93 DF 0D 70 */	stw r30, 0xd70(r31)
/* 800373E0 00033040  90 1F 0D 74 */	stw r0, 0xd74(r31)
/* 800373E4 00033044  48 00 75 BD */	bl func_8003E9A0
/* 800373E8 00033048  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 800373EC 0003304C  D0 1F 0C 70 */	stfs f0, 0xc70(r31)
/* 800373F0 00033050  48 1E C4 41 */	bl func_80223830
/* 800373F4 00033054  3C 80 00 03 */	lis r4, 0x000343FD@ha
/* 800373F8 00033058  80 A3 00 00 */	lwz r5, 0(r3)
/* 800373FC 0003305C  38 84 43 FD */	addi r4, r4, 0x000343FD@l
/* 80037400 00033060  3C 00 43 30 */	lis r0, 0x4330
/* 80037404 00033064  7C 85 21 D6 */	mullw r4, r5, r4
/* 80037408 00033068  90 01 00 08 */	stw r0, 8(r1)
/* 8003740C 0003306C  C8 62 82 50 */	lfd f3, lbl_80640850-_SDA2_BASE_(r2)
/* 80037410 00033070  38 E0 00 01 */	li r7, 1
/* 80037414 00033074  C0 02 82 2C */	lfs f0, lbl_8064082C-_SDA2_BASE_(r2)
/* 80037418 00033078  38 C0 00 D4 */	li r6, 0xd4
/* 8003741C 0003307C  3C 84 00 27 */	addis r4, r4, 0x27
/* 80037420 00033080  C1 02 82 30 */	lfs f8, lbl_80640830-_SDA2_BASE_(r2)
/* 80037424 00033084  38 04 9E C3 */	addi r0, r4, -24893
/* 80037428 00033088  C0 C2 82 38 */	lfs f6, lbl_80640838-_SDA2_BASE_(r2)
/* 8003742C 0003308C  54 04 84 3E */	srwi r4, r0, 0x10
/* 80037430 00033090  90 03 00 00 */	stw r0, 0(r3)
/* 80037434 00033094  C0 E2 82 34 */	lfs f7, lbl_80640834-_SDA2_BASE_(r2)
/* 80037438 00033098  38 00 00 C4 */	li r0, 0xc4
/* 8003743C 0003309C  90 81 00 0C */	stw r4, 0xc(r1)
/* 80037440 000330A0  38 7F 0C D8 */	addi r3, r31, 0xcd8
/* 80037444 000330A4  C0 A2 82 20 */	lfs f5, lbl_80640820-_SDA2_BASE_(r2)
/* 80037448 000330A8  38 80 00 00 */	li r4, 0
/* 8003744C 000330AC  C8 41 00 08 */	lfd f2, 8(r1)
/* 80037450 000330B0  38 A0 00 2C */	li r5, 0x2c
/* 80037454 000330B4  C0 22 82 48 */	lfs f1, lbl_80640848-_SDA2_BASE_(r2)
/* 80037458 000330B8  ED 22 18 28 */	fsubs f9, f2, f3
/* 8003745C 000330BC  C0 82 82 3C */	lfs f4, lbl_8064083C-_SDA2_BASE_(r2)
/* 80037460 000330C0  C0 62 82 40 */	lfs f3, lbl_80640840-_SDA2_BASE_(r2)
/* 80037464 000330C4  C0 42 82 44 */	lfs f2, lbl_80640844-_SDA2_BASE_(r2)
/* 80037468 000330C8  ED 29 00 24 */	fdivs f9, f9, f0
/* 8003746C 000330CC  D0 DF 0C 44 */	stfs f6, 0xc44(r31)
/* 80037470 000330D0  C0 02 82 4C */	lfs f0, lbl_8064084C-_SDA2_BASE_(r2)
/* 80037474 000330D4  D0 FF 0C 38 */	stfs f7, 0xc38(r31)
/* 80037478 000330D8  D0 FF 0C 3C */	stfs f7, 0xc3c(r31)
/* 8003747C 000330DC  D0 FF 0C 40 */	stfs f7, 0xc40(r31)
/* 80037480 000330E0  EC C8 48 2A */	fadds f6, f8, f9
/* 80037484 000330E4  D0 FF 0C 28 */	stfs f7, 0xc28(r31)
/* 80037488 000330E8  D0 FF 0C 2C */	stfs f7, 0xc2c(r31)
/* 8003748C 000330EC  D0 DF 0C 6C */	stfs f6, 0xc6c(r31)
/* 80037490 000330F0  D0 FF 0C 30 */	stfs f7, 0xc30(r31)
/* 80037494 000330F4  D0 BF 0C 34 */	stfs f5, 0xc34(r31)
/* 80037498 000330F8  98 FF 0D B4 */	stb r7, 0xdb4(r31)
/* 8003749C 000330FC  98 FF 0D B5 */	stb r7, 0xdb5(r31)
/* 800374A0 00033100  98 FF 0D B6 */	stb r7, 0xdb6(r31)
/* 800374A4 00033104  D0 9F 0D B8 */	stfs f4, 0xdb8(r31)
/* 800374A8 00033108  D0 7F 0D BC */	stfs f3, 0xdbc(r31)
/* 800374AC 0003310C  98 DF 0D C0 */	stb r6, 0xdc0(r31)
/* 800374B0 00033110  98 DF 0D C1 */	stb r6, 0xdc1(r31)
/* 800374B4 00033114  98 DF 0D C2 */	stb r6, 0xdc2(r31)
/* 800374B8 00033118  98 1F 0D C3 */	stb r0, 0xdc3(r31)
/* 800374BC 0003311C  D0 BF 0D C4 */	stfs f5, 0xdc4(r31)
/* 800374C0 00033120  D0 5F 0D C8 */	stfs f2, 0xdc8(r31)
/* 800374C4 00033124  D0 BF 0D CC */	stfs f5, 0xdcc(r31)
/* 800374C8 00033128  D0 3F 0D D0 */	stfs f1, 0xdd0(r31)
/* 800374CC 0003312C  D0 3F 0D D4 */	stfs f1, 0xdd4(r31)
/* 800374D0 00033130  D0 3F 0D D8 */	stfs f1, 0xdd8(r31)
/* 800374D4 00033134  D1 1F 0D DC */	stfs f8, 0xddc(r31)
/* 800374D8 00033138  D1 1F 0D E0 */	stfs f8, 0xde0(r31)
/* 800374DC 0003313C  D1 1F 0D E4 */	stfs f8, 0xde4(r31)
/* 800374E0 00033140  D1 1F 0D E8 */	stfs f8, 0xde8(r31)
/* 800374E4 00033144  D0 BF 0D EC */	stfs f5, 0xdec(r31)
/* 800374E8 00033148  D0 BF 0D F0 */	stfs f5, 0xdf0(r31)
/* 800374EC 0003314C  D0 1F 0D F4 */	stfs f0, 0xdf4(r31)
/* 800374F0 00033150  93 DF 0C 50 */	stw r30, 0xc50(r31)
/* 800374F4 00033154  93 DF 0C 54 */	stw r30, 0xc54(r31)
/* 800374F8 00033158  4B FC CC 0D */	bl memset
/* 800374FC 0003315C  38 7F 0C 90 */	addi r3, r31, 0xc90
/* 80037500 00033160  38 80 00 00 */	li r4, 0
/* 80037504 00033164  38 A0 00 10 */	li r5, 0x10
/* 80037508 00033168  4B FC CB FD */	bl memset
/* 8003750C 0003316C  38 7F 0C 58 */	addi r3, r31, 0xc58
/* 80037510 00033170  38 80 00 00 */	li r4, 0
/* 80037514 00033174  38 A0 00 10 */	li r5, 0x10
/* 80037518 00033178  4B FC CB ED */	bl memset
/* 8003751C 0003317C  7F E3 FB 78 */	mr r3, r31
/* 80037520 00033180  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80037524 00033184  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80037528 00033188  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8003752C 0003318C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80037530 00033190  7C 08 03 A6 */	mtlr r0
/* 80037534 00033194  38 21 00 20 */	addi r1, r1, 0x20
/* 80037538 00033198  4E 80 00 20 */	blr

.global func_8003753C
func_8003753C:
/* 8003753C 0003319C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80037540 000331A0  7C 08 02 A6 */	mflr r0
/* 80037544 000331A4  2C 03 00 00 */	cmpwi r3, 0
/* 80037548 000331A8  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003754C 000331AC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80037550 000331B0  7C 9F 23 78 */	mr r31, r4
/* 80037554 000331B4  93 C1 00 08 */	stw r30, 8(r1)
/* 80037558 000331B8  7C 7E 1B 78 */	mr r30, r3
/* 8003755C 000331BC  41 82 00 2C */	beq lbl_80037588
/* 80037560 000331C0  48 00 00 45 */	bl func_800375A4
/* 80037564 000331C4  34 1E 05 1C */	addic. r0, r30, 0x51c
/* 80037568 000331C8  41 82 00 10 */	beq lbl_80037578
/* 8003756C 000331CC  38 7E 05 24 */	addi r3, r30, 0x524
/* 80037570 000331D0  38 80 FF FF */	li r4, -1
/* 80037574 000331D4  48 00 73 D9 */	bl func_8003E94C
lbl_80037578:
/* 80037578 000331D8  2C 1F 00 00 */	cmpwi r31, 0
/* 8003757C 000331DC  40 81 00 0C */	ble lbl_80037588
/* 80037580 000331E0  7F C3 F3 78 */	mr r3, r30
/* 80037584 000331E4  48 1A 35 35 */	bl __dl__FPv
lbl_80037588:
/* 80037588 000331E8  7F C3 F3 78 */	mr r3, r30
/* 8003758C 000331EC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80037590 000331F0  83 C1 00 08 */	lwz r30, 8(r1)
/* 80037594 000331F4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80037598 000331F8  7C 08 03 A6 */	mtlr r0
/* 8003759C 000331FC  38 21 00 10 */	addi r1, r1, 0x10
/* 800375A0 00033200  4E 80 00 20 */	blr

.global func_800375A4
func_800375A4:
/* 800375A4 00033204  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 800375A8 00033208  7C 08 02 A6 */	mflr r0
/* 800375AC 0003320C  90 01 00 24 */	stw r0, 0x24(r1)
/* 800375B0 00033210  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 800375B4 00033214  93 C1 00 18 */	stw r30, 0x18(r1)
/* 800375B8 00033218  93 A1 00 14 */	stw r29, 0x14(r1)
/* 800375BC 0003321C  93 81 00 10 */	stw r28, 0x10(r1)
/* 800375C0 00033220  7C 7C 1B 78 */	mr r28, r3
/* 800375C4 00033224  48 00 8C 31 */	bl func_800401F4
/* 800375C8 00033228  2C 03 00 00 */	cmpwi r3, 0
/* 800375CC 0003322C  41 82 00 0C */	beq lbl_800375D8
/* 800375D0 00033230  7F 84 E3 78 */	mr r4, r28
/* 800375D4 00033234  48 00 8C 29 */	bl func_800401FC
lbl_800375D8:
/* 800375D8 00033238  7F 9E E3 78 */	mr r30, r28
/* 800375DC 0003323C  3B A0 00 00 */	li r29, 0
/* 800375E0 00033240  3B E0 00 00 */	li r31, 0
lbl_800375E4:
/* 800375E4 00033244  80 7E 0C 90 */	lwz r3, 0xc90(r30)
/* 800375E8 00033248  2C 03 00 00 */	cmpwi r3, 0
/* 800375EC 0003324C  41 82 00 20 */	beq lbl_8003760C
/* 800375F0 00033250  41 82 00 18 */	beq lbl_80037608
/* 800375F4 00033254  81 83 01 00 */	lwz r12, 0x100(r3)
/* 800375F8 00033258  38 80 00 01 */	li r4, 1
/* 800375FC 0003325C  81 8C 00 08 */	lwz r12, 8(r12)
/* 80037600 00033260  7D 89 03 A6 */	mtctr r12
/* 80037604 00033264  4E 80 04 21 */	bctrl
lbl_80037608:
/* 80037608 00033268  93 FE 0C 90 */	stw r31, 0xc90(r30)
lbl_8003760C:
/* 8003760C 0003326C  3B BD 00 01 */	addi r29, r29, 1
/* 80037610 00033270  3B DE 00 04 */	addi r30, r30, 4
/* 80037614 00033274  2C 1D 00 04 */	cmpwi r29, 4
/* 80037618 00033278  41 80 FF CC */	blt lbl_800375E4
/* 8003761C 0003327C  80 7C 0C 08 */	lwz r3, 0xc08(r28)
/* 80037620 00033280  2C 03 00 00 */	cmpwi r3, 0
/* 80037624 00033284  41 82 00 24 */	beq lbl_80037648
/* 80037628 00033288  41 82 00 18 */	beq lbl_80037640
/* 8003762C 0003328C  81 83 00 0C */	lwz r12, 0xc(r3)
/* 80037630 00033290  38 80 00 01 */	li r4, 1
/* 80037634 00033294  81 8C 00 18 */	lwz r12, 0x18(r12)
/* 80037638 00033298  7D 89 03 A6 */	mtctr r12
/* 8003763C 0003329C  4E 80 04 21 */	bctrl
lbl_80037640:
/* 80037640 000332A0  38 00 00 00 */	li r0, 0
/* 80037644 000332A4  90 1C 0C 08 */	stw r0, 0xc08(r28)
lbl_80037648:
/* 80037648 000332A8  80 7C 0C 04 */	lwz r3, 0xc04(r28)
/* 8003764C 000332AC  2C 03 00 00 */	cmpwi r3, 0
/* 80037650 000332B0  41 82 00 08 */	beq lbl_80037658
/* 80037654 000332B4  48 1B ED 3D */	bl func_801F6390
lbl_80037658:
/* 80037658 000332B8  80 7C 0C 00 */	lwz r3, 0xc00(r28)
/* 8003765C 000332BC  2C 03 00 00 */	cmpwi r3, 0
/* 80037660 000332C0  41 82 00 14 */	beq lbl_80037674
/* 80037664 000332C4  38 80 00 01 */	li r4, 1
/* 80037668 000332C8  48 1C 2C 2D */	bl func_801FA294
/* 8003766C 000332CC  38 00 00 00 */	li r0, 0
/* 80037670 000332D0  90 1C 0C 00 */	stw r0, 0xc00(r28)
lbl_80037674:
/* 80037674 000332D4  38 7C 0D 04 */	addi r3, r28, 0xd04
/* 80037678 000332D8  4B FF FB 5D */	bl func_800371D4
/* 8003767C 000332DC  80 7C 0B FC */	lwz r3, 0xbfc(r28)
/* 80037680 000332E0  2C 03 00 00 */	cmpwi r3, 0
/* 80037684 000332E4  41 82 00 70 */	beq lbl_800376F4
/* 80037688 000332E8  80 1C 00 00 */	lwz r0, 0(r28)
/* 8003768C 000332EC  54 00 06 31 */	rlwinm. r0, r0, 0, 0x18, 0x18
/* 80037690 000332F0  41 82 00 14 */	beq lbl_800376A4
/* 80037694 000332F4  48 1A C1 5D */	bl func_801E37F0
/* 80037698 000332F8  80 7C 0B FC */	lwz r3, 0xbfc(r28)
/* 8003769C 000332FC  48 1A 38 09 */	bl func_801DAEA4
/* 800376A0 00033300  48 00 00 4C */	b lbl_800376EC
lbl_800376A4:
/* 800376A4 00033304  80 7C 0C 48 */	lwz r3, 0xc48(r28)
/* 800376A8 00033308  80 9C 0C 4C */	lwz r4, 0xc4c(r28)
/* 800376AC 0003330C  48 1A 3E 9D */	bl func_801DB548
/* 800376B0 00033310  3B BC 0C 58 */	addi r29, r28, 0xc58
/* 800376B4 00033314  3B FC 0C 68 */	addi r31, r28, 0xc68
/* 800376B8 00033318  48 00 00 1C */	b lbl_800376D4
lbl_800376BC:
/* 800376BC 0003331C  80 7D 00 00 */	lwz r3, 0(r29)
/* 800376C0 00033320  2C 03 00 00 */	cmpwi r3, 0
/* 800376C4 00033324  41 82 00 0C */	beq lbl_800376D0
/* 800376C8 00033328  80 9D 00 04 */	lwz r4, 4(r29)
/* 800376CC 0003332C  48 1A 3E 7D */	bl func_801DB548
lbl_800376D0:
/* 800376D0 00033330  3B BD 00 08 */	addi r29, r29, 8
lbl_800376D4:
/* 800376D4 00033334  7C 1D F8 40 */	cmplw r29, r31
/* 800376D8 00033338  40 82 FF E4 */	bne lbl_800376BC
/* 800376DC 0003333C  38 7C 0C 58 */	addi r3, r28, 0xc58
/* 800376E0 00033340  38 80 00 00 */	li r4, 0
/* 800376E4 00033344  38 A0 00 10 */	li r5, 0x10
/* 800376E8 00033348  4B FC CA 1D */	bl memset
lbl_800376EC:
/* 800376EC 0003334C  38 00 00 00 */	li r0, 0
/* 800376F0 00033350  90 1C 0B FC */	stw r0, 0xbfc(r28)
lbl_800376F4:
/* 800376F4 00033354  38 7C 0C D8 */	addi r3, r28, 0xcd8
/* 800376F8 00033358  4B FF F9 09 */	bl func_80037000
/* 800376FC 0003335C  38 7C 05 24 */	addi r3, r28, 0x524
/* 80037700 00033360  48 00 73 B1 */	bl func_8003EAB0
/* 80037704 00033364  3C 60 00 02 */	lis r3, 0x00020807@ha
/* 80037708 00033368  80 9C 00 00 */	lwz r4, 0(r28)
/* 8003770C 0003336C  38 03 08 07 */	addi r0, r3, 0x00020807@l
/* 80037710 00033370  38 60 00 00 */	li r3, 0
/* 80037714 00033374  7C 80 00 38 */	and r0, r4, r0
/* 80037718 00033378  90 7C 0C 48 */	stw r3, 0xc48(r28)
/* 8003771C 0003337C  90 7C 0C 4C */	stw r3, 0xc4c(r28)
/* 80037720 00033380  90 7C 0C 04 */	stw r3, 0xc04(r28)
/* 80037724 00033384  90 1C 00 00 */	stw r0, 0(r28)
/* 80037728 00033388  B0 7C 05 10 */	sth r3, 0x510(r28)
/* 8003772C 0003338C  B0 7C 05 12 */	sth r3, 0x512(r28)
/* 80037730 00033390  98 7C 05 16 */	stb r3, 0x516(r28)
/* 80037734 00033394  B0 7C 05 14 */	sth r3, 0x514(r28)
/* 80037738 00033398  90 7C 05 18 */	stw r3, 0x518(r28)
/* 8003773C 0003339C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80037740 000333A0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80037744 000333A4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80037748 000333A8  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8003774C 000333AC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80037750 000333B0  7C 08 03 A6 */	mtlr r0
/* 80037754 000333B4  38 21 00 20 */	addi r1, r1, 0x20
/* 80037758 000333B8  4E 80 00 20 */	blr

.global func_8003775C
func_8003775C:
/* 8003775C 000333BC  94 21 FE C0 */	stwu r1, -0x140(r1)
/* 80037760 000333C0  7C 08 02 A6 */	mflr r0
/* 80037764 000333C4  38 AD 80 D0 */	addi r5, r13, lbl_8063D390-_SDA_BASE_
/* 80037768 000333C8  90 01 01 44 */	stw r0, 0x144(r1)
/* 8003776C 000333CC  93 E1 01 3C */	stw r31, 0x13c(r1)
/* 80037770 000333D0  93 C1 01 38 */	stw r30, 0x138(r1)
/* 80037774 000333D4  7C 9E 23 78 */	mr r30, r4
/* 80037778 000333D8  3C 80 80 41 */	lis r4, lbl_8040A404@ha
/* 8003777C 000333DC  93 A1 01 34 */	stw r29, 0x134(r1)
/* 80037780 000333E0  7C 7D 1B 78 */	mr r29, r3
/* 80037784 000333E4  38 61 00 28 */	addi r3, r1, 0x28
/* 80037788 000333E8  7F C6 F3 78 */	mr r6, r30
/* 8003778C 000333EC  38 84 A4 04 */	addi r4, r4, lbl_8040A404@l
/* 80037790 000333F0  4C C6 31 82 */	crclr 6
/* 80037794 000333F4  48 19 53 69 */	bl sprintf
/* 80037798 000333F8  48 1A 37 61 */	bl func_801DAEF8
/* 8003779C 000333FC  38 61 00 28 */	addi r3, r1, 0x28
/* 800377A0 00033400  38 81 00 08 */	addi r4, r1, 8
/* 800377A4 00033404  48 1A 54 1D */	bl func_801DCBC0
/* 800377A8 00033408  2C 03 00 00 */	cmpwi r3, 0
/* 800377AC 0003340C  7C 7F 1B 78 */	mr r31, r3
/* 800377B0 00033410  40 82 00 0C */	bne lbl_800377BC
/* 800377B4 00033414  38 60 00 00 */	li r3, 0
/* 800377B8 00033418  48 00 01 50 */	b lbl_80037908
lbl_800377BC:
/* 800377BC 0003341C  7F E4 FB 78 */	mr r4, r31
/* 800377C0 00033420  48 1A BD 1D */	bl func_801E34DC
/* 800377C4 00033424  48 1A 33 65 */	bl func_801DAB28
/* 800377C8 00033428  2C 03 00 00 */	cmpwi r3, 0
/* 800377CC 0003342C  41 82 00 14 */	beq lbl_800377E0
/* 800377D0 00033430  80 6D 96 38 */	lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
/* 800377D4 00033434  38 80 00 14 */	li r4, 0x14
/* 800377D8 00033438  48 1A 34 BD */	bl func_801DAC94
/* 800377DC 0003343C  48 00 00 08 */	b lbl_800377E4
lbl_800377E0:
/* 800377E0 00033440  38 60 00 00 */	li r3, 0
lbl_800377E4:
/* 800377E4 00033444  2C 03 00 00 */	cmpwi r3, 0
/* 800377E8 00033448  41 82 00 0C */	beq lbl_800377F4
/* 800377EC 0003344C  7F E4 FB 78 */	mr r4, r31
/* 800377F0 00033450  48 1C 28 A5 */	bl func_801FA094
lbl_800377F4:
/* 800377F4 00033454  90 7D 0C 00 */	stw r3, 0xc00(r29)
/* 800377F8 00033458  48 1A 37 01 */	bl func_801DAEF8
/* 800377FC 0003345C  80 7D 0C 00 */	lwz r3, 0xc00(r29)
/* 80037800 00033460  80 83 00 04 */	lwz r4, 4(r3)
/* 80037804 00033464  2C 04 00 00 */	cmpwi r4, 0
/* 80037808 00033468  40 82 00 0C */	bne lbl_80037814
/* 8003780C 0003346C  38 00 00 00 */	li r0, 0
/* 80037810 00033470  48 00 00 20 */	b lbl_80037830
lbl_80037814:
/* 80037814 00033474  80 63 00 00 */	lwz r3, 0(r3)
/* 80037818 00033478  A0 03 00 18 */	lhz r0, 0x18(r3)
/* 8003781C 0003347C  2C 00 00 00 */	cmpwi r0, 0
/* 80037820 00033480  40 82 00 0C */	bne lbl_8003782C
/* 80037824 00033484  38 00 00 00 */	li r0, 0
/* 80037828 00033488  48 00 00 08 */	b lbl_80037830
lbl_8003782C:
/* 8003782C 0003348C  80 04 00 00 */	lwz r0, 0(r4)
lbl_80037830:
/* 80037830 00033490  90 1D 0C 04 */	stw r0, 0xc04(r29)
/* 80037834 00033494  7F A3 EB 78 */	mr r3, r29
/* 80037838 00033498  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003783C 0003349C  38 81 00 18 */	addi r4, r1, 0x18
/* 80037840 000334A0  C0 02 82 30 */	lfs f0, lbl_80640830-_SDA2_BASE_(r2)
/* 80037844 000334A4  D0 21 00 18 */	stfs f1, 0x18(r1)
/* 80037848 000334A8  D0 21 00 1C */	stfs f1, 0x1c(r1)
/* 8003784C 000334AC  D0 21 00 20 */	stfs f1, 0x20(r1)
/* 80037850 000334B0  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 80037854 000334B4  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80037858 000334B8  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 8003785C 000334BC  48 00 0F C1 */	bl func_8003881C
/* 80037860 000334C0  7F A3 EB 78 */	mr r3, r29
/* 80037864 000334C4  38 81 00 18 */	addi r4, r1, 0x18
/* 80037868 000334C8  48 00 12 69 */	bl func_80038AD0
/* 8003786C 000334CC  7F A3 EB 78 */	mr r3, r29
/* 80037870 000334D0  38 81 00 0C */	addi r4, r1, 0xc
/* 80037874 000334D4  48 00 10 DD */	bl func_80038950
/* 80037878 000334D8  80 7D 0C 04 */	lwz r3, 0xc04(r29)
/* 8003787C 000334DC  38 80 00 00 */	li r4, 0
/* 80037880 000334E0  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80037884 000334E4  38 A0 00 01 */	li r5, 1
/* 80037888 000334E8  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003788C 000334EC  38 C0 00 00 */	li r6, 0
/* 80037890 000334F0  38 E0 00 00 */	li r7, 0
/* 80037894 000334F4  39 00 00 00 */	li r8, 0
/* 80037898 000334F8  48 1B D5 5D */	bl func_801F4DF4
/* 8003789C 000334FC  80 7D 0C 04 */	lwz r3, 0xc04(r29)
/* 800378A0 00033500  38 80 00 01 */	li r4, 1
/* 800378A4 00033504  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 800378A8 00033508  48 1B EF A1 */	bl func_801F6848
/* 800378AC 0003350C  80 BD 0C 04 */	lwz r5, 0xc04(r29)
/* 800378B0 00033510  7F A3 EB 78 */	mr r3, r29
/* 800378B4 00033514  80 1D 00 00 */	lwz r0, 0(r29)
/* 800378B8 00033518  7F C4 F3 78 */	mr r4, r30
/* 800378BC 0003351C  C0 05 01 20 */	lfs f0, 0x120(r5)
/* 800378C0 00033520  60 00 00 80 */	ori r0, r0, 0x80
/* 800378C4 00033524  D0 1D 0C 0C */	stfs f0, 0xc0c(r29)
/* 800378C8 00033528  C0 05 01 24 */	lfs f0, 0x124(r5)
/* 800378CC 0003352C  D0 1D 0C 10 */	stfs f0, 0xc10(r29)
/* 800378D0 00033530  C0 05 01 28 */	lfs f0, 0x128(r5)
/* 800378D4 00033534  D0 1D 0C 14 */	stfs f0, 0xc14(r29)
/* 800378D8 00033538  C0 05 01 2C */	lfs f0, 0x12c(r5)
/* 800378DC 0003353C  D0 1D 0C 18 */	stfs f0, 0xc18(r29)
/* 800378E0 00033540  C0 05 01 30 */	lfs f0, 0x130(r5)
/* 800378E4 00033544  D0 1D 0C 1C */	stfs f0, 0xc1c(r29)
/* 800378E8 00033548  C0 05 01 34 */	lfs f0, 0x134(r5)
/* 800378EC 0003354C  D0 1D 0C 20 */	stfs f0, 0xc20(r29)
/* 800378F0 00033550  80 A5 01 38 */	lwz r5, 0x138(r5)
/* 800378F4 00033554  90 BD 0C 24 */	stw r5, 0xc24(r29)
/* 800378F8 00033558  93 FD 0B FC */	stw r31, 0xbfc(r29)
/* 800378FC 0003355C  90 1D 00 00 */	stw r0, 0(r29)
/* 80037900 00033560  48 00 0C 19 */	bl func_80038518
/* 80037904 00033564  38 60 00 01 */	li r3, 1
lbl_80037908:
/* 80037908 00033568  80 01 01 44 */	lwz r0, 0x144(r1)
/* 8003790C 0003356C  83 E1 01 3C */	lwz r31, 0x13c(r1)
/* 80037910 00033570  83 C1 01 38 */	lwz r30, 0x138(r1)
/* 80037914 00033574  83 A1 01 34 */	lwz r29, 0x134(r1)
/* 80037918 00033578  7C 08 03 A6 */	mtlr r0
/* 8003791C 0003357C  38 21 01 40 */	addi r1, r1, 0x140
/* 80037920 00033580  4E 80 00 20 */	blr

.global func_80037924
func_80037924:
/* 80037924 00033584  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80037928 00033588  7C 08 02 A6 */	mflr r0
/* 8003792C 0003358C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80037930 00033590  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80037934 00033594  7C BF 2B 78 */	mr r31, r5
/* 80037938 00033598  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003793C 0003359C  7C 9E 23 78 */	mr r30, r4
/* 80037940 000335A0  7F E4 FB 78 */	mr r4, r31
/* 80037944 000335A4  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80037948 000335A8  7C 7D 1B 78 */	mr r29, r3
/* 8003794C 000335AC  7F C3 F3 78 */	mr r3, r30
/* 80037950 000335B0  48 1A 3B 6D */	bl func_801DB4BC
/* 80037954 000335B4  2C 03 00 00 */	cmpwi r3, 0
/* 80037958 000335B8  90 7D 0B FC */	stw r3, 0xbfc(r29)
/* 8003795C 000335BC  40 82 00 0C */	bne lbl_80037968
/* 80037960 000335C0  38 60 00 00 */	li r3, 0
/* 80037964 000335C4  48 00 00 28 */	b lbl_8003798C
lbl_80037968:
/* 80037968 000335C8  80 1D 00 00 */	lwz r0, 0(r29)
/* 8003796C 000335CC  7F A3 EB 78 */	mr r3, r29
/* 80037970 000335D0  93 DD 0C 48 */	stw r30, 0xc48(r29)
/* 80037974 000335D4  38 8D 80 D8 */	addi r4, r13, lbl_8063D398-_SDA_BASE_
/* 80037978 000335D8  60 00 00 10 */	ori r0, r0, 0x10
/* 8003797C 000335DC  93 FD 0C 4C */	stw r31, 0xc4c(r29)
/* 80037980 000335E0  90 1D 00 00 */	stw r0, 0(r29)
/* 80037984 000335E4  48 00 0B 95 */	bl func_80038518
/* 80037988 000335E8  38 60 00 01 */	li r3, 1
lbl_8003798C:
/* 8003798C 000335EC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80037990 000335F0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80037994 000335F4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80037998 000335F8  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8003799C 000335FC  7C 08 03 A6 */	mtlr r0
/* 800379A0 00033600  38 21 00 20 */	addi r1, r1, 0x20
/* 800379A4 00033604  4E 80 00 20 */	blr

.global func_800379A8
func_800379A8:
/* 800379A8 00033608  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 800379AC 0003360C  7C 08 02 A6 */	mflr r0
/* 800379B0 00033610  90 01 00 44 */	stw r0, 0x44(r1)
/* 800379B4 00033614  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 800379B8 00033618  7C 7F 1B 78 */	mr r31, r3
/* 800379BC 0003361C  93 C1 00 38 */	stw r30, 0x38(r1)
/* 800379C0 00033620  93 A1 00 34 */	stw r29, 0x34(r1)
/* 800379C4 00033624  80 83 00 00 */	lwz r4, 0(r3)
/* 800379C8 00033628  54 80 05 6B */	rlwinm. r0, r4, 0, 0x15, 0x15
/* 800379CC 0003362C  41 82 00 14 */	beq lbl_800379E0
/* 800379D0 00033630  54 80 05 A8 */	rlwinm r0, r4, 0, 0x16, 0x14
/* 800379D4 00033634  A0 83 0C 68 */	lhz r4, 0xc68(r3)
/* 800379D8 00033638  90 03 00 00 */	stw r0, 0(r3)
/* 800379DC 0003363C  48 00 0B 55 */	bl func_80038530
lbl_800379E0:
/* 800379E0 00033640  80 7F 00 00 */	lwz r3, 0(r31)
/* 800379E4 00033644  54 60 05 AD */	rlwinm. r0, r3, 0, 0x16, 0x16
/* 800379E8 00033648  41 82 00 20 */	beq lbl_80037A08
/* 800379EC 0003364C  A0 1F 05 0C */	lhz r0, 0x50c(r31)
/* 800379F0 00033650  54 63 05 EA */	rlwinm r3, r3, 0, 0x17, 0x15
/* 800379F4 00033654  90 7F 00 00 */	stw r3, 0(r31)
/* 800379F8 00033658  28 00 00 02 */	cmplwi r0, 2
/* 800379FC 0003365C  40 82 00 0C */	bne lbl_80037A08
/* 80037A00 00033660  7F E3 FB 78 */	mr r3, r31
/* 80037A04 00033664  48 00 5A 31 */	bl func_8003D434
lbl_80037A08:
/* 80037A08 00033668  80 7F 00 00 */	lwz r3, 0(r31)
/* 80037A0C 0003366C  54 60 06 F7 */	rlwinm. r0, r3, 0, 0x1b, 0x1b
/* 80037A10 00033670  41 82 02 FC */	beq lbl_80037D0C
/* 80037A14 00033674  80 1F 0B FC */	lwz r0, 0xbfc(r31)
/* 80037A18 00033678  54 63 07 34 */	rlwinm r3, r3, 0, 0x1c, 0x1a
/* 80037A1C 0003367C  90 7F 00 00 */	stw r3, 0(r31)
/* 80037A20 00033680  2C 00 00 00 */	cmpwi r0, 0
/* 80037A24 00033684  41 82 02 BC */	beq lbl_80037CE0
/* 80037A28 00033688  80 7F 0C 00 */	lwz r3, 0xc00(r31)
/* 80037A2C 0003368C  2C 03 00 00 */	cmpwi r3, 0
/* 80037A30 00033690  41 82 00 0C */	beq lbl_80037A3C
/* 80037A34 00033694  38 80 00 01 */	li r4, 1
/* 80037A38 00033698  48 1C 28 5D */	bl func_801FA294
lbl_80037A3C:
/* 80037A3C 0003369C  48 1A 30 ED */	bl func_801DAB28
/* 80037A40 000336A0  2C 03 00 00 */	cmpwi r3, 0
/* 80037A44 000336A4  41 82 00 14 */	beq lbl_80037A58
/* 80037A48 000336A8  80 6D 96 38 */	lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
/* 80037A4C 000336AC  38 80 00 14 */	li r4, 0x14
/* 80037A50 000336B0  48 1A 32 45 */	bl func_801DAC94
/* 80037A54 000336B4  48 00 00 08 */	b lbl_80037A5C
lbl_80037A58:
/* 80037A58 000336B8  38 60 00 00 */	li r3, 0
lbl_80037A5C:
/* 80037A5C 000336BC  2C 03 00 00 */	cmpwi r3, 0
/* 80037A60 000336C0  41 82 00 0C */	beq lbl_80037A6C
/* 80037A64 000336C4  80 9F 0B FC */	lwz r4, 0xbfc(r31)
/* 80037A68 000336C8  48 1C 26 2D */	bl func_801FA094
lbl_80037A6C:
/* 80037A6C 000336CC  90 7F 0C 00 */	stw r3, 0xc00(r31)
/* 80037A70 000336D0  80 83 00 04 */	lwz r4, 4(r3)
/* 80037A74 000336D4  2C 04 00 00 */	cmpwi r4, 0
/* 80037A78 000336D8  40 82 00 0C */	bne lbl_80037A84
/* 80037A7C 000336DC  38 60 00 00 */	li r3, 0
/* 80037A80 000336E0  48 00 00 20 */	b lbl_80037AA0
lbl_80037A84:
/* 80037A84 000336E4  80 63 00 00 */	lwz r3, 0(r3)
/* 80037A88 000336E8  A0 03 00 18 */	lhz r0, 0x18(r3)
/* 80037A8C 000336EC  2C 00 00 00 */	cmpwi r0, 0
/* 80037A90 000336F0  40 82 00 0C */	bne lbl_80037A9C
/* 80037A94 000336F4  38 60 00 00 */	li r3, 0
/* 80037A98 000336F8  48 00 00 08 */	b lbl_80037AA0
lbl_80037A9C:
/* 80037A9C 000336FC  80 64 00 00 */	lwz r3, 0(r4)
lbl_80037AA0:
/* 80037AA0 00033700  80 1F 00 00 */	lwz r0, 0(r31)
/* 80037AA4 00033704  90 7F 0C 04 */	stw r3, 0xc04(r31)
/* 80037AA8 00033708  54 00 05 29 */	rlwinm. r0, r0, 0, 0x14, 0x14
/* 80037AAC 0003370C  41 82 00 10 */	beq lbl_80037ABC
/* 80037AB0 00033710  48 1C BD 61 */	bl func_80203810
/* 80037AB4 00033714  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 80037AB8 00033718  48 1C 8D A1 */	bl func_80200858
lbl_80037ABC:
/* 80037ABC 0003371C  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80037AC0 00033720  C0 02 82 30 */	lfs f0, lbl_80640830-_SDA2_BASE_(r2)
/* 80037AC4 00033724  D0 21 00 20 */	stfs f1, 0x20(r1)
/* 80037AC8 00033728  D0 21 00 24 */	stfs f1, 0x24(r1)
/* 80037ACC 0003372C  D0 21 00 28 */	stfs f1, 0x28(r1)
/* 80037AD0 00033730  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 80037AD4 00033734  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 80037AD8 00033738  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 80037ADC 0003373C  D0 21 00 08 */	stfs f1, 8(r1)
/* 80037AE0 00033740  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 80037AE4 00033744  D0 21 00 10 */	stfs f1, 0x10(r1)
/* 80037AE8 00033748  A0 1F 05 0C */	lhz r0, 0x50c(r31)
/* 80037AEC 0003374C  28 00 00 03 */	cmplwi r0, 3
/* 80037AF0 00033750  41 82 00 14 */	beq lbl_80037B04
/* 80037AF4 00033754  C0 02 82 58 */	lfs f0, lbl_80640858-_SDA2_BASE_(r2)
/* 80037AF8 00033758  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 80037AFC 0003375C  D0 01 00 08 */	stfs f0, 8(r1)
/* 80037B00 00033760  D0 21 00 10 */	stfs f1, 0x10(r1)
lbl_80037B04:
/* 80037B04 00033764  7F E3 FB 78 */	mr r3, r31
/* 80037B08 00033768  38 81 00 08 */	addi r4, r1, 8
/* 80037B0C 0003376C  48 00 0D 11 */	bl func_8003881C
/* 80037B10 00033770  7F E3 FB 78 */	mr r3, r31
/* 80037B14 00033774  38 81 00 20 */	addi r4, r1, 0x20
/* 80037B18 00033778  48 00 0F B9 */	bl func_80038AD0
/* 80037B1C 0003377C  7F E3 FB 78 */	mr r3, r31
/* 80037B20 00033780  38 81 00 14 */	addi r4, r1, 0x14
/* 80037B24 00033784  48 00 0E 2D */	bl func_80038950
/* 80037B28 00033788  A0 1F 05 0C */	lhz r0, 0x50c(r31)
/* 80037B2C 0003378C  28 00 00 01 */	cmplwi r0, 1
/* 80037B30 00033790  40 82 01 04 */	bne lbl_80037C34
/* 80037B34 00033794  A0 1F 05 10 */	lhz r0, 0x510(r31)
/* 80037B38 00033798  2C 00 01 47 */	cmpwi r0, 0x147
/* 80037B3C 0003379C  41 82 00 14 */	beq lbl_80037B50
/* 80037B40 000337A0  40 80 00 F4 */	bge lbl_80037C34
/* 80037B44 000337A4  2C 00 01 3C */	cmpwi r0, 0x13c
/* 80037B48 000337A8  41 82 00 E4 */	beq lbl_80037C2C
/* 80037B4C 000337AC  48 00 00 E8 */	b lbl_80037C34
lbl_80037B50:
/* 80037B50 000337B0  3C 80 09 31 */	lis r4, 0x09310C00@ha
/* 80037B54 000337B4  80 7F 0C 48 */	lwz r3, 0xc48(r31)
/* 80037B58 000337B8  38 84 0C 00 */	addi r4, r4, 0x09310C00@l
/* 80037B5C 000337BC  48 1A 39 61 */	bl func_801DB4BC
/* 80037B60 000337C0  2C 03 00 00 */	cmpwi r3, 0
/* 80037B64 000337C4  7C 7E 1B 78 */	mr r30, r3
/* 80037B68 000337C8  41 82 00 CC */	beq lbl_80037C34
/* 80037B6C 000337CC  3C 80 09 30 */	lis r4, 0x09300C00@ha
/* 80037B70 000337D0  80 7F 0C 48 */	lwz r3, 0xc48(r31)
/* 80037B74 000337D4  38 84 0C 00 */	addi r4, r4, 0x09300C00@l
/* 80037B78 000337D8  48 1A 39 45 */	bl func_801DB4BC
/* 80037B7C 000337DC  2C 03 00 00 */	cmpwi r3, 0
/* 80037B80 000337E0  7C 7D 1B 78 */	mr r29, r3
/* 80037B84 000337E4  41 82 00 B0 */	beq lbl_80037C34
/* 80037B88 000337E8  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 80037B8C 000337EC  80 83 00 1C */	lwz r4, 0x1c(r3)
/* 80037B90 000337F0  2C 04 00 00 */	cmpwi r4, 0
/* 80037B94 000337F4  40 82 00 0C */	bne lbl_80037BA0
/* 80037B98 000337F8  38 60 00 00 */	li r3, 0
/* 80037B9C 000337FC  48 00 00 20 */	b lbl_80037BBC
lbl_80037BA0:
/* 80037BA0 00033800  A0 03 00 E6 */	lhz r0, 0xe6(r3)
/* 80037BA4 00033804  28 00 00 06 */	cmplwi r0, 6
/* 80037BA8 00033808  41 81 00 0C */	bgt lbl_80037BB4
/* 80037BAC 0003380C  38 60 00 00 */	li r3, 0
/* 80037BB0 00033810  48 00 00 0C */	b lbl_80037BBC
lbl_80037BB4:
/* 80037BB4 00033814  80 64 00 18 */	lwz r3, 0x18(r4)
/* 80037BB8 00033818  80 63 00 14 */	lwz r3, 0x14(r3)
lbl_80037BBC:
/* 80037BBC 0003381C  2C 03 00 00 */	cmpwi r3, 0
/* 80037BC0 00033820  41 82 00 74 */	beq lbl_80037C34
/* 80037BC4 00033824  80 DF 05 18 */	lwz r6, 0x518(r31)
/* 80037BC8 00033828  7F C4 F3 78 */	mr r4, r30
/* 80037BCC 0003382C  7F A5 EB 78 */	mr r5, r29
/* 80037BD0 00033830  38 ED A3 E4 */	addi r7, r13, lbl_8063F6A4-_SDA_BASE_
/* 80037BD4 00033834  48 1A F3 A5 */	bl func_801E6F78
/* 80037BD8 00033838  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 80037BDC 0003383C  80 83 00 1C */	lwz r4, 0x1c(r3)
/* 80037BE0 00033840  2C 04 00 00 */	cmpwi r4, 0
/* 80037BE4 00033844  40 82 00 0C */	bne lbl_80037BF0
/* 80037BE8 00033848  38 60 00 00 */	li r3, 0
/* 80037BEC 0003384C  48 00 00 20 */	b lbl_80037C0C
lbl_80037BF0:
/* 80037BF0 00033850  A0 03 00 E6 */	lhz r0, 0xe6(r3)
/* 80037BF4 00033854  28 00 00 08 */	cmplwi r0, 8
/* 80037BF8 00033858  41 81 00 0C */	bgt lbl_80037C04
/* 80037BFC 0003385C  38 60 00 00 */	li r3, 0
/* 80037C00 00033860  48 00 00 0C */	b lbl_80037C0C
lbl_80037C04:
/* 80037C04 00033864  80 64 00 20 */	lwz r3, 0x20(r4)
/* 80037C08 00033868  80 63 00 14 */	lwz r3, 0x14(r3)
lbl_80037C0C:
/* 80037C0C 0003386C  2C 03 00 00 */	cmpwi r3, 0
/* 80037C10 00033870  41 82 00 24 */	beq lbl_80037C34
/* 80037C14 00033874  80 DF 05 18 */	lwz r6, 0x518(r31)
/* 80037C18 00033878  7F C4 F3 78 */	mr r4, r30
/* 80037C1C 0003387C  7F A5 EB 78 */	mr r5, r29
/* 80037C20 00033880  38 ED A3 E4 */	addi r7, r13, lbl_8063F6A4-_SDA_BASE_
/* 80037C24 00033884  48 1A F3 55 */	bl func_801E6F78
/* 80037C28 00033888  48 00 00 0C */	b lbl_80037C34
lbl_80037C2C:
/* 80037C2C 0003388C  38 00 00 01 */	li r0, 1
/* 80037C30 00033890  98 1F 0D 89 */	stb r0, 0xd89(r31)
lbl_80037C34:
/* 80037C34 00033894  7F E3 FB 78 */	mr r3, r31
/* 80037C38 00033898  38 80 00 00 */	li r4, 0
/* 80037C3C 0003389C  48 00 46 21 */	bl func_8003C25C
/* 80037C40 000338A0  7C 60 1B 78 */	mr r0, r3
/* 80037C44 000338A4  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 80037C48 000338A8  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80037C4C 000338AC  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80037C50 000338B0  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 80037C54 000338B4  38 A0 00 01 */	li r5, 1
/* 80037C58 000338B8  38 C0 00 00 */	li r6, 0
/* 80037C5C 000338BC  38 E0 00 00 */	li r7, 0
/* 80037C60 000338C0  39 00 00 00 */	li r8, 0
/* 80037C64 000338C4  48 1B D1 91 */	bl func_801F4DF4
/* 80037C68 000338C8  38 00 00 00 */	li r0, 0
/* 80037C6C 000338CC  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 80037C70 000338D0  98 1F 0B F6 */	stb r0, 0xbf6(r31)
/* 80037C74 000338D4  38 80 00 01 */	li r4, 1
/* 80037C78 000338D8  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80037C7C 000338DC  48 1B EB CD */	bl func_801F6848
/* 80037C80 000338E0  80 9F 0C 04 */	lwz r4, 0xc04(r31)
/* 80037C84 000338E4  80 7F 0C 00 */	lwz r3, 0xc00(r31)
/* 80037C88 000338E8  C0 04 01 20 */	lfs f0, 0x120(r4)
/* 80037C8C 000338EC  D0 1F 0C 0C */	stfs f0, 0xc0c(r31)
/* 80037C90 000338F0  C0 04 01 24 */	lfs f0, 0x124(r4)
/* 80037C94 000338F4  D0 1F 0C 10 */	stfs f0, 0xc10(r31)
/* 80037C98 000338F8  C0 04 01 28 */	lfs f0, 0x128(r4)
/* 80037C9C 000338FC  D0 1F 0C 14 */	stfs f0, 0xc14(r31)
/* 80037CA0 00033900  C0 04 01 2C */	lfs f0, 0x12c(r4)
/* 80037CA4 00033904  D0 1F 0C 18 */	stfs f0, 0xc18(r31)
/* 80037CA8 00033908  C0 04 01 30 */	lfs f0, 0x130(r4)
/* 80037CAC 0003390C  D0 1F 0C 1C */	stfs f0, 0xc1c(r31)
/* 80037CB0 00033910  C0 04 01 34 */	lfs f0, 0x134(r4)
/* 80037CB4 00033914  D0 1F 0C 20 */	stfs f0, 0xc20(r31)
/* 80037CB8 00033918  80 04 01 38 */	lwz r0, 0x138(r4)
/* 80037CBC 0003391C  90 1F 0C 24 */	stw r0, 0xc24(r31)
/* 80037CC0 00033920  80 83 00 00 */	lwz r4, 0(r3)
/* 80037CC4 00033924  80 04 00 24 */	lwz r0, 0x24(r4)
/* 80037CC8 00033928  2C 00 00 00 */	cmpwi r0, 0
/* 80037CCC 0003392C  40 82 00 10 */	bne lbl_80037CDC
/* 80037CD0 00033930  A0 1F 05 0C */	lhz r0, 0x50c(r31)
/* 80037CD4 00033934  28 00 00 03 */	cmplwi r0, 3
/* 80037CD8 00033938  40 82 00 08 */	bne lbl_80037CE0
lbl_80037CDC:
/* 80037CDC 0003393C  48 1C AC F5 */	bl func_802029D0
lbl_80037CE0:
/* 80037CE0 00033940  A0 1F 05 0C */	lhz r0, 0x50c(r31)
/* 80037CE4 00033944  28 00 00 02 */	cmplwi r0, 2
/* 80037CE8 00033948  40 82 00 0C */	bne lbl_80037CF4
/* 80037CEC 0003394C  7F E3 FB 78 */	mr r3, r31
/* 80037CF0 00033950  48 00 57 45 */	bl func_8003D434
lbl_80037CF4:
/* 80037CF4 00033954  80 9F 00 00 */	lwz r4, 0(r31)
/* 80037CF8 00033958  7F E3 FB 78 */	mr r3, r31
/* 80037CFC 0003395C  54 80 04 5E */	rlwinm r0, r4, 0, 0x11, 0xf
/* 80037D00 00033960  54 84 07 FE */	clrlwi r4, r4, 0x1f
/* 80037D04 00033964  90 1F 00 00 */	stw r0, 0(r31)
/* 80037D08 00033968  48 00 00 25 */	bl func_80037D2C
lbl_80037D0C:
/* 80037D0C 0003396C  80 01 00 44 */	lwz r0, 0x44(r1)
/* 80037D10 00033970  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 80037D14 00033974  83 C1 00 38 */	lwz r30, 0x38(r1)
/* 80037D18 00033978  83 A1 00 34 */	lwz r29, 0x34(r1)
/* 80037D1C 0003397C  7C 08 03 A6 */	mtlr r0
/* 80037D20 00033980  38 21 00 40 */	addi r1, r1, 0x40
/* 80037D24 00033984  4E 80 00 20 */	blr

.global func_80037D28
func_80037D28:
/* 80037D28 00033988  4B FF F8 7C */	b func_800375A4

.global func_80037D2C
func_80037D2C:
/* 80037D2C 0003398C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80037D30 00033990  7C 08 02 A6 */	mflr r0
/* 80037D34 00033994  90 01 00 14 */	stw r0, 0x14(r1)
/* 80037D38 00033998  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80037D3C 0003399C  7C 7F 1B 78 */	mr r31, r3
/* 80037D40 000339A0  93 C1 00 08 */	stw r30, 8(r1)
/* 80037D44 000339A4  7C 9E 23 78 */	mr r30, r4
/* 80037D48 000339A8  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 80037D4C 000339AC  2C 00 00 00 */	cmpwi r0, 0
/* 80037D50 000339B0  41 82 02 6C */	beq lbl_80037FBC
/* 80037D54 000339B4  48 00 D8 3D */	bl func_80045590
/* 80037D58 000339B8  A0 1F 05 0C */	lhz r0, 0x50c(r31)
/* 80037D5C 000339BC  28 00 00 01 */	cmplwi r0, 1
/* 80037D60 000339C0  40 82 00 10 */	bne lbl_80037D70
/* 80037D64 000339C4  A0 9F 0C 68 */	lhz r4, 0xc68(r31)
/* 80037D68 000339C8  7F C5 F3 78 */	mr r5, r30
/* 80037D6C 000339CC  48 00 F1 95 */	bl func_80046F00
lbl_80037D70:
/* 80037D70 000339D0  2C 1E 00 00 */	cmpwi r30, 0
/* 80037D74 000339D4  41 82 01 B4 */	beq lbl_80037F28
/* 80037D78 000339D8  80 7F 00 00 */	lwz r3, 0(r31)
/* 80037D7C 000339DC  54 60 02 53 */	rlwinm. r0, r3, 0, 9, 9
/* 80037D80 000339E0  40 82 01 A8 */	bne lbl_80037F28
/* 80037D84 000339E4  54 60 07 FF */	clrlwi. r0, r3, 0x1f
/* 80037D88 000339E8  40 82 02 34 */	bne lbl_80037FBC
/* 80037D8C 000339EC  54 60 02 D7 */	rlwinm. r0, r3, 0, 0xb, 0xb
/* 80037D90 000339F0  40 82 00 0C */	bne lbl_80037D9C
/* 80037D94 000339F4  54 60 03 19 */	rlwinm. r0, r3, 0, 0xc, 0xc
/* 80037D98 000339F8  41 82 00 C4 */	beq lbl_80037E5C
lbl_80037D9C:
/* 80037D9C 000339FC  80 BF 0C 04 */	lwz r5, 0xc04(r31)
/* 80037DA0 00033A00  38 7F 05 24 */	addi r3, r31, 0x524
/* 80037DA4 00033A04  38 80 00 00 */	li r4, 0
/* 80037DA8 00033A08  A0 05 00 DC */	lhz r0, 0xdc(r5)
/* 80037DAC 00033A0C  54 00 04 3C */	rlwinm r0, r0, 0, 0x10, 0x1e
/* 80037DB0 00033A10  B0 05 00 DC */	sth r0, 0xdc(r5)
/* 80037DB4 00033A14  48 00 81 3D */	bl func_8003FEF0
/* 80037DB8 00033A18  38 00 00 02 */	li r0, 2
/* 80037DBC 00033A1C  38 A0 00 00 */	li r5, 0
/* 80037DC0 00033A20  7C 09 03 A6 */	mtctr r0
lbl_80037DC4:
/* 80037DC4 00033A24  54 A0 13 BA */	rlwinm r0, r5, 2, 0xe, 0x1d
/* 80037DC8 00033A28  7C 7F 02 14 */	add r3, r31, r0
/* 80037DCC 00033A2C  80 83 0C 90 */	lwz r4, 0xc90(r3)
/* 80037DD0 00033A30  2C 04 00 00 */	cmpwi r4, 0
/* 80037DD4 00033A34  41 82 00 34 */	beq lbl_80037E08
/* 80037DD8 00033A38  3C 65 00 01 */	addis r3, r5, 1
/* 80037DDC 00033A3C  38 03 FF FF */	addi r0, r3, -1
/* 80037DE0 00033A40  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 80037DE4 00033A44  28 00 00 01 */	cmplwi r0, 1
/* 80037DE8 00033A48  41 81 00 14 */	bgt lbl_80037DFC
/* 80037DEC 00033A4C  A0 04 00 10 */	lhz r0, 0x10(r4)
/* 80037DF0 00033A50  60 00 00 02 */	ori r0, r0, 2
/* 80037DF4 00033A54  B0 04 00 10 */	sth r0, 0x10(r4)
/* 80037DF8 00033A58  48 00 00 10 */	b lbl_80037E08
lbl_80037DFC:
/* 80037DFC 00033A5C  A0 04 00 10 */	lhz r0, 0x10(r4)
/* 80037E00 00033A60  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80037E04 00033A64  B0 04 00 10 */	sth r0, 0x10(r4)
lbl_80037E08:
/* 80037E08 00033A68  38 A5 00 01 */	addi r5, r5, 1
/* 80037E0C 00033A6C  54 A0 13 BA */	rlwinm r0, r5, 2, 0xe, 0x1d
/* 80037E10 00033A70  7C 7F 02 14 */	add r3, r31, r0
/* 80037E14 00033A74  80 83 0C 90 */	lwz r4, 0xc90(r3)
/* 80037E18 00033A78  2C 04 00 00 */	cmpwi r4, 0
/* 80037E1C 00033A7C  41 82 00 34 */	beq lbl_80037E50
/* 80037E20 00033A80  3C 65 00 01 */	addis r3, r5, 1
/* 80037E24 00033A84  38 03 FF FF */	addi r0, r3, -1
/* 80037E28 00033A88  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 80037E2C 00033A8C  28 00 00 01 */	cmplwi r0, 1
/* 80037E30 00033A90  41 81 00 14 */	bgt lbl_80037E44
/* 80037E34 00033A94  A0 04 00 10 */	lhz r0, 0x10(r4)
/* 80037E38 00033A98  60 00 00 02 */	ori r0, r0, 2
/* 80037E3C 00033A9C  B0 04 00 10 */	sth r0, 0x10(r4)
/* 80037E40 00033AA0  48 00 00 10 */	b lbl_80037E50
lbl_80037E44:
/* 80037E44 00033AA4  A0 04 00 10 */	lhz r0, 0x10(r4)
/* 80037E48 00033AA8  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80037E4C 00033AAC  B0 04 00 10 */	sth r0, 0x10(r4)
lbl_80037E50:
/* 80037E50 00033AB0  38 A5 00 01 */	addi r5, r5, 1
/* 80037E54 00033AB4  42 00 FF 70 */	bdnz lbl_80037DC4
/* 80037E58 00033AB8  48 00 00 C0 */	b lbl_80037F18
lbl_80037E5C:
/* 80037E5C 00033ABC  80 BF 0C 04 */	lwz r5, 0xc04(r31)
/* 80037E60 00033AC0  38 7F 05 24 */	addi r3, r31, 0x524
/* 80037E64 00033AC4  38 80 00 01 */	li r4, 1
/* 80037E68 00033AC8  A0 05 00 DC */	lhz r0, 0xdc(r5)
/* 80037E6C 00033ACC  60 00 00 01 */	ori r0, r0, 1
/* 80037E70 00033AD0  B0 05 00 DC */	sth r0, 0xdc(r5)
/* 80037E74 00033AD4  48 00 80 7D */	bl func_8003FEF0
/* 80037E78 00033AD8  38 00 00 02 */	li r0, 2
/* 80037E7C 00033ADC  38 A0 00 00 */	li r5, 0
/* 80037E80 00033AE0  7C 09 03 A6 */	mtctr r0
lbl_80037E84:
/* 80037E84 00033AE4  54 A0 13 BA */	rlwinm r0, r5, 2, 0xe, 0x1d
/* 80037E88 00033AE8  7C 7F 02 14 */	add r3, r31, r0
/* 80037E8C 00033AEC  80 83 0C 90 */	lwz r4, 0xc90(r3)
/* 80037E90 00033AF0  2C 04 00 00 */	cmpwi r4, 0
/* 80037E94 00033AF4  41 82 00 34 */	beq lbl_80037EC8
/* 80037E98 00033AF8  3C 65 00 01 */	addis r3, r5, 1
/* 80037E9C 00033AFC  38 03 FF FF */	addi r0, r3, -1
/* 80037EA0 00033B00  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 80037EA4 00033B04  28 00 00 01 */	cmplwi r0, 1
/* 80037EA8 00033B08  41 81 00 14 */	bgt lbl_80037EBC
/* 80037EAC 00033B0C  A0 04 00 10 */	lhz r0, 0x10(r4)
/* 80037EB0 00033B10  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80037EB4 00033B14  B0 04 00 10 */	sth r0, 0x10(r4)
/* 80037EB8 00033B18  48 00 00 10 */	b lbl_80037EC8
lbl_80037EBC:
/* 80037EBC 00033B1C  A0 04 00 10 */	lhz r0, 0x10(r4)
/* 80037EC0 00033B20  60 00 00 02 */	ori r0, r0, 2
/* 80037EC4 00033B24  B0 04 00 10 */	sth r0, 0x10(r4)
lbl_80037EC8:
/* 80037EC8 00033B28  38 A5 00 01 */	addi r5, r5, 1
/* 80037ECC 00033B2C  54 A0 13 BA */	rlwinm r0, r5, 2, 0xe, 0x1d
/* 80037ED0 00033B30  7C 7F 02 14 */	add r3, r31, r0
/* 80037ED4 00033B34  80 83 0C 90 */	lwz r4, 0xc90(r3)
/* 80037ED8 00033B38  2C 04 00 00 */	cmpwi r4, 0
/* 80037EDC 00033B3C  41 82 00 34 */	beq lbl_80037F10
/* 80037EE0 00033B40  3C 65 00 01 */	addis r3, r5, 1
/* 80037EE4 00033B44  38 03 FF FF */	addi r0, r3, -1
/* 80037EE8 00033B48  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 80037EEC 00033B4C  28 00 00 01 */	cmplwi r0, 1
/* 80037EF0 00033B50  41 81 00 14 */	bgt lbl_80037F04
/* 80037EF4 00033B54  A0 04 00 10 */	lhz r0, 0x10(r4)
/* 80037EF8 00033B58  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80037EFC 00033B5C  B0 04 00 10 */	sth r0, 0x10(r4)
/* 80037F00 00033B60  48 00 00 10 */	b lbl_80037F10
lbl_80037F04:
/* 80037F04 00033B64  A0 04 00 10 */	lhz r0, 0x10(r4)
/* 80037F08 00033B68  60 00 00 02 */	ori r0, r0, 2
/* 80037F0C 00033B6C  B0 04 00 10 */	sth r0, 0x10(r4)
lbl_80037F10:
/* 80037F10 00033B70  38 A5 00 01 */	addi r5, r5, 1
/* 80037F14 00033B74  42 00 FF 70 */	bdnz lbl_80037E84
lbl_80037F18:
/* 80037F18 00033B78  80 1F 00 00 */	lwz r0, 0(r31)
/* 80037F1C 00033B7C  60 00 00 01 */	ori r0, r0, 1
/* 80037F20 00033B80  90 1F 00 00 */	stw r0, 0(r31)
/* 80037F24 00033B84  48 00 00 98 */	b lbl_80037FBC
lbl_80037F28:
/* 80037F28 00033B88  80 1F 00 00 */	lwz r0, 0(r31)
/* 80037F2C 00033B8C  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 80037F30 00033B90  41 82 00 8C */	beq lbl_80037FBC
/* 80037F34 00033B94  80 BF 0C 04 */	lwz r5, 0xc04(r31)
/* 80037F38 00033B98  38 7F 05 24 */	addi r3, r31, 0x524
/* 80037F3C 00033B9C  38 80 00 00 */	li r4, 0
/* 80037F40 00033BA0  A0 05 00 DC */	lhz r0, 0xdc(r5)
/* 80037F44 00033BA4  54 00 04 3C */	rlwinm r0, r0, 0, 0x10, 0x1e
/* 80037F48 00033BA8  B0 05 00 DC */	sth r0, 0xdc(r5)
/* 80037F4C 00033BAC  48 00 7F A5 */	bl func_8003FEF0
/* 80037F50 00033BB0  80 7F 0C 90 */	lwz r3, 0xc90(r31)
/* 80037F54 00033BB4  2C 03 00 00 */	cmpwi r3, 0
/* 80037F58 00033BB8  41 82 00 10 */	beq lbl_80037F68
/* 80037F5C 00033BBC  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 80037F60 00033BC0  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80037F64 00033BC4  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_80037F68:
/* 80037F68 00033BC8  80 7F 0C 94 */	lwz r3, 0xc94(r31)
/* 80037F6C 00033BCC  2C 03 00 00 */	cmpwi r3, 0
/* 80037F70 00033BD0  41 82 00 10 */	beq lbl_80037F80
/* 80037F74 00033BD4  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 80037F78 00033BD8  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80037F7C 00033BDC  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_80037F80:
/* 80037F80 00033BE0  80 7F 0C 98 */	lwz r3, 0xc98(r31)
/* 80037F84 00033BE4  2C 03 00 00 */	cmpwi r3, 0
/* 80037F88 00033BE8  41 82 00 10 */	beq lbl_80037F98
/* 80037F8C 00033BEC  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 80037F90 00033BF0  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80037F94 00033BF4  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_80037F98:
/* 80037F98 00033BF8  80 7F 0C 9C */	lwz r3, 0xc9c(r31)
/* 80037F9C 00033BFC  2C 03 00 00 */	cmpwi r3, 0
/* 80037FA0 00033C00  41 82 00 10 */	beq lbl_80037FB0
/* 80037FA4 00033C04  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 80037FA8 00033C08  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80037FAC 00033C0C  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_80037FB0:
/* 80037FB0 00033C10  80 1F 00 00 */	lwz r0, 0(r31)
/* 80037FB4 00033C14  54 00 00 3C */	rlwinm r0, r0, 0, 0, 0x1e
/* 80037FB8 00033C18  90 1F 00 00 */	stw r0, 0(r31)
lbl_80037FBC:
/* 80037FBC 00033C1C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80037FC0 00033C20  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80037FC4 00033C24  83 C1 00 08 */	lwz r30, 8(r1)
/* 80037FC8 00033C28  7C 08 03 A6 */	mtlr r0
/* 80037FCC 00033C2C  38 21 00 10 */	addi r1, r1, 0x10
/* 80037FD0 00033C30  4E 80 00 20 */	blr

.global func_80037FD4
func_80037FD4:
/* 80037FD4 00033C34  2C 04 00 00 */	cmpwi r4, 0
/* 80037FD8 00033C38  41 82 00 14 */	beq lbl_80037FEC
/* 80037FDC 00033C3C  80 03 00 00 */	lwz r0, 0(r3)
/* 80037FE0 00033C40  60 00 00 02 */	ori r0, r0, 2
/* 80037FE4 00033C44  90 03 00 00 */	stw r0, 0(r3)
/* 80037FE8 00033C48  48 00 00 10 */	b lbl_80037FF8
lbl_80037FEC:
/* 80037FEC 00033C4C  80 03 00 00 */	lwz r0, 0(r3)
/* 80037FF0 00033C50  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80037FF4 00033C54  90 03 00 00 */	stw r0, 0(r3)
lbl_80037FF8:
/* 80037FF8 00033C58  2C 05 00 00 */	cmpwi r5, 0
/* 80037FFC 00033C5C  41 82 00 14 */	beq lbl_80038010
/* 80038000 00033C60  80 03 00 00 */	lwz r0, 0(r3)
/* 80038004 00033C64  60 00 00 04 */	ori r0, r0, 4
/* 80038008 00033C68  90 03 00 00 */	stw r0, 0(r3)
/* 8003800C 00033C6C  48 00 00 10 */	b lbl_8003801C
lbl_80038010:
/* 80038010 00033C70  80 03 00 00 */	lwz r0, 0(r3)
/* 80038014 00033C74  54 00 07 B8 */	rlwinm r0, r0, 0, 0x1e, 0x1c
/* 80038018 00033C78  90 03 00 00 */	stw r0, 0(r3)
lbl_8003801C:
/* 8003801C 00033C7C  48 00 00 04 */	b func_80038020

.global func_80038020
func_80038020:
/* 80038020 00033C80  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80038024 00033C84  7C 08 02 A6 */	mflr r0
/* 80038028 00033C88  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003802C 00033C8C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80038030 00033C90  93 C1 00 08 */	stw r30, 8(r1)
/* 80038034 00033C94  7C 7E 1B 78 */	mr r30, r3
/* 80038038 00033C98  4B FF B0 51 */	bl func_80033088
/* 8003803C 00033C9C  2C 03 00 00 */	cmpwi r3, 0
/* 80038040 00033CA0  7C 7F 1B 78 */	mr r31, r3
/* 80038044 00033CA4  41 82 03 20 */	beq lbl_80038364
/* 80038048 00033CA8  80 BE 0C 04 */	lwz r5, 0xc04(r30)
/* 8003804C 00033CAC  2C 05 00 00 */	cmpwi r5, 0
/* 80038050 00033CB0  41 82 03 14 */	beq lbl_80038364
/* 80038054 00033CB4  80 7E 00 00 */	lwz r3, 0(r30)
/* 80038058 00033CB8  54 60 07 FF */	clrlwi. r0, r3, 0x1f
/* 8003805C 00033CBC  41 82 00 14 */	beq lbl_80038070
/* 80038060 00033CC0  54 60 07 7D */	rlwinm. r0, r3, 0, 0x1d, 0x1e
/* 80038064 00033CC4  41 82 00 0C */	beq lbl_80038070
/* 80038068 00033CC8  54 60 02 53 */	rlwinm. r0, r3, 0, 9, 9
/* 8003806C 00033CCC  41 82 00 80 */	beq lbl_800380EC
lbl_80038070:
/* 80038070 00033CD0  A0 05 00 DC */	lhz r0, 0xdc(r5)
/* 80038074 00033CD4  38 7E 05 24 */	addi r3, r30, 0x524
/* 80038078 00033CD8  38 80 00 00 */	li r4, 0
/* 8003807C 00033CDC  54 00 04 3C */	rlwinm r0, r0, 0, 0x10, 0x1e
/* 80038080 00033CE0  B0 05 00 DC */	sth r0, 0xdc(r5)
/* 80038084 00033CE4  48 00 7E 6D */	bl func_8003FEF0
/* 80038088 00033CE8  80 7E 0C 90 */	lwz r3, 0xc90(r30)
/* 8003808C 00033CEC  2C 03 00 00 */	cmpwi r3, 0
/* 80038090 00033CF0  41 82 00 10 */	beq lbl_800380A0
/* 80038094 00033CF4  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 80038098 00033CF8  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 8003809C 00033CFC  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_800380A0:
/* 800380A0 00033D00  80 7E 0C 94 */	lwz r3, 0xc94(r30)
/* 800380A4 00033D04  2C 03 00 00 */	cmpwi r3, 0
/* 800380A8 00033D08  41 82 00 10 */	beq lbl_800380B8
/* 800380AC 00033D0C  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 800380B0 00033D10  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 800380B4 00033D14  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_800380B8:
/* 800380B8 00033D18  80 7E 0C 98 */	lwz r3, 0xc98(r30)
/* 800380BC 00033D1C  2C 03 00 00 */	cmpwi r3, 0
/* 800380C0 00033D20  41 82 00 10 */	beq lbl_800380D0
/* 800380C4 00033D24  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 800380C8 00033D28  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 800380CC 00033D2C  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_800380D0:
/* 800380D0 00033D30  80 7E 0C 9C */	lwz r3, 0xc9c(r30)
/* 800380D4 00033D34  2C 03 00 00 */	cmpwi r3, 0
/* 800380D8 00033D38  41 82 02 8C */	beq lbl_80038364
/* 800380DC 00033D3C  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 800380E0 00033D40  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 800380E4 00033D44  B0 03 00 10 */	sth r0, 0x10(r3)
/* 800380E8 00033D48  48 00 02 7C */	b lbl_80038364
lbl_800380EC:
/* 800380EC 00033D4C  54 60 03 19 */	rlwinm. r0, r3, 0, 0xc, 0xc
/* 800380F0 00033D50  40 82 00 0C */	bne lbl_800380FC
/* 800380F4 00033D54  54 60 02 D7 */	rlwinm. r0, r3, 0, 0xb, 0xb
/* 800380F8 00033D58  41 82 00 E8 */	beq lbl_800381E0
lbl_800380FC:
/* 800380FC 00033D5C  A0 05 00 DC */	lhz r0, 0xdc(r5)
/* 80038100 00033D60  38 7E 05 24 */	addi r3, r30, 0x524
/* 80038104 00033D64  38 80 00 00 */	li r4, 0
/* 80038108 00033D68  54 00 04 3C */	rlwinm r0, r0, 0, 0x10, 0x1e
/* 8003810C 00033D6C  B0 05 00 DC */	sth r0, 0xdc(r5)
/* 80038110 00033D70  48 00 7D E1 */	bl func_8003FEF0
/* 80038114 00033D74  38 00 00 02 */	li r0, 2
/* 80038118 00033D78  38 80 00 00 */	li r4, 0
/* 8003811C 00033D7C  7C 09 03 A6 */	mtctr r0
lbl_80038120:
/* 80038120 00033D80  3C 64 00 01 */	addis r3, r4, 1
/* 80038124 00033D84  38 03 FF FF */	addi r0, r3, -1
/* 80038128 00033D88  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 8003812C 00033D8C  28 00 00 01 */	cmplwi r0, 1
/* 80038130 00033D90  41 81 00 28 */	bgt lbl_80038158
/* 80038134 00033D94  54 80 13 BA */	rlwinm r0, r4, 2, 0xe, 0x1d
/* 80038138 00033D98  7C 7E 02 14 */	add r3, r30, r0
/* 8003813C 00033D9C  80 63 0C 90 */	lwz r3, 0xc90(r3)
/* 80038140 00033DA0  2C 03 00 00 */	cmpwi r3, 0
/* 80038144 00033DA4  41 82 00 34 */	beq lbl_80038178
/* 80038148 00033DA8  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 8003814C 00033DAC  60 00 00 02 */	ori r0, r0, 2
/* 80038150 00033DB0  B0 03 00 10 */	sth r0, 0x10(r3)
/* 80038154 00033DB4  48 00 00 24 */	b lbl_80038178
lbl_80038158:
/* 80038158 00033DB8  54 80 13 BA */	rlwinm r0, r4, 2, 0xe, 0x1d
/* 8003815C 00033DBC  7C 7E 02 14 */	add r3, r30, r0
/* 80038160 00033DC0  80 63 0C 90 */	lwz r3, 0xc90(r3)
/* 80038164 00033DC4  2C 03 00 00 */	cmpwi r3, 0
/* 80038168 00033DC8  41 82 00 10 */	beq lbl_80038178
/* 8003816C 00033DCC  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 80038170 00033DD0  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80038174 00033DD4  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_80038178:
/* 80038178 00033DD8  38 84 00 01 */	addi r4, r4, 1
/* 8003817C 00033DDC  3C 64 00 01 */	addis r3, r4, 1
/* 80038180 00033DE0  38 03 FF FF */	addi r0, r3, -1
/* 80038184 00033DE4  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 80038188 00033DE8  28 00 00 01 */	cmplwi r0, 1
/* 8003818C 00033DEC  41 81 00 28 */	bgt lbl_800381B4
/* 80038190 00033DF0  54 80 13 BA */	rlwinm r0, r4, 2, 0xe, 0x1d
/* 80038194 00033DF4  7C 7E 02 14 */	add r3, r30, r0
/* 80038198 00033DF8  80 63 0C 90 */	lwz r3, 0xc90(r3)
/* 8003819C 00033DFC  2C 03 00 00 */	cmpwi r3, 0
/* 800381A0 00033E00  41 82 00 34 */	beq lbl_800381D4
/* 800381A4 00033E04  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 800381A8 00033E08  60 00 00 02 */	ori r0, r0, 2
/* 800381AC 00033E0C  B0 03 00 10 */	sth r0, 0x10(r3)
/* 800381B0 00033E10  48 00 00 24 */	b lbl_800381D4
lbl_800381B4:
/* 800381B4 00033E14  54 80 13 BA */	rlwinm r0, r4, 2, 0xe, 0x1d
/* 800381B8 00033E18  7C 7E 02 14 */	add r3, r30, r0
/* 800381BC 00033E1C  80 63 0C 90 */	lwz r3, 0xc90(r3)
/* 800381C0 00033E20  2C 03 00 00 */	cmpwi r3, 0
/* 800381C4 00033E24  41 82 00 10 */	beq lbl_800381D4
/* 800381C8 00033E28  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 800381CC 00033E2C  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 800381D0 00033E30  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_800381D4:
/* 800381D4 00033E34  38 84 00 01 */	addi r4, r4, 1
/* 800381D8 00033E38  42 00 FF 48 */	bdnz lbl_80038120
/* 800381DC 00033E3C  48 00 00 7C */	b lbl_80038258
lbl_800381E0:
/* 800381E0 00033E40  A0 05 00 DC */	lhz r0, 0xdc(r5)
/* 800381E4 00033E44  38 7E 05 24 */	addi r3, r30, 0x524
/* 800381E8 00033E48  38 80 00 01 */	li r4, 1
/* 800381EC 00033E4C  60 00 00 01 */	ori r0, r0, 1
/* 800381F0 00033E50  B0 05 00 DC */	sth r0, 0xdc(r5)
/* 800381F4 00033E54  48 00 7C FD */	bl func_8003FEF0
/* 800381F8 00033E58  80 7E 0C 90 */	lwz r3, 0xc90(r30)
/* 800381FC 00033E5C  2C 03 00 00 */	cmpwi r3, 0
/* 80038200 00033E60  41 82 00 10 */	beq lbl_80038210
/* 80038204 00033E64  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 80038208 00033E68  60 00 00 02 */	ori r0, r0, 2
/* 8003820C 00033E6C  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_80038210:
/* 80038210 00033E70  80 7E 0C 94 */	lwz r3, 0xc94(r30)
/* 80038214 00033E74  2C 03 00 00 */	cmpwi r3, 0
/* 80038218 00033E78  41 82 00 10 */	beq lbl_80038228
/* 8003821C 00033E7C  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 80038220 00033E80  60 00 00 02 */	ori r0, r0, 2
/* 80038224 00033E84  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_80038228:
/* 80038228 00033E88  80 7E 0C 98 */	lwz r3, 0xc98(r30)
/* 8003822C 00033E8C  2C 03 00 00 */	cmpwi r3, 0
/* 80038230 00033E90  41 82 00 10 */	beq lbl_80038240
/* 80038234 00033E94  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 80038238 00033E98  60 00 00 02 */	ori r0, r0, 2
/* 8003823C 00033E9C  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_80038240:
/* 80038240 00033EA0  80 7E 0C 9C */	lwz r3, 0xc9c(r30)
/* 80038244 00033EA4  2C 03 00 00 */	cmpwi r3, 0
/* 80038248 00033EA8  41 82 00 10 */	beq lbl_80038258
/* 8003824C 00033EAC  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 80038250 00033EB0  60 00 00 02 */	ori r0, r0, 2
/* 80038254 00033EB4  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_80038258:
/* 80038258 00033EB8  80 7E 00 00 */	lwz r3, 0(r30)
/* 8003825C 00033EBC  54 60 07 7C */	rlwinm r0, r3, 0, 0x1d, 0x1e
/* 80038260 00033EC0  28 00 00 06 */	cmplwi r0, 6
/* 80038264 00033EC4  40 82 00 60 */	bne lbl_800382C4
/* 80038268 00033EC8  80 BE 0C 04 */	lwz r5, 0xc04(r30)
/* 8003826C 00033ECC  3B E0 00 00 */	li r31, 0
/* 80038270 00033ED0  38 7E 05 24 */	addi r3, r30, 0x524
/* 80038274 00033ED4  38 80 00 00 */	li r4, 0
/* 80038278 00033ED8  93 E5 00 3C */	stw r31, 0x3c(r5)
/* 8003827C 00033EDC  48 00 7D D9 */	bl func_80040054
/* 80038280 00033EE0  80 7E 0C 90 */	lwz r3, 0xc90(r30)
/* 80038284 00033EE4  2C 03 00 00 */	cmpwi r3, 0
/* 80038288 00033EE8  41 82 00 08 */	beq lbl_80038290
/* 8003828C 00033EEC  93 E3 01 2C */	stw r31, 0x12c(r3)
lbl_80038290:
/* 80038290 00033EF0  80 7E 0C 94 */	lwz r3, 0xc94(r30)
/* 80038294 00033EF4  2C 03 00 00 */	cmpwi r3, 0
/* 80038298 00033EF8  41 82 00 08 */	beq lbl_800382A0
/* 8003829C 00033EFC  93 E3 01 2C */	stw r31, 0x12c(r3)
lbl_800382A0:
/* 800382A0 00033F00  80 7E 0C 98 */	lwz r3, 0xc98(r30)
/* 800382A4 00033F04  2C 03 00 00 */	cmpwi r3, 0
/* 800382A8 00033F08  41 82 00 08 */	beq lbl_800382B0
/* 800382AC 00033F0C  93 E3 01 2C */	stw r31, 0x12c(r3)
lbl_800382B0:
/* 800382B0 00033F10  80 7E 0C 9C */	lwz r3, 0xc9c(r30)
/* 800382B4 00033F14  2C 03 00 00 */	cmpwi r3, 0
/* 800382B8 00033F18  41 82 00 AC */	beq lbl_80038364
/* 800382BC 00033F1C  93 E3 01 2C */	stw r31, 0x12c(r3)
/* 800382C0 00033F20  48 00 00 A4 */	b lbl_80038364
lbl_800382C4:
/* 800382C4 00033F24  54 60 07 BD */	rlwinm. r0, r3, 0, 0x1e, 0x1e
/* 800382C8 00033F28  38 80 00 00 */	li r4, 0
/* 800382CC 00033F2C  41 82 00 0C */	beq lbl_800382D8
/* 800382D0 00033F30  38 80 00 00 */	li r4, 0
/* 800382D4 00033F34  48 00 00 10 */	b lbl_800382E4
lbl_800382D8:
/* 800382D8 00033F38  54 60 07 7B */	rlwinm. r0, r3, 0, 0x1d, 0x1d
/* 800382DC 00033F3C  41 82 00 08 */	beq lbl_800382E4
/* 800382E0 00033F40  38 80 00 01 */	li r4, 1
lbl_800382E4:
/* 800382E4 00033F44  7F E3 FB 78 */	mr r3, r31
/* 800382E8 00033F48  4B FF B8 95 */	bl func_80033B7C
/* 800382EC 00033F4C  2C 03 00 00 */	cmpwi r3, 0
/* 800382F0 00033F50  41 82 00 74 */	beq lbl_80038364
/* 800382F4 00033F54  4B FF D6 7D */	bl func_80035970
/* 800382F8 00033F58  80 BE 0C 04 */	lwz r5, 0xc04(r30)
/* 800382FC 00033F5C  7C 7F 1B 78 */	mr r31, r3
/* 80038300 00033F60  7F E4 FB 78 */	mr r4, r31
/* 80038304 00033F64  90 65 00 3C */	stw r3, 0x3c(r5)
/* 80038308 00033F68  38 7E 05 24 */	addi r3, r30, 0x524
/* 8003830C 00033F6C  48 00 7D 49 */	bl func_80040054
/* 80038310 00033F70  80 7E 0C 90 */	lwz r3, 0xc90(r30)
/* 80038314 00033F74  2C 03 00 00 */	cmpwi r3, 0
/* 80038318 00033F78  41 82 00 08 */	beq lbl_80038320
/* 8003831C 00033F7C  93 E3 01 2C */	stw r31, 0x12c(r3)
lbl_80038320:
/* 80038320 00033F80  80 7E 0C 94 */	lwz r3, 0xc94(r30)
/* 80038324 00033F84  2C 03 00 00 */	cmpwi r3, 0
/* 80038328 00033F88  41 82 00 08 */	beq lbl_80038330
/* 8003832C 00033F8C  93 E3 01 2C */	stw r31, 0x12c(r3)
lbl_80038330:
/* 80038330 00033F90  80 7E 0C 98 */	lwz r3, 0xc98(r30)
/* 80038334 00033F94  2C 03 00 00 */	cmpwi r3, 0
/* 80038338 00033F98  41 82 00 08 */	beq lbl_80038340
/* 8003833C 00033F9C  93 E3 01 2C */	stw r31, 0x12c(r3)
lbl_80038340:
/* 80038340 00033FA0  80 7E 0C 9C */	lwz r3, 0xc9c(r30)
/* 80038344 00033FA4  2C 03 00 00 */	cmpwi r3, 0
/* 80038348 00033FA8  41 82 00 08 */	beq lbl_80038350
/* 8003834C 00033FAC  93 E3 01 2C */	stw r31, 0x12c(r3)
lbl_80038350:
/* 80038350 00033FB0  80 1E 00 00 */	lwz r0, 0(r30)
/* 80038354 00033FB4  7F C3 F3 78 */	mr r3, r30
/* 80038358 00033FB8  54 05 F7 FE */	rlwinm r5, r0, 0x1e, 0x1f, 0x1f
/* 8003835C 00033FBC  54 04 FF FE */	rlwinm r4, r0, 0x1f, 0x1f, 0x1f
/* 80038360 00033FC0  48 00 5B 31 */	bl func_8003DE90
lbl_80038364:
/* 80038364 00033FC4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80038368 00033FC8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003836C 00033FCC  83 C1 00 08 */	lwz r30, 8(r1)
/* 80038370 00033FD0  7C 08 03 A6 */	mtlr r0
/* 80038374 00033FD4  38 21 00 10 */	addi r1, r1, 0x10
/* 80038378 00033FD8  4E 80 00 20 */	blr

.global func_8003837C
func_8003837C:
/* 8003837C 00033FDC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80038380 00033FE0  7C 08 02 A6 */	mflr r0
/* 80038384 00033FE4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80038388 00033FE8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003838C 00033FEC  7C 7F 1B 78 */	mr r31, r3
/* 80038390 00033FF0  80 C3 0C 04 */	lwz r6, 0xc04(r3)
/* 80038394 00033FF4  2C 06 00 00 */	cmpwi r6, 0
/* 80038398 00033FF8  41 82 01 6C */	beq lbl_80038504
/* 8003839C 00033FFC  80 A3 00 00 */	lwz r5, 0(r3)
/* 800383A0 00034000  54 A0 02 D7 */	rlwinm. r0, r5, 0, 0xb, 0xb
/* 800383A4 00034004  40 82 00 0C */	bne lbl_800383B0
/* 800383A8 00034008  54 A0 03 19 */	rlwinm. r0, r5, 0, 0xc, 0xc
/* 800383AC 0003400C  41 82 01 58 */	beq lbl_80038504
lbl_800383B0:
/* 800383B0 00034010  2C 04 00 00 */	cmpwi r4, 0
/* 800383B4 00034014  41 82 00 CC */	beq lbl_80038480
/* 800383B8 00034018  A0 06 00 DC */	lhz r0, 0xdc(r6)
/* 800383BC 0003401C  38 80 00 01 */	li r4, 1
/* 800383C0 00034020  38 63 05 24 */	addi r3, r3, 0x524
/* 800383C4 00034024  60 00 00 01 */	ori r0, r0, 1
/* 800383C8 00034028  B0 06 00 DC */	sth r0, 0xdc(r6)
/* 800383CC 0003402C  48 00 7B 25 */	bl func_8003FEF0
/* 800383D0 00034030  38 00 00 02 */	li r0, 2
/* 800383D4 00034034  38 A0 00 00 */	li r5, 0
/* 800383D8 00034038  7C 09 03 A6 */	mtctr r0
lbl_800383DC:
/* 800383DC 0003403C  54 A0 13 BA */	rlwinm r0, r5, 2, 0xe, 0x1d
/* 800383E0 00034040  7C 7F 02 14 */	add r3, r31, r0
/* 800383E4 00034044  80 83 0C 90 */	lwz r4, 0xc90(r3)
/* 800383E8 00034048  2C 04 00 00 */	cmpwi r4, 0
/* 800383EC 0003404C  41 82 00 34 */	beq lbl_80038420
/* 800383F0 00034050  3C 65 00 01 */	addis r3, r5, 1
/* 800383F4 00034054  38 03 FF FF */	addi r0, r3, -1
/* 800383F8 00034058  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 800383FC 0003405C  28 00 00 01 */	cmplwi r0, 1
/* 80038400 00034060  41 81 00 14 */	bgt lbl_80038414
/* 80038404 00034064  A0 04 00 10 */	lhz r0, 0x10(r4)
/* 80038408 00034068  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 8003840C 0003406C  B0 04 00 10 */	sth r0, 0x10(r4)
/* 80038410 00034070  48 00 00 10 */	b lbl_80038420
lbl_80038414:
/* 80038414 00034074  A0 04 00 10 */	lhz r0, 0x10(r4)
/* 80038418 00034078  60 00 00 02 */	ori r0, r0, 2
/* 8003841C 0003407C  B0 04 00 10 */	sth r0, 0x10(r4)
lbl_80038420:
/* 80038420 00034080  38 A5 00 01 */	addi r5, r5, 1
/* 80038424 00034084  54 A0 13 BA */	rlwinm r0, r5, 2, 0xe, 0x1d
/* 80038428 00034088  7C 7F 02 14 */	add r3, r31, r0
/* 8003842C 0003408C  80 83 0C 90 */	lwz r4, 0xc90(r3)
/* 80038430 00034090  2C 04 00 00 */	cmpwi r4, 0
/* 80038434 00034094  41 82 00 34 */	beq lbl_80038468
/* 80038438 00034098  3C 65 00 01 */	addis r3, r5, 1
/* 8003843C 0003409C  38 03 FF FF */	addi r0, r3, -1
/* 80038440 000340A0  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 80038444 000340A4  28 00 00 01 */	cmplwi r0, 1
/* 80038448 000340A8  41 81 00 14 */	bgt lbl_8003845C
/* 8003844C 000340AC  A0 04 00 10 */	lhz r0, 0x10(r4)
/* 80038450 000340B0  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80038454 000340B4  B0 04 00 10 */	sth r0, 0x10(r4)
/* 80038458 000340B8  48 00 00 10 */	b lbl_80038468
lbl_8003845C:
/* 8003845C 000340BC  A0 04 00 10 */	lhz r0, 0x10(r4)
/* 80038460 000340C0  60 00 00 02 */	ori r0, r0, 2
/* 80038464 000340C4  B0 04 00 10 */	sth r0, 0x10(r4)
lbl_80038468:
/* 80038468 000340C8  38 A5 00 01 */	addi r5, r5, 1
/* 8003846C 000340CC  42 00 FF 70 */	bdnz lbl_800383DC
/* 80038470 000340D0  80 1F 00 00 */	lwz r0, 0(r31)
/* 80038474 000340D4  60 00 00 01 */	ori r0, r0, 1
/* 80038478 000340D8  90 1F 00 00 */	stw r0, 0(r31)
/* 8003847C 000340DC  48 00 00 88 */	b lbl_80038504
lbl_80038480:
/* 80038480 000340E0  A0 06 00 DC */	lhz r0, 0xdc(r6)
/* 80038484 000340E4  38 80 00 00 */	li r4, 0
/* 80038488 000340E8  38 63 05 24 */	addi r3, r3, 0x524
/* 8003848C 000340EC  54 00 04 3C */	rlwinm r0, r0, 0, 0x10, 0x1e
/* 80038490 000340F0  B0 06 00 DC */	sth r0, 0xdc(r6)
/* 80038494 000340F4  48 00 7A 5D */	bl func_8003FEF0
/* 80038498 000340F8  80 7F 0C 90 */	lwz r3, 0xc90(r31)
/* 8003849C 000340FC  2C 03 00 00 */	cmpwi r3, 0
/* 800384A0 00034100  41 82 00 10 */	beq lbl_800384B0
/* 800384A4 00034104  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 800384A8 00034108  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 800384AC 0003410C  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_800384B0:
/* 800384B0 00034110  80 7F 0C 94 */	lwz r3, 0xc94(r31)
/* 800384B4 00034114  2C 03 00 00 */	cmpwi r3, 0
/* 800384B8 00034118  41 82 00 10 */	beq lbl_800384C8
/* 800384BC 0003411C  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 800384C0 00034120  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 800384C4 00034124  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_800384C8:
/* 800384C8 00034128  80 7F 0C 98 */	lwz r3, 0xc98(r31)
/* 800384CC 0003412C  2C 03 00 00 */	cmpwi r3, 0
/* 800384D0 00034130  41 82 00 10 */	beq lbl_800384E0
/* 800384D4 00034134  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 800384D8 00034138  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 800384DC 0003413C  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_800384E0:
/* 800384E0 00034140  80 7F 0C 9C */	lwz r3, 0xc9c(r31)
/* 800384E4 00034144  2C 03 00 00 */	cmpwi r3, 0
/* 800384E8 00034148  41 82 00 10 */	beq lbl_800384F8
/* 800384EC 0003414C  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 800384F0 00034150  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 800384F4 00034154  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_800384F8:
/* 800384F8 00034158  80 1F 00 00 */	lwz r0, 0(r31)
/* 800384FC 0003415C  54 00 00 3C */	rlwinm r0, r0, 0, 0, 0x1e
/* 80038500 00034160  90 1F 00 00 */	stw r0, 0(r31)
lbl_80038504:
/* 80038504 00034164  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80038508 00034168  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003850C 0003416C  7C 08 03 A6 */	mtlr r0
/* 80038510 00034170  38 21 00 10 */	addi r1, r1, 0x10
/* 80038514 00034174  4E 80 00 20 */	blr

.global func_80038518
func_80038518:
/* 80038518 00034178  2C 04 00 00 */	cmpwi r4, 0
/* 8003851C 0003417C  4D 82 00 20 */	beqlr
/* 80038520 00034180  38 A0 00 1F */	li r5, 0x1f
/* 80038524 00034184  38 63 0D 94 */	addi r3, r3, 0xd94
/* 80038528 00034188  48 19 5E 68 */	b strncpy
/* 8003852C 0003418C  4E 80 00 20 */	blr

.global func_80038530
func_80038530:
/* 80038530 00034190  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 80038534 00034194  7C 08 02 A6 */	mflr r0
/* 80038538 00034198  90 01 00 54 */	stw r0, 0x54(r1)
/* 8003853C 0003419C  DB E1 00 40 */	stfd f31, 0x40(r1)
/* 80038540 000341A0  F3 E1 00 48 */	psq_st f31, 72(r1), 0, qr0
/* 80038544 000341A4  2C 04 01 00 */	cmpwi r4, 0x100
/* 80038548 000341A8  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003854C 000341AC  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 80038550 000341B0  7C 7F 1B 78 */	mr r31, r3
/* 80038554 000341B4  93 C1 00 38 */	stw r30, 0x38(r1)
/* 80038558 000341B8  93 A1 00 34 */	stw r29, 0x34(r1)
/* 8003855C 000341BC  7C 9D 23 78 */	mr r29, r4
/* 80038560 000341C0  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 80038564 000341C4  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 80038568 000341C8  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 8003856C 000341CC  D0 01 00 08 */	stfs f0, 8(r1)
/* 80038570 000341D0  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 80038574 000341D4  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80038578 000341D8  B0 83 0C 68 */	sth r4, 0xc68(r3)
/* 8003857C 000341DC  40 82 00 1C */	bne lbl_80038598
/* 80038580 000341E0  38 81 00 14 */	addi r4, r1, 0x14
/* 80038584 000341E4  48 00 03 41 */	bl func_800388C4
/* 80038588 000341E8  7F E3 FB 78 */	mr r3, r31
/* 8003858C 000341EC  38 81 00 08 */	addi r4, r1, 8
/* 80038590 000341F0  48 00 05 41 */	bl func_80038AD0
/* 80038594 000341F4  48 00 02 28 */	b lbl_800387BC
lbl_80038598:
/* 80038598 000341F8  48 00 CF F9 */	bl func_80045590
/* 8003859C 000341FC  7C 7E 1B 78 */	mr r30, r3
/* 800385A0 00034200  38 80 00 00 */	li r4, 0
/* 800385A4 00034204  48 00 D7 59 */	bl func_80045CFC
/* 800385A8 00034208  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 800385AC 0003420C  57 A0 06 31 */	rlwinm. r0, r29, 0, 0x18, 0x18
/* 800385B0 00034210  D0 1F 0D 80 */	stfs f0, 0xd80(r31)
/* 800385B4 00034214  40 82 01 7C */	bne lbl_80038730
/* 800385B8 00034218  7F C3 F3 78 */	mr r3, r30
/* 800385BC 0003421C  7F A4 EB 78 */	mr r4, r29
/* 800385C0 00034220  38 A1 00 14 */	addi r5, r1, 0x14
/* 800385C4 00034224  38 C1 00 0C */	addi r6, r1, 0xc
/* 800385C8 00034228  38 E0 00 01 */	li r7, 1
/* 800385CC 0003422C  48 00 D6 4D */	bl func_80045C18
/* 800385D0 00034230  2C 03 00 00 */	cmpwi r3, 0
/* 800385D4 00034234  41 82 01 E8 */	beq lbl_800387BC
/* 800385D8 00034238  80 7F 00 00 */	lwz r3, 0(r31)
/* 800385DC 0003423C  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 800385E0 00034240  54 60 04 E7 */	rlwinm. r0, r3, 0, 0x13, 0x13
/* 800385E4 00034244  54 60 02 D2 */	rlwinm r0, r3, 0, 0xb, 9
/* 800385E8 00034248  D0 1F 0D 78 */	stfs f0, 0xd78(r31)
/* 800385EC 0003424C  90 1F 00 00 */	stw r0, 0(r31)
/* 800385F0 00034250  41 82 00 44 */	beq lbl_80038634
/* 800385F4 00034254  7F E3 FB 78 */	mr r3, r31
/* 800385F8 00034258  38 80 00 00 */	li r4, 0
/* 800385FC 0003425C  48 00 3C 61 */	bl func_8003C25C
/* 80038600 00034260  54 7E 04 3E */	clrlwi r30, r3, 0x10
/* 80038604 00034264  7F E3 FB 78 */	mr r3, r31
/* 80038608 00034268  38 80 00 0A */	li r4, 0xa
/* 8003860C 0003426C  48 00 3C 51 */	bl func_8003C25C
/* 80038610 00034270  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 80038614 00034274  7C 00 F0 40 */	cmplw r0, r30
/* 80038618 00034278  41 82 00 0C */	beq lbl_80038624
/* 8003861C 0003427C  3B C0 00 0A */	li r30, 0xa
/* 80038620 00034280  48 00 00 20 */	b lbl_80038640
lbl_80038624:
/* 80038624 00034284  C0 02 82 5C */	lfs f0, lbl_8064085C-_SDA2_BASE_(r2)
/* 80038628 00034288  3B C0 00 00 */	li r30, 0
/* 8003862C 0003428C  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 80038630 00034290  48 00 00 10 */	b lbl_80038640
lbl_80038634:
/* 80038634 00034294  54 00 4F FE */	rlwinm r0, r0, 9, 0x1f, 0x1f
/* 80038638 00034298  7C 00 00 D0 */	neg r0, r0
/* 8003863C 0003429C  54 1E 06 F6 */	rlwinm r30, r0, 0, 0x1b, 0x1b
lbl_80038640:
/* 80038640 000342A0  7F E3 FB 78 */	mr r3, r31
/* 80038644 000342A4  57 C4 06 3E */	clrlwi r4, r30, 0x18
/* 80038648 000342A8  38 A0 00 02 */	li r5, 2
/* 8003864C 000342AC  48 00 17 75 */	bl func_80039DC0
/* 80038650 000342B0  57 A0 F0 02 */	slwi r0, r29, 0x1e
/* 80038654 000342B4  57 A4 0F FE */	srwi r4, r29, 0x1f
/* 80038658 000342B8  7C 64 00 50 */	subf r3, r4, r0
/* 8003865C 000342BC  C0 02 82 60 */	lfs f0, lbl_80640860-_SDA2_BASE_(r2)
/* 80038660 000342C0  54 63 10 3E */	rotlwi r3, r3, 2
/* 80038664 000342C4  3C 00 43 30 */	lis r0, 0x4330
/* 80038668 000342C8  7C 63 22 14 */	add r3, r3, r4
/* 8003866C 000342CC  90 01 00 20 */	stw r0, 0x20(r1)
/* 80038670 000342D0  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 80038674 000342D4  C8 42 82 68 */	lfd f2, lbl_80640868-_SDA2_BASE_(r2)
/* 80038678 000342D8  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003867C 000342DC  EC 20 00 72 */	fmuls f1, f0, f1
/* 80038680 000342E0  7F E3 FB 78 */	mr r3, r31
/* 80038684 000342E4  57 C4 06 3E */	clrlwi r4, r30, 0x18
/* 80038688 000342E8  C8 01 00 20 */	lfd f0, 0x20(r1)
/* 8003868C 000342EC  EC 00 10 28 */	fsubs f0, f0, f2
/* 80038690 000342F0  EC 20 00 72 */	fmuls f1, f0, f1
/* 80038694 000342F4  48 00 0B 6D */	bl func_80039200
/* 80038698 000342F8  7F E3 FB 78 */	mr r3, r31
/* 8003869C 000342FC  38 81 00 08 */	addi r4, r1, 8
/* 800386A0 00034300  48 00 04 31 */	bl func_80038AD0
/* 800386A4 00034304  7F E3 FB 78 */	mr r3, r31
/* 800386A8 00034308  38 81 00 14 */	addi r4, r1, 0x14
/* 800386AC 0003430C  48 00 02 19 */	bl func_800388C4
/* 800386B0 00034310  80 7F 00 00 */	lwz r3, 0(r31)
/* 800386B4 00034314  54 60 02 D7 */	rlwinm. r0, r3, 0, 0xb, 0xb
/* 800386B8 00034318  40 82 00 0C */	bne lbl_800386C4
/* 800386BC 0003431C  54 60 03 19 */	rlwinm. r0, r3, 0, 0xc, 0xc
/* 800386C0 00034320  41 82 00 FC */	beq lbl_800387BC
lbl_800386C4:
/* 800386C4 00034324  C3 E2 82 20 */	lfs f31, lbl_80640820-_SDA2_BASE_(r2)
/* 800386C8 00034328  3B A0 00 00 */	li r29, 0
lbl_800386CC:
/* 800386CC 0003432C  57 A0 13 BA */	rlwinm r0, r29, 2, 0xe, 0x1d
/* 800386D0 00034330  7F DF 02 14 */	add r30, r31, r0
/* 800386D4 00034334  80 7E 0C 90 */	lwz r3, 0xc90(r30)
/* 800386D8 00034338  2C 03 00 00 */	cmpwi r3, 0
/* 800386DC 0003433C  41 82 00 44 */	beq lbl_80038720
/* 800386E0 00034340  3C 9D 00 01 */	addis r4, r29, 1
/* 800386E4 00034344  38 04 FF FF */	addi r0, r4, -1
/* 800386E8 00034348  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 800386EC 0003434C  28 00 00 01 */	cmplwi r0, 1
/* 800386F0 00034350  41 81 00 30 */	bgt lbl_80038720
/* 800386F4 00034354  81 83 01 00 */	lwz r12, 0x100(r3)
/* 800386F8 00034358  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 800386FC 0003435C  81 8C 00 0C */	lwz r12, 0xc(r12)
/* 80038700 00034360  7D 89 03 A6 */	mtctr r12
/* 80038704 00034364  4E 80 04 21 */	bctrl
/* 80038708 00034368  80 7E 0C 90 */	lwz r3, 0xc90(r30)
/* 8003870C 0003436C  80 03 01 04 */	lwz r0, 0x104(r3)
/* 80038710 00034370  60 00 00 01 */	ori r0, r0, 1
/* 80038714 00034374  54 00 07 F8 */	rlwinm r0, r0, 0, 0x1f, 0x1c
/* 80038718 00034378  90 03 01 04 */	stw r0, 0x104(r3)
/* 8003871C 0003437C  D3 E3 01 08 */	stfs f31, 0x108(r3)
lbl_80038720:
/* 80038720 00034380  3B BD 00 01 */	addi r29, r29, 1
/* 80038724 00034384  28 1D 00 04 */	cmplwi r29, 4
/* 80038728 00034388  41 80 FF A4 */	blt lbl_800386CC
/* 8003872C 0003438C  48 00 00 90 */	b lbl_800387BC
lbl_80038730:
/* 80038730 00034390  7F C3 F3 78 */	mr r3, r30
/* 80038734 00034394  57 A4 07 BE */	clrlwi r4, r29, 0x1e
/* 80038738 00034398  38 A1 00 14 */	addi r5, r1, 0x14
/* 8003873C 0003439C  38 C1 00 0C */	addi r6, r1, 0xc
/* 80038740 000343A0  48 00 D4 49 */	bl func_80045B88
/* 80038744 000343A4  2C 03 00 00 */	cmpwi r3, 0
/* 80038748 000343A8  41 82 00 74 */	beq lbl_800387BC
/* 8003874C 000343AC  7F E3 FB 78 */	mr r3, r31
/* 80038750 000343B0  38 80 00 00 */	li r4, 0
/* 80038754 000343B4  38 A0 00 02 */	li r5, 2
/* 80038758 000343B8  48 00 16 69 */	bl func_80039DC0
/* 8003875C 000343BC  57 A0 F0 02 */	slwi r0, r29, 0x1e
/* 80038760 000343C0  57 A4 0F FE */	srwi r4, r29, 0x1f
/* 80038764 000343C4  7C 64 00 50 */	subf r3, r4, r0
/* 80038768 000343C8  C0 02 82 64 */	lfs f0, lbl_80640864-_SDA2_BASE_(r2)
/* 8003876C 000343CC  54 63 10 3E */	rotlwi r3, r3, 2
/* 80038770 000343D0  3C 00 43 30 */	lis r0, 0x4330
/* 80038774 000343D4  7C 63 22 14 */	add r3, r3, r4
/* 80038778 000343D8  90 01 00 20 */	stw r0, 0x20(r1)
/* 8003877C 000343DC  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 80038780 000343E0  C8 42 82 68 */	lfd f2, lbl_80640868-_SDA2_BASE_(r2)
/* 80038784 000343E4  90 01 00 24 */	stw r0, 0x24(r1)
/* 80038788 000343E8  EC 20 00 72 */	fmuls f1, f0, f1
/* 8003878C 000343EC  7F E3 FB 78 */	mr r3, r31
/* 80038790 000343F0  38 80 00 00 */	li r4, 0
/* 80038794 000343F4  C8 01 00 20 */	lfd f0, 0x20(r1)
/* 80038798 000343F8  EC 00 10 28 */	fsubs f0, f0, f2
/* 8003879C 000343FC  EC 20 00 72 */	fmuls f1, f0, f1
/* 800387A0 00034400  48 00 0A 61 */	bl func_80039200
/* 800387A4 00034404  7F E3 FB 78 */	mr r3, r31
/* 800387A8 00034408  38 81 00 08 */	addi r4, r1, 8
/* 800387AC 0003440C  48 00 03 25 */	bl func_80038AD0
/* 800387B0 00034410  7F E3 FB 78 */	mr r3, r31
/* 800387B4 00034414  38 81 00 14 */	addi r4, r1, 0x14
/* 800387B8 00034418  48 00 01 0D */	bl func_800388C4
lbl_800387BC:
/* 800387BC 0003441C  E3 E1 00 48 */	psq_l f31, 72(r1), 0, qr0
/* 800387C0 00034420  80 01 00 54 */	lwz r0, 0x54(r1)
/* 800387C4 00034424  CB E1 00 40 */	lfd f31, 0x40(r1)
/* 800387C8 00034428  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 800387CC 0003442C  83 C1 00 38 */	lwz r30, 0x38(r1)
/* 800387D0 00034430  83 A1 00 34 */	lwz r29, 0x34(r1)
/* 800387D4 00034434  7C 08 03 A6 */	mtlr r0
/* 800387D8 00034438  38 21 00 50 */	addi r1, r1, 0x50
/* 800387DC 0003443C  4E 80 00 20 */	blr

.global func_800387E0
func_800387E0:
/* 800387E0 00034440  80 04 0C 04 */	lwz r0, 0xc04(r4)
/* 800387E4 00034444  2C 00 00 00 */	cmpwi r0, 0
/* 800387E8 00034448  41 82 00 20 */	beq lbl_80038808
/* 800387EC 0003444C  C0 44 0C BC */	lfs f2, 0xcbc(r4)
/* 800387F0 00034450  C0 24 0C B8 */	lfs f1, 0xcb8(r4)
/* 800387F4 00034454  C0 04 0C B4 */	lfs f0, 0xcb4(r4)
/* 800387F8 00034458  D0 03 00 00 */	stfs f0, 0(r3)
/* 800387FC 0003445C  D0 23 00 04 */	stfs f1, 4(r3)
/* 80038800 00034460  D0 43 00 08 */	stfs f2, 8(r3)
/* 80038804 00034464  4E 80 00 20 */	blr
lbl_80038808:
/* 80038808 00034468  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003880C 0003446C  D0 03 00 00 */	stfs f0, 0(r3)
/* 80038810 00034470  D0 03 00 04 */	stfs f0, 4(r3)
/* 80038814 00034474  D0 03 00 08 */	stfs f0, 8(r3)
/* 80038818 00034478  4E 80 00 20 */	blr

.global func_8003881C
func_8003881C:
/* 8003881C 0003447C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80038820 00034480  7C 08 02 A6 */	mflr r0
/* 80038824 00034484  90 01 00 14 */	stw r0, 0x14(r1)
/* 80038828 00034488  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003882C 0003448C  7C 9F 23 78 */	mr r31, r4
/* 80038830 00034490  93 C1 00 08 */	stw r30, 8(r1)
/* 80038834 00034494  7C 7E 1B 78 */	mr r30, r3
/* 80038838 00034498  80 A3 0C 04 */	lwz r5, 0xc04(r3)
/* 8003883C 0003449C  2C 05 00 00 */	cmpwi r5, 0
/* 80038840 000344A0  41 82 00 6C */	beq lbl_800388AC
/* 80038844 000344A4  80 65 00 08 */	lwz r3, 8(r5)
/* 80038848 000344A8  2C 03 00 00 */	cmpwi r3, 0
/* 8003884C 000344AC  41 82 00 30 */	beq lbl_8003887C
/* 80038850 000344B0  80 63 00 00 */	lwz r3, 0(r3)
/* 80038854 000344B4  2C 03 00 00 */	cmpwi r3, 0
/* 80038858 000344B8  41 82 00 24 */	beq lbl_8003887C
/* 8003885C 000344BC  C0 04 00 00 */	lfs f0, 0(r4)
/* 80038860 000344C0  C0 24 00 04 */	lfs f1, 4(r4)
/* 80038864 000344C4  D0 03 00 20 */	stfs f0, 0x20(r3)
/* 80038868 000344C8  C0 04 00 08 */	lfs f0, 8(r4)
/* 8003886C 000344CC  38 80 00 01 */	li r4, 1
/* 80038870 000344D0  D0 23 00 24 */	stfs f1, 0x24(r3)
/* 80038874 000344D4  D0 03 00 28 */	stfs f0, 0x28(r3)
/* 80038878 000344D8  48 1B 9E 41 */	bl func_801F26B8
lbl_8003887C:
/* 8003887C 000344DC  80 BF 00 00 */	lwz r5, 0(r31)
/* 80038880 000344E0  38 7E 00 04 */	addi r3, r30, 4
/* 80038884 000344E4  80 9F 00 04 */	lwz r4, 4(r31)
/* 80038888 000344E8  80 1F 00 08 */	lwz r0, 8(r31)
/* 8003888C 000344EC  90 BE 0C B4 */	stw r5, 0xcb4(r30)
/* 80038890 000344F0  90 9E 0C B8 */	stw r4, 0xcb8(r30)
/* 80038894 000344F4  90 1E 0C BC */	stw r0, 0xcbc(r30)
/* 80038898 000344F8  48 01 7A F1 */	bl func_80050388
/* 8003889C 000344FC  38 7E 00 28 */	addi r3, r30, 0x28
/* 800388A0 00034500  48 01 7A E9 */	bl func_80050388
/* 800388A4 00034504  38 7E 00 4C */	addi r3, r30, 0x4c
/* 800388A8 00034508  48 01 7A E1 */	bl func_80050388
lbl_800388AC:
/* 800388AC 0003450C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 800388B0 00034510  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 800388B4 00034514  83 C1 00 08 */	lwz r30, 8(r1)
/* 800388B8 00034518  7C 08 03 A6 */	mtlr r0
/* 800388BC 0003451C  38 21 00 10 */	addi r1, r1, 0x10
/* 800388C0 00034520  4E 80 00 20 */	blr

.global func_800388C4
func_800388C4:
/* 800388C4 00034524  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 800388C8 00034528  7C 08 02 A6 */	mflr r0
/* 800388CC 0003452C  90 01 00 14 */	stw r0, 0x14(r1)
/* 800388D0 00034530  93 E1 00 0C */	stw r31, 0xc(r1)
/* 800388D4 00034534  7C 7F 1B 78 */	mr r31, r3
/* 800388D8 00034538  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 800388DC 0003453C  2C 00 00 00 */	cmpwi r0, 0
/* 800388E0 00034540  41 82 00 20 */	beq lbl_80038900
/* 800388E4 00034544  4B FF FF 39 */	bl func_8003881C
/* 800388E8 00034548  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 800388EC 0003454C  38 80 00 01 */	li r4, 1
/* 800388F0 00034550  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 800388F4 00034554  48 1B DF 55 */	bl func_801F6848
/* 800388F8 00034558  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 800388FC 0003455C  48 1B D1 A1 */	bl func_801F5A9C
lbl_80038900:
/* 80038900 00034560  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80038904 00034564  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80038908 00034568  7C 08 03 A6 */	mtlr r0
/* 8003890C 0003456C  38 21 00 10 */	addi r1, r1, 0x10
/* 80038910 00034570  4E 80 00 20 */	blr

.global func_80038914
func_80038914:
/* 80038914 00034574  80 04 0C 04 */	lwz r0, 0xc04(r4)
/* 80038918 00034578  2C 00 00 00 */	cmpwi r0, 0
/* 8003891C 0003457C  41 82 00 20 */	beq lbl_8003893C
/* 80038920 00034580  C0 44 0C D4 */	lfs f2, 0xcd4(r4)
/* 80038924 00034584  C0 24 0C D0 */	lfs f1, 0xcd0(r4)
/* 80038928 00034588  C0 04 0C CC */	lfs f0, 0xccc(r4)
/* 8003892C 0003458C  D0 03 00 00 */	stfs f0, 0(r3)
/* 80038930 00034590  D0 23 00 04 */	stfs f1, 4(r3)
/* 80038934 00034594  D0 43 00 08 */	stfs f2, 8(r3)
/* 80038938 00034598  4E 80 00 20 */	blr
lbl_8003893C:
/* 8003893C 0003459C  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 80038940 000345A0  D0 03 00 00 */	stfs f0, 0(r3)
/* 80038944 000345A4  D0 03 00 04 */	stfs f0, 4(r3)
/* 80038948 000345A8  D0 03 00 08 */	stfs f0, 8(r3)
/* 8003894C 000345AC  4E 80 00 20 */	blr

.global func_80038950
func_80038950:
/* 80038950 000345B0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80038954 000345B4  7C 08 02 A6 */	mflr r0
/* 80038958 000345B8  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003895C 000345BC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80038960 000345C0  7C 9F 23 78 */	mr r31, r4
/* 80038964 000345C4  93 C1 00 08 */	stw r30, 8(r1)
/* 80038968 000345C8  7C 7E 1B 78 */	mr r30, r3
/* 8003896C 000345CC  80 A3 0C 04 */	lwz r5, 0xc04(r3)
/* 80038970 000345D0  2C 05 00 00 */	cmpwi r5, 0
/* 80038974 000345D4  41 82 01 08 */	beq lbl_80038A7C
/* 80038978 000345D8  80 65 00 08 */	lwz r3, 8(r5)
/* 8003897C 000345DC  2C 03 00 00 */	cmpwi r3, 0
/* 80038980 000345E0  41 82 00 CC */	beq lbl_80038A4C
/* 80038984 000345E4  80 63 00 00 */	lwz r3, 0(r3)
/* 80038988 000345E8  2C 03 00 00 */	cmpwi r3, 0
/* 8003898C 000345EC  41 82 00 C0 */	beq lbl_80038A4C
/* 80038990 000345F0  C0 04 00 00 */	lfs f0, 0(r4)
/* 80038994 000345F4  C0 42 82 70 */	lfs f2, lbl_80640870-_SDA2_BASE_(r2)
/* 80038998 000345F8  D0 03 00 48 */	stfs f0, 0x48(r3)
/* 8003899C 000345FC  C0 24 00 04 */	lfs f1, 4(r4)
/* 800389A0 00034600  FC 00 10 40 */	fcmpo cr0, f0, f2
/* 800389A4 00034604  C0 04 00 08 */	lfs f0, 8(r4)
/* 800389A8 00034608  D0 23 00 4C */	stfs f1, 0x4c(r3)
/* 800389AC 0003460C  D0 03 00 50 */	stfs f0, 0x50(r3)
/* 800389B0 00034610  40 80 00 2C */	bge lbl_800389DC
/* 800389B4 00034614  C0 23 00 48 */	lfs f1, 0x48(r3)
/* 800389B8 00034618  C0 62 82 74 */	lfs f3, lbl_80640874-_SDA2_BASE_(r2)
/* 800389BC 0003461C  FC 01 18 40 */	fcmpo cr0, f1, f3
/* 800389C0 00034620  40 81 00 1C */	ble lbl_800389DC
/* 800389C4 00034624  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 800389C8 00034628  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 800389CC 0003462C  40 80 00 08 */	bge lbl_800389D4
/* 800389D0 00034630  48 00 00 08 */	b lbl_800389D8
lbl_800389D4:
/* 800389D4 00034634  FC 60 10 90 */	fmr f3, f2
lbl_800389D8:
/* 800389D8 00034638  D0 63 00 48 */	stfs f3, 0x48(r3)
lbl_800389DC:
/* 800389DC 0003463C  C0 43 00 4C */	lfs f2, 0x4c(r3)
/* 800389E0 00034640  C0 22 82 70 */	lfs f1, lbl_80640870-_SDA2_BASE_(r2)
/* 800389E4 00034644  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 800389E8 00034648  40 80 00 28 */	bge lbl_80038A10
/* 800389EC 0003464C  C0 62 82 74 */	lfs f3, lbl_80640874-_SDA2_BASE_(r2)
/* 800389F0 00034650  FC 02 18 40 */	fcmpo cr0, f2, f3
/* 800389F4 00034654  40 81 00 1C */	ble lbl_80038A10
/* 800389F8 00034658  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 800389FC 0003465C  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 80038A00 00034660  40 80 00 08 */	bge lbl_80038A08
/* 80038A04 00034664  48 00 00 08 */	b lbl_80038A0C
lbl_80038A08:
/* 80038A08 00034668  FC 60 08 90 */	fmr f3, f1
lbl_80038A0C:
/* 80038A0C 0003466C  D0 63 00 4C */	stfs f3, 0x4c(r3)
lbl_80038A10:
/* 80038A10 00034670  C0 43 00 50 */	lfs f2, 0x50(r3)
/* 80038A14 00034674  C0 22 82 70 */	lfs f1, lbl_80640870-_SDA2_BASE_(r2)
/* 80038A18 00034678  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 80038A1C 0003467C  40 80 00 28 */	bge lbl_80038A44
/* 80038A20 00034680  C0 62 82 74 */	lfs f3, lbl_80640874-_SDA2_BASE_(r2)
/* 80038A24 00034684  FC 02 18 40 */	fcmpo cr0, f2, f3
/* 80038A28 00034688  40 81 00 1C */	ble lbl_80038A44
/* 80038A2C 0003468C  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 80038A30 00034690  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 80038A34 00034694  40 80 00 08 */	bge lbl_80038A3C
/* 80038A38 00034698  48 00 00 08 */	b lbl_80038A40
lbl_80038A3C:
/* 80038A3C 0003469C  FC 60 08 90 */	fmr f3, f1
lbl_80038A40:
/* 80038A40 000346A0  D0 63 00 50 */	stfs f3, 0x50(r3)
lbl_80038A44:
/* 80038A44 000346A4  38 80 00 01 */	li r4, 1
/* 80038A48 000346A8  48 1B 9C 71 */	bl func_801F26B8
lbl_80038A4C:
/* 80038A4C 000346AC  80 BF 00 00 */	lwz r5, 0(r31)
/* 80038A50 000346B0  38 7E 00 DC */	addi r3, r30, 0xdc
/* 80038A54 000346B4  80 9F 00 04 */	lwz r4, 4(r31)
/* 80038A58 000346B8  80 1F 00 08 */	lwz r0, 8(r31)
/* 80038A5C 000346BC  90 BE 0C CC */	stw r5, 0xccc(r30)
/* 80038A60 000346C0  90 9E 0C D0 */	stw r4, 0xcd0(r30)
/* 80038A64 000346C4  90 1E 0C D4 */	stw r0, 0xcd4(r30)
/* 80038A68 000346C8  48 01 79 21 */	bl func_80050388
/* 80038A6C 000346CC  38 7E 01 00 */	addi r3, r30, 0x100
/* 80038A70 000346D0  48 01 79 19 */	bl func_80050388
/* 80038A74 000346D4  38 7E 01 24 */	addi r3, r30, 0x124
/* 80038A78 000346D8  48 01 79 11 */	bl func_80050388
lbl_80038A7C:
/* 80038A7C 000346DC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80038A80 000346E0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80038A84 000346E4  83 C1 00 08 */	lwz r30, 8(r1)
/* 80038A88 000346E8  7C 08 03 A6 */	mtlr r0
/* 80038A8C 000346EC  38 21 00 10 */	addi r1, r1, 0x10
/* 80038A90 000346F0  4E 80 00 20 */	blr

.global func_80038A94
func_80038A94:
/* 80038A94 000346F4  80 04 0C 04 */	lwz r0, 0xc04(r4)
/* 80038A98 000346F8  2C 00 00 00 */	cmpwi r0, 0
/* 80038A9C 000346FC  41 82 00 20 */	beq lbl_80038ABC
/* 80038AA0 00034700  C0 44 0C C8 */	lfs f2, 0xcc8(r4)
/* 80038AA4 00034704  C0 24 0C C4 */	lfs f1, 0xcc4(r4)
/* 80038AA8 00034708  C0 04 0C C0 */	lfs f0, 0xcc0(r4)
/* 80038AAC 0003470C  D0 03 00 00 */	stfs f0, 0(r3)
/* 80038AB0 00034710  D0 23 00 04 */	stfs f1, 4(r3)
/* 80038AB4 00034714  D0 43 00 08 */	stfs f2, 8(r3)
/* 80038AB8 00034718  4E 80 00 20 */	blr
lbl_80038ABC:
/* 80038ABC 0003471C  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 80038AC0 00034720  D0 03 00 00 */	stfs f0, 0(r3)
/* 80038AC4 00034724  D0 03 00 04 */	stfs f0, 4(r3)
/* 80038AC8 00034728  D0 03 00 08 */	stfs f0, 8(r3)
/* 80038ACC 0003472C  4E 80 00 20 */	blr

.global func_80038AD0
func_80038AD0:
/* 80038AD0 00034730  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80038AD4 00034734  7C 08 02 A6 */	mflr r0
/* 80038AD8 00034738  90 01 00 24 */	stw r0, 0x24(r1)
/* 80038ADC 0003473C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80038AE0 00034740  7C 7F 1B 78 */	mr r31, r3
/* 80038AE4 00034744  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 80038AE8 00034748  2C 00 00 00 */	cmpwi r0, 0
/* 80038AEC 0003474C  41 82 00 8C */	beq lbl_80038B78
/* 80038AF0 00034750  80 C4 00 00 */	lwz r6, 0(r4)
/* 80038AF4 00034754  80 A4 00 04 */	lwz r5, 4(r4)
/* 80038AF8 00034758  80 04 00 08 */	lwz r0, 8(r4)
/* 80038AFC 0003475C  90 C3 0C C0 */	stw r6, 0xcc0(r3)
/* 80038B00 00034760  90 A3 0C C4 */	stw r5, 0xcc4(r3)
/* 80038B04 00034764  90 03 0C C8 */	stw r0, 0xcc8(r3)
/* 80038B08 00034768  38 61 00 08 */	addi r3, r1, 8
/* 80038B0C 0003476C  48 1E AB B5 */	bl func_802236C0
/* 80038B10 00034770  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 80038B14 00034774  80 63 00 08 */	lwz r3, 8(r3)
/* 80038B18 00034778  2C 03 00 00 */	cmpwi r3, 0
/* 80038B1C 0003477C  41 82 00 44 */	beq lbl_80038B60
/* 80038B20 00034780  80 63 00 00 */	lwz r3, 0(r3)
/* 80038B24 00034784  2C 03 00 00 */	cmpwi r3, 0
/* 80038B28 00034788  41 82 00 38 */	beq lbl_80038B60
/* 80038B2C 0003478C  C0 01 00 08 */	lfs f0, 8(r1)
/* 80038B30 00034790  38 80 00 01 */	li r4, 1
/* 80038B34 00034794  D0 03 00 2C */	stfs f0, 0x2c(r3)
/* 80038B38 00034798  C0 01 00 0C */	lfs f0, 0xc(r1)
/* 80038B3C 0003479C  D0 03 00 30 */	stfs f0, 0x30(r3)
/* 80038B40 000347A0  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 80038B44 000347A4  D0 03 00 34 */	stfs f0, 0x34(r3)
/* 80038B48 000347A8  C0 01 00 14 */	lfs f0, 0x14(r1)
/* 80038B4C 000347AC  D0 03 00 38 */	stfs f0, 0x38(r3)
/* 80038B50 000347B0  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 80038B54 000347B4  54 00 07 B8 */	rlwinm r0, r0, 0, 0x1e, 0x1c
/* 80038B58 000347B8  B0 03 00 10 */	sth r0, 0x10(r3)
/* 80038B5C 000347BC  48 1B 9B 5D */	bl func_801F26B8
lbl_80038B60:
/* 80038B60 000347C0  38 7F 00 70 */	addi r3, r31, 0x70
/* 80038B64 000347C4  48 01 78 25 */	bl func_80050388
/* 80038B68 000347C8  38 7F 00 94 */	addi r3, r31, 0x94
/* 80038B6C 000347CC  48 01 78 1D */	bl func_80050388
/* 80038B70 000347D0  38 7F 00 B8 */	addi r3, r31, 0xb8
/* 80038B74 000347D4  48 01 78 15 */	bl func_80050388
lbl_80038B78:
/* 80038B78 000347D8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80038B7C 000347DC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80038B80 000347E0  7C 08 03 A6 */	mtlr r0
/* 80038B84 000347E4  38 21 00 20 */	addi r1, r1, 0x20
/* 80038B88 000347E8  4E 80 00 20 */	blr

.global func_80038B8C
func_80038B8C:
/* 80038B8C 000347EC  94 21 FF 60 */	stwu r1, -0xa0(r1)
/* 80038B90 000347F0  7C 08 02 A6 */	mflr r0
/* 80038B94 000347F4  90 01 00 A4 */	stw r0, 0xa4(r1)
/* 80038B98 000347F8  DB E1 00 90 */	stfd f31, 0x90(r1)
/* 80038B9C 000347FC  F3 E1 00 98 */	psq_st f31, 152(r1), 0, qr0
/* 80038BA0 00034800  DB C1 00 80 */	stfd f30, 0x80(r1)
/* 80038BA4 00034804  F3 C1 00 88 */	psq_st f30, 136(r1), 0, qr0
/* 80038BA8 00034808  DB A1 00 70 */	stfd f29, 0x70(r1)
/* 80038BAC 0003480C  F3 A1 00 78 */	psq_st f29, 120(r1), 0, qr0
/* 80038BB0 00034810  3C 00 43 30 */	lis r0, 0x4330
/* 80038BB4 00034814  C3 C2 82 78 */	lfs f30, lbl_80640878-_SDA2_BASE_(r2)
/* 80038BB8 00034818  93 E1 00 6C */	stw r31, 0x6c(r1)
/* 80038BBC 0003481C  7C 9F 23 78 */	mr r31, r4
/* 80038BC0 00034820  93 C1 00 68 */	stw r30, 0x68(r1)
/* 80038BC4 00034824  7C 7E 1B 78 */	mr r30, r3
/* 80038BC8 00034828  7F C4 F3 78 */	mr r4, r30
/* 80038BCC 0003482C  38 61 00 20 */	addi r3, r1, 0x20
/* 80038BD0 00034830  90 01 00 48 */	stw r0, 0x48(r1)
/* 80038BD4 00034834  90 01 00 50 */	stw r0, 0x50(r1)
/* 80038BD8 00034838  4B FF FE BD */	bl func_80038A94
/* 80038BDC 0003483C  C3 A1 00 24 */	lfs f29, 0x24(r1)
/* 80038BE0 00034840  7F C4 F3 78 */	mr r4, r30
/* 80038BE4 00034844  38 61 00 14 */	addi r3, r1, 0x14
/* 80038BE8 00034848  4B FF FB F9 */	bl func_800387E0
/* 80038BEC 0003484C  7F E3 FB 78 */	mr r3, r31
/* 80038BF0 00034850  38 81 00 14 */	addi r4, r1, 0x14
/* 80038BF4 00034854  38 A1 00 2C */	addi r5, r1, 0x2c
/* 80038BF8 00034858  48 24 40 F1 */	bl PSVECSubtract
/* 80038BFC 0003485C  C0 41 00 34 */	lfs f2, 0x34(r1)
/* 80038C00 00034860  C0 21 00 2C */	lfs f1, 0x2c(r1)
/* 80038C04 00034864  48 19 B9 D9 */	bl atan2
/* 80038C08 00034868  EC 5D F0 24 */	fdivs f2, f29, f30
/* 80038C0C 0003486C  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 80038C10 00034870  FC 40 10 1E */	fctiwz f2, f2
/* 80038C14 00034874  FF E0 08 18 */	frsp f31, f1
/* 80038C18 00034878  FC 1D 00 40 */	fcmpo cr0, f29, f0
/* 80038C1C 0003487C  D8 41 00 58 */	stfd f2, 0x58(r1)
/* 80038C20 00034880  80 61 00 5C */	lwz r3, 0x5c(r1)
/* 80038C24 00034884  40 80 00 38 */	bge lbl_80038C5C
/* 80038C28 00034888  38 03 FF FF */	addi r0, r3, -1
/* 80038C2C 0003488C  6C 63 80 00 */	xoris r3, r3, 0x8000
/* 80038C30 00034890  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 80038C34 00034894  90 61 00 4C */	stw r3, 0x4c(r1)
/* 80038C38 00034898  C8 42 82 68 */	lfd f2, lbl_80640868-_SDA2_BASE_(r2)
/* 80038C3C 0003489C  90 01 00 54 */	stw r0, 0x54(r1)
/* 80038C40 000348A0  C8 21 00 48 */	lfd f1, 0x48(r1)
/* 80038C44 000348A4  C8 01 00 50 */	lfd f0, 0x50(r1)
/* 80038C48 000348A8  EC 21 10 28 */	fsubs f1, f1, f2
/* 80038C4C 000348AC  EC 00 10 28 */	fsubs f0, f0, f2
/* 80038C50 000348B0  EC 21 07 B2 */	fmuls f1, f1, f30
/* 80038C54 000348B4  EC 40 07 B2 */	fmuls f2, f0, f30
/* 80038C58 000348B8  48 00 00 3C */	b lbl_80038C94
lbl_80038C5C:
/* 80038C5C 000348BC  38 03 00 01 */	addi r0, r3, 1
/* 80038C60 000348C0  6C 63 80 00 */	xoris r3, r3, 0x8000
/* 80038C64 000348C4  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 80038C68 000348C8  90 61 00 4C */	stw r3, 0x4c(r1)
/* 80038C6C 000348CC  C8 42 82 68 */	lfd f2, lbl_80640868-_SDA2_BASE_(r2)
/* 80038C70 000348D0  90 01 00 54 */	stw r0, 0x54(r1)
/* 80038C74 000348D4  C8 21 00 48 */	lfd f1, 0x48(r1)
/* 80038C78 000348D8  C8 01 00 50 */	lfd f0, 0x50(r1)
/* 80038C7C 000348DC  EC 21 10 28 */	fsubs f1, f1, f2
/* 80038C80 000348E0  EC 00 10 28 */	fsubs f0, f0, f2
/* 80038C84 000348E4  EC 41 07 B2 */	fmuls f2, f1, f30
/* 80038C88 000348E8  EC 20 07 B2 */	fmuls f1, f0, f30
/* 80038C8C 000348EC  48 00 00 08 */	b lbl_80038C94
lbl_80038C90:
/* 80038C90 000348F0  EF FF F0 2A */	fadds f31, f31, f30
lbl_80038C94:
/* 80038C94 000348F4  FC 1F 10 40 */	fcmpo cr0, f31, f2
/* 80038C98 000348F8  41 80 FF F8 */	blt lbl_80038C90
/* 80038C9C 000348FC  48 00 00 08 */	b lbl_80038CA4
lbl_80038CA0:
/* 80038CA0 00034900  EF FF F0 28 */	fsubs f31, f31, f30
lbl_80038CA4:
/* 80038CA4 00034904  FC 1F 08 40 */	fcmpo cr0, f31, f1
/* 80038CA8 00034908  41 81 FF F8 */	bgt lbl_80038CA0
/* 80038CAC 0003490C  7F C4 F3 78 */	mr r4, r30
/* 80038CB0 00034910  38 61 00 08 */	addi r3, r1, 8
/* 80038CB4 00034914  4B FF FD E1 */	bl func_80038A94
/* 80038CB8 00034918  C0 21 00 08 */	lfs f1, 8(r1)
/* 80038CBC 0003491C  7F C3 F3 78 */	mr r3, r30
/* 80038CC0 00034920  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 80038CC4 00034924  38 81 00 38 */	addi r4, r1, 0x38
/* 80038CC8 00034928  D0 21 00 38 */	stfs f1, 0x38(r1)
/* 80038CCC 0003492C  D0 01 00 40 */	stfs f0, 0x40(r1)
/* 80038CD0 00034930  D3 E1 00 3C */	stfs f31, 0x3c(r1)
/* 80038CD4 00034934  4B FF FD FD */	bl func_80038AD0
/* 80038CD8 00034938  E3 E1 00 98 */	psq_l f31, 152(r1), 0, qr0
/* 80038CDC 0003493C  CB E1 00 90 */	lfd f31, 0x90(r1)
/* 80038CE0 00034940  E3 C1 00 88 */	psq_l f30, 136(r1), 0, qr0
/* 80038CE4 00034944  CB C1 00 80 */	lfd f30, 0x80(r1)
/* 80038CE8 00034948  E3 A1 00 78 */	psq_l f29, 120(r1), 0, qr0
/* 80038CEC 0003494C  CB A1 00 70 */	lfd f29, 0x70(r1)
/* 80038CF0 00034950  83 E1 00 6C */	lwz r31, 0x6c(r1)
/* 80038CF4 00034954  80 01 00 A4 */	lwz r0, 0xa4(r1)
/* 80038CF8 00034958  83 C1 00 68 */	lwz r30, 0x68(r1)
/* 80038CFC 0003495C  7C 08 03 A6 */	mtlr r0
/* 80038D00 00034960  38 21 00 A0 */	addi r1, r1, 0xa0
/* 80038D04 00034964  4E 80 00 20 */	blr

.global func_80038D08
func_80038D08:
/* 80038D08 00034968  94 21 FF 80 */	stwu r1, -0x80(r1)
/* 80038D0C 0003496C  7C 08 02 A6 */	mflr r0
/* 80038D10 00034970  90 01 00 84 */	stw r0, 0x84(r1)
/* 80038D14 00034974  DB E1 00 70 */	stfd f31, 0x70(r1)
/* 80038D18 00034978  F3 E1 00 78 */	psq_st f31, 120(r1), 0, qr0
/* 80038D1C 0003497C  DB C1 00 60 */	stfd f30, 0x60(r1)
/* 80038D20 00034980  F3 C1 00 68 */	psq_st f30, 104(r1), 0, qr0
/* 80038D24 00034984  FF C0 08 90 */	fmr f30, f1
/* 80038D28 00034988  93 E1 00 5C */	stw r31, 0x5c(r1)
/* 80038D2C 0003498C  7C BF 2B 78 */	mr r31, r5
/* 80038D30 00034990  93 C1 00 58 */	stw r30, 0x58(r1)
/* 80038D34 00034994  7C 9E 23 78 */	mr r30, r4
/* 80038D38 00034998  93 A1 00 54 */	stw r29, 0x54(r1)
/* 80038D3C 0003499C  7C 7D 1B 78 */	mr r29, r3
/* 80038D40 000349A0  A0 03 05 1C */	lhz r0, 0x51c(r3)
/* 80038D44 000349A4  28 00 00 09 */	cmplwi r0, 9
/* 80038D48 000349A8  40 80 00 10 */	bge lbl_80038D58
/* 80038D4C 000349AC  88 03 05 20 */	lbz r0, 0x520(r3)
/* 80038D50 000349B0  2C 00 00 00 */	cmpwi r0, 0
/* 80038D54 000349B4  40 82 00 D8 */	bne lbl_80038E2C
lbl_80038D58:
/* 80038D58 000349B8  7F A4 EB 78 */	mr r4, r29
/* 80038D5C 000349BC  38 61 00 20 */	addi r3, r1, 0x20
/* 80038D60 000349C0  38 A0 00 0E */	li r5, 0xe
/* 80038D64 000349C4  48 00 29 11 */	bl func_8003B674
/* 80038D68 000349C8  7F C4 F3 78 */	mr r4, r30
/* 80038D6C 000349CC  38 61 00 2C */	addi r3, r1, 0x2c
/* 80038D70 000349D0  38 A0 00 0A */	li r5, 0xa
/* 80038D74 000349D4  48 00 29 01 */	bl func_8003B674
/* 80038D78 000349D8  38 61 00 2C */	addi r3, r1, 0x2c
/* 80038D7C 000349DC  38 81 00 20 */	addi r4, r1, 0x20
/* 80038D80 000349E0  38 A1 00 38 */	addi r5, r1, 0x38
/* 80038D84 000349E4  48 24 3F 65 */	bl PSVECSubtract
/* 80038D88 000349E8  C0 41 00 40 */	lfs f2, 0x40(r1)
/* 80038D8C 000349EC  C0 21 00 38 */	lfs f1, 0x38(r1)
/* 80038D90 000349F0  48 19 B8 4D */	bl atan2
/* 80038D94 000349F4  FF E0 08 18 */	frsp f31, f1
/* 80038D98 000349F8  7F A4 EB 78 */	mr r4, r29
/* 80038D9C 000349FC  38 61 00 14 */	addi r3, r1, 0x14
/* 80038DA0 00034A00  4B FF FC F5 */	bl func_80038A94
/* 80038DA4 00034A04  FC 40 F8 90 */	fmr f2, f31
/* 80038DA8 00034A08  C0 21 00 18 */	lfs f1, 0x18(r1)
/* 80038DAC 00034A0C  7F A3 EB 78 */	mr r3, r29
/* 80038DB0 00034A10  48 00 1C C5 */	bl func_8003AA74
/* 80038DB4 00034A14  EF FF 08 28 */	fsubs f31, f31, f1
/* 80038DB8 00034A18  38 61 00 38 */	addi r3, r1, 0x38
/* 80038DBC 00034A1C  48 24 3F C9 */	bl PSVECMag
/* 80038DC0 00034A20  C0 41 00 3C */	lfs f2, 0x3c(r1)
/* 80038DC4 00034A24  C0 02 82 30 */	lfs f0, lbl_80640830-_SDA2_BASE_(r2)
/* 80038DC8 00034A28  EC 22 08 24 */	fdivs f1, f2, f1
/* 80038DCC 00034A2C  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80038DD0 00034A30  4C 41 13 82 */	cror 2, 1, 2
/* 80038DD4 00034A34  40 82 00 0C */	bne lbl_80038DE0
/* 80038DD8 00034A38  C0 02 82 7C */	lfs f0, lbl_8064087C-_SDA2_BASE_(r2)
/* 80038DDC 00034A3C  48 00 00 24 */	b lbl_80038E00
lbl_80038DE0:
/* 80038DE0 00034A40  C0 02 82 44 */	lfs f0, lbl_80640844-_SDA2_BASE_(r2)
/* 80038DE4 00034A44  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80038DE8 00034A48  4C 40 13 82 */	cror 2, 0, 2
/* 80038DEC 00034A4C  40 82 00 0C */	bne lbl_80038DF8
/* 80038DF0 00034A50  C0 02 82 80 */	lfs f0, lbl_80640880-_SDA2_BASE_(r2)
/* 80038DF4 00034A54  48 00 00 0C */	b lbl_80038E00
lbl_80038DF8:
/* 80038DF8 00034A58  48 19 B7 E1 */	bl asin
/* 80038DFC 00034A5C  FC 00 08 18 */	frsp f0, f1
lbl_80038E00:
/* 80038E00 00034A60  FC 40 00 50 */	fneg f2, f0
/* 80038E04 00034A64  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 80038E08 00034A68  FC 20 F0 90 */	fmr f1, f30
/* 80038E0C 00034A6C  D3 E1 00 0C */	stfs f31, 0xc(r1)
/* 80038E10 00034A70  7F A3 EB 78 */	mr r3, r29
/* 80038E14 00034A74  7F E6 FB 78 */	mr r6, r31
/* 80038E18 00034A78  D0 41 00 08 */	stfs f2, 8(r1)
/* 80038E1C 00034A7C  38 81 00 08 */	addi r4, r1, 8
/* 80038E20 00034A80  38 A0 00 0E */	li r5, 0xe
/* 80038E24 00034A84  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80038E28 00034A88  48 00 18 A1 */	bl func_8003A6C8
lbl_80038E2C:
/* 80038E2C 00034A8C  E3 E1 00 78 */	psq_l f31, 120(r1), 0, qr0
/* 80038E30 00034A90  CB E1 00 70 */	lfd f31, 0x70(r1)
/* 80038E34 00034A94  E3 C1 00 68 */	psq_l f30, 104(r1), 0, qr0
/* 80038E38 00034A98  CB C1 00 60 */	lfd f30, 0x60(r1)
/* 80038E3C 00034A9C  83 E1 00 5C */	lwz r31, 0x5c(r1)
/* 80038E40 00034AA0  83 C1 00 58 */	lwz r30, 0x58(r1)
/* 80038E44 00034AA4  80 01 00 84 */	lwz r0, 0x84(r1)
/* 80038E48 00034AA8  83 A1 00 54 */	lwz r29, 0x54(r1)
/* 80038E4C 00034AAC  7C 08 03 A6 */	mtlr r0
/* 80038E50 00034AB0  38 21 00 80 */	addi r1, r1, 0x80
/* 80038E54 00034AB4  4E 80 00 20 */	blr

.global func_80038E58
func_80038E58:
/* 80038E58 00034AB8  94 21 FF 90 */	stwu r1, -0x70(r1)
/* 80038E5C 00034ABC  7C 08 02 A6 */	mflr r0
/* 80038E60 00034AC0  90 01 00 74 */	stw r0, 0x74(r1)
/* 80038E64 00034AC4  DB E1 00 60 */	stfd f31, 0x60(r1)
/* 80038E68 00034AC8  F3 E1 00 68 */	psq_st f31, 104(r1), 0, qr0
/* 80038E6C 00034ACC  DB C1 00 50 */	stfd f30, 0x50(r1)
/* 80038E70 00034AD0  F3 C1 00 58 */	psq_st f30, 88(r1), 0, qr0
/* 80038E74 00034AD4  93 E1 00 4C */	stw r31, 0x4c(r1)
/* 80038E78 00034AD8  7C 9F 23 78 */	mr r31, r4
/* 80038E7C 00034ADC  93 C1 00 48 */	stw r30, 0x48(r1)
/* 80038E80 00034AE0  7C 7E 1B 78 */	mr r30, r3
/* 80038E84 00034AE4  A0 03 05 1C */	lhz r0, 0x51c(r3)
/* 80038E88 00034AE8  28 00 00 09 */	cmplwi r0, 9
/* 80038E8C 00034AEC  40 80 00 10 */	bge lbl_80038E9C
/* 80038E90 00034AF0  88 03 05 20 */	lbz r0, 0x520(r3)
/* 80038E94 00034AF4  2C 00 00 00 */	cmpwi r0, 0
/* 80038E98 00034AF8  40 82 00 F0 */	bne lbl_80038F88
lbl_80038E9C:
/* 80038E9C 00034AFC  C3 C2 82 84 */	lfs f30, lbl_80640884-_SDA2_BASE_(r2)
/* 80038EA0 00034B00  7F C4 F3 78 */	mr r4, r30
/* 80038EA4 00034B04  38 61 00 20 */	addi r3, r1, 0x20
/* 80038EA8 00034B08  38 A0 00 0E */	li r5, 0xe
/* 80038EAC 00034B0C  48 00 27 C9 */	bl func_8003B674
/* 80038EB0 00034B10  7F E4 FB 78 */	mr r4, r31
/* 80038EB4 00034B14  38 61 00 2C */	addi r3, r1, 0x2c
/* 80038EB8 00034B18  38 A0 00 0A */	li r5, 0xa
/* 80038EBC 00034B1C  48 00 27 B9 */	bl func_8003B674
/* 80038EC0 00034B20  38 61 00 2C */	addi r3, r1, 0x2c
/* 80038EC4 00034B24  38 81 00 20 */	addi r4, r1, 0x20
/* 80038EC8 00034B28  38 A1 00 38 */	addi r5, r1, 0x38
/* 80038ECC 00034B2C  48 24 3E 1D */	bl PSVECSubtract
/* 80038ED0 00034B30  C0 41 00 40 */	lfs f2, 0x40(r1)
/* 80038ED4 00034B34  C0 21 00 38 */	lfs f1, 0x38(r1)
/* 80038ED8 00034B38  48 19 B7 05 */	bl atan2
/* 80038EDC 00034B3C  FF E0 08 18 */	frsp f31, f1
/* 80038EE0 00034B40  7F C4 F3 78 */	mr r4, r30
/* 80038EE4 00034B44  38 61 00 14 */	addi r3, r1, 0x14
/* 80038EE8 00034B48  4B FF FB AD */	bl func_80038A94
/* 80038EEC 00034B4C  FC 40 F8 90 */	fmr f2, f31
/* 80038EF0 00034B50  C0 21 00 18 */	lfs f1, 0x18(r1)
/* 80038EF4 00034B54  7F C3 F3 78 */	mr r3, r30
/* 80038EF8 00034B58  48 00 1B 7D */	bl func_8003AA74
/* 80038EFC 00034B5C  EF FF 08 28 */	fsubs f31, f31, f1
/* 80038F00 00034B60  FC 1F F0 40 */	fcmpo cr0, f31, f30
/* 80038F04 00034B64  40 81 00 08 */	ble lbl_80038F0C
/* 80038F08 00034B68  FF E0 F0 90 */	fmr f31, f30
lbl_80038F0C:
/* 80038F0C 00034B6C  FC 00 F0 50 */	fneg f0, f30
/* 80038F10 00034B70  FC 1F 00 40 */	fcmpo cr0, f31, f0
/* 80038F14 00034B74  40 80 00 08 */	bge lbl_80038F1C
/* 80038F18 00034B78  FF E0 00 90 */	fmr f31, f0
lbl_80038F1C:
/* 80038F1C 00034B7C  38 61 00 38 */	addi r3, r1, 0x38
/* 80038F20 00034B80  48 24 3E 65 */	bl PSVECMag
/* 80038F24 00034B84  C0 41 00 3C */	lfs f2, 0x3c(r1)
/* 80038F28 00034B88  C0 02 82 30 */	lfs f0, lbl_80640830-_SDA2_BASE_(r2)
/* 80038F2C 00034B8C  EC 22 08 24 */	fdivs f1, f2, f1
/* 80038F30 00034B90  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80038F34 00034B94  4C 41 13 82 */	cror 2, 1, 2
/* 80038F38 00034B98  40 82 00 0C */	bne lbl_80038F44
/* 80038F3C 00034B9C  C0 02 82 7C */	lfs f0, lbl_8064087C-_SDA2_BASE_(r2)
/* 80038F40 00034BA0  48 00 00 24 */	b lbl_80038F64
lbl_80038F44:
/* 80038F44 00034BA4  C0 02 82 44 */	lfs f0, lbl_80640844-_SDA2_BASE_(r2)
/* 80038F48 00034BA8  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80038F4C 00034BAC  4C 40 13 82 */	cror 2, 0, 2
/* 80038F50 00034BB0  40 82 00 0C */	bne lbl_80038F5C
/* 80038F54 00034BB4  C0 02 82 80 */	lfs f0, lbl_80640880-_SDA2_BASE_(r2)
/* 80038F58 00034BB8  48 00 00 0C */	b lbl_80038F64
lbl_80038F5C:
/* 80038F5C 00034BBC  48 19 B6 7D */	bl asin
/* 80038F60 00034BC0  FC 00 08 18 */	frsp f0, f1
lbl_80038F64:
/* 80038F64 00034BC4  FC 20 00 50 */	fneg f1, f0
/* 80038F68 00034BC8  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 80038F6C 00034BCC  D3 E1 00 0C */	stfs f31, 0xc(r1)
/* 80038F70 00034BD0  7F C3 F3 78 */	mr r3, r30
/* 80038F74 00034BD4  38 81 00 08 */	addi r4, r1, 8
/* 80038F78 00034BD8  38 A0 00 0E */	li r5, 0xe
/* 80038F7C 00034BDC  D0 21 00 08 */	stfs f1, 8(r1)
/* 80038F80 00034BE0  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80038F84 00034BE4  48 00 19 D5 */	bl func_8003A958
lbl_80038F88:
/* 80038F88 00034BE8  E3 E1 00 68 */	psq_l f31, 104(r1), 0, qr0
/* 80038F8C 00034BEC  CB E1 00 60 */	lfd f31, 0x60(r1)
/* 80038F90 00034BF0  E3 C1 00 58 */	psq_l f30, 88(r1), 0, qr0
/* 80038F94 00034BF4  CB C1 00 50 */	lfd f30, 0x50(r1)
/* 80038F98 00034BF8  83 E1 00 4C */	lwz r31, 0x4c(r1)
/* 80038F9C 00034BFC  80 01 00 74 */	lwz r0, 0x74(r1)
/* 80038FA0 00034C00  83 C1 00 48 */	lwz r30, 0x48(r1)
/* 80038FA4 00034C04  7C 08 03 A6 */	mtlr r0
/* 80038FA8 00034C08  38 21 00 70 */	addi r1, r1, 0x70
/* 80038FAC 00034C0C  4E 80 00 20 */	blr

.global func_80038FB0
func_80038FB0:
/* 80038FB0 00034C10  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80038FB4 00034C14  7C 08 02 A6 */	mflr r0
/* 80038FB8 00034C18  90 01 00 14 */	stw r0, 0x14(r1)
/* 80038FBC 00034C1C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80038FC0 00034C20  7C 7F 1B 78 */	mr r31, r3
/* 80038FC4 00034C24  A0 03 05 1C */	lhz r0, 0x51c(r3)
/* 80038FC8 00034C28  28 00 00 09 */	cmplwi r0, 9
/* 80038FCC 00034C2C  40 80 00 10 */	bge lbl_80038FDC
/* 80038FD0 00034C30  88 03 05 20 */	lbz r0, 0x520(r3)
/* 80038FD4 00034C34  2C 00 00 00 */	cmpwi r0, 0
/* 80038FD8 00034C38  40 82 00 A4 */	bne lbl_8003907C
lbl_80038FDC:
/* 80038FDC 00034C3C  38 63 04 60 */	addi r3, r3, 0x460
/* 80038FE0 00034C40  48 01 75 E1 */	bl func_800505C0
/* 80038FE4 00034C44  3C 80 80 49 */	lis r4, lbl_8049362C@ha
/* 80038FE8 00034C48  7F E3 FB 78 */	mr r3, r31
/* 80038FEC 00034C4C  38 84 36 2C */	addi r4, r4, lbl_8049362C@l
/* 80038FF0 00034C50  38 A0 00 0E */	li r5, 0xe
/* 80038FF4 00034C54  48 00 19 65 */	bl func_8003A958
/* 80038FF8 00034C58  80 1F 0C 04 */	lwz r0, 0xc04(r31)
/* 80038FFC 00034C5C  2C 00 00 00 */	cmpwi r0, 0
/* 80039000 00034C60  41 82 00 7C */	beq lbl_8003907C
/* 80039004 00034C64  7F E3 FB 78 */	mr r3, r31
/* 80039008 00034C68  38 80 00 0E */	li r4, 0xe
/* 8003900C 00034C6C  48 00 08 2D */	bl func_80039838
/* 80039010 00034C70  80 9F 0C 04 */	lwz r4, 0xc04(r31)
/* 80039014 00034C74  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 80039018 00034C78  80 A4 00 08 */	lwz r5, 8(r4)
/* 8003901C 00034C7C  2C 05 00 00 */	cmpwi r5, 0
/* 80039020 00034C80  40 82 00 0C */	bne lbl_8003902C
/* 80039024 00034C84  38 60 00 00 */	li r3, 0
/* 80039028 00034C88  48 00 00 20 */	b lbl_80039048
lbl_8003902C:
/* 8003902C 00034C8C  A0 04 00 DE */	lhz r0, 0xde(r4)
/* 80039030 00034C90  7C 03 00 40 */	cmplw r3, r0
/* 80039034 00034C94  41 80 00 0C */	blt lbl_80039040
/* 80039038 00034C98  38 60 00 00 */	li r3, 0
/* 8003903C 00034C9C  48 00 00 0C */	b lbl_80039048
lbl_80039040:
/* 80039040 00034CA0  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 80039044 00034CA4  7C 65 00 2E */	lwzx r3, r5, r0
lbl_80039048:
/* 80039048 00034CA8  2C 03 00 00 */	cmpwi r3, 0
/* 8003904C 00034CAC  41 82 00 30 */	beq lbl_8003907C
/* 80039050 00034CB0  80 83 00 1C */	lwz r4, 0x1c(r3)
/* 80039054 00034CB4  2C 04 00 00 */	cmpwi r4, 0
/* 80039058 00034CB8  41 82 00 0C */	beq lbl_80039064
/* 8003905C 00034CBC  A0 84 00 08 */	lhz r4, 8(r4)
/* 80039060 00034CC0  48 00 00 08 */	b lbl_80039068
lbl_80039064:
/* 80039064 00034CC4  38 80 00 00 */	li r4, 0
lbl_80039068:
/* 80039068 00034CC8  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003906C 00034CCC  54 84 04 3E */	clrlwi r4, r4, 0x10
/* 80039070 00034CD0  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 80039074 00034CD4  38 A0 00 01 */	li r5, 1
/* 80039078 00034CD8  48 1A 4D D5 */	bl func_801DDE4C__13GSblendObjectFUsUsff
lbl_8003907C:
/* 8003907C 00034CDC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80039080 00034CE0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80039084 00034CE4  7C 08 03 A6 */	mtlr r0
/* 80039088 00034CE8  38 21 00 10 */	addi r1, r1, 0x10
/* 8003908C 00034CEC  4E 80 00 20 */	blr

.global func_80039090
func_80039090:
/* 80039090 00034CF0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80039094 00034CF4  7C 08 02 A6 */	mflr r0
/* 80039098 00034CF8  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003909C 00034CFC  DB E1 00 10 */	stfd f31, 0x10(r1)
/* 800390A0 00034D00  F3 E1 00 18 */	psq_st f31, 24(r1), 0, qr0
/* 800390A4 00034D04  FF E0 08 90 */	fmr f31, f1
/* 800390A8 00034D08  93 E1 00 0C */	stw r31, 0xc(r1)
/* 800390AC 00034D0C  7C 9F 23 78 */	mr r31, r4
/* 800390B0 00034D10  93 C1 00 08 */	stw r30, 8(r1)
/* 800390B4 00034D14  7C 7E 1B 78 */	mr r30, r3
/* 800390B8 00034D18  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 800390BC 00034D1C  2C 00 00 00 */	cmpwi r0, 0
/* 800390C0 00034D20  40 82 00 0C */	bne lbl_800390CC
/* 800390C4 00034D24  38 60 00 00 */	li r3, 0
/* 800390C8 00034D28  48 00 01 18 */	b lbl_800391E0
lbl_800390CC:
/* 800390CC 00034D2C  48 00 04 2D */	bl func_800394F8
/* 800390D0 00034D30  2C 03 00 00 */	cmpwi r3, 0
/* 800390D4 00034D34  40 82 00 0C */	bne lbl_800390E0
/* 800390D8 00034D38  38 60 00 00 */	li r3, 0
/* 800390DC 00034D3C  48 00 01 04 */	b lbl_800391E0
lbl_800390E0:
/* 800390E0 00034D40  80 1E 00 00 */	lwz r0, 0(r30)
/* 800390E4 00034D44  54 00 04 63 */	rlwinm. r0, r0, 0, 0x11, 0x11
/* 800390E8 00034D48  41 82 00 14 */	beq lbl_800390FC
/* 800390EC 00034D4C  7F C3 F3 78 */	mr r3, r30
/* 800390F0 00034D50  48 00 43 C5 */	bl func_8003D4B4
/* 800390F4 00034D54  38 60 00 01 */	li r3, 1
/* 800390F8 00034D58  48 00 00 E8 */	b lbl_800391E0
lbl_800390FC:
/* 800390FC 00034D5C  80 7E 0C 04 */	lwz r3, 0xc04(r30)
/* 80039100 00034D60  80 83 00 04 */	lwz r4, 4(r3)
/* 80039104 00034D64  2C 04 00 00 */	cmpwi r4, 0
/* 80039108 00034D68  40 82 00 0C */	bne lbl_80039114
/* 8003910C 00034D6C  38 60 00 00 */	li r3, 0
/* 80039110 00034D70  48 00 00 28 */	b lbl_80039138
lbl_80039114:
/* 80039114 00034D74  A0 04 00 08 */	lhz r0, 8(r4)
/* 80039118 00034D78  57 E3 04 3E */	clrlwi r3, r31, 0x10
/* 8003911C 00034D7C  7C 03 00 40 */	cmplw r3, r0
/* 80039120 00034D80  41 80 00 0C */	blt lbl_8003912C
/* 80039124 00034D84  38 60 00 00 */	li r3, 0
/* 80039128 00034D88  48 00 00 10 */	b lbl_80039138
lbl_8003912C:
/* 8003912C 00034D8C  1C 03 00 30 */	mulli r0, r3, 0x30
/* 80039130 00034D90  80 64 00 0C */	lwz r3, 0xc(r4)
/* 80039134 00034D94  7C 63 02 14 */	add r3, r3, r0
lbl_80039138:
/* 80039138 00034D98  C0 3E 0D 80 */	lfs f1, 0xd80(r30)
/* 8003913C 00034D9C  C0 02 82 70 */	lfs f0, lbl_80640870-_SDA2_BASE_(r2)
/* 80039140 00034DA0  88 A3 00 28 */	lbz r5, 0x28(r3)
/* 80039144 00034DA4  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 80039148 00034DA8  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8003914C 00034DAC  D0 5E 0D 90 */	stfs f2, 0xd90(r30)
/* 80039150 00034DB0  40 80 00 10 */	bge lbl_80039160
/* 80039154 00034DB4  C0 02 82 74 */	lfs f0, lbl_80640874-_SDA2_BASE_(r2)
/* 80039158 00034DB8  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8003915C 00034DBC  41 81 00 14 */	bgt lbl_80039170
lbl_80039160:
/* 80039160 00034DC0  C0 3E 0D 8C */	lfs f1, 0xd8c(r30)
/* 80039164 00034DC4  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 80039168 00034DC8  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8003916C 00034DCC  40 81 00 30 */	ble lbl_8003919C
lbl_80039170:
/* 80039170 00034DD0  FC 20 F8 90 */	fmr f1, f31
/* 80039174 00034DD4  80 7E 0C 04 */	lwz r3, 0xc04(r30)
/* 80039178 00034DD8  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003917C 00034DDC  57 E4 04 3E */	clrlwi r4, r31, 0x10
/* 80039180 00034DE0  38 C0 00 00 */	li r6, 0
/* 80039184 00034DE4  38 E0 00 00 */	li r7, 0
/* 80039188 00034DE8  39 00 00 00 */	li r8, 0
/* 8003918C 00034DEC  48 1B BC 69 */	bl func_801F4DF4
/* 80039190 00034DF0  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 80039194 00034DF4  D0 1E 0D 8C */	stfs f0, 0xd8c(r30)
/* 80039198 00034DF8  48 00 00 38 */	b lbl_800391D0
lbl_8003919C:
/* 8003919C 00034DFC  FC 20 F8 90 */	fmr f1, f31
/* 800391A0 00034E00  80 7E 0C 04 */	lwz r3, 0xc04(r30)
/* 800391A4 00034E04  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 800391A8 00034E08  57 E4 04 3E */	clrlwi r4, r31, 0x10
/* 800391AC 00034E0C  C0 7E 0D 80 */	lfs f3, 0xd80(r30)
/* 800391B0 00034E10  38 C0 00 01 */	li r6, 1
/* 800391B4 00034E14  89 3E 0D 88 */	lbz r9, 0xd88(r30)
/* 800391B8 00034E18  38 E0 00 01 */	li r7, 1
/* 800391BC 00034E1C  89 5E 0D 89 */	lbz r10, 0xd89(r30)
/* 800391C0 00034E20  39 00 00 00 */	li r8, 0
/* 800391C4 00034E24  48 1B C1 A1 */	bl func_801F5364
/* 800391C8 00034E28  C0 1E 0D 80 */	lfs f0, 0xd80(r30)
/* 800391CC 00034E2C  D0 1E 0D 8C */	stfs f0, 0xd8c(r30)
lbl_800391D0:
/* 800391D0 00034E30  38 00 00 00 */	li r0, 0
/* 800391D4 00034E34  B3 FE 0B F8 */	sth r31, 0xbf8(r30)
/* 800391D8 00034E38  38 60 00 01 */	li r3, 1
/* 800391DC 00034E3C  90 1E 0C B0 */	stw r0, 0xcb0(r30)
lbl_800391E0:
/* 800391E0 00034E40  E3 E1 00 18 */	psq_l f31, 24(r1), 0, qr0
/* 800391E4 00034E44  80 01 00 24 */	lwz r0, 0x24(r1)
/* 800391E8 00034E48  CB E1 00 10 */	lfd f31, 0x10(r1)
/* 800391EC 00034E4C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 800391F0 00034E50  83 C1 00 08 */	lwz r30, 8(r1)
/* 800391F4 00034E54  7C 08 03 A6 */	mtlr r0
/* 800391F8 00034E58  38 21 00 20 */	addi r1, r1, 0x20
/* 800391FC 00034E5C  4E 80 00 20 */	blr

.global func_80039200
func_80039200:
/* 80039200 00034E60  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80039204 00034E64  7C 08 02 A6 */	mflr r0
/* 80039208 00034E68  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003920C 00034E6C  DB E1 00 18 */	stfd f31, 0x18(r1)
/* 80039210 00034E70  FF E0 08 90 */	fmr f31, f1
/* 80039214 00034E74  93 E1 00 14 */	stw r31, 0x14(r1)
/* 80039218 00034E78  7C 7F 1B 78 */	mr r31, r3
/* 8003921C 00034E7C  98 83 0B F6 */	stb r4, 0xbf6(r3)
/* 80039220 00034E80  48 00 30 3D */	bl func_8003C25C
/* 80039224 00034E84  FC 20 F8 90 */	fmr f1, f31
/* 80039228 00034E88  54 64 04 3E */	clrlwi r4, r3, 0x10
/* 8003922C 00034E8C  7F E3 FB 78 */	mr r3, r31
/* 80039230 00034E90  4B FF FE 61 */	bl func_80039090
/* 80039234 00034E94  88 1F 0B F6 */	lbz r0, 0xbf6(r31)
/* 80039238 00034E98  2C 00 00 00 */	cmpwi r0, 0
/* 8003923C 00034E9C  41 82 00 0C */	beq lbl_80039248
/* 80039240 00034EA0  28 00 00 10 */	cmplwi r0, 0x10
/* 80039244 00034EA4  40 82 00 14 */	bne lbl_80039258
lbl_80039248:
/* 80039248 00034EA8  80 1F 00 00 */	lwz r0, 0(r31)
/* 8003924C 00034EAC  64 00 00 02 */	oris r0, r0, 2
/* 80039250 00034EB0  90 1F 00 00 */	stw r0, 0(r31)
/* 80039254 00034EB4  48 00 00 10 */	b lbl_80039264
lbl_80039258:
/* 80039258 00034EB8  80 1F 00 00 */	lwz r0, 0(r31)
/* 8003925C 00034EBC  54 00 03 DA */	rlwinm r0, r0, 0, 0xf, 0xd
/* 80039260 00034EC0  90 1F 00 00 */	stw r0, 0(r31)
lbl_80039264:
/* 80039264 00034EC4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80039268 00034EC8  CB E1 00 18 */	lfd f31, 0x18(r1)
/* 8003926C 00034ECC  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 80039270 00034ED0  7C 08 03 A6 */	mtlr r0
/* 80039274 00034ED4  38 21 00 20 */	addi r1, r1, 0x20
/* 80039278 00034ED8  4E 80 00 20 */	blr

.global func_8003927C
func_8003927C:
/* 8003927C 00034EDC  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 80039280 00034EE0  7C 08 02 A6 */	mflr r0
/* 80039284 00034EE4  90 01 00 44 */	stw r0, 0x44(r1)
/* 80039288 00034EE8  DB E1 00 30 */	stfd f31, 0x30(r1)
/* 8003928C 00034EEC  F3 E1 00 38 */	psq_st f31, 56(r1), 0, qr0
/* 80039290 00034EF0  DB C1 00 20 */	stfd f30, 0x20(r1)
/* 80039294 00034EF4  F3 C1 00 28 */	psq_st f30, 40(r1), 0, qr0
/* 80039298 00034EF8  FF C0 08 90 */	fmr f30, f1
/* 8003929C 00034EFC  FF E0 10 90 */	fmr f31, f2
/* 800392A0 00034F00  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 800392A4 00034F04  7C 7F 1B 78 */	mr r31, r3
/* 800392A8 00034F08  93 C1 00 18 */	stw r30, 0x18(r1)
/* 800392AC 00034F0C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 800392B0 00034F10  7C 9D 23 78 */	mr r29, r4
/* 800392B4 00034F14  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 800392B8 00034F18  2C 00 00 00 */	cmpwi r0, 0
/* 800392BC 00034F1C  40 82 00 0C */	bne lbl_800392C8
/* 800392C0 00034F20  38 60 00 00 */	li r3, 0
/* 800392C4 00034F24  48 00 01 70 */	b lbl_80039434
lbl_800392C8:
/* 800392C8 00034F28  2C 04 00 00 */	cmpwi r4, 0
/* 800392CC 00034F2C  40 82 00 0C */	bne lbl_800392D8
/* 800392D0 00034F30  38 60 00 00 */	li r3, 0
/* 800392D4 00034F34  48 00 01 60 */	b lbl_80039434
lbl_800392D8:
/* 800392D8 00034F38  88 84 00 00 */	lbz r4, 0(r4)
/* 800392DC 00034F3C  7C 84 07 74 */	extsb r4, r4
/* 800392E0 00034F40  54 84 04 3E */	clrlwi r4, r4, 0x10
/* 800392E4 00034F44  48 00 2F 79 */	bl func_8003C25C
/* 800392E8 00034F48  54 7E 04 3E */	clrlwi r30, r3, 0x10
/* 800392EC 00034F4C  7F E3 FB 78 */	mr r3, r31
/* 800392F0 00034F50  7F C4 F3 78 */	mr r4, r30
/* 800392F4 00034F54  48 00 02 05 */	bl func_800394F8
/* 800392F8 00034F58  2C 03 00 00 */	cmpwi r3, 0
/* 800392FC 00034F5C  40 82 00 0C */	bne lbl_80039308
/* 80039300 00034F60  38 60 00 00 */	li r3, 0
/* 80039304 00034F64  48 00 01 30 */	b lbl_80039434
lbl_80039308:
/* 80039308 00034F68  80 1F 00 00 */	lwz r0, 0(r31)
/* 8003930C 00034F6C  54 00 04 63 */	rlwinm. r0, r0, 0, 0x11, 0x11
/* 80039310 00034F70  41 82 00 14 */	beq lbl_80039324
/* 80039314 00034F74  7F E3 FB 78 */	mr r3, r31
/* 80039318 00034F78  48 00 41 9D */	bl func_8003D4B4
/* 8003931C 00034F7C  38 60 00 01 */	li r3, 1
/* 80039320 00034F80  48 00 01 14 */	b lbl_80039434
lbl_80039324:
/* 80039324 00034F84  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 80039328 00034F88  80 63 00 04 */	lwz r3, 4(r3)
/* 8003932C 00034F8C  2C 03 00 00 */	cmpwi r3, 0
/* 80039330 00034F90  40 82 00 0C */	bne lbl_8003933C
/* 80039334 00034F94  38 60 00 00 */	li r3, 0
/* 80039338 00034F98  48 00 00 24 */	b lbl_8003935C
lbl_8003933C:
/* 8003933C 00034F9C  A0 03 00 08 */	lhz r0, 8(r3)
/* 80039340 00034FA0  7C 1E 00 40 */	cmplw r30, r0
/* 80039344 00034FA4  41 80 00 0C */	blt lbl_80039350
/* 80039348 00034FA8  38 60 00 00 */	li r3, 0
/* 8003934C 00034FAC  48 00 00 10 */	b lbl_8003935C
lbl_80039350:
/* 80039350 00034FB0  1C 1E 00 30 */	mulli r0, r30, 0x30
/* 80039354 00034FB4  80 63 00 0C */	lwz r3, 0xc(r3)
/* 80039358 00034FB8  7C 63 02 14 */	add r3, r3, r0
lbl_8003935C:
/* 8003935C 00034FBC  C0 3F 0D 80 */	lfs f1, 0xd80(r31)
/* 80039360 00034FC0  C0 02 82 70 */	lfs f0, lbl_80640870-_SDA2_BASE_(r2)
/* 80039364 00034FC4  88 A3 00 28 */	lbz r5, 0x28(r3)
/* 80039368 00034FC8  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003936C 00034FCC  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80039370 00034FD0  D0 5F 0D 90 */	stfs f2, 0xd90(r31)
/* 80039374 00034FD4  40 80 00 10 */	bge lbl_80039384
/* 80039378 00034FD8  C0 02 82 74 */	lfs f0, lbl_80640874-_SDA2_BASE_(r2)
/* 8003937C 00034FDC  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80039380 00034FE0  41 81 00 14 */	bgt lbl_80039394
lbl_80039384:
/* 80039384 00034FE4  C0 1F 0D 8C */	lfs f0, 0xd8c(r31)
/* 80039388 00034FE8  C0 62 82 20 */	lfs f3, lbl_80640820-_SDA2_BASE_(r2)
/* 8003938C 00034FEC  FC 00 18 40 */	fcmpo cr0, f0, f3
/* 80039390 00034FF0  40 81 00 30 */	ble lbl_800393C0
lbl_80039394:
/* 80039394 00034FF4  FC 20 F0 90 */	fmr f1, f30
/* 80039398 00034FF8  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 8003939C 00034FFC  FC 40 F8 90 */	fmr f2, f31
/* 800393A0 00035000  7F C4 F3 78 */	mr r4, r30
/* 800393A4 00035004  38 C0 00 00 */	li r6, 0
/* 800393A8 00035008  38 E0 00 00 */	li r7, 0
/* 800393AC 0003500C  39 00 00 00 */	li r8, 0
/* 800393B0 00035010  48 1B BA 45 */	bl func_801F4DF4
/* 800393B4 00035014  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 800393B8 00035018  D0 1F 0D 8C */	stfs f0, 0xd8c(r31)
/* 800393BC 0003501C  48 00 00 34 */	b lbl_800393F0
lbl_800393C0:
/* 800393C0 00035020  FC 20 F0 90 */	fmr f1, f30
/* 800393C4 00035024  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 800393C8 00035028  FC 40 F8 90 */	fmr f2, f31
/* 800393CC 0003502C  89 3F 0D 88 */	lbz r9, 0xd88(r31)
/* 800393D0 00035030  89 5F 0D 89 */	lbz r10, 0xd89(r31)
/* 800393D4 00035034  7F C4 F3 78 */	mr r4, r30
/* 800393D8 00035038  38 C0 00 00 */	li r6, 0
/* 800393DC 0003503C  38 E0 00 01 */	li r7, 1
/* 800393E0 00035040  39 00 00 00 */	li r8, 0
/* 800393E4 00035044  48 1B BF 81 */	bl func_801F5364
/* 800393E8 00035048  C0 1F 0D 80 */	lfs f0, 0xd80(r31)
/* 800393EC 0003504C  D0 1F 0D 8C */	stfs f0, 0xd8c(r31)
lbl_800393F0:
/* 800393F0 00035050  B3 DF 0B F8 */	sth r30, 0xbf8(r31)
/* 800393F4 00035054  38 1D 00 01 */	addi r0, r29, 1
/* 800393F8 00035058  88 7D 00 00 */	lbz r3, 0(r29)
/* 800393FC 0003505C  2C 03 00 00 */	cmpwi r3, 0
/* 80039400 00035060  98 7F 0B F6 */	stb r3, 0xbf6(r31)
/* 80039404 00035064  90 1F 0C B0 */	stw r0, 0xcb0(r31)
/* 80039408 00035068  41 82 00 0C */	beq lbl_80039414
/* 8003940C 0003506C  28 03 00 10 */	cmplwi r3, 0x10
/* 80039410 00035070  40 82 00 14 */	bne lbl_80039424
lbl_80039414:
/* 80039414 00035074  80 1F 00 00 */	lwz r0, 0(r31)
/* 80039418 00035078  64 00 00 02 */	oris r0, r0, 2
/* 8003941C 0003507C  90 1F 00 00 */	stw r0, 0(r31)
/* 80039420 00035080  48 00 00 10 */	b lbl_80039430
lbl_80039424:
/* 80039424 00035084  80 1F 00 00 */	lwz r0, 0(r31)
/* 80039428 00035088  54 00 03 DA */	rlwinm r0, r0, 0, 0xf, 0xd
/* 8003942C 0003508C  90 1F 00 00 */	stw r0, 0(r31)
lbl_80039430:
/* 80039430 00035090  38 60 00 01 */	li r3, 1
lbl_80039434:
/* 80039434 00035094  E3 E1 00 38 */	psq_l f31, 56(r1), 0, qr0
/* 80039438 00035098  CB E1 00 30 */	lfd f31, 0x30(r1)
/* 8003943C 0003509C  E3 C1 00 28 */	psq_l f30, 40(r1), 0, qr0
/* 80039440 000350A0  CB C1 00 20 */	lfd f30, 0x20(r1)
/* 80039444 000350A4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80039448 000350A8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8003944C 000350AC  80 01 00 44 */	lwz r0, 0x44(r1)
/* 80039450 000350B0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80039454 000350B4  7C 08 03 A6 */	mtlr r0
/* 80039458 000350B8  38 21 00 40 */	addi r1, r1, 0x40
/* 8003945C 000350BC  4E 80 00 20 */	blr

.global func_80039460
func_80039460:
/* 80039460 000350C0  A0 63 0B F8 */	lhz r3, 0xbf8(r3)
/* 80039464 000350C4  4E 80 00 20 */	blr

.global func_80039468
func_80039468:
/* 80039468 000350C8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003946C 000350CC  7C 08 02 A6 */	mflr r0
/* 80039470 000350D0  2C 04 00 00 */	cmpwi r4, 0
/* 80039474 000350D4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80039478 000350D8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003947C 000350DC  93 C1 00 08 */	stw r30, 8(r1)
/* 80039480 000350E0  7C 7E 1B 78 */	mr r30, r3
/* 80039484 000350E4  40 80 00 0C */	bge lbl_80039490
/* 80039488 000350E8  38 60 FF FF */	li r3, -1
/* 8003948C 000350EC  48 00 00 4C */	b lbl_800394D8
lbl_80039490:
/* 80039490 000350F0  48 00 01 ED */	bl func_8003967C
/* 80039494 000350F4  2C 03 00 00 */	cmpwi r3, 0
/* 80039498 000350F8  41 82 00 3C */	beq lbl_800394D4
/* 8003949C 000350FC  88 83 00 00 */	lbz r4, 0(r3)
/* 800394A0 00035100  7F C3 F3 78 */	mr r3, r30
/* 800394A4 00035104  7C 84 07 74 */	extsb r4, r4
/* 800394A8 00035108  54 84 04 3E */	clrlwi r4, r4, 0x10
/* 800394AC 0003510C  48 00 2D B1 */	bl func_8003C25C
/* 800394B0 00035110  54 7F 04 3E */	clrlwi r31, r3, 0x10
/* 800394B4 00035114  7F C3 F3 78 */	mr r3, r30
/* 800394B8 00035118  7F E4 FB 78 */	mr r4, r31
/* 800394BC 0003511C  48 00 00 3D */	bl func_800394F8
/* 800394C0 00035120  2C 03 00 00 */	cmpwi r3, 0
/* 800394C4 00035124  38 60 FF FF */	li r3, -1
/* 800394C8 00035128  41 82 00 10 */	beq lbl_800394D8
/* 800394CC 0003512C  7F E3 FB 78 */	mr r3, r31
/* 800394D0 00035130  48 00 00 08 */	b lbl_800394D8
lbl_800394D4:
/* 800394D4 00035134  38 60 FF FF */	li r3, -1
lbl_800394D8:
/* 800394D8 00035138  80 01 00 14 */	lwz r0, 0x14(r1)
/* 800394DC 0003513C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 800394E0 00035140  83 C1 00 08 */	lwz r30, 8(r1)
/* 800394E4 00035144  7C 08 03 A6 */	mtlr r0
/* 800394E8 00035148  38 21 00 10 */	addi r1, r1, 0x10
/* 800394EC 0003514C  4E 80 00 20 */	blr

.global func_800394F0
func_800394F0:
/* 800394F0 00035150  88 63 0B F6 */	lbz r3, 0xbf6(r3)
/* 800394F4 00035154  4E 80 00 20 */	blr

.global func_800394F8
func_800394F8:
/* 800394F8 00035158  80 63 0C 04 */	lwz r3, 0xc04(r3)
/* 800394FC 0003515C  2C 03 00 00 */	cmpwi r3, 0
/* 80039500 00035160  40 82 00 0C */	bne lbl_8003950C
/* 80039504 00035164  38 60 00 00 */	li r3, 0
/* 80039508 00035168  4E 80 00 20 */	blr
lbl_8003950C:
/* 8003950C 0003516C  2C 04 00 00 */	cmpwi r4, 0
/* 80039510 00035170  41 80 00 2C */	blt lbl_8003953C
/* 80039514 00035174  80 63 00 04 */	lwz r3, 4(r3)
/* 80039518 00035178  2C 03 00 00 */	cmpwi r3, 0
/* 8003951C 0003517C  41 82 00 0C */	beq lbl_80039528
/* 80039520 00035180  A0 03 00 08 */	lhz r0, 8(r3)
/* 80039524 00035184  48 00 00 08 */	b lbl_8003952C
lbl_80039528:
/* 80039528 00035188  38 00 00 00 */	li r0, 0
lbl_8003952C:
/* 8003952C 0003518C  7C 04 00 00 */	cmpw r4, r0
/* 80039530 00035190  40 80 00 0C */	bge lbl_8003953C
/* 80039534 00035194  38 60 00 01 */	li r3, 1
/* 80039538 00035198  4E 80 00 20 */	blr
lbl_8003953C:
/* 8003953C 0003519C  38 60 00 00 */	li r3, 0
/* 80039540 000351A0  4E 80 00 20 */	blr

.global func_80039544
func_80039544:
/* 80039544 000351A4  A0 03 0C 68 */	lhz r0, 0xc68(r3)
/* 80039548 000351A8  28 00 01 00 */	cmplwi r0, 0x100
/* 8003954C 000351AC  40 82 00 9C */	bne lbl_800395E8
/* 80039550 000351B0  80 03 0C 00 */	lwz r0, 0xc00(r3)
/* 80039554 000351B4  2C 00 00 00 */	cmpwi r0, 0
/* 80039558 000351B8  4D 82 00 20 */	beqlr
/* 8003955C 000351BC  39 20 00 00 */	li r9, 0
/* 80039560 000351C0  48 00 00 6C */	b lbl_800395CC
lbl_80039564:
/* 80039564 000351C4  81 07 00 04 */	lwz r8, 4(r7)
/* 80039568 000351C8  2C 08 00 00 */	cmpwi r8, 0
/* 8003956C 000351CC  40 82 00 0C */	bne lbl_80039578
/* 80039570 000351D0  38 A0 00 00 */	li r5, 0
/* 80039574 000351D4  48 00 00 28 */	b lbl_8003959C
lbl_80039578:
/* 80039578 000351D8  80 A7 00 00 */	lwz r5, 0(r7)
/* 8003957C 000351DC  55 26 06 3E */	clrlwi r6, r9, 0x18
/* 80039580 000351E0  A0 05 00 18 */	lhz r0, 0x18(r5)
/* 80039584 000351E4  7C 06 00 40 */	cmplw r6, r0
/* 80039588 000351E8  41 80 00 0C */	blt lbl_80039594
/* 8003958C 000351EC  38 A0 00 00 */	li r5, 0
/* 80039590 000351F0  48 00 00 0C */	b lbl_8003959C
lbl_80039594:
/* 80039594 000351F4  55 20 15 BA */	rlwinm r0, r9, 2, 0x16, 0x1d
/* 80039598 000351F8  7C A8 00 2E */	lwzx r5, r8, r0
lbl_8003959C:
/* 8003959C 000351FC  2C 05 00 00 */	cmpwi r5, 0
/* 800395A0 00035200  41 82 00 28 */	beq lbl_800395C8
/* 800395A4 00035204  2C 04 00 00 */	cmpwi r4, 0
/* 800395A8 00035208  41 82 00 14 */	beq lbl_800395BC
/* 800395AC 0003520C  A0 05 00 DC */	lhz r0, 0xdc(r5)
/* 800395B0 00035210  60 00 00 10 */	ori r0, r0, 0x10
/* 800395B4 00035214  B0 05 00 DC */	sth r0, 0xdc(r5)
/* 800395B8 00035218  48 00 00 10 */	b lbl_800395C8
lbl_800395BC:
/* 800395BC 0003521C  A0 05 00 DC */	lhz r0, 0xdc(r5)
/* 800395C0 00035220  54 00 07 34 */	rlwinm r0, r0, 0, 0x1c, 0x1a
/* 800395C4 00035224  B0 05 00 DC */	sth r0, 0xdc(r5)
lbl_800395C8:
/* 800395C8 00035228  39 29 00 01 */	addi r9, r9, 1
lbl_800395CC:
/* 800395CC 0003522C  80 E3 0C 00 */	lwz r7, 0xc00(r3)
/* 800395D0 00035230  55 26 06 3E */	clrlwi r6, r9, 0x18
/* 800395D4 00035234  80 A7 00 00 */	lwz r5, 0(r7)
/* 800395D8 00035238  A0 05 00 18 */	lhz r0, 0x18(r5)
/* 800395DC 0003523C  7C 06 00 00 */	cmpw r6, r0
/* 800395E0 00035240  41 80 FF 84 */	blt lbl_80039564
/* 800395E4 00035244  4E 80 00 20 */	blr
lbl_800395E8:
/* 800395E8 00035248  2C 04 00 00 */	cmpwi r4, 0
/* 800395EC 0003524C  41 82 00 20 */	beq lbl_8003960C
/* 800395F0 00035250  80 63 0C 04 */	lwz r3, 0xc04(r3)
/* 800395F4 00035254  2C 03 00 00 */	cmpwi r3, 0
/* 800395F8 00035258  4D 82 00 20 */	beqlr
/* 800395FC 0003525C  A0 03 00 DC */	lhz r0, 0xdc(r3)
/* 80039600 00035260  60 00 00 10 */	ori r0, r0, 0x10
/* 80039604 00035264  B0 03 00 DC */	sth r0, 0xdc(r3)
/* 80039608 00035268  4E 80 00 20 */	blr
lbl_8003960C:
/* 8003960C 0003526C  80 03 00 00 */	lwz r0, 0(r3)
/* 80039610 00035270  54 00 04 63 */	rlwinm. r0, r0, 0, 0x11, 0x11
/* 80039614 00035274  4C 82 00 20 */	bnelr
/* 80039618 00035278  80 63 0C 04 */	lwz r3, 0xc04(r3)
/* 8003961C 0003527C  2C 03 00 00 */	cmpwi r3, 0
/* 80039620 00035280  4D 82 00 20 */	beqlr
/* 80039624 00035284  A0 03 00 DC */	lhz r0, 0xdc(r3)
/* 80039628 00035288  54 00 07 34 */	rlwinm r0, r0, 0, 0x1c, 0x1a
/* 8003962C 0003528C  B0 03 00 DC */	sth r0, 0xdc(r3)
/* 80039630 00035290  4E 80 00 20 */	blr

.global func_80039634
func_80039634:
/* 80039634 00035294  90 83 0C 50 */	stw r4, 0xc50(r3)
/* 80039638 00035298  90 A3 0C 54 */	stw r5, 0xc54(r3)
/* 8003963C 0003529C  4E 80 00 20 */	blr

.global func_80039640
func_80039640:
/* 80039640 000352A0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80039644 000352A4  7C 08 02 A6 */	mflr r0
/* 80039648 000352A8  7C 64 1B 78 */	mr r4, r3
/* 8003964C 000352AC  80 63 0C 50 */	lwz r3, 0xc50(r3)
/* 80039650 000352B0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80039654 000352B4  80 84 0C 54 */	lwz r4, 0xc54(r4)
/* 80039658 000352B8  48 1A 1E 65 */	bl func_801DB4BC
/* 8003965C 000352BC  2C 03 00 00 */	cmpwi r3, 0
/* 80039660 000352C0  40 82 00 0C */	bne lbl_8003966C
/* 80039664 000352C4  48 00 4A F9 */	bl func_8003E15C
/* 80039668 000352C8  48 00 4D C5 */	bl func_8003E42C
lbl_8003966C:
/* 8003966C 000352CC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80039670 000352D0  7C 08 03 A6 */	mtlr r0
/* 80039674 000352D4  38 21 00 10 */	addi r1, r1, 0x10
/* 80039678 000352D8  4E 80 00 20 */	blr

.global func_8003967C
func_8003967C:
/* 8003967C 000352DC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80039680 000352E0  7C 08 02 A6 */	mflr r0
/* 80039684 000352E4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80039688 000352E8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003968C 000352EC  7C 9F 23 78 */	mr r31, r4
/* 80039690 000352F0  93 C1 00 08 */	stw r30, 8(r1)
/* 80039694 000352F4  7C 7E 1B 78 */	mr r30, r3
/* 80039698 000352F8  4B FF FF A9 */	bl func_80039640
/* 8003969C 000352FC  2C 03 00 00 */	cmpwi r3, 0
/* 800396A0 00035300  40 82 00 0C */	bne lbl_800396AC
/* 800396A4 00035304  38 60 00 00 */	li r3, 0
/* 800396A8 00035308  48 00 00 14 */	b lbl_800396BC
lbl_800396AC:
/* 800396AC 0003530C  A0 BE 05 10 */	lhz r5, 0x510(r30)
/* 800396B0 00035310  7F E4 FB 78 */	mr r4, r31
/* 800396B4 00035314  A0 DE 05 0E */	lhz r6, 0x50e(r30)
/* 800396B8 00035318  4B FF 98 35 */	bl func_80032EEC
lbl_800396BC:
/* 800396BC 0003531C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 800396C0 00035320  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 800396C4 00035324  83 C1 00 08 */	lwz r30, 8(r1)
/* 800396C8 00035328  7C 08 03 A6 */	mtlr r0
/* 800396CC 0003532C  38 21 00 10 */	addi r1, r1, 0x10
/* 800396D0 00035330  4E 80 00 20 */	blr

.global func_800396D4
func_800396D4:
/* 800396D4 00035334  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 800396D8 00035338  7C 08 02 A6 */	mflr r0
/* 800396DC 0003533C  90 01 00 14 */	stw r0, 0x14(r1)
/* 800396E0 00035340  93 E1 00 0C */	stw r31, 0xc(r1)
/* 800396E4 00035344  7C 7F 1B 78 */	mr r31, r3
/* 800396E8 00035348  48 00 4A 75 */	bl func_8003E15C
/* 800396EC 0003534C  2C 03 00 00 */	cmpwi r3, 0
/* 800396F0 00035350  41 82 00 10 */	beq lbl_80039700
/* 800396F4 00035354  A0 9F 05 10 */	lhz r4, 0x510(r31)
/* 800396F8 00035358  48 00 4F 19 */	bl func_8003E610
/* 800396FC 0003535C  48 00 00 08 */	b lbl_80039704
lbl_80039700:
/* 80039700 00035360  38 60 00 00 */	li r3, 0
lbl_80039704:
/* 80039704 00035364  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80039708 00035368  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003970C 0003536C  7C 08 03 A6 */	mtlr r0
/* 80039710 00035370  38 21 00 10 */	addi r1, r1, 0x10
/* 80039714 00035374  4E 80 00 20 */	blr

.global func_80039718
func_80039718:
/* 80039718 00035378  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003971C 0003537C  7C 08 02 A6 */	mflr r0
/* 80039720 00035380  90 01 00 14 */	stw r0, 0x14(r1)
/* 80039724 00035384  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80039728 00035388  3B E0 00 00 */	li r31, 0
/* 8003972C 0003538C  93 C1 00 08 */	stw r30, 8(r1)
/* 80039730 00035390  7C 7E 1B 78 */	mr r30, r3
/* 80039734 00035394  48 00 4A 29 */	bl func_8003E15C
/* 80039738 00035398  2C 03 00 00 */	cmpwi r3, 0
/* 8003973C 0003539C  41 82 00 10 */	beq lbl_8003974C
/* 80039740 000353A0  A0 9E 05 10 */	lhz r4, 0x510(r30)
/* 80039744 000353A4  48 00 4F 1D */	bl func_8003E660
/* 80039748 000353A8  7C 7F 1B 78 */	mr r31, r3
lbl_8003974C:
/* 8003974C 000353AC  2C 1F 00 64 */	cmpwi r31, 0x64
/* 80039750 000353B0  40 80 00 0C */	bge lbl_8003975C
/* 80039754 000353B4  38 60 00 01 */	li r3, 1
/* 80039758 000353B8  48 00 00 4C */	b lbl_800397A4
lbl_8003975C:
/* 8003975C 000353BC  2C 1F 00 FA */	cmpwi r31, 0xfa
/* 80039760 000353C0  40 80 00 0C */	bge lbl_8003976C
/* 80039764 000353C4  38 60 00 02 */	li r3, 2
/* 80039768 000353C8  48 00 00 3C */	b lbl_800397A4
lbl_8003976C:
/* 8003976C 000353CC  2C 1F 01 F4 */	cmpwi r31, 0x1f4
/* 80039770 000353D0  40 80 00 0C */	bge lbl_8003977C
/* 80039774 000353D4  38 60 00 03 */	li r3, 3
/* 80039778 000353D8  48 00 00 2C */	b lbl_800397A4
lbl_8003977C:
/* 8003977C 000353DC  2C 1F 03 E8 */	cmpwi r31, 0x3e8
/* 80039780 000353E0  40 80 00 0C */	bge lbl_8003978C
/* 80039784 000353E4  38 60 00 04 */	li r3, 4
/* 80039788 000353E8  48 00 00 1C */	b lbl_800397A4
lbl_8003978C:
/* 8003978C 000353EC  38 60 07 D0 */	li r3, 0x7d0
/* 80039790 000353F0  57 E0 0F FE */	srwi r0, r31, 0x1f
/* 80039794 000353F4  7C 63 F8 10 */	subfc r3, r3, r31
/* 80039798 000353F8  38 60 00 00 */	li r3, 0
/* 8003979C 000353FC  7C 60 19 10 */	subfe r3, r0, r3
/* 800397A0 00035400  38 63 00 06 */	addi r3, r3, 6
lbl_800397A4:
/* 800397A4 00035404  80 01 00 14 */	lwz r0, 0x14(r1)
/* 800397A8 00035408  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 800397AC 0003540C  83 C1 00 08 */	lwz r30, 8(r1)
/* 800397B0 00035410  7C 08 03 A6 */	mtlr r0
/* 800397B4 00035414  38 21 00 10 */	addi r1, r1, 0x10
/* 800397B8 00035418  4E 80 00 20 */	blr

.global func_800397BC
func_800397BC:
/* 800397BC 0003541C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 800397C0 00035420  7C 08 02 A6 */	mflr r0
/* 800397C4 00035424  90 01 00 14 */	stw r0, 0x14(r1)
/* 800397C8 00035428  4B FF FF 0D */	bl func_800396D4
/* 800397CC 0003542C  28 03 00 06 */	cmplwi r3, 6
/* 800397D0 00035430  41 81 00 54 */	bgt lbl_80039824
/* 800397D4 00035434  3C 80 80 41 */	lis r4, lbl_8040A410@ha
/* 800397D8 00035438  54 60 10 3A */	slwi r0, r3, 2
/* 800397DC 0003543C  38 84 A4 10 */	addi r4, r4, lbl_8040A410@l
/* 800397E0 00035440  7C 84 00 2E */	lwzx r4, r4, r0
/* 800397E4 00035444  7C 89 03 A6 */	mtctr r4
/* 800397E8 00035448  4E 80 04 20 */	bctr
/* 800397EC 0003544C  C0 22 82 30 */	lfs f1, lbl_80640830-_SDA2_BASE_(r2)
/* 800397F0 00035450  48 00 00 38 */	b lbl_80039828
/* 800397F4 00035454  C0 22 82 88 */	lfs f1, lbl_80640888-_SDA2_BASE_(r2)
/* 800397F8 00035458  48 00 00 30 */	b lbl_80039828
/* 800397FC 0003545C  C0 22 82 8C */	lfs f1, lbl_8064088C-_SDA2_BASE_(r2)
/* 80039800 00035460  48 00 00 28 */	b lbl_80039828
/* 80039804 00035464  C0 22 82 30 */	lfs f1, lbl_80640830-_SDA2_BASE_(r2)
/* 80039808 00035468  48 00 00 20 */	b lbl_80039828
/* 8003980C 0003546C  C0 22 82 90 */	lfs f1, lbl_80640890-_SDA2_BASE_(r2)
/* 80039810 00035470  48 00 00 18 */	b lbl_80039828
/* 80039814 00035474  C0 22 82 3C */	lfs f1, lbl_8064083C-_SDA2_BASE_(r2)
/* 80039818 00035478  48 00 00 10 */	b lbl_80039828
/* 8003981C 0003547C  C0 22 82 94 */	lfs f1, lbl_80640894-_SDA2_BASE_(r2)
/* 80039820 00035480  48 00 00 08 */	b lbl_80039828
lbl_80039824:
/* 80039824 00035484  C0 22 82 30 */	lfs f1, lbl_80640830-_SDA2_BASE_(r2)
lbl_80039828:
/* 80039828 00035488  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003982C 0003548C  7C 08 03 A6 */	mtlr r0
/* 80039830 00035490  38 21 00 10 */	addi r1, r1, 0x10
/* 80039834 00035494  4E 80 00 20 */	blr

.global func_80039838
func_80039838:
/* 80039838 00035498  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003983C 0003549C  7C 08 02 A6 */	mflr r0
/* 80039840 000354A0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80039844 000354A4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80039848 000354A8  7C 9F 23 78 */	mr r31, r4
/* 8003984C 000354AC  93 C1 00 08 */	stw r30, 8(r1)
/* 80039850 000354B0  7C 7E 1B 78 */	mr r30, r3
/* 80039854 000354B4  48 00 49 09 */	bl func_8003E15C
/* 80039858 000354B8  2C 03 00 00 */	cmpwi r3, 0
/* 8003985C 000354BC  41 82 00 24 */	beq lbl_80039880
/* 80039860 000354C0  A0 DE 05 14 */	lhz r6, 0x514(r30)
/* 80039864 000354C4  7F E5 FB 78 */	mr r5, r31
/* 80039868 000354C8  A0 1E 05 12 */	lhz r0, 0x512(r30)
/* 8003986C 000354CC  A0 9E 05 10 */	lhz r4, 0x510(r30)
/* 80039870 000354D0  54 C6 06 3E */	clrlwi r6, r6, 0x18
/* 80039874 000354D4  54 07 06 3E */	clrlwi r7, r0, 0x18
/* 80039878 000354D8  48 00 4E D9 */	bl func_8003E750
/* 8003987C 000354DC  48 00 00 08 */	b lbl_80039884
lbl_80039880:
/* 80039880 000354E0  38 60 FF FF */	li r3, -1
lbl_80039884:
/* 80039884 000354E4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80039888 000354E8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003988C 000354EC  83 C1 00 08 */	lwz r30, 8(r1)
/* 80039890 000354F0  7C 08 03 A6 */	mtlr r0
/* 80039894 000354F4  38 21 00 10 */	addi r1, r1, 0x10
/* 80039898 000354F8  4E 80 00 20 */	blr

.global func_8003989C
func_8003989C:
/* 8003989C 000354FC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 800398A0 00035500  7C 08 02 A6 */	mflr r0
/* 800398A4 00035504  90 01 00 14 */	stw r0, 0x14(r1)
/* 800398A8 00035508  93 E1 00 0C */	stw r31, 0xc(r1)
/* 800398AC 0003550C  7C 9F 23 78 */	mr r31, r4
/* 800398B0 00035510  7C A4 2B 78 */	mr r4, r5
/* 800398B4 00035514  93 C1 00 08 */	stw r30, 8(r1)
/* 800398B8 00035518  7C 7E 1B 78 */	mr r30, r3
/* 800398BC 0003551C  7F E3 FB 78 */	mr r3, r31
/* 800398C0 00035520  4B FF FF 79 */	bl func_80039838
/* 800398C4 00035524  7C 65 1B 78 */	mr r5, r3
/* 800398C8 00035528  7F C3 F3 78 */	mr r3, r30
/* 800398CC 0003552C  7F E4 FB 78 */	mr r4, r31
/* 800398D0 00035530  48 00 1D A5 */	bl func_8003B674
/* 800398D4 00035534  80 01 00 14 */	lwz r0, 0x14(r1)
/* 800398D8 00035538  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 800398DC 0003553C  83 C1 00 08 */	lwz r30, 8(r1)
/* 800398E0 00035540  7C 08 03 A6 */	mtlr r0
/* 800398E4 00035544  38 21 00 10 */	addi r1, r1, 0x10
/* 800398E8 00035548  4E 80 00 20 */	blr

.global func_800398EC
func_800398EC:
/* 800398EC 0003554C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 800398F0 00035550  7C 08 02 A6 */	mflr r0
/* 800398F4 00035554  90 01 00 14 */	stw r0, 0x14(r1)
/* 800398F8 00035558  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 800398FC 0003555C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80039900 00035560  7C 7F 1B 78 */	mr r31, r3
/* 80039904 00035564  2C 00 00 00 */	cmpwi r0, 0
/* 80039908 00035568  41 82 00 5C */	beq lbl_80039964
/* 8003990C 0003556C  4B FF FF 2D */	bl func_80039838
/* 80039910 00035570  80 BF 0C 04 */	lwz r5, 0xc04(r31)
/* 80039914 00035574  2C 03 00 00 */	cmpwi r3, 0
/* 80039918 00035578  A0 85 00 DE */	lhz r4, 0xde(r5)
/* 8003991C 0003557C  41 80 00 40 */	blt lbl_8003995C
/* 80039920 00035580  7C 03 20 00 */	cmpw r3, r4
/* 80039924 00035584  40 80 00 38 */	bge lbl_8003995C
/* 80039928 00035588  80 A5 00 08 */	lwz r5, 8(r5)
/* 8003992C 0003558C  2C 05 00 00 */	cmpwi r5, 0
/* 80039930 00035590  40 82 00 0C */	bne lbl_8003993C
/* 80039934 00035594  38 60 00 00 */	li r3, 0
/* 80039938 00035598  48 00 00 30 */	b lbl_80039968
lbl_8003993C:
/* 8003993C 0003559C  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 80039940 000355A0  7C 00 20 40 */	cmplw r0, r4
/* 80039944 000355A4  41 80 00 0C */	blt lbl_80039950
/* 80039948 000355A8  38 60 00 00 */	li r3, 0
/* 8003994C 000355AC  48 00 00 1C */	b lbl_80039968
lbl_80039950:
/* 80039950 000355B0  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 80039954 000355B4  7C 65 00 2E */	lwzx r3, r5, r0
/* 80039958 000355B8  48 00 00 10 */	b lbl_80039968
lbl_8003995C:
/* 8003995C 000355BC  38 60 00 00 */	li r3, 0
/* 80039960 000355C0  48 00 00 08 */	b lbl_80039968
lbl_80039964:
/* 80039964 000355C4  38 60 00 00 */	li r3, 0
lbl_80039968:
/* 80039968 000355C8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003996C 000355CC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80039970 000355D0  7C 08 03 A6 */	mtlr r0
/* 80039974 000355D4  38 21 00 10 */	addi r1, r1, 0x10
/* 80039978 000355D8  4E 80 00 20 */	blr

.global func_8003997C
func_8003997C:
/* 8003997C 000355DC  80 63 0C 04 */	lwz r3, 0xc04(r3)
/* 80039980 000355E0  2C 03 00 00 */	cmpwi r3, 0
/* 80039984 000355E4  41 82 00 3C */	beq lbl_800399C0
/* 80039988 000355E8  80 A3 00 08 */	lwz r5, 8(r3)
/* 8003998C 000355EC  2C 05 00 00 */	cmpwi r5, 0
/* 80039990 000355F0  40 82 00 0C */	bne lbl_8003999C
/* 80039994 000355F4  38 60 00 00 */	li r3, 0
/* 80039998 000355F8  4E 80 00 20 */	blr
lbl_8003999C:
/* 8003999C 000355FC  A0 03 00 DE */	lhz r0, 0xde(r3)
/* 800399A0 00035600  54 83 04 3E */	clrlwi r3, r4, 0x10
/* 800399A4 00035604  7C 03 00 40 */	cmplw r3, r0
/* 800399A8 00035608  41 80 00 0C */	blt lbl_800399B4
/* 800399AC 0003560C  38 60 00 00 */	li r3, 0
/* 800399B0 00035610  4E 80 00 20 */	blr
lbl_800399B4:
/* 800399B4 00035614  54 80 13 BA */	rlwinm r0, r4, 2, 0xe, 0x1d
/* 800399B8 00035618  7C 65 00 2E */	lwzx r3, r5, r0
/* 800399BC 0003561C  4E 80 00 20 */	blr
lbl_800399C0:
/* 800399C0 00035620  38 60 00 00 */	li r3, 0
/* 800399C4 00035624  4E 80 00 20 */	blr

.global func_800399C8
func_800399C8:
/* 800399C8 00035628  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 800399CC 0003562C  7C 08 02 A6 */	mflr r0
/* 800399D0 00035630  2C 04 00 00 */	cmpwi r4, 0
/* 800399D4 00035634  90 01 00 24 */	stw r0, 0x24(r1)
/* 800399D8 00035638  DB E1 00 18 */	stfd f31, 0x18(r1)
/* 800399DC 0003563C  FF E0 10 90 */	fmr f31, f2
/* 800399E0 00035640  DB C1 00 10 */	stfd f30, 0x10(r1)
/* 800399E4 00035644  FF C0 08 90 */	fmr f30, f1
/* 800399E8 00035648  93 E1 00 0C */	stw r31, 0xc(r1)
/* 800399EC 0003564C  7C 9F 23 78 */	mr r31, r4
/* 800399F0 00035650  93 C1 00 08 */	stw r30, 8(r1)
/* 800399F4 00035654  7C 7E 1B 78 */	mr r30, r3
/* 800399F8 00035658  40 80 00 0C */	bge lbl_80039A04
/* 800399FC 0003565C  38 60 00 00 */	li r3, 0
/* 80039A00 00035660  48 00 00 34 */	b lbl_80039A34
lbl_80039A04:
/* 80039A04 00035664  4B FF FC 79 */	bl func_8003967C
/* 80039A08 00035668  2C 03 00 00 */	cmpwi r3, 0
/* 80039A0C 0003566C  7C 64 1B 78 */	mr r4, r3
/* 80039A10 00035670  41 82 00 20 */	beq lbl_80039A30
/* 80039A14 00035674  FC 20 F0 90 */	fmr f1, f30
/* 80039A18 00035678  7F C3 F3 78 */	mr r3, r30
/* 80039A1C 0003567C  FC 40 F8 90 */	fmr f2, f31
/* 80039A20 00035680  4B FF F8 5D */	bl func_8003927C
/* 80039A24 00035684  B3 FE 0B F4 */	sth r31, 0xbf4(r30)
/* 80039A28 00035688  38 60 00 01 */	li r3, 1
/* 80039A2C 0003568C  48 00 00 08 */	b lbl_80039A34
lbl_80039A30:
/* 80039A30 00035690  38 60 00 00 */	li r3, 0
lbl_80039A34:
/* 80039A34 00035694  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80039A38 00035698  CB E1 00 18 */	lfd f31, 0x18(r1)
/* 80039A3C 0003569C  CB C1 00 10 */	lfd f30, 0x10(r1)
/* 80039A40 000356A0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80039A44 000356A4  83 C1 00 08 */	lwz r30, 8(r1)
/* 80039A48 000356A8  7C 08 03 A6 */	mtlr r0
/* 80039A4C 000356AC  38 21 00 20 */	addi r1, r1, 0x20
/* 80039A50 000356B0  4E 80 00 20 */	blr

.global func_80039A54
func_80039A54:
/* 80039A54 000356B4  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 80039A58 000356B8  7C 08 02 A6 */	mflr r0
/* 80039A5C 000356BC  90 01 00 44 */	stw r0, 0x44(r1)
/* 80039A60 000356C0  DB E1 00 30 */	stfd f31, 0x30(r1)
/* 80039A64 000356C4  F3 E1 00 38 */	psq_st f31, 56(r1), 0, qr0
/* 80039A68 000356C8  FF E0 08 90 */	fmr f31, f1
/* 80039A6C 000356CC  38 A0 00 02 */	li r5, 2
/* 80039A70 000356D0  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 80039A74 000356D4  93 C1 00 28 */	stw r30, 0x28(r1)
/* 80039A78 000356D8  7C 9E 23 78 */	mr r30, r4
/* 80039A7C 000356DC  38 80 00 08 */	li r4, 8
/* 80039A80 000356E0  93 A1 00 24 */	stw r29, 0x24(r1)
/* 80039A84 000356E4  7C 7D 1B 78 */	mr r29, r3
/* 80039A88 000356E8  48 00 03 39 */	bl func_80039DC0
/* 80039A8C 000356EC  EC 1F 08 2A */	fadds f0, f31, f1
/* 80039A90 000356F0  A0 1D 05 10 */	lhz r0, 0x510(r29)
/* 80039A94 000356F4  28 00 01 67 */	cmplwi r0, 0x167
/* 80039A98 000356F8  D0 1D 0D 78 */	stfs f0, 0xd78(r29)
/* 80039A9C 000356FC  40 82 00 08 */	bne lbl_80039AA4
/* 80039AA0 00035700  3B C0 00 00 */	li r30, 0
lbl_80039AA4:
/* 80039AA4 00035704  80 1D 00 00 */	lwz r0, 0(r29)
/* 80039AA8 00035708  54 00 04 E7 */	rlwinm. r0, r0, 0, 0x13, 0x13
/* 80039AAC 0003570C  41 82 01 00 */	beq lbl_80039BAC
/* 80039AB0 00035710  7F A3 EB 78 */	mr r3, r29
/* 80039AB4 00035714  38 80 00 00 */	li r4, 0
/* 80039AB8 00035718  48 00 27 A5 */	bl func_8003C25C
/* 80039ABC 0003571C  54 7F 04 3E */	clrlwi r31, r3, 0x10
/* 80039AC0 00035720  7F A3 EB 78 */	mr r3, r29
/* 80039AC4 00035724  38 80 00 0A */	li r4, 0xa
/* 80039AC8 00035728  48 00 27 95 */	bl func_8003C25C
/* 80039ACC 0003572C  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 80039AD0 00035730  7C 00 F8 40 */	cmplw r0, r31
/* 80039AD4 00035734  41 82 00 A0 */	beq lbl_80039B74
/* 80039AD8 00035738  7F A3 EB 78 */	mr r3, r29
/* 80039ADC 0003573C  4B FF FA 15 */	bl func_800394F0
/* 80039AE0 00035740  2C 03 00 0A */	cmpwi r3, 0xa
/* 80039AE4 00035744  40 82 00 10 */	bne lbl_80039AF4
/* 80039AE8 00035748  7F A3 EB 78 */	mr r3, r29
/* 80039AEC 0003574C  48 00 1C A9 */	bl func_8003B794
/* 80039AF0 00035750  D0 3D 0D 7C */	stfs f1, 0xd7c(r29)
lbl_80039AF4:
/* 80039AF4 00035754  A0 1D 05 10 */	lhz r0, 0x510(r29)
/* 80039AF8 00035758  28 00 00 B2 */	cmplwi r0, 0xb2
/* 80039AFC 0003575C  41 82 00 F0 */	beq lbl_80039BEC
/* 80039B00 00035760  2C 1E 00 00 */	cmpwi r30, 0
/* 80039B04 00035764  41 82 00 38 */	beq lbl_80039B3C
/* 80039B08 00035768  C0 1D 0D 78 */	lfs f0, 0xd78(r29)
/* 80039B0C 0003576C  7F A3 EB 78 */	mr r3, r29
/* 80039B10 00035770  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80039B14 00035774  38 80 00 08 */	li r4, 8
/* 80039B18 00035778  D0 1D 0D 80 */	stfs f0, 0xd80(r29)
/* 80039B1C 0003577C  4B FF F6 E5 */	bl func_80039200
/* 80039B20 00035780  C0 3D 0D 7C */	lfs f1, 0xd7c(r29)
/* 80039B24 00035784  7F A3 EB 78 */	mr r3, r29
/* 80039B28 00035788  C0 5D 0D 78 */	lfs f2, 0xd78(r29)
/* 80039B2C 0003578C  38 80 FF FF */	li r4, -1
/* 80039B30 00035790  38 A0 00 00 */	li r5, 0
/* 80039B34 00035794  48 00 11 69 */	bl func_8003AC9C
/* 80039B38 00035798  48 00 00 A8 */	b lbl_80039BE0
lbl_80039B3C:
/* 80039B3C 0003579C  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80039B40 000357A0  7F A3 EB 78 */	mr r3, r29
/* 80039B44 000357A4  38 80 00 08 */	li r4, 8
/* 80039B48 000357A8  D0 3D 0D 80 */	stfs f1, 0xd80(r29)
/* 80039B4C 000357AC  4B FF F6 B5 */	bl func_80039200
/* 80039B50 000357B0  7F A4 EB 78 */	mr r4, r29
/* 80039B54 000357B4  38 61 00 08 */	addi r3, r1, 8
/* 80039B58 000357B8  4B FF EC 89 */	bl func_800387E0
/* 80039B5C 000357BC  C0 1D 0D 7C */	lfs f0, 0xd7c(r29)
/* 80039B60 000357C0  7F A3 EB 78 */	mr r3, r29
/* 80039B64 000357C4  38 81 00 08 */	addi r4, r1, 8
/* 80039B68 000357C8  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 80039B6C 000357CC  4B FF EC B1 */	bl func_8003881C
/* 80039B70 000357D0  48 00 00 70 */	b lbl_80039BE0
lbl_80039B74:
/* 80039B74 000357D4  2C 1E 00 00 */	cmpwi r30, 0
/* 80039B78 000357D8  41 82 00 18 */	beq lbl_80039B90
/* 80039B7C 000357DC  C0 22 82 98 */	lfs f1, lbl_80640898-_SDA2_BASE_(r2)
/* 80039B80 000357E0  C0 1D 0D 78 */	lfs f0, 0xd78(r29)
/* 80039B84 000357E4  EC 01 00 32 */	fmuls f0, f1, f0
/* 80039B88 000357E8  D0 1D 0D 80 */	stfs f0, 0xd80(r29)
/* 80039B8C 000357EC  48 00 00 0C */	b lbl_80039B98
lbl_80039B90:
/* 80039B90 000357F0  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 80039B94 000357F4  D0 1D 0D 80 */	stfs f0, 0xd80(r29)
lbl_80039B98:
/* 80039B98 000357F8  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80039B9C 000357FC  7F A3 EB 78 */	mr r3, r29
/* 80039BA0 00035800  38 80 00 08 */	li r4, 8
/* 80039BA4 00035804  4B FF F6 5D */	bl func_80039200
/* 80039BA8 00035808  48 00 00 38 */	b lbl_80039BE0
lbl_80039BAC:
/* 80039BAC 0003580C  2C 1E 00 00 */	cmpwi r30, 0
/* 80039BB0 00035810  41 82 00 18 */	beq lbl_80039BC8
/* 80039BB4 00035814  C0 22 82 98 */	lfs f1, lbl_80640898-_SDA2_BASE_(r2)
/* 80039BB8 00035818  C0 1D 0D 78 */	lfs f0, 0xd78(r29)
/* 80039BBC 0003581C  EC 01 00 32 */	fmuls f0, f1, f0
/* 80039BC0 00035820  D0 1D 0D 80 */	stfs f0, 0xd80(r29)
/* 80039BC4 00035824  48 00 00 0C */	b lbl_80039BD0
lbl_80039BC8:
/* 80039BC8 00035828  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 80039BCC 0003582C  D0 1D 0D 80 */	stfs f0, 0xd80(r29)
lbl_80039BD0:
/* 80039BD0 00035830  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80039BD4 00035834  7F A3 EB 78 */	mr r3, r29
/* 80039BD8 00035838  38 80 00 08 */	li r4, 8
/* 80039BDC 0003583C  4B FF F6 25 */	bl func_80039200
lbl_80039BE0:
/* 80039BE0 00035840  80 1D 00 00 */	lwz r0, 0(r29)
/* 80039BE4 00035844  64 00 00 20 */	oris r0, r0, 0x20
/* 80039BE8 00035848  90 1D 00 00 */	stw r0, 0(r29)
lbl_80039BEC:
/* 80039BEC 0003584C  E3 E1 00 38 */	psq_l f31, 56(r1), 0, qr0
/* 80039BF0 00035850  80 01 00 44 */	lwz r0, 0x44(r1)
/* 80039BF4 00035854  CB E1 00 30 */	lfd f31, 0x30(r1)
/* 80039BF8 00035858  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 80039BFC 0003585C  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 80039C00 00035860  83 A1 00 24 */	lwz r29, 0x24(r1)
/* 80039C04 00035864  7C 08 03 A6 */	mtlr r0
/* 80039C08 00035868  38 21 00 40 */	addi r1, r1, 0x40
/* 80039C0C 0003586C  4E 80 00 20 */	blr

.global func_80039C10
func_80039C10:
/* 80039C10 00035870  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80039C14 00035874  7C 08 02 A6 */	mflr r0
/* 80039C18 00035878  90 01 00 24 */	stw r0, 0x24(r1)
/* 80039C1C 0003587C  DB E1 00 10 */	stfd f31, 0x10(r1)
/* 80039C20 00035880  F3 E1 00 18 */	psq_st f31, 24(r1), 0, qr0
/* 80039C24 00035884  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80039C28 00035888  93 C1 00 08 */	stw r30, 8(r1)
/* 80039C2C 0003588C  7C 7E 1B 78 */	mr r30, r3
/* 80039C30 00035890  80 03 00 00 */	lwz r0, 0(r3)
/* 80039C34 00035894  54 00 04 E7 */	rlwinm. r0, r0, 0, 0x13, 0x13
/* 80039C38 00035898  41 82 00 80 */	beq lbl_80039CB8
/* 80039C3C 0003589C  38 80 00 00 */	li r4, 0
/* 80039C40 000358A0  48 00 26 1D */	bl func_8003C25C
/* 80039C44 000358A4  54 7F 04 3E */	clrlwi r31, r3, 0x10
/* 80039C48 000358A8  7F C3 F3 78 */	mr r3, r30
/* 80039C4C 000358AC  38 80 00 0A */	li r4, 0xa
/* 80039C50 000358B0  48 00 26 0D */	bl func_8003C25C
/* 80039C54 000358B4  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 80039C58 000358B8  7C 00 F8 40 */	cmplw r0, r31
/* 80039C5C 000358BC  41 82 00 48 */	beq lbl_80039CA4
/* 80039C60 000358C0  7F C3 F3 78 */	mr r3, r30
/* 80039C64 000358C4  38 80 00 0A */	li r4, 0xa
/* 80039C68 000358C8  38 A0 00 02 */	li r5, 2
/* 80039C6C 000358CC  48 00 01 55 */	bl func_80039DC0
/* 80039C70 000358D0  FF E0 08 90 */	fmr f31, f1
/* 80039C74 000358D4  D0 3E 0D 80 */	stfs f1, 0xd80(r30)
/* 80039C78 000358D8  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80039C7C 000358DC  7F C3 F3 78 */	mr r3, r30
/* 80039C80 000358E0  38 80 00 0A */	li r4, 0xa
/* 80039C84 000358E4  4B FF F5 7D */	bl func_80039200
/* 80039C88 000358E8  FC 40 F8 90 */	fmr f2, f31
/* 80039C8C 000358EC  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80039C90 000358F0  7F C3 F3 78 */	mr r3, r30
/* 80039C94 000358F4  38 80 FF FF */	li r4, -1
/* 80039C98 000358F8  38 A0 00 00 */	li r5, 0
/* 80039C9C 000358FC  48 00 10 01 */	bl func_8003AC9C
/* 80039CA0 00035900  48 00 00 24 */	b lbl_80039CC4
lbl_80039CA4:
/* 80039CA4 00035904  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80039CA8 00035908  7F C3 F3 78 */	mr r3, r30
/* 80039CAC 0003590C  38 80 00 00 */	li r4, 0
/* 80039CB0 00035910  4B FF F5 51 */	bl func_80039200
/* 80039CB4 00035914  48 00 00 10 */	b lbl_80039CC4
lbl_80039CB8:
/* 80039CB8 00035918  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80039CBC 0003591C  38 80 00 00 */	li r4, 0
/* 80039CC0 00035920  4B FF F5 41 */	bl func_80039200
lbl_80039CC4:
/* 80039CC4 00035924  80 1E 00 00 */	lwz r0, 0(r30)
/* 80039CC8 00035928  54 00 02 D2 */	rlwinm r0, r0, 0, 0xb, 9
/* 80039CCC 0003592C  90 1E 00 00 */	stw r0, 0(r30)
/* 80039CD0 00035930  E3 E1 00 18 */	psq_l f31, 24(r1), 0, qr0
/* 80039CD4 00035934  CB E1 00 10 */	lfd f31, 0x10(r1)
/* 80039CD8 00035938  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80039CDC 0003593C  83 C1 00 08 */	lwz r30, 8(r1)
/* 80039CE0 00035940  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80039CE4 00035944  7C 08 03 A6 */	mtlr r0
/* 80039CE8 00035948  38 21 00 20 */	addi r1, r1, 0x20
/* 80039CEC 0003594C  4E 80 00 20 */	blr

.global func_80039CF0
func_80039CF0:
/* 80039CF0 00035950  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80039CF4 00035954  7C 08 02 A6 */	mflr r0
/* 80039CF8 00035958  90 01 00 14 */	stw r0, 0x14(r1)
/* 80039CFC 0003595C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80039D00 00035960  7C BF 2B 78 */	mr r31, r5
/* 80039D04 00035964  93 C1 00 08 */	stw r30, 8(r1)
/* 80039D08 00035968  7C 7E 1B 78 */	mr r30, r3
/* 80039D0C 0003596C  4B FF F9 71 */	bl func_8003967C
/* 80039D10 00035970  2C 03 00 00 */	cmpwi r3, 0
/* 80039D14 00035974  41 82 00 90 */	beq lbl_80039DA4
/* 80039D18 00035978  80 1E 0C 04 */	lwz r0, 0xc04(r30)
/* 80039D1C 0003597C  2C 00 00 00 */	cmpwi r0, 0
/* 80039D20 00035980  41 82 00 84 */	beq lbl_80039DA4
/* 80039D24 00035984  88 83 00 00 */	lbz r4, 0(r3)
/* 80039D28 00035988  7F C3 F3 78 */	mr r3, r30
/* 80039D2C 0003598C  7C 84 07 74 */	extsb r4, r4
/* 80039D30 00035990  54 84 04 3E */	clrlwi r4, r4, 0x10
/* 80039D34 00035994  48 00 25 29 */	bl func_8003C25C
/* 80039D38 00035998  80 9E 0C 04 */	lwz r4, 0xc04(r30)
/* 80039D3C 0003599C  80 84 00 04 */	lwz r4, 4(r4)
/* 80039D40 000359A0  2C 04 00 00 */	cmpwi r4, 0
/* 80039D44 000359A4  40 82 00 0C */	bne lbl_80039D50
/* 80039D48 000359A8  38 60 00 00 */	li r3, 0
/* 80039D4C 000359AC  48 00 00 28 */	b lbl_80039D74
lbl_80039D50:
/* 80039D50 000359B0  A0 04 00 08 */	lhz r0, 8(r4)
/* 80039D54 000359B4  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 80039D58 000359B8  7C 03 00 40 */	cmplw r3, r0
/* 80039D5C 000359BC  41 80 00 0C */	blt lbl_80039D68
/* 80039D60 000359C0  38 60 00 00 */	li r3, 0
/* 80039D64 000359C4  48 00 00 10 */	b lbl_80039D74
lbl_80039D68:
/* 80039D68 000359C8  1C 03 00 30 */	mulli r0, r3, 0x30
/* 80039D6C 000359CC  80 64 00 0C */	lwz r3, 0xc(r4)
/* 80039D70 000359D0  7C 63 02 14 */	add r3, r3, r0
lbl_80039D74:
/* 80039D74 000359D4  2C 03 00 00 */	cmpwi r3, 0
/* 80039D78 000359D8  41 82 00 2C */	beq lbl_80039DA4
/* 80039D7C 000359DC  2C 1F 00 00 */	cmpwi r31, 0
/* 80039D80 000359E0  40 80 00 0C */	bge lbl_80039D8C
/* 80039D84 000359E4  C0 23 00 0C */	lfs f1, 0xc(r3)
/* 80039D88 000359E8  48 00 00 20 */	b lbl_80039DA8
lbl_80039D8C:
/* 80039D8C 000359EC  2C 1F 00 03 */	cmpwi r31, 3
/* 80039D90 000359F0  40 80 00 14 */	bge lbl_80039DA4
/* 80039D94 000359F4  57 E0 10 3A */	slwi r0, r31, 2
/* 80039D98 000359F8  7C 63 02 14 */	add r3, r3, r0
/* 80039D9C 000359FC  C0 23 00 04 */	lfs f1, 4(r3)
/* 80039DA0 00035A00  48 00 00 08 */	b lbl_80039DA8
lbl_80039DA4:
/* 80039DA4 00035A04  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
lbl_80039DA8:
/* 80039DA8 00035A08  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80039DAC 00035A0C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80039DB0 00035A10  83 C1 00 08 */	lwz r30, 8(r1)
/* 80039DB4 00035A14  7C 08 03 A6 */	mtlr r0
/* 80039DB8 00035A18  38 21 00 10 */	addi r1, r1, 0x10
/* 80039DBC 00035A1C  4E 80 00 20 */	blr

.global func_80039DC0
func_80039DC0:
/* 80039DC0 00035A20  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80039DC4 00035A24  7C 08 02 A6 */	mflr r0
/* 80039DC8 00035A28  90 01 00 14 */	stw r0, 0x14(r1)
/* 80039DCC 00035A2C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80039DD0 00035A30  7C BF 2B 78 */	mr r31, r5
/* 80039DD4 00035A34  93 C1 00 08 */	stw r30, 8(r1)
/* 80039DD8 00035A38  7C 7E 1B 78 */	mr r30, r3
/* 80039DDC 00035A3C  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 80039DE0 00035A40  2C 00 00 00 */	cmpwi r0, 0
/* 80039DE4 00035A44  40 82 00 0C */	bne lbl_80039DF0
/* 80039DE8 00035A48  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80039DEC 00035A4C  48 00 00 7C */	b lbl_80039E68
lbl_80039DF0:
/* 80039DF0 00035A50  54 84 04 3E */	clrlwi r4, r4, 0x10
/* 80039DF4 00035A54  48 00 24 69 */	bl func_8003C25C
/* 80039DF8 00035A58  80 9E 0C 04 */	lwz r4, 0xc04(r30)
/* 80039DFC 00035A5C  80 84 00 04 */	lwz r4, 4(r4)
/* 80039E00 00035A60  2C 04 00 00 */	cmpwi r4, 0
/* 80039E04 00035A64  40 82 00 0C */	bne lbl_80039E10
/* 80039E08 00035A68  38 60 00 00 */	li r3, 0
/* 80039E0C 00035A6C  48 00 00 28 */	b lbl_80039E34
lbl_80039E10:
/* 80039E10 00035A70  A0 04 00 08 */	lhz r0, 8(r4)
/* 80039E14 00035A74  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 80039E18 00035A78  7C 03 00 40 */	cmplw r3, r0
/* 80039E1C 00035A7C  41 80 00 0C */	blt lbl_80039E28
/* 80039E20 00035A80  38 60 00 00 */	li r3, 0
/* 80039E24 00035A84  48 00 00 10 */	b lbl_80039E34
lbl_80039E28:
/* 80039E28 00035A88  1C 03 00 30 */	mulli r0, r3, 0x30
/* 80039E2C 00035A8C  80 64 00 0C */	lwz r3, 0xc(r4)
/* 80039E30 00035A90  7C 63 02 14 */	add r3, r3, r0
lbl_80039E34:
/* 80039E34 00035A94  2C 03 00 00 */	cmpwi r3, 0
/* 80039E38 00035A98  41 82 00 2C */	beq lbl_80039E64
/* 80039E3C 00035A9C  2C 1F 00 00 */	cmpwi r31, 0
/* 80039E40 00035AA0  40 80 00 0C */	bge lbl_80039E4C
/* 80039E44 00035AA4  C0 23 00 0C */	lfs f1, 0xc(r3)
/* 80039E48 00035AA8  48 00 00 20 */	b lbl_80039E68
lbl_80039E4C:
/* 80039E4C 00035AAC  2C 1F 00 03 */	cmpwi r31, 3
/* 80039E50 00035AB0  40 80 00 14 */	bge lbl_80039E64
/* 80039E54 00035AB4  57 E0 10 3A */	slwi r0, r31, 2
/* 80039E58 00035AB8  7C 63 02 14 */	add r3, r3, r0
/* 80039E5C 00035ABC  C0 23 00 04 */	lfs f1, 4(r3)
/* 80039E60 00035AC0  48 00 00 08 */	b lbl_80039E68
lbl_80039E64:
/* 80039E64 00035AC4  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
lbl_80039E68:
/* 80039E68 00035AC8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80039E6C 00035ACC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80039E70 00035AD0  83 C1 00 08 */	lwz r30, 8(r1)
/* 80039E74 00035AD4  7C 08 03 A6 */	mtlr r0
/* 80039E78 00035AD8  38 21 00 10 */	addi r1, r1, 0x10
/* 80039E7C 00035ADC  4E 80 00 20 */	blr

.global func_80039E80
func_80039E80:
/* 80039E80 00035AE0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80039E84 00035AE4  7C 08 02 A6 */	mflr r0
/* 80039E88 00035AE8  2C 05 00 00 */	cmpwi r5, 0
/* 80039E8C 00035AEC  90 01 00 14 */	stw r0, 0x14(r1)
/* 80039E90 00035AF0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80039E94 00035AF4  7C BF 2B 78 */	mr r31, r5
/* 80039E98 00035AF8  93 C1 00 08 */	stw r30, 8(r1)
/* 80039E9C 00035AFC  7C 7E 1B 78 */	mr r30, r3
/* 80039EA0 00035B00  40 82 00 0C */	bne lbl_80039EAC
/* 80039EA4 00035B04  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80039EA8 00035B08  48 00 00 84 */	b lbl_80039F2C
lbl_80039EAC:
/* 80039EAC 00035B0C  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 80039EB0 00035B10  2C 00 00 00 */	cmpwi r0, 0
/* 80039EB4 00035B14  41 82 00 74 */	beq lbl_80039F28
/* 80039EB8 00035B18  48 00 23 A5 */	bl func_8003C25C
/* 80039EBC 00035B1C  80 9E 0C 04 */	lwz r4, 0xc04(r30)
/* 80039EC0 00035B20  80 84 00 04 */	lwz r4, 4(r4)
/* 80039EC4 00035B24  2C 04 00 00 */	cmpwi r4, 0
/* 80039EC8 00035B28  40 82 00 0C */	bne lbl_80039ED4
/* 80039ECC 00035B2C  38 60 00 00 */	li r3, 0
/* 80039ED0 00035B30  48 00 00 28 */	b lbl_80039EF8
lbl_80039ED4:
/* 80039ED4 00035B34  A0 04 00 08 */	lhz r0, 8(r4)
/* 80039ED8 00035B38  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 80039EDC 00035B3C  7C 03 00 40 */	cmplw r3, r0
/* 80039EE0 00035B40  41 80 00 0C */	blt lbl_80039EEC
/* 80039EE4 00035B44  38 60 00 00 */	li r3, 0
/* 80039EE8 00035B48  48 00 00 10 */	b lbl_80039EF8
lbl_80039EEC:
/* 80039EEC 00035B4C  1C 03 00 30 */	mulli r0, r3, 0x30
/* 80039EF0 00035B50  80 64 00 0C */	lwz r3, 0xc(r4)
/* 80039EF4 00035B54  7C 63 02 14 */	add r3, r3, r0
lbl_80039EF8:
/* 80039EF8 00035B58  2C 03 00 00 */	cmpwi r3, 0
/* 80039EFC 00035B5C  41 82 00 2C */	beq lbl_80039F28
/* 80039F00 00035B60  34 1F FF FF */	addic. r0, r31, -1
/* 80039F04 00035B64  41 80 00 0C */	blt lbl_80039F10
/* 80039F08 00035B68  2C 00 00 03 */	cmpwi r0, 3
/* 80039F0C 00035B6C  41 80 00 0C */	blt lbl_80039F18
lbl_80039F10:
/* 80039F10 00035B70  C0 23 00 0C */	lfs f1, 0xc(r3)
/* 80039F14 00035B74  48 00 00 18 */	b lbl_80039F2C
lbl_80039F18:
/* 80039F18 00035B78  54 00 10 3A */	slwi r0, r0, 2
/* 80039F1C 00035B7C  7C 63 02 14 */	add r3, r3, r0
/* 80039F20 00035B80  C0 23 00 04 */	lfs f1, 4(r3)
/* 80039F24 00035B84  48 00 00 08 */	b lbl_80039F2C
lbl_80039F28:
/* 80039F28 00035B88  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
lbl_80039F2C:
/* 80039F2C 00035B8C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80039F30 00035B90  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80039F34 00035B94  83 C1 00 08 */	lwz r30, 8(r1)
/* 80039F38 00035B98  7C 08 03 A6 */	mtlr r0
/* 80039F3C 00035B9C  38 21 00 10 */	addi r1, r1, 0x10
/* 80039F40 00035BA0  4E 80 00 20 */	blr

.global func_80039F44
func_80039F44:
/* 80039F44 00035BA4  80 63 0C 04 */	lwz r3, 0xc04(r3)
/* 80039F48 00035BA8  2C 03 00 00 */	cmpwi r3, 0
/* 80039F4C 00035BAC  40 82 00 0C */	bne lbl_80039F58
/* 80039F50 00035BB0  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 80039F54 00035BB4  4E 80 00 20 */	blr
lbl_80039F58:
/* 80039F58 00035BB8  48 1B BB EC */	b func_801F5B44
/* 80039F5C 00035BBC  4E 80 00 20 */	blr

.global func_80039F60
func_80039F60:
/* 80039F60 00035BC0  94 21 FF A0 */	stwu r1, -0x60(r1)
/* 80039F64 00035BC4  7C 08 02 A6 */	mflr r0
/* 80039F68 00035BC8  90 01 00 64 */	stw r0, 0x64(r1)
/* 80039F6C 00035BCC  DB E1 00 50 */	stfd f31, 0x50(r1)
/* 80039F70 00035BD0  F3 E1 00 58 */	psq_st f31, 88(r1), 0, qr0
/* 80039F74 00035BD4  DB C1 00 40 */	stfd f30, 0x40(r1)
/* 80039F78 00035BD8  F3 C1 00 48 */	psq_st f30, 72(r1), 0, qr0
/* 80039F7C 00035BDC  39 61 00 40 */	addi r11, r1, 0x40
/* 80039F80 00035BE0  48 18 D1 A5 */	bl _savegpr_26
/* 80039F84 00035BE4  80 04 0C 04 */	lwz r0, 0xc04(r4)
/* 80039F88 00035BE8  FF C0 08 90 */	fmr f30, f1
/* 80039F8C 00035BEC  FF E0 10 90 */	fmr f31, f2
/* 80039F90 00035BF0  7C 7E 1B 78 */	mr r30, r3
/* 80039F94 00035BF4  2C 00 00 00 */	cmpwi r0, 0
/* 80039F98 00035BF8  7C 9F 23 78 */	mr r31, r4
/* 80039F9C 00035BFC  7C DB 33 78 */	mr r27, r6
/* 80039FA0 00035C00  7C FA 3B 78 */	mr r26, r7
/* 80039FA4 00035C04  40 82 00 18 */	bne lbl_80039FBC
/* 80039FA8 00035C08  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 80039FAC 00035C0C  D0 03 00 00 */	stfs f0, 0(r3)
/* 80039FB0 00035C10  D0 03 00 04 */	stfs f0, 4(r3)
/* 80039FB4 00035C14  D0 03 00 08 */	stfs f0, 8(r3)
/* 80039FB8 00035C18  48 00 02 04 */	b lbl_8003A1BC
lbl_80039FBC:
/* 80039FBC 00035C1C  7F E3 FB 78 */	mr r3, r31
/* 80039FC0 00035C20  7C A4 2B 78 */	mr r4, r5
/* 80039FC4 00035C24  4B FF F6 B9 */	bl func_8003967C
/* 80039FC8 00035C28  2C 03 00 00 */	cmpwi r3, 0
/* 80039FCC 00035C2C  40 82 00 18 */	bne lbl_80039FE4
/* 80039FD0 00035C30  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 80039FD4 00035C34  D0 1E 00 00 */	stfs f0, 0(r30)
/* 80039FD8 00035C38  D0 1E 00 04 */	stfs f0, 4(r30)
/* 80039FDC 00035C3C  D0 1E 00 08 */	stfs f0, 8(r30)
/* 80039FE0 00035C40  48 00 01 DC */	b lbl_8003A1BC
lbl_80039FE4:
/* 80039FE4 00035C44  88 83 00 00 */	lbz r4, 0(r3)
/* 80039FE8 00035C48  7F E3 FB 78 */	mr r3, r31
/* 80039FEC 00035C4C  7C 84 07 74 */	extsb r4, r4
/* 80039FF0 00035C50  54 84 04 3E */	clrlwi r4, r4, 0x10
/* 80039FF4 00035C54  48 00 22 69 */	bl func_8003C25C
/* 80039FF8 00035C58  80 9F 0C 04 */	lwz r4, 0xc04(r31)
/* 80039FFC 00035C5C  7C 7D 1B 78 */	mr r29, r3
/* 8003A000 00035C60  80 64 00 08 */	lwz r3, 8(r4)
/* 8003A004 00035C64  2C 03 00 00 */	cmpwi r3, 0
/* 8003A008 00035C68  40 82 00 0C */	bne lbl_8003A014
/* 8003A00C 00035C6C  3B 80 00 00 */	li r28, 0
/* 8003A010 00035C70  48 00 00 1C */	b lbl_8003A02C
lbl_8003A014:
/* 8003A014 00035C74  A0 04 00 DE */	lhz r0, 0xde(r4)
/* 8003A018 00035C78  2C 00 00 00 */	cmpwi r0, 0
/* 8003A01C 00035C7C  40 82 00 0C */	bne lbl_8003A028
/* 8003A020 00035C80  3B 80 00 00 */	li r28, 0
/* 8003A024 00035C84  48 00 00 08 */	b lbl_8003A02C
lbl_8003A028:
/* 8003A028 00035C88  83 83 00 00 */	lwz r28, 0(r3)
lbl_8003A02C:
/* 8003A02C 00035C8C  7F E3 FB 78 */	mr r3, r31
/* 8003A030 00035C90  7F 64 DB 78 */	mr r4, r27
/* 8003A034 00035C94  4B FF F8 05 */	bl func_80039838
/* 8003A038 00035C98  80 9F 0C 04 */	lwz r4, 0xc04(r31)
/* 8003A03C 00035C9C  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 8003A040 00035CA0  80 A4 00 08 */	lwz r5, 8(r4)
/* 8003A044 00035CA4  2C 05 00 00 */	cmpwi r5, 0
/* 8003A048 00035CA8  40 82 00 0C */	bne lbl_8003A054
/* 8003A04C 00035CAC  3B 60 00 00 */	li r27, 0
/* 8003A050 00035CB0  48 00 00 20 */	b lbl_8003A070
lbl_8003A054:
/* 8003A054 00035CB4  A0 04 00 DE */	lhz r0, 0xde(r4)
/* 8003A058 00035CB8  7C 03 00 40 */	cmplw r3, r0
/* 8003A05C 00035CBC  41 80 00 0C */	blt lbl_8003A068
/* 8003A060 00035CC0  3B 60 00 00 */	li r27, 0
/* 8003A064 00035CC4  48 00 00 0C */	b lbl_8003A070
lbl_8003A068:
/* 8003A068 00035CC8  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 8003A06C 00035CCC  7F 65 00 2E */	lwzx r27, r5, r0
lbl_8003A070:
/* 8003A070 00035CD0  7F E3 FB 78 */	mr r3, r31
/* 8003A074 00035CD4  7F 44 D3 78 */	mr r4, r26
/* 8003A078 00035CD8  4B FF F7 C1 */	bl func_80039838
/* 8003A07C 00035CDC  80 BF 0C 04 */	lwz r5, 0xc04(r31)
/* 8003A080 00035CE0  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 8003A084 00035CE4  80 85 00 08 */	lwz r4, 8(r5)
/* 8003A088 00035CE8  2C 04 00 00 */	cmpwi r4, 0
/* 8003A08C 00035CEC  40 82 00 0C */	bne lbl_8003A098
/* 8003A090 00035CF0  3B 40 00 00 */	li r26, 0
/* 8003A094 00035CF4  48 00 00 20 */	b lbl_8003A0B4
lbl_8003A098:
/* 8003A098 00035CF8  A0 05 00 DE */	lhz r0, 0xde(r5)
/* 8003A09C 00035CFC  7C 03 00 40 */	cmplw r3, r0
/* 8003A0A0 00035D00  41 80 00 0C */	blt lbl_8003A0AC
/* 8003A0A4 00035D04  3B 40 00 00 */	li r26, 0
/* 8003A0A8 00035D08  48 00 00 0C */	b lbl_8003A0B4
lbl_8003A0AC:
/* 8003A0AC 00035D0C  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 8003A0B0 00035D10  7F 44 00 2E */	lwzx r26, r4, r0
lbl_8003A0B4:
/* 8003A0B4 00035D14  2C 1C 00 00 */	cmpwi r28, 0
/* 8003A0B8 00035D18  41 82 00 14 */	beq lbl_8003A0CC
/* 8003A0BC 00035D1C  2C 1B 00 00 */	cmpwi r27, 0
/* 8003A0C0 00035D20  41 82 00 0C */	beq lbl_8003A0CC
/* 8003A0C4 00035D24  2C 1A 00 00 */	cmpwi r26, 0
/* 8003A0C8 00035D28  40 82 00 18 */	bne lbl_8003A0E0
lbl_8003A0CC:
/* 8003A0CC 00035D2C  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A0D0 00035D30  D0 1E 00 00 */	stfs f0, 0(r30)
/* 8003A0D4 00035D34  D0 1E 00 04 */	stfs f0, 4(r30)
/* 8003A0D8 00035D38  D0 1E 00 08 */	stfs f0, 8(r30)
/* 8003A0DC 00035D3C  48 00 00 E0 */	b lbl_8003A1BC
lbl_8003A0E0:
/* 8003A0E0 00035D40  FC 20 F0 90 */	fmr f1, f30
/* 8003A0E4 00035D44  7C A3 2B 78 */	mr r3, r5
/* 8003A0E8 00035D48  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003A0EC 00035D4C  57 A4 04 3E */	clrlwi r4, r29, 0x10
/* 8003A0F0 00035D50  38 A0 00 00 */	li r5, 0
/* 8003A0F4 00035D54  38 C0 00 00 */	li r6, 0
/* 8003A0F8 00035D58  38 E0 00 00 */	li r7, 0
/* 8003A0FC 00035D5C  39 00 00 00 */	li r8, 0
/* 8003A100 00035D60  48 1B AC F5 */	bl func_801F4DF4
/* 8003A104 00035D64  81 9C 01 00 */	lwz r12, 0x100(r28)
/* 8003A108 00035D68  7F 83 E3 78 */	mr r3, r28
/* 8003A10C 00035D6C  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A110 00035D70  81 8C 00 0C */	lwz r12, 0xc(r12)
/* 8003A114 00035D74  7D 89 03 A6 */	mtctr r12
/* 8003A118 00035D78  4E 80 04 21 */	bctrl
/* 8003A11C 00035D7C  C0 1B 00 DC */	lfs f0, 0xdc(r27)
/* 8003A120 00035D80  FC 20 F8 90 */	fmr f1, f31
/* 8003A124 00035D84  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003A128 00035D88  57 A4 04 3E */	clrlwi r4, r29, 0x10
/* 8003A12C 00035D8C  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 8003A130 00035D90  38 A0 00 00 */	li r5, 0
/* 8003A134 00035D94  38 C0 00 00 */	li r6, 0
/* 8003A138 00035D98  C0 1B 00 EC */	lfs f0, 0xec(r27)
/* 8003A13C 00035D9C  38 E0 00 00 */	li r7, 0
/* 8003A140 00035DA0  39 00 00 00 */	li r8, 0
/* 8003A144 00035DA4  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 8003A148 00035DA8  C0 1B 00 FC */	lfs f0, 0xfc(r27)
/* 8003A14C 00035DAC  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 8003A150 00035DB0  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 8003A154 00035DB4  48 1B AC A1 */	bl func_801F4DF4
/* 8003A158 00035DB8  81 9C 01 00 */	lwz r12, 0x100(r28)
/* 8003A15C 00035DBC  7F 83 E3 78 */	mr r3, r28
/* 8003A160 00035DC0  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A164 00035DC4  81 8C 00 0C */	lwz r12, 0xc(r12)
/* 8003A168 00035DC8  7D 89 03 A6 */	mtctr r12
/* 8003A16C 00035DCC  4E 80 04 21 */	bctrl
/* 8003A170 00035DD0  C0 1A 00 DC */	lfs f0, 0xdc(r26)
/* 8003A174 00035DD4  38 80 00 00 */	li r4, 0
/* 8003A178 00035DD8  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A17C 00035DDC  38 A0 00 01 */	li r5, 1
/* 8003A180 00035DE0  D0 01 00 08 */	stfs f0, 8(r1)
/* 8003A184 00035DE4  38 C0 00 00 */	li r6, 0
/* 8003A188 00035DE8  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003A18C 00035DEC  38 E0 00 00 */	li r7, 0
/* 8003A190 00035DF0  C0 1A 00 EC */	lfs f0, 0xec(r26)
/* 8003A194 00035DF4  39 00 00 00 */	li r8, 0
/* 8003A198 00035DF8  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 8003A19C 00035DFC  C0 1A 00 FC */	lfs f0, 0xfc(r26)
/* 8003A1A0 00035E00  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 8003A1A4 00035E04  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 8003A1A8 00035E08  48 1B AC 4D */	bl func_801F4DF4
/* 8003A1AC 00035E0C  7F C5 F3 78 */	mr r5, r30
/* 8003A1B0 00035E10  38 61 00 08 */	addi r3, r1, 8
/* 8003A1B4 00035E14  38 81 00 14 */	addi r4, r1, 0x14
/* 8003A1B8 00035E18  48 24 2B 31 */	bl PSVECSubtract
lbl_8003A1BC:
/* 8003A1BC 00035E1C  E3 E1 00 58 */	psq_l f31, 88(r1), 0, qr0
/* 8003A1C0 00035E20  CB E1 00 50 */	lfd f31, 0x50(r1)
/* 8003A1C4 00035E24  E3 C1 00 48 */	psq_l f30, 72(r1), 0, qr0
/* 8003A1C8 00035E28  39 61 00 40 */	addi r11, r1, 0x40
/* 8003A1CC 00035E2C  CB C1 00 40 */	lfd f30, 0x40(r1)
/* 8003A1D0 00035E30  48 18 CF A1 */	bl _restgpr_26
/* 8003A1D4 00035E34  80 01 00 64 */	lwz r0, 0x64(r1)
/* 8003A1D8 00035E38  7C 08 03 A6 */	mtlr r0
/* 8003A1DC 00035E3C  38 21 00 60 */	addi r1, r1, 0x60
/* 8003A1E0 00035E40  4E 80 00 20 */	blr

.global func_8003A1E4
func_8003A1E4:
/* 8003A1E4 00035E44  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003A1E8 00035E48  7C 08 02 A6 */	mflr r0
/* 8003A1EC 00035E4C  7C 88 23 78 */	mr r8, r4
/* 8003A1F0 00035E50  7C 64 1B 78 */	mr r4, r3
/* 8003A1F4 00035E54  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003A1F8 00035E58  7C A0 2B 78 */	mr r0, r5
/* 8003A1FC 00035E5C  7C C7 33 78 */	mr r7, r6
/* 8003A200 00035E60  7D 05 43 78 */	mr r5, r8
/* 8003A204 00035E64  7C 06 03 78 */	mr r6, r0
/* 8003A208 00035E68  38 61 00 08 */	addi r3, r1, 8
/* 8003A20C 00035E6C  4B FF FD 55 */	bl func_80039F60
/* 8003A210 00035E70  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A214 00035E74  38 61 00 08 */	addi r3, r1, 8
/* 8003A218 00035E78  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 8003A21C 00035E7C  48 24 2B 69 */	bl PSVECMag
/* 8003A220 00035E80  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003A224 00035E84  7C 08 03 A6 */	mtlr r0
/* 8003A228 00035E88  38 21 00 20 */	addi r1, r1, 0x20
/* 8003A22C 00035E8C  4E 80 00 20 */	blr

.global func_8003A230
func_8003A230:
/* 8003A230 00035E90  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003A234 00035E94  7C 08 02 A6 */	mflr r0
/* 8003A238 00035E98  7C 88 23 78 */	mr r8, r4
/* 8003A23C 00035E9C  7C 64 1B 78 */	mr r4, r3
/* 8003A240 00035EA0  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003A244 00035EA4  7C A0 2B 78 */	mr r0, r5
/* 8003A248 00035EA8  7C C7 33 78 */	mr r7, r6
/* 8003A24C 00035EAC  7D 05 43 78 */	mr r5, r8
/* 8003A250 00035EB0  7C 06 03 78 */	mr r6, r0
/* 8003A254 00035EB4  38 61 00 08 */	addi r3, r1, 8
/* 8003A258 00035EB8  4B FF FD 09 */	bl func_80039F60
/* 8003A25C 00035EBC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003A260 00035EC0  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 8003A264 00035EC4  7C 08 03 A6 */	mtlr r0
/* 8003A268 00035EC8  38 21 00 20 */	addi r1, r1, 0x20
/* 8003A26C 00035ECC  4E 80 00 20 */	blr

.global func_8003A270
func_8003A270:
/* 8003A270 00035ED0  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 8003A274 00035ED4  7C 08 02 A6 */	mflr r0
/* 8003A278 00035ED8  90 01 00 44 */	stw r0, 0x44(r1)
/* 8003A27C 00035EDC  DB E1 00 30 */	stfd f31, 0x30(r1)
/* 8003A280 00035EE0  F3 E1 00 38 */	psq_st f31, 56(r1), 0, qr0
/* 8003A284 00035EE4  39 61 00 30 */	addi r11, r1, 0x30
/* 8003A288 00035EE8  48 18 CE A1 */	bl _savegpr_27
/* 8003A28C 00035EEC  FF E0 08 90 */	fmr f31, f1
/* 8003A290 00035EF0  7C 9C 23 78 */	mr r28, r4
/* 8003A294 00035EF4  7C 7B 1B 78 */	mr r27, r3
/* 8003A298 00035EF8  7C A4 2B 78 */	mr r4, r5
/* 8003A29C 00035EFC  7C DD 33 78 */	mr r29, r6
/* 8003A2A0 00035F00  7F 83 E3 78 */	mr r3, r28
/* 8003A2A4 00035F04  4B FF F3 D9 */	bl func_8003967C
/* 8003A2A8 00035F08  2C 03 00 00 */	cmpwi r3, 0
/* 8003A2AC 00035F0C  41 82 00 10 */	beq lbl_8003A2BC
/* 8003A2B0 00035F10  80 1C 0C 04 */	lwz r0, 0xc04(r28)
/* 8003A2B4 00035F14  2C 00 00 00 */	cmpwi r0, 0
/* 8003A2B8 00035F18  40 82 00 18 */	bne lbl_8003A2D0
lbl_8003A2BC:
/* 8003A2BC 00035F1C  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A2C0 00035F20  D0 1B 00 00 */	stfs f0, 0(r27)
/* 8003A2C4 00035F24  D0 1B 00 04 */	stfs f0, 4(r27)
/* 8003A2C8 00035F28  D0 1B 00 08 */	stfs f0, 8(r27)
/* 8003A2CC 00035F2C  48 00 01 44 */	b lbl_8003A410
lbl_8003A2D0:
/* 8003A2D0 00035F30  88 83 00 00 */	lbz r4, 0(r3)
/* 8003A2D4 00035F34  7F 83 E3 78 */	mr r3, r28
/* 8003A2D8 00035F38  7C 84 07 74 */	extsb r4, r4
/* 8003A2DC 00035F3C  54 84 04 3E */	clrlwi r4, r4, 0x10
/* 8003A2E0 00035F40  48 00 1F 7D */	bl func_8003C25C
/* 8003A2E4 00035F44  80 9C 0C 04 */	lwz r4, 0xc04(r28)
/* 8003A2E8 00035F48  7C 7F 1B 78 */	mr r31, r3
/* 8003A2EC 00035F4C  80 64 00 08 */	lwz r3, 8(r4)
/* 8003A2F0 00035F50  2C 03 00 00 */	cmpwi r3, 0
/* 8003A2F4 00035F54  40 82 00 0C */	bne lbl_8003A300
/* 8003A2F8 00035F58  3B C0 00 00 */	li r30, 0
/* 8003A2FC 00035F5C  48 00 00 1C */	b lbl_8003A318
lbl_8003A300:
/* 8003A300 00035F60  A0 04 00 DE */	lhz r0, 0xde(r4)
/* 8003A304 00035F64  2C 00 00 00 */	cmpwi r0, 0
/* 8003A308 00035F68  40 82 00 0C */	bne lbl_8003A314
/* 8003A30C 00035F6C  3B C0 00 00 */	li r30, 0
/* 8003A310 00035F70  48 00 00 08 */	b lbl_8003A318
lbl_8003A314:
/* 8003A314 00035F74  83 C3 00 00 */	lwz r30, 0(r3)
lbl_8003A318:
/* 8003A318 00035F78  7F 83 E3 78 */	mr r3, r28
/* 8003A31C 00035F7C  7F A4 EB 78 */	mr r4, r29
/* 8003A320 00035F80  4B FF F5 19 */	bl func_80039838
/* 8003A324 00035F84  80 BC 0C 04 */	lwz r5, 0xc04(r28)
/* 8003A328 00035F88  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 8003A32C 00035F8C  80 85 00 08 */	lwz r4, 8(r5)
/* 8003A330 00035F90  2C 04 00 00 */	cmpwi r4, 0
/* 8003A334 00035F94  40 82 00 0C */	bne lbl_8003A340
/* 8003A338 00035F98  3B A0 00 00 */	li r29, 0
/* 8003A33C 00035F9C  48 00 00 20 */	b lbl_8003A35C
lbl_8003A340:
/* 8003A340 00035FA0  A0 05 00 DE */	lhz r0, 0xde(r5)
/* 8003A344 00035FA4  7C 03 00 40 */	cmplw r3, r0
/* 8003A348 00035FA8  41 80 00 0C */	blt lbl_8003A354
/* 8003A34C 00035FAC  3B A0 00 00 */	li r29, 0
/* 8003A350 00035FB0  48 00 00 0C */	b lbl_8003A35C
lbl_8003A354:
/* 8003A354 00035FB4  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 8003A358 00035FB8  7F A4 00 2E */	lwzx r29, r4, r0
lbl_8003A35C:
/* 8003A35C 00035FBC  2C 1E 00 00 */	cmpwi r30, 0
/* 8003A360 00035FC0  41 82 00 0C */	beq lbl_8003A36C
/* 8003A364 00035FC4  2C 1D 00 00 */	cmpwi r29, 0
/* 8003A368 00035FC8  40 82 00 18 */	bne lbl_8003A380
lbl_8003A36C:
/* 8003A36C 00035FCC  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A370 00035FD0  D0 1B 00 00 */	stfs f0, 0(r27)
/* 8003A374 00035FD4  D0 1B 00 04 */	stfs f0, 4(r27)
/* 8003A378 00035FD8  D0 1B 00 08 */	stfs f0, 8(r27)
/* 8003A37C 00035FDC  48 00 00 94 */	b lbl_8003A410
lbl_8003A380:
/* 8003A380 00035FE0  FC 20 F8 90 */	fmr f1, f31
/* 8003A384 00035FE4  7C A3 2B 78 */	mr r3, r5
/* 8003A388 00035FE8  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003A38C 00035FEC  57 E4 04 3E */	clrlwi r4, r31, 0x10
/* 8003A390 00035FF0  38 A0 00 00 */	li r5, 0
/* 8003A394 00035FF4  38 C0 00 00 */	li r6, 0
/* 8003A398 00035FF8  38 E0 00 00 */	li r7, 0
/* 8003A39C 00035FFC  39 00 00 00 */	li r8, 0
/* 8003A3A0 00036000  48 1B AA 55 */	bl func_801F4DF4
/* 8003A3A4 00036004  81 9E 01 00 */	lwz r12, 0x100(r30)
/* 8003A3A8 00036008  7F C3 F3 78 */	mr r3, r30
/* 8003A3AC 0003600C  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A3B0 00036010  81 8C 00 0C */	lwz r12, 0xc(r12)
/* 8003A3B4 00036014  7D 89 03 A6 */	mtctr r12
/* 8003A3B8 00036018  4E 80 04 21 */	bctrl
/* 8003A3BC 0003601C  C0 5D 00 DC */	lfs f2, 0xdc(r29)
/* 8003A3C0 00036020  38 80 00 00 */	li r4, 0
/* 8003A3C4 00036024  C0 3D 00 EC */	lfs f1, 0xec(r29)
/* 8003A3C8 00036028  38 A0 00 01 */	li r5, 1
/* 8003A3CC 0003602C  C0 1D 00 FC */	lfs f0, 0xfc(r29)
/* 8003A3D0 00036030  38 C0 00 00 */	li r6, 0
/* 8003A3D4 00036034  D0 41 00 08 */	stfs f2, 8(r1)
/* 8003A3D8 00036038  38 E0 00 00 */	li r7, 0
/* 8003A3DC 0003603C  80 7C 0C 04 */	lwz r3, 0xc04(r28)
/* 8003A3E0 00036040  39 00 00 00 */	li r8, 0
/* 8003A3E4 00036044  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 8003A3E8 00036048  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A3EC 0003604C  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 8003A3F0 00036050  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003A3F4 00036054  48 1B AA 01 */	bl func_801F4DF4
/* 8003A3F8 00036058  C0 41 00 08 */	lfs f2, 8(r1)
/* 8003A3FC 0003605C  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 8003A400 00036060  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 8003A404 00036064  D0 5B 00 00 */	stfs f2, 0(r27)
/* 8003A408 00036068  D0 3B 00 04 */	stfs f1, 4(r27)
/* 8003A40C 0003606C  D0 1B 00 08 */	stfs f0, 8(r27)
lbl_8003A410:
/* 8003A410 00036070  E3 E1 00 38 */	psq_l f31, 56(r1), 0, qr0
/* 8003A414 00036074  39 61 00 30 */	addi r11, r1, 0x30
/* 8003A418 00036078  CB E1 00 30 */	lfd f31, 0x30(r1)
/* 8003A41C 0003607C  48 18 CD 59 */	bl _restgpr_27
/* 8003A420 00036080  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8003A424 00036084  7C 08 03 A6 */	mtlr r0
/* 8003A428 00036088  38 21 00 40 */	addi r1, r1, 0x40
/* 8003A42C 0003608C  4E 80 00 20 */	blr

.global func_8003A430
func_8003A430:
/* 8003A430 00036090  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 8003A434 00036094  7C 08 02 A6 */	mflr r0
/* 8003A438 00036098  90 01 00 54 */	stw r0, 0x54(r1)
/* 8003A43C 0003609C  DB E1 00 40 */	stfd f31, 0x40(r1)
/* 8003A440 000360A0  F3 E1 00 48 */	psq_st f31, 72(r1), 0, qr0
/* 8003A444 000360A4  FF E0 08 90 */	fmr f31, f1
/* 8003A448 000360A8  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 8003A44C 000360AC  7C 9F 23 78 */	mr r31, r4
/* 8003A450 000360B0  7C A4 2B 78 */	mr r4, r5
/* 8003A454 000360B4  93 C1 00 38 */	stw r30, 0x38(r1)
/* 8003A458 000360B8  7C 7E 1B 78 */	mr r30, r3
/* 8003A45C 000360BC  7F E3 FB 78 */	mr r3, r31
/* 8003A460 000360C0  4B FF F2 1D */	bl func_8003967C
/* 8003A464 000360C4  2C 03 00 00 */	cmpwi r3, 0
/* 8003A468 000360C8  41 82 00 10 */	beq lbl_8003A478
/* 8003A46C 000360CC  80 1F 0C 04 */	lwz r0, 0xc04(r31)
/* 8003A470 000360D0  2C 00 00 00 */	cmpwi r0, 0
/* 8003A474 000360D4  40 82 00 18 */	bne lbl_8003A48C
lbl_8003A478:
/* 8003A478 000360D8  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A47C 000360DC  D0 1E 00 00 */	stfs f0, 0(r30)
/* 8003A480 000360E0  D0 1E 00 04 */	stfs f0, 4(r30)
/* 8003A484 000360E4  D0 1E 00 08 */	stfs f0, 8(r30)
/* 8003A488 000360E8  48 00 01 44 */	b lbl_8003A5CC
lbl_8003A48C:
/* 8003A48C 000360EC  88 83 00 00 */	lbz r4, 0(r3)
/* 8003A490 000360F0  7F E3 FB 78 */	mr r3, r31
/* 8003A494 000360F4  7C 84 07 74 */	extsb r4, r4
/* 8003A498 000360F8  54 84 04 3E */	clrlwi r4, r4, 0x10
/* 8003A49C 000360FC  48 00 1D C1 */	bl func_8003C25C
/* 8003A4A0 00036100  80 BF 0C 04 */	lwz r5, 0xc04(r31)
/* 8003A4A4 00036104  7C 64 1B 78 */	mr r4, r3
/* 8003A4A8 00036108  80 65 00 08 */	lwz r3, 8(r5)
/* 8003A4AC 0003610C  2C 03 00 00 */	cmpwi r3, 0
/* 8003A4B0 00036110  40 82 00 0C */	bne lbl_8003A4BC
/* 8003A4B4 00036114  38 00 00 00 */	li r0, 0
/* 8003A4B8 00036118  48 00 00 1C */	b lbl_8003A4D4
lbl_8003A4BC:
/* 8003A4BC 0003611C  A0 05 00 DE */	lhz r0, 0xde(r5)
/* 8003A4C0 00036120  2C 00 00 00 */	cmpwi r0, 0
/* 8003A4C4 00036124  40 82 00 0C */	bne lbl_8003A4D0
/* 8003A4C8 00036128  38 00 00 00 */	li r0, 0
/* 8003A4CC 0003612C  48 00 00 08 */	b lbl_8003A4D4
lbl_8003A4D0:
/* 8003A4D0 00036130  80 03 00 00 */	lwz r0, 0(r3)
lbl_8003A4D4:
/* 8003A4D4 00036134  2C 00 00 00 */	cmpwi r0, 0
/* 8003A4D8 00036138  40 82 00 18 */	bne lbl_8003A4F0
/* 8003A4DC 0003613C  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A4E0 00036140  D0 1E 00 00 */	stfs f0, 0(r30)
/* 8003A4E4 00036144  D0 1E 00 04 */	stfs f0, 4(r30)
/* 8003A4E8 00036148  D0 1E 00 08 */	stfs f0, 8(r30)
/* 8003A4EC 0003614C  48 00 00 E0 */	b lbl_8003A5CC
lbl_8003A4F0:
/* 8003A4F0 00036150  80 1F 00 00 */	lwz r0, 0(r31)
/* 8003A4F4 00036154  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8003A4F8 00036158  40 82 00 10 */	bne lbl_8003A508
/* 8003A4FC 0003615C  A0 05 00 DC */	lhz r0, 0xdc(r5)
/* 8003A500 00036160  60 00 00 01 */	ori r0, r0, 1
/* 8003A504 00036164  B0 05 00 DC */	sth r0, 0xdc(r5)
lbl_8003A508:
/* 8003A508 00036168  FC 20 F8 90 */	fmr f1, f31
/* 8003A50C 0003616C  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 8003A510 00036170  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003A514 00036174  54 84 04 3E */	clrlwi r4, r4, 0x10
/* 8003A518 00036178  38 A0 00 00 */	li r5, 0
/* 8003A51C 0003617C  38 C0 00 00 */	li r6, 0
/* 8003A520 00036180  38 E0 00 00 */	li r7, 0
/* 8003A524 00036184  39 00 00 00 */	li r8, 0
/* 8003A528 00036188  48 1B A8 CD */	bl func_801F4DF4
/* 8003A52C 0003618C  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 8003A530 00036190  38 80 00 01 */	li r4, 1
/* 8003A534 00036194  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A538 00036198  48 1B C3 11 */	bl func_801F6848
/* 8003A53C 0003619C  7F E4 FB 78 */	mr r4, r31
/* 8003A540 000361A0  38 61 00 08 */	addi r3, r1, 8
/* 8003A544 000361A4  48 00 11 B1 */	bl func_8003B6F4
/* 8003A548 000361A8  7F E4 FB 78 */	mr r4, r31
/* 8003A54C 000361AC  38 61 00 14 */	addi r3, r1, 0x14
/* 8003A550 000361B0  48 00 11 F5 */	bl func_8003B744
/* 8003A554 000361B4  38 61 00 14 */	addi r3, r1, 0x14
/* 8003A558 000361B8  38 81 00 08 */	addi r4, r1, 8
/* 8003A55C 000361BC  38 A1 00 20 */	addi r5, r1, 0x20
/* 8003A560 000361C0  48 24 27 89 */	bl PSVECSubtract
/* 8003A564 000361C4  80 1F 00 00 */	lwz r0, 0(r31)
/* 8003A568 000361C8  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8003A56C 000361CC  40 82 00 14 */	bne lbl_8003A580
/* 8003A570 000361D0  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 8003A574 000361D4  A0 03 00 DC */	lhz r0, 0xdc(r3)
/* 8003A578 000361D8  54 00 04 3C */	rlwinm r0, r0, 0, 0x10, 0x1e
/* 8003A57C 000361DC  B0 03 00 DC */	sth r0, 0xdc(r3)
lbl_8003A580:
/* 8003A580 000361E0  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 8003A584 000361E4  38 80 00 00 */	li r4, 0
/* 8003A588 000361E8  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A58C 000361EC  38 A0 00 01 */	li r5, 1
/* 8003A590 000361F0  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003A594 000361F4  38 C0 00 00 */	li r6, 0
/* 8003A598 000361F8  38 E0 00 00 */	li r7, 0
/* 8003A59C 000361FC  39 00 00 00 */	li r8, 0
/* 8003A5A0 00036200  48 1B A8 55 */	bl func_801F4DF4
/* 8003A5A4 00036204  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 8003A5A8 00036208  38 80 00 01 */	li r4, 1
/* 8003A5AC 0003620C  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A5B0 00036210  48 1B C2 99 */	bl func_801F6848
/* 8003A5B4 00036214  C0 01 00 20 */	lfs f0, 0x20(r1)
/* 8003A5B8 00036218  D0 1E 00 00 */	stfs f0, 0(r30)
/* 8003A5BC 0003621C  C0 01 00 24 */	lfs f0, 0x24(r1)
/* 8003A5C0 00036220  D0 1E 00 04 */	stfs f0, 4(r30)
/* 8003A5C4 00036224  C0 01 00 28 */	lfs f0, 0x28(r1)
/* 8003A5C8 00036228  D0 1E 00 08 */	stfs f0, 8(r30)
lbl_8003A5CC:
/* 8003A5CC 0003622C  E3 E1 00 48 */	psq_l f31, 72(r1), 0, qr0
/* 8003A5D0 00036230  80 01 00 54 */	lwz r0, 0x54(r1)
/* 8003A5D4 00036234  CB E1 00 40 */	lfd f31, 0x40(r1)
/* 8003A5D8 00036238  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 8003A5DC 0003623C  83 C1 00 38 */	lwz r30, 0x38(r1)
/* 8003A5E0 00036240  7C 08 03 A6 */	mtlr r0
/* 8003A5E4 00036244  38 21 00 50 */	addi r1, r1, 0x50
/* 8003A5E8 00036248  4E 80 00 20 */	blr

.global func_8003A5EC
func_8003A5EC:
/* 8003A5EC 0003624C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003A5F0 00036250  7C 08 02 A6 */	mflr r0
/* 8003A5F4 00036254  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003A5F8 00036258  DB E1 00 10 */	stfd f31, 0x10(r1)
/* 8003A5FC 0003625C  F3 E1 00 18 */	psq_st f31, 24(r1), 0, qr0
/* 8003A600 00036260  C3 E2 82 20 */	lfs f31, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A604 00036264  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003A608 00036268  7C 7F 1B 78 */	mr r31, r3
/* 8003A60C 0003626C  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 8003A610 00036270  2C 00 00 00 */	cmpwi r0, 0
/* 8003A614 00036274  40 82 00 0C */	bne lbl_8003A620
/* 8003A618 00036278  FC 20 F8 90 */	fmr f1, f31
/* 8003A61C 0003627C  48 00 00 90 */	b lbl_8003A6AC
lbl_8003A620:
/* 8003A620 00036280  2C 04 00 00 */	cmpwi r4, 0
/* 8003A624 00036284  40 82 00 0C */	bne lbl_8003A630
/* 8003A628 00036288  38 80 00 15 */	li r4, 0x15
/* 8003A62C 0003628C  48 00 00 1C */	b lbl_8003A648
lbl_8003A630:
/* 8003A630 00036290  2C 04 00 01 */	cmpwi r4, 1
/* 8003A634 00036294  40 82 00 0C */	bne lbl_8003A640
/* 8003A638 00036298  38 80 00 17 */	li r4, 0x17
/* 8003A63C 0003629C  48 00 00 0C */	b lbl_8003A648
lbl_8003A640:
/* 8003A640 000362A0  FC 20 F8 90 */	fmr f1, f31
/* 8003A644 000362A4  48 00 00 68 */	b lbl_8003A6AC
lbl_8003A648:
/* 8003A648 000362A8  7F E3 FB 78 */	mr r3, r31
/* 8003A64C 000362AC  4B FF F1 ED */	bl func_80039838
/* 8003A650 000362B0  80 9F 0C 04 */	lwz r4, 0xc04(r31)
/* 8003A654 000362B4  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 8003A658 000362B8  80 A4 00 08 */	lwz r5, 8(r4)
/* 8003A65C 000362BC  2C 05 00 00 */	cmpwi r5, 0
/* 8003A660 000362C0  40 82 00 0C */	bne lbl_8003A66C
/* 8003A664 000362C4  38 60 00 00 */	li r3, 0
/* 8003A668 000362C8  48 00 00 20 */	b lbl_8003A688
lbl_8003A66C:
/* 8003A66C 000362CC  A0 04 00 DE */	lhz r0, 0xde(r4)
/* 8003A670 000362D0  7C 03 00 40 */	cmplw r3, r0
/* 8003A674 000362D4  41 80 00 0C */	blt lbl_8003A680
/* 8003A678 000362D8  38 60 00 00 */	li r3, 0
/* 8003A67C 000362DC  48 00 00 0C */	b lbl_8003A688
lbl_8003A680:
/* 8003A680 000362E0  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 8003A684 000362E4  7C 65 00 2E */	lwzx r3, r5, r0
lbl_8003A688:
/* 8003A688 000362E8  2C 03 00 00 */	cmpwi r3, 0
/* 8003A68C 000362EC  41 82 00 1C */	beq lbl_8003A6A8
/* 8003A690 000362F0  80 63 00 1C */	lwz r3, 0x1c(r3)
/* 8003A694 000362F4  2C 03 00 00 */	cmpwi r3, 0
/* 8003A698 000362F8  41 82 00 0C */	beq lbl_8003A6A4
/* 8003A69C 000362FC  C3 E3 00 1C */	lfs f31, 0x1c(r3)
/* 8003A6A0 00036300  48 00 00 08 */	b lbl_8003A6A8
lbl_8003A6A4:
/* 8003A6A4 00036304  C3 E2 82 20 */	lfs f31, lbl_80640820-_SDA2_BASE_(r2)
lbl_8003A6A8:
/* 8003A6A8 00036308  FC 20 F8 90 */	fmr f1, f31
lbl_8003A6AC:
/* 8003A6AC 0003630C  E3 E1 00 18 */	psq_l f31, 24(r1), 0, qr0
/* 8003A6B0 00036310  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003A6B4 00036314  CB E1 00 10 */	lfd f31, 0x10(r1)
/* 8003A6B8 00036318  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003A6BC 0003631C  7C 08 03 A6 */	mtlr r0
/* 8003A6C0 00036320  38 21 00 20 */	addi r1, r1, 0x20
/* 8003A6C4 00036324  4E 80 00 20 */	blr

.global func_8003A6C8
func_8003A6C8:
/* 8003A6C8 00036328  94 21 FF 90 */	stwu r1, -0x70(r1)
/* 8003A6CC 0003632C  7C 08 02 A6 */	mflr r0
/* 8003A6D0 00036330  90 01 00 74 */	stw r0, 0x74(r1)
/* 8003A6D4 00036334  DB E1 00 60 */	stfd f31, 0x60(r1)
/* 8003A6D8 00036338  F3 E1 00 68 */	psq_st f31, 104(r1), 0, qr0
/* 8003A6DC 0003633C  DB C1 00 50 */	stfd f30, 0x50(r1)
/* 8003A6E0 00036340  F3 C1 00 58 */	psq_st f30, 88(r1), 0, qr0
/* 8003A6E4 00036344  DB A1 00 40 */	stfd f29, 0x40(r1)
/* 8003A6E8 00036348  F3 A1 00 48 */	psq_st f29, 72(r1), 0, qr0
/* 8003A6EC 0003634C  DB 81 00 30 */	stfd f28, 0x30(r1)
/* 8003A6F0 00036350  F3 81 00 38 */	psq_st f28, 56(r1), 0, qr0
/* 8003A6F4 00036354  39 61 00 30 */	addi r11, r1, 0x30
/* 8003A6F8 00036358  48 18 CA 31 */	bl _savegpr_27
/* 8003A6FC 0003635C  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 8003A700 00036360  FF C0 08 90 */	fmr f30, f1
/* 8003A704 00036364  7C 7B 1B 78 */	mr r27, r3
/* 8003A708 00036368  7C 9C 23 78 */	mr r28, r4
/* 8003A70C 0003636C  2C 00 00 00 */	cmpwi r0, 0
/* 8003A710 00036370  7C BD 2B 78 */	mr r29, r5
/* 8003A714 00036374  7C DE 33 78 */	mr r30, r6
/* 8003A718 00036378  41 82 02 08 */	beq lbl_8003A920
/* 8003A71C 0003637C  7F A4 EB 78 */	mr r4, r29
/* 8003A720 00036380  4B FF F1 19 */	bl func_80039838
/* 8003A724 00036384  80 9B 0C 04 */	lwz r4, 0xc04(r27)
/* 8003A728 00036388  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 8003A72C 0003638C  80 A4 00 08 */	lwz r5, 8(r4)
/* 8003A730 00036390  2C 05 00 00 */	cmpwi r5, 0
/* 8003A734 00036394  40 82 00 0C */	bne lbl_8003A740
/* 8003A738 00036398  3B E0 00 00 */	li r31, 0
/* 8003A73C 0003639C  48 00 00 20 */	b lbl_8003A75C
lbl_8003A740:
/* 8003A740 000363A0  A0 04 00 DE */	lhz r0, 0xde(r4)
/* 8003A744 000363A4  7C 03 00 40 */	cmplw r3, r0
/* 8003A748 000363A8  41 80 00 0C */	blt lbl_8003A754
/* 8003A74C 000363AC  3B E0 00 00 */	li r31, 0
/* 8003A750 000363B0  48 00 00 0C */	b lbl_8003A75C
lbl_8003A754:
/* 8003A754 000363B4  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 8003A758 000363B8  7F E5 00 2E */	lwzx r31, r5, r0
lbl_8003A75C:
/* 8003A75C 000363BC  2C 1F 00 00 */	cmpwi r31, 0
/* 8003A760 000363C0  41 82 01 C0 */	beq lbl_8003A920
/* 8003A764 000363C4  C0 5C 00 00 */	lfs f2, 0(r28)
/* 8003A768 000363C8  C0 3C 00 04 */	lfs f1, 4(r28)
/* 8003A76C 000363CC  C0 1C 00 08 */	lfs f0, 8(r28)
/* 8003A770 000363D0  D0 41 00 08 */	stfs f2, 8(r1)
/* 8003A774 000363D4  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 8003A778 000363D8  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 8003A77C 000363DC  93 BB 0C 74 */	stw r29, 0xc74(r27)
/* 8003A780 000363E0  A0 1F 00 10 */	lhz r0, 0x10(r31)
/* 8003A784 000363E4  54 00 07 7B */	rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 8003A788 000363E8  41 82 00 1C */	beq lbl_8003A7A4
/* 8003A78C 000363EC  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003A790 000363F0  38 9F 00 3C */	addi r4, r31, 0x3c
/* 8003A794 000363F4  48 1E 8F 2D */	bl func_802236C0
/* 8003A798 000363F8  A0 1F 00 10 */	lhz r0, 0x10(r31)
/* 8003A79C 000363FC  54 00 07 B8 */	rlwinm r0, r0, 0, 0x1e, 0x1c
/* 8003A7A0 00036400  B0 1F 00 10 */	sth r0, 0x10(r31)
lbl_8003A7A4:
/* 8003A7A4 00036404  C0 FF 00 2C */	lfs f7, 0x2c(r31)
/* 8003A7A8 00036408  C0 9F 00 30 */	lfs f4, 0x30(r31)
/* 8003A7AC 0003640C  C0 DF 00 34 */	lfs f6, 0x34(r31)
/* 8003A7B0 00036410  C0 7F 00 38 */	lfs f3, 0x38(r31)
/* 8003A7B4 00036414  EC 47 01 32 */	fmuls f2, f7, f4
/* 8003A7B8 00036418  C0 02 82 9C */	lfs f0, lbl_8064089C-_SDA2_BASE_(r2)
/* 8003A7BC 0003641C  EC 26 00 F2 */	fmuls f1, f6, f3
/* 8003A7C0 00036420  EF E2 08 2A */	fadds f31, f2, f1
/* 8003A7C4 00036424  FC 1F 00 40 */	fcmpo cr0, f31, f0
/* 8003A7C8 00036428  40 81 00 34 */	ble lbl_8003A7FC
/* 8003A7CC 0003642C  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A7D0 00036430  D0 1B 0C 78 */	stfs f0, 0xc78(r27)
/* 8003A7D4 00036434  C0 5F 00 38 */	lfs f2, 0x38(r31)
/* 8003A7D8 00036438  C0 3F 00 2C */	lfs f1, 0x2c(r31)
/* 8003A7DC 0003643C  48 19 9E 01 */	bl atan2
/* 8003A7E0 00036440  FC 40 08 18 */	frsp f2, f1
/* 8003A7E4 00036444  C0 22 82 3C */	lfs f1, lbl_8064083C-_SDA2_BASE_(r2)
/* 8003A7E8 00036448  C0 02 82 7C */	lfs f0, lbl_8064087C-_SDA2_BASE_(r2)
/* 8003A7EC 0003644C  EC 21 00 B2 */	fmuls f1, f1, f2
/* 8003A7F0 00036450  D0 1B 0C 80 */	stfs f0, 0xc80(r27)
/* 8003A7F4 00036454  D0 3B 0C 7C */	stfs f1, 0xc7c(r27)
/* 8003A7F8 00036458  48 00 00 F4 */	b lbl_8003A8EC
lbl_8003A7FC:
/* 8003A7FC 0003645C  C0 02 82 A0 */	lfs f0, lbl_806408A0-_SDA2_BASE_(r2)
/* 8003A800 00036460  FC 1F 00 40 */	fcmpo cr0, f31, f0
/* 8003A804 00036464  40 80 00 34 */	bge lbl_8003A838
/* 8003A808 00036468  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003A80C 0003646C  D0 1B 0C 78 */	stfs f0, 0xc78(r27)
/* 8003A810 00036470  C0 5F 00 38 */	lfs f2, 0x38(r31)
/* 8003A814 00036474  C0 3F 00 2C */	lfs f1, 0x2c(r31)
/* 8003A818 00036478  48 19 9D C5 */	bl atan2
/* 8003A81C 0003647C  FC 40 08 18 */	frsp f2, f1
/* 8003A820 00036480  C0 22 82 3C */	lfs f1, lbl_8064083C-_SDA2_BASE_(r2)
/* 8003A824 00036484  C0 02 82 A4 */	lfs f0, lbl_806408A4-_SDA2_BASE_(r2)
/* 8003A828 00036488  EC 21 00 B2 */	fmuls f1, f1, f2
/* 8003A82C 0003648C  D0 1B 0C 80 */	stfs f0, 0xc80(r27)
/* 8003A830 00036490  D0 3B 0C 7C */	stfs f1, 0xc7c(r27)
/* 8003A834 00036494  48 00 00 B8 */	b lbl_8003A8EC
lbl_8003A838:
/* 8003A838 00036498  EC 47 00 F2 */	fmuls f2, f7, f3
/* 8003A83C 0003649C  C0 02 82 3C */	lfs f0, lbl_8064083C-_SDA2_BASE_(r2)
/* 8003A840 000364A0  EC 24 01 B2 */	fmuls f1, f4, f6
/* 8003A844 000364A4  EC A4 01 32 */	fmuls f5, f4, f4
/* 8003A848 000364A8  EC 87 01 F2 */	fmuls f4, f7, f7
/* 8003A84C 000364AC  EC 22 08 28 */	fsubs f1, f2, f1
/* 8003A850 000364B0  EC 63 00 F2 */	fmuls f3, f3, f3
/* 8003A854 000364B4  EC 46 01 B2 */	fmuls f2, f6, f6
/* 8003A858 000364B8  EF 85 20 28 */	fsubs f28, f5, f4
/* 8003A85C 000364BC  EC 20 00 72 */	fmuls f1, f0, f1
/* 8003A860 000364C0  EF A3 10 28 */	fsubs f29, f3, f2
/* 8003A864 000364C4  EC 5D E0 2A */	fadds f2, f29, f28
/* 8003A868 000364C8  48 19 9D 75 */	bl atan2
/* 8003A86C 000364CC  FC 20 08 18 */	frsp f1, f1
/* 8003A870 000364D0  C0 02 82 3C */	lfs f0, lbl_8064083C-_SDA2_BASE_(r2)
/* 8003A874 000364D4  EC 5D E0 28 */	fsubs f2, f29, f28
/* 8003A878 000364D8  D0 3B 0C 78 */	stfs f1, 0xc78(r27)
/* 8003A87C 000364DC  C0 BF 00 30 */	lfs f5, 0x30(r31)
/* 8003A880 000364E0  C0 9F 00 38 */	lfs f4, 0x38(r31)
/* 8003A884 000364E4  C0 7F 00 2C */	lfs f3, 0x2c(r31)
/* 8003A888 000364E8  C0 3F 00 34 */	lfs f1, 0x34(r31)
/* 8003A88C 000364EC  EC 85 01 32 */	fmuls f4, f5, f4
/* 8003A890 000364F0  EC 23 00 72 */	fmuls f1, f3, f1
/* 8003A894 000364F4  EC 24 08 28 */	fsubs f1, f4, f1
/* 8003A898 000364F8  EC 20 00 72 */	fmuls f1, f0, f1
/* 8003A89C 000364FC  48 19 9D 41 */	bl atan2
/* 8003A8A0 00036500  C0 42 82 3C */	lfs f2, lbl_8064083C-_SDA2_BASE_(r2)
/* 8003A8A4 00036504  FC 60 08 18 */	frsp f3, f1
/* 8003A8A8 00036508  C0 02 82 30 */	lfs f0, lbl_80640830-_SDA2_BASE_(r2)
/* 8003A8AC 0003650C  EC 22 07 F2 */	fmuls f1, f2, f31
/* 8003A8B0 00036510  D0 7B 0C 7C */	stfs f3, 0xc7c(r27)
/* 8003A8B4 00036514  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8003A8B8 00036518  4C 41 13 82 */	cror 2, 1, 2
/* 8003A8BC 0003651C  40 82 00 0C */	bne lbl_8003A8C8
/* 8003A8C0 00036520  C0 02 82 7C */	lfs f0, lbl_8064087C-_SDA2_BASE_(r2)
/* 8003A8C4 00036524  48 00 00 24 */	b lbl_8003A8E8
lbl_8003A8C8:
/* 8003A8C8 00036528  C0 02 82 44 */	lfs f0, lbl_80640844-_SDA2_BASE_(r2)
/* 8003A8CC 0003652C  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8003A8D0 00036530  4C 40 13 82 */	cror 2, 0, 2
/* 8003A8D4 00036534  40 82 00 0C */	bne lbl_8003A8E0
/* 8003A8D8 00036538  C0 02 82 80 */	lfs f0, lbl_80640880-_SDA2_BASE_(r2)
/* 8003A8DC 0003653C  48 00 00 0C */	b lbl_8003A8E8
lbl_8003A8E0:
/* 8003A8E0 00036540  48 19 9C F9 */	bl asin
/* 8003A8E4 00036544  FC 00 08 18 */	frsp f0, f1
lbl_8003A8E8:
/* 8003A8E8 00036548  D0 1B 0C 80 */	stfs f0, 0xc80(r27)
lbl_8003A8EC:
/* 8003A8EC 0003654C  C0 7B 0C 78 */	lfs f3, 0xc78(r27)
/* 8003A8F0 00036550  38 9B 0C 78 */	addi r4, r27, 0xc78
/* 8003A8F4 00036554  C0 5B 0C 7C */	lfs f2, 0xc7c(r27)
/* 8003A8F8 00036558  FC 20 F0 90 */	fmr f1, f30
/* 8003A8FC 0003655C  C0 1B 0C 80 */	lfs f0, 0xc80(r27)
/* 8003A900 00036560  7C 86 23 78 */	mr r6, r4
/* 8003A904 00036564  D0 7B 0C 84 */	stfs f3, 0xc84(r27)
/* 8003A908 00036568  7F C7 F3 78 */	mr r7, r30
/* 8003A90C 0003656C  38 7B 04 60 */	addi r3, r27, 0x460
/* 8003A910 00036570  D0 5B 0C 88 */	stfs f2, 0xc88(r27)
/* 8003A914 00036574  38 A1 00 08 */	addi r5, r1, 8
/* 8003A918 00036578  D0 1B 0C 8C */	stfs f0, 0xc8c(r27)
/* 8003A91C 0003657C  48 01 5C 29 */	bl func_80050544
lbl_8003A920:
/* 8003A920 00036580  E3 E1 00 68 */	psq_l f31, 104(r1), 0, qr0
/* 8003A924 00036584  CB E1 00 60 */	lfd f31, 0x60(r1)
/* 8003A928 00036588  E3 C1 00 58 */	psq_l f30, 88(r1), 0, qr0
/* 8003A92C 0003658C  CB C1 00 50 */	lfd f30, 0x50(r1)
/* 8003A930 00036590  E3 A1 00 48 */	psq_l f29, 72(r1), 0, qr0
/* 8003A934 00036594  CB A1 00 40 */	lfd f29, 0x40(r1)
/* 8003A938 00036598  E3 81 00 38 */	psq_l f28, 56(r1), 0, qr0
/* 8003A93C 0003659C  39 61 00 30 */	addi r11, r1, 0x30
/* 8003A940 000365A0  CB 81 00 30 */	lfd f28, 0x30(r1)
/* 8003A944 000365A4  48 18 C8 31 */	bl _restgpr_27
/* 8003A948 000365A8  80 01 00 74 */	lwz r0, 0x74(r1)
/* 8003A94C 000365AC  7C 08 03 A6 */	mtlr r0
/* 8003A950 000365B0  38 21 00 70 */	addi r1, r1, 0x70
/* 8003A954 000365B4  4E 80 00 20 */	blr

.global func_8003A958
func_8003A958:
/* 8003A958 000365B8  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 8003A95C 000365BC  7C 08 02 A6 */	mflr r0
/* 8003A960 000365C0  90 01 00 54 */	stw r0, 0x54(r1)
/* 8003A964 000365C4  93 E1 00 4C */	stw r31, 0x4c(r1)
/* 8003A968 000365C8  7C 7F 1B 78 */	mr r31, r3
/* 8003A96C 000365CC  93 C1 00 48 */	stw r30, 0x48(r1)
/* 8003A970 000365D0  7C 9E 23 78 */	mr r30, r4
/* 8003A974 000365D4  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 8003A978 000365D8  2C 00 00 00 */	cmpwi r0, 0
/* 8003A97C 000365DC  41 82 00 E0 */	beq lbl_8003AA5C
/* 8003A980 000365E0  7C A4 2B 78 */	mr r4, r5
/* 8003A984 000365E4  4B FF EE B5 */	bl func_80039838
/* 8003A988 000365E8  80 9F 0C 04 */	lwz r4, 0xc04(r31)
/* 8003A98C 000365EC  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 8003A990 000365F0  80 A4 00 08 */	lwz r5, 8(r4)
/* 8003A994 000365F4  2C 05 00 00 */	cmpwi r5, 0
/* 8003A998 000365F8  40 82 00 0C */	bne lbl_8003A9A4
/* 8003A99C 000365FC  3B E0 00 00 */	li r31, 0
/* 8003A9A0 00036600  48 00 00 20 */	b lbl_8003A9C0
lbl_8003A9A4:
/* 8003A9A4 00036604  A0 04 00 DE */	lhz r0, 0xde(r4)
/* 8003A9A8 00036608  7C 03 00 40 */	cmplw r3, r0
/* 8003A9AC 0003660C  41 80 00 0C */	blt lbl_8003A9B8
/* 8003A9B0 00036610  3B E0 00 00 */	li r31, 0
/* 8003A9B4 00036614  48 00 00 0C */	b lbl_8003A9C0
lbl_8003A9B8:
/* 8003A9B8 00036618  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 8003A9BC 0003661C  7F E5 00 2E */	lwzx r31, r5, r0
lbl_8003A9C0:
/* 8003A9C0 00036620  2C 1F 00 00 */	cmpwi r31, 0
/* 8003A9C4 00036624  41 82 00 98 */	beq lbl_8003AA5C
/* 8003A9C8 00036628  7F C4 F3 78 */	mr r4, r30
/* 8003A9CC 0003662C  38 61 00 18 */	addi r3, r1, 0x18
/* 8003A9D0 00036630  38 A0 00 00 */	li r5, 0
/* 8003A9D4 00036634  48 1E 89 F5 */	bl func_802233C8
/* 8003A9D8 00036638  38 61 00 08 */	addi r3, r1, 8
/* 8003A9DC 0003663C  38 81 00 18 */	addi r4, r1, 0x18
/* 8003A9E0 00036640  48 24 27 E5 */	bl C_QUATMtx
/* 8003A9E4 00036644  C0 01 00 08 */	lfs f0, 8(r1)
/* 8003A9E8 00036648  7F E3 FB 78 */	mr r3, r31
/* 8003A9EC 0003664C  38 80 00 01 */	li r4, 1
/* 8003A9F0 00036650  D0 1F 00 2C */	stfs f0, 0x2c(r31)
/* 8003A9F4 00036654  C0 01 00 0C */	lfs f0, 0xc(r1)
/* 8003A9F8 00036658  D0 1F 00 30 */	stfs f0, 0x30(r31)
/* 8003A9FC 0003665C  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 8003AA00 00036660  D0 1F 00 34 */	stfs f0, 0x34(r31)
/* 8003AA04 00036664  C0 01 00 14 */	lfs f0, 0x14(r1)
/* 8003AA08 00036668  D0 1F 00 38 */	stfs f0, 0x38(r31)
/* 8003AA0C 0003666C  A0 1F 00 10 */	lhz r0, 0x10(r31)
/* 8003AA10 00036670  54 00 07 B8 */	rlwinm r0, r0, 0, 0x1e, 0x1c
/* 8003AA14 00036674  B0 1F 00 10 */	sth r0, 0x10(r31)
/* 8003AA18 00036678  48 1B 7C A1 */	bl func_801F26B8
/* 8003AA1C 0003667C  80 9F 00 04 */	lwz r4, 4(r31)
/* 8003AA20 00036680  2C 04 00 00 */	cmpwi r4, 0
/* 8003AA24 00036684  41 82 00 18 */	beq lbl_8003AA3C
/* 8003AA28 00036688  A0 64 00 06 */	lhz r3, 6(r4)
/* 8003AA2C 0003668C  54 60 06 F7 */	rlwinm. r0, r3, 0, 0x1b, 0x1b
/* 8003AA30 00036690  40 82 00 0C */	bne lbl_8003AA3C
/* 8003AA34 00036694  54 60 04 3C */	rlwinm r0, r3, 0, 0x10, 0x1e
/* 8003AA38 00036698  B0 04 00 06 */	sth r0, 6(r4)
lbl_8003AA3C:
/* 8003AA3C 0003669C  80 9F 00 08 */	lwz r4, 8(r31)
/* 8003AA40 000366A0  2C 04 00 00 */	cmpwi r4, 0
/* 8003AA44 000366A4  41 82 00 18 */	beq lbl_8003AA5C
/* 8003AA48 000366A8  A0 64 00 06 */	lhz r3, 6(r4)
/* 8003AA4C 000366AC  54 60 06 F7 */	rlwinm. r0, r3, 0, 0x1b, 0x1b
/* 8003AA50 000366B0  40 82 00 0C */	bne lbl_8003AA5C
/* 8003AA54 000366B4  54 60 04 3C */	rlwinm r0, r3, 0, 0x10, 0x1e
/* 8003AA58 000366B8  B0 04 00 06 */	sth r0, 6(r4)
lbl_8003AA5C:
/* 8003AA5C 000366BC  80 01 00 54 */	lwz r0, 0x54(r1)
/* 8003AA60 000366C0  83 E1 00 4C */	lwz r31, 0x4c(r1)
/* 8003AA64 000366C4  83 C1 00 48 */	lwz r30, 0x48(r1)
/* 8003AA68 000366C8  7C 08 03 A6 */	mtlr r0
/* 8003AA6C 000366CC  38 21 00 50 */	addi r1, r1, 0x50
/* 8003AA70 000366D0  4E 80 00 20 */	blr

.global func_8003AA74
func_8003AA74:
/* 8003AA74 000366D4  C0 82 82 78 */	lfs f4, lbl_80640878-_SDA2_BASE_(r2)
/* 8003AA78 000366D8  3C 00 43 30 */	lis r0, 0x4330
/* 8003AA7C 000366DC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003AA80 000366E0  EC 62 20 24 */	fdivs f3, f2, f4
/* 8003AA84 000366E4  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003AA88 000366E8  90 01 00 08 */	stw r0, 8(r1)
/* 8003AA8C 000366EC  90 01 00 10 */	stw r0, 0x10(r1)
/* 8003AA90 000366F0  FC 60 18 1E */	fctiwz f3, f3
/* 8003AA94 000366F4  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 8003AA98 000366F8  D8 61 00 18 */	stfd f3, 0x18(r1)
/* 8003AA9C 000366FC  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 8003AAA0 00036700  40 80 00 38 */	bge lbl_8003AAD8
/* 8003AAA4 00036704  38 03 FF FF */	addi r0, r3, -1
/* 8003AAA8 00036708  6C 63 80 00 */	xoris r3, r3, 0x8000
/* 8003AAAC 0003670C  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 8003AAB0 00036710  90 61 00 0C */	stw r3, 0xc(r1)
/* 8003AAB4 00036714  C8 62 82 68 */	lfd f3, lbl_80640868-_SDA2_BASE_(r2)
/* 8003AAB8 00036718  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003AABC 0003671C  C8 41 00 08 */	lfd f2, 8(r1)
/* 8003AAC0 00036720  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 8003AAC4 00036724  EC 42 18 28 */	fsubs f2, f2, f3
/* 8003AAC8 00036728  EC 00 18 28 */	fsubs f0, f0, f3
/* 8003AACC 0003672C  EC 42 01 32 */	fmuls f2, f2, f4
/* 8003AAD0 00036730  EC 60 01 32 */	fmuls f3, f0, f4
/* 8003AAD4 00036734  48 00 00 3C */	b lbl_8003AB10
lbl_8003AAD8:
/* 8003AAD8 00036738  38 03 00 01 */	addi r0, r3, 1
/* 8003AADC 0003673C  6C 63 80 00 */	xoris r3, r3, 0x8000
/* 8003AAE0 00036740  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 8003AAE4 00036744  90 61 00 0C */	stw r3, 0xc(r1)
/* 8003AAE8 00036748  C8 62 82 68 */	lfd f3, lbl_80640868-_SDA2_BASE_(r2)
/* 8003AAEC 0003674C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003AAF0 00036750  C8 41 00 08 */	lfd f2, 8(r1)
/* 8003AAF4 00036754  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 8003AAF8 00036758  EC 42 18 28 */	fsubs f2, f2, f3
/* 8003AAFC 0003675C  EC 00 18 28 */	fsubs f0, f0, f3
/* 8003AB00 00036760  EC 62 01 32 */	fmuls f3, f2, f4
/* 8003AB04 00036764  EC 40 01 32 */	fmuls f2, f0, f4
/* 8003AB08 00036768  48 00 00 08 */	b lbl_8003AB10
lbl_8003AB0C:
/* 8003AB0C 0003676C  EC 21 20 2A */	fadds f1, f1, f4
lbl_8003AB10:
/* 8003AB10 00036770  FC 01 18 40 */	fcmpo cr0, f1, f3
/* 8003AB14 00036774  41 80 FF F8 */	blt lbl_8003AB0C
/* 8003AB18 00036778  48 00 00 08 */	b lbl_8003AB20
lbl_8003AB1C:
/* 8003AB1C 0003677C  EC 21 20 28 */	fsubs f1, f1, f4
lbl_8003AB20:
/* 8003AB20 00036780  FC 01 10 40 */	fcmpo cr0, f1, f2
/* 8003AB24 00036784  41 81 FF F8 */	bgt lbl_8003AB1C
/* 8003AB28 00036788  38 21 00 20 */	addi r1, r1, 0x20
/* 8003AB2C 0003678C  4E 80 00 20 */	blr

.global func_8003AB30
func_8003AB30:
/* 8003AB30 00036790  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003AB34 00036794  7C 08 02 A6 */	mflr r0
/* 8003AB38 00036798  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003AB3C 0003679C  DB E1 00 20 */	stfd f31, 0x20(r1)
/* 8003AB40 000367A0  F3 E1 00 28 */	psq_st f31, 40(r1), 0, qr0
/* 8003AB44 000367A4  FF E0 08 90 */	fmr f31, f1
/* 8003AB48 000367A8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003AB4C 000367AC  7C DF 33 78 */	mr r31, r6
/* 8003AB50 000367B0  7F E7 FB 78 */	mr r7, r31
/* 8003AB54 000367B4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003AB58 000367B8  7C BE 2B 78 */	mr r30, r5
/* 8003AB5C 000367BC  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8003AB60 000367C0  7C 9D 23 78 */	mr r29, r4
/* 8003AB64 000367C4  38 83 0C B4 */	addi r4, r3, 0xcb4
/* 8003AB68 000367C8  93 81 00 10 */	stw r28, 0x10(r1)
/* 8003AB6C 000367CC  7C 7C 1B 78 */	mr r28, r3
/* 8003AB70 000367D0  7F A5 EB 78 */	mr r5, r29
/* 8003AB74 000367D4  7C 86 23 78 */	mr r6, r4
/* 8003AB78 000367D8  38 63 00 04 */	addi r3, r3, 4
/* 8003AB7C 000367DC  48 01 57 C1 */	bl func_8005033C
/* 8003AB80 000367E0  FC 20 F8 90 */	fmr f1, f31
/* 8003AB84 000367E4  38 9C 0C B8 */	addi r4, r28, 0xcb8
/* 8003AB88 000367E8  7C 86 23 78 */	mr r6, r4
/* 8003AB8C 000367EC  7F E7 FB 78 */	mr r7, r31
/* 8003AB90 000367F0  38 7C 00 28 */	addi r3, r28, 0x28
/* 8003AB94 000367F4  38 BD 00 04 */	addi r5, r29, 4
/* 8003AB98 000367F8  48 01 57 A5 */	bl func_8005033C
/* 8003AB9C 000367FC  FC 20 F8 90 */	fmr f1, f31
/* 8003ABA0 00036800  38 9C 0C BC */	addi r4, r28, 0xcbc
/* 8003ABA4 00036804  7C 86 23 78 */	mr r6, r4
/* 8003ABA8 00036808  7F E7 FB 78 */	mr r7, r31
/* 8003ABAC 0003680C  38 7C 00 4C */	addi r3, r28, 0x4c
/* 8003ABB0 00036810  38 BD 00 08 */	addi r5, r29, 8
/* 8003ABB4 00036814  48 01 57 89 */	bl func_8005033C
/* 8003ABB8 00036818  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003ABBC 0003681C  7F 83 E3 78 */	mr r3, r28
/* 8003ABC0 00036820  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003ABC4 00036824  7F C4 F3 78 */	mr r4, r30
/* 8003ABC8 00036828  4B FF EE 01 */	bl func_800399C8
/* 8003ABCC 0003682C  E3 E1 00 28 */	psq_l f31, 40(r1), 0, qr0
/* 8003ABD0 00036830  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003ABD4 00036834  CB E1 00 20 */	lfd f31, 0x20(r1)
/* 8003ABD8 00036838  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8003ABDC 0003683C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8003ABE0 00036840  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8003ABE4 00036844  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8003ABE8 00036848  7C 08 03 A6 */	mtlr r0
/* 8003ABEC 0003684C  38 21 00 30 */	addi r1, r1, 0x30
/* 8003ABF0 00036850  4E 80 00 20 */	blr

.global func_8003ABF4
func_8003ABF4:
/* 8003ABF4 00036854  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003ABF8 00036858  7C 08 02 A6 */	mflr r0
/* 8003ABFC 0003685C  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003AC00 00036860  DB E1 00 20 */	stfd f31, 0x20(r1)
/* 8003AC04 00036864  F3 E1 00 28 */	psq_st f31, 40(r1), 0, qr0
/* 8003AC08 00036868  FF E0 18 90 */	fmr f31, f3
/* 8003AC0C 0003686C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003AC10 00036870  7C BF 2B 78 */	mr r31, r5
/* 8003AC14 00036874  7F E7 FB 78 */	mr r7, r31
/* 8003AC18 00036878  38 A1 00 08 */	addi r5, r1, 8
/* 8003AC1C 0003687C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003AC20 00036880  7C 9E 23 78 */	mr r30, r4
/* 8003AC24 00036884  38 83 0C B4 */	addi r4, r3, 0xcb4
/* 8003AC28 00036888  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8003AC2C 0003688C  7C 7D 1B 78 */	mr r29, r3
/* 8003AC30 00036890  7C 86 23 78 */	mr r6, r4
/* 8003AC34 00036894  38 63 00 04 */	addi r3, r3, 4
/* 8003AC38 00036898  D0 21 00 08 */	stfs f1, 8(r1)
/* 8003AC3C 0003689C  FC 20 F8 90 */	fmr f1, f31
/* 8003AC40 000368A0  D0 41 00 0C */	stfs f2, 0xc(r1)
/* 8003AC44 000368A4  48 01 56 F9 */	bl func_8005033C
/* 8003AC48 000368A8  FC 20 F8 90 */	fmr f1, f31
/* 8003AC4C 000368AC  38 9D 0C BC */	addi r4, r29, 0xcbc
/* 8003AC50 000368B0  7C 86 23 78 */	mr r6, r4
/* 8003AC54 000368B4  7F E7 FB 78 */	mr r7, r31
/* 8003AC58 000368B8  38 7D 00 4C */	addi r3, r29, 0x4c
/* 8003AC5C 000368BC  38 A1 00 0C */	addi r5, r1, 0xc
/* 8003AC60 000368C0  48 01 56 DD */	bl func_8005033C
/* 8003AC64 000368C4  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003AC68 000368C8  7F A3 EB 78 */	mr r3, r29
/* 8003AC6C 000368CC  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003AC70 000368D0  7F C4 F3 78 */	mr r4, r30
/* 8003AC74 000368D4  4B FF ED 55 */	bl func_800399C8
/* 8003AC78 000368D8  E3 E1 00 28 */	psq_l f31, 40(r1), 0, qr0
/* 8003AC7C 000368DC  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003AC80 000368E0  CB E1 00 20 */	lfd f31, 0x20(r1)
/* 8003AC84 000368E4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8003AC88 000368E8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8003AC8C 000368EC  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8003AC90 000368F0  7C 08 03 A6 */	mtlr r0
/* 8003AC94 000368F4  38 21 00 30 */	addi r1, r1, 0x30
/* 8003AC98 000368F8  4E 80 00 20 */	blr

.global func_8003AC9C
func_8003AC9C:
/* 8003AC9C 000368FC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003ACA0 00036900  7C 08 02 A6 */	mflr r0
/* 8003ACA4 00036904  7C A7 2B 78 */	mr r7, r5
/* 8003ACA8 00036908  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003ACAC 0003690C  38 A1 00 08 */	addi r5, r1, 8
/* 8003ACB0 00036910  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003ACB4 00036914  7C 9F 23 78 */	mr r31, r4
/* 8003ACB8 00036918  38 83 0C B8 */	addi r4, r3, 0xcb8
/* 8003ACBC 0003691C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003ACC0 00036920  7C 7E 1B 78 */	mr r30, r3
/* 8003ACC4 00036924  7C 86 23 78 */	mr r6, r4
/* 8003ACC8 00036928  38 63 00 28 */	addi r3, r3, 0x28
/* 8003ACCC 0003692C  D0 21 00 08 */	stfs f1, 8(r1)
/* 8003ACD0 00036930  FC 20 10 90 */	fmr f1, f2
/* 8003ACD4 00036934  48 01 56 69 */	bl func_8005033C
/* 8003ACD8 00036938  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003ACDC 0003693C  7F C3 F3 78 */	mr r3, r30
/* 8003ACE0 00036940  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003ACE4 00036944  7F E4 FB 78 */	mr r4, r31
/* 8003ACE8 00036948  4B FF EC E1 */	bl func_800399C8
/* 8003ACEC 0003694C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003ACF0 00036950  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8003ACF4 00036954  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8003ACF8 00036958  7C 08 03 A6 */	mtlr r0
/* 8003ACFC 0003695C  38 21 00 20 */	addi r1, r1, 0x20
/* 8003AD00 00036960  4E 80 00 20 */	blr

.global func_8003AD04
func_8003AD04:
/* 8003AD04 00036964  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003AD08 00036968  7C 08 02 A6 */	mflr r0
/* 8003AD0C 0003696C  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003AD10 00036970  DB E1 00 20 */	stfd f31, 0x20(r1)
/* 8003AD14 00036974  F3 E1 00 28 */	psq_st f31, 40(r1), 0, qr0
/* 8003AD18 00036978  FF E0 08 90 */	fmr f31, f1
/* 8003AD1C 0003697C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003AD20 00036980  7C DF 33 78 */	mr r31, r6
/* 8003AD24 00036984  7F E7 FB 78 */	mr r7, r31
/* 8003AD28 00036988  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003AD2C 0003698C  7C BE 2B 78 */	mr r30, r5
/* 8003AD30 00036990  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8003AD34 00036994  7C 9D 23 78 */	mr r29, r4
/* 8003AD38 00036998  38 83 0C C0 */	addi r4, r3, 0xcc0
/* 8003AD3C 0003699C  93 81 00 10 */	stw r28, 0x10(r1)
/* 8003AD40 000369A0  7C 7C 1B 78 */	mr r28, r3
/* 8003AD44 000369A4  7F A5 EB 78 */	mr r5, r29
/* 8003AD48 000369A8  7C 86 23 78 */	mr r6, r4
/* 8003AD4C 000369AC  38 63 00 70 */	addi r3, r3, 0x70
/* 8003AD50 000369B0  48 01 55 ED */	bl func_8005033C
/* 8003AD54 000369B4  FC 20 F8 90 */	fmr f1, f31
/* 8003AD58 000369B8  38 9C 0C C4 */	addi r4, r28, 0xcc4
/* 8003AD5C 000369BC  7C 86 23 78 */	mr r6, r4
/* 8003AD60 000369C0  7F E7 FB 78 */	mr r7, r31
/* 8003AD64 000369C4  38 7C 00 94 */	addi r3, r28, 0x94
/* 8003AD68 000369C8  38 BD 00 04 */	addi r5, r29, 4
/* 8003AD6C 000369CC  48 01 55 D1 */	bl func_8005033C
/* 8003AD70 000369D0  FC 20 F8 90 */	fmr f1, f31
/* 8003AD74 000369D4  38 9C 0C C8 */	addi r4, r28, 0xcc8
/* 8003AD78 000369D8  7C 86 23 78 */	mr r6, r4
/* 8003AD7C 000369DC  7F E7 FB 78 */	mr r7, r31
/* 8003AD80 000369E0  38 7C 00 B8 */	addi r3, r28, 0xb8
/* 8003AD84 000369E4  38 BD 00 08 */	addi r5, r29, 8
/* 8003AD88 000369E8  48 01 55 B5 */	bl func_8005033C
/* 8003AD8C 000369EC  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003AD90 000369F0  7F 83 E3 78 */	mr r3, r28
/* 8003AD94 000369F4  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003AD98 000369F8  7F C4 F3 78 */	mr r4, r30
/* 8003AD9C 000369FC  4B FF EC 2D */	bl func_800399C8
/* 8003ADA0 00036A00  E3 E1 00 28 */	psq_l f31, 40(r1), 0, qr0
/* 8003ADA4 00036A04  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003ADA8 00036A08  CB E1 00 20 */	lfd f31, 0x20(r1)
/* 8003ADAC 00036A0C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8003ADB0 00036A10  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8003ADB4 00036A14  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8003ADB8 00036A18  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8003ADBC 00036A1C  7C 08 03 A6 */	mtlr r0
/* 8003ADC0 00036A20  38 21 00 30 */	addi r1, r1, 0x30
/* 8003ADC4 00036A24  4E 80 00 20 */	blr

.global func_8003ADC8
func_8003ADC8:
/* 8003ADC8 00036A28  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003ADCC 00036A2C  7C 08 02 A6 */	mflr r0
/* 8003ADD0 00036A30  38 E0 00 00 */	li r7, 0
/* 8003ADD4 00036A34  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003ADD8 00036A38  38 A1 00 08 */	addi r5, r1, 8
/* 8003ADDC 00036A3C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003ADE0 00036A40  7C 9F 23 78 */	mr r31, r4
/* 8003ADE4 00036A44  38 83 0C C4 */	addi r4, r3, 0xcc4
/* 8003ADE8 00036A48  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003ADEC 00036A4C  7C 7E 1B 78 */	mr r30, r3
/* 8003ADF0 00036A50  7C 86 23 78 */	mr r6, r4
/* 8003ADF4 00036A54  38 63 00 94 */	addi r3, r3, 0x94
/* 8003ADF8 00036A58  D0 21 00 08 */	stfs f1, 8(r1)
/* 8003ADFC 00036A5C  FC 20 10 90 */	fmr f1, f2
/* 8003AE00 00036A60  48 01 55 3D */	bl func_8005033C
/* 8003AE04 00036A64  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003AE08 00036A68  7F C3 F3 78 */	mr r3, r30
/* 8003AE0C 00036A6C  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003AE10 00036A70  7F E4 FB 78 */	mr r4, r31
/* 8003AE14 00036A74  4B FF EB B5 */	bl func_800399C8
/* 8003AE18 00036A78  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003AE1C 00036A7C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8003AE20 00036A80  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8003AE24 00036A84  7C 08 03 A6 */	mtlr r0
/* 8003AE28 00036A88  38 21 00 20 */	addi r1, r1, 0x20
/* 8003AE2C 00036A8C  4E 80 00 20 */	blr

.global func_8003AE30
func_8003AE30:
/* 8003AE30 00036A90  C0 82 82 78 */	lfs f4, lbl_80640878-_SDA2_BASE_(r2)
/* 8003AE34 00036A94  C0 02 82 48 */	lfs f0, lbl_80640848-_SDA2_BASE_(r2)
/* 8003AE38 00036A98  48 00 00 10 */	b lbl_8003AE48
lbl_8003AE3C:
/* 8003AE3C 00036A9C  C0 63 0C C4 */	lfs f3, 0xcc4(r3)
/* 8003AE40 00036AA0  EC 63 20 2A */	fadds f3, f3, f4
/* 8003AE44 00036AA4  D0 63 0C C4 */	stfs f3, 0xcc4(r3)
lbl_8003AE48:
/* 8003AE48 00036AA8  C0 63 0C C4 */	lfs f3, 0xcc4(r3)
/* 8003AE4C 00036AAC  EC 61 18 28 */	fsubs f3, f1, f3
/* 8003AE50 00036AB0  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 8003AE54 00036AB4  41 81 FF E8 */	bgt lbl_8003AE3C
/* 8003AE58 00036AB8  C0 82 82 78 */	lfs f4, lbl_80640878-_SDA2_BASE_(r2)
/* 8003AE5C 00036ABC  C0 02 82 48 */	lfs f0, lbl_80640848-_SDA2_BASE_(r2)
/* 8003AE60 00036AC0  48 00 00 10 */	b lbl_8003AE70
lbl_8003AE64:
/* 8003AE64 00036AC4  C0 63 0C C4 */	lfs f3, 0xcc4(r3)
/* 8003AE68 00036AC8  EC 63 20 28 */	fsubs f3, f3, f4
/* 8003AE6C 00036ACC  D0 63 0C C4 */	stfs f3, 0xcc4(r3)
lbl_8003AE70:
/* 8003AE70 00036AD0  C0 63 0C C4 */	lfs f3, 0xcc4(r3)
/* 8003AE74 00036AD4  EC 63 08 28 */	fsubs f3, f3, f1
/* 8003AE78 00036AD8  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 8003AE7C 00036ADC  41 81 FF E8 */	bgt lbl_8003AE64
/* 8003AE80 00036AE0  4B FF FF 48 */	b func_8003ADC8

.global func_8003AE84
func_8003AE84:
/* 8003AE84 00036AE4  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003AE88 00036AE8  7C 08 02 A6 */	mflr r0
/* 8003AE8C 00036AEC  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003AE90 00036AF0  DB E1 00 20 */	stfd f31, 0x20(r1)
/* 8003AE94 00036AF4  F3 E1 00 28 */	psq_st f31, 40(r1), 0, qr0
/* 8003AE98 00036AF8  FF E0 08 90 */	fmr f31, f1
/* 8003AE9C 00036AFC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003AEA0 00036B00  7C DF 33 78 */	mr r31, r6
/* 8003AEA4 00036B04  7F E7 FB 78 */	mr r7, r31
/* 8003AEA8 00036B08  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003AEAC 00036B0C  7C BE 2B 78 */	mr r30, r5
/* 8003AEB0 00036B10  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8003AEB4 00036B14  7C 9D 23 78 */	mr r29, r4
/* 8003AEB8 00036B18  38 83 0C CC */	addi r4, r3, 0xccc
/* 8003AEBC 00036B1C  93 81 00 10 */	stw r28, 0x10(r1)
/* 8003AEC0 00036B20  7C 7C 1B 78 */	mr r28, r3
/* 8003AEC4 00036B24  7F A5 EB 78 */	mr r5, r29
/* 8003AEC8 00036B28  7C 86 23 78 */	mr r6, r4
/* 8003AECC 00036B2C  38 63 00 DC */	addi r3, r3, 0xdc
/* 8003AED0 00036B30  48 01 54 6D */	bl func_8005033C
/* 8003AED4 00036B34  FC 20 F8 90 */	fmr f1, f31
/* 8003AED8 00036B38  38 9C 0C D0 */	addi r4, r28, 0xcd0
/* 8003AEDC 00036B3C  7C 86 23 78 */	mr r6, r4
/* 8003AEE0 00036B40  7F E7 FB 78 */	mr r7, r31
/* 8003AEE4 00036B44  38 7C 01 00 */	addi r3, r28, 0x100
/* 8003AEE8 00036B48  38 BD 00 04 */	addi r5, r29, 4
/* 8003AEEC 00036B4C  48 01 54 51 */	bl func_8005033C
/* 8003AEF0 00036B50  FC 20 F8 90 */	fmr f1, f31
/* 8003AEF4 00036B54  38 9C 0C D4 */	addi r4, r28, 0xcd4
/* 8003AEF8 00036B58  7C 86 23 78 */	mr r6, r4
/* 8003AEFC 00036B5C  7F E7 FB 78 */	mr r7, r31
/* 8003AF00 00036B60  38 7C 01 24 */	addi r3, r28, 0x124
/* 8003AF04 00036B64  38 BD 00 08 */	addi r5, r29, 8
/* 8003AF08 00036B68  48 01 54 35 */	bl func_8005033C
/* 8003AF0C 00036B6C  2C 1E 00 00 */	cmpwi r30, 0
/* 8003AF10 00036B70  41 80 00 18 */	blt lbl_8003AF28
/* 8003AF14 00036B74  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003AF18 00036B78  7F 83 E3 78 */	mr r3, r28
/* 8003AF1C 00036B7C  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003AF20 00036B80  7F C4 F3 78 */	mr r4, r30
/* 8003AF24 00036B84  4B FF EA A5 */	bl func_800399C8
lbl_8003AF28:
/* 8003AF28 00036B88  E3 E1 00 28 */	psq_l f31, 40(r1), 0, qr0
/* 8003AF2C 00036B8C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003AF30 00036B90  CB E1 00 20 */	lfd f31, 0x20(r1)
/* 8003AF34 00036B94  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8003AF38 00036B98  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8003AF3C 00036B9C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8003AF40 00036BA0  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8003AF44 00036BA4  7C 08 03 A6 */	mtlr r0
/* 8003AF48 00036BA8  38 21 00 30 */	addi r1, r1, 0x30
/* 8003AF4C 00036BAC  4E 80 00 20 */	blr

.global func_8003AF50
func_8003AF50:
/* 8003AF50 00036BB0  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 8003AF54 00036BB4  7C 08 02 A6 */	mflr r0
/* 8003AF58 00036BB8  90 01 00 44 */	stw r0, 0x44(r1)
/* 8003AF5C 00036BBC  DB E1 00 30 */	stfd f31, 0x30(r1)
/* 8003AF60 00036BC0  F3 E1 00 38 */	psq_st f31, 56(r1), 0, qr0
/* 8003AF64 00036BC4  DB C1 00 20 */	stfd f30, 0x20(r1)
/* 8003AF68 00036BC8  F3 C1 00 28 */	psq_st f30, 40(r1), 0, qr0
/* 8003AF6C 00036BCC  FF C0 08 90 */	fmr f30, f1
/* 8003AF70 00036BD0  FF E0 10 90 */	fmr f31, f2
/* 8003AF74 00036BD4  C0 82 82 20 */	lfs f4, lbl_80640820-_SDA2_BASE_(r2)
/* 8003AF78 00036BD8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003AF7C 00036BDC  7C DF 33 78 */	mr r31, r6
/* 8003AF80 00036BE0  FC A0 20 90 */	fmr f5, f4
/* 8003AF84 00036BE4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003AF88 00036BE8  7C BE 2B 78 */	mr r30, r5
/* 8003AF8C 00036BEC  FC 40 F0 90 */	fmr f2, f30
/* 8003AF90 00036BF0  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8003AF94 00036BF4  FC 60 F8 90 */	fmr f3, f31
/* 8003AF98 00036BF8  C0 24 00 00 */	lfs f1, 0(r4)
/* 8003AF9C 00036BFC  7C 9D 23 78 */	mr r29, r4
/* 8003AFA0 00036C00  93 81 00 10 */	stw r28, 0x10(r1)
/* 8003AFA4 00036C04  7C 7C 1B 78 */	mr r28, r3
/* 8003AFA8 00036C08  38 A3 0C CC */	addi r5, r3, 0xccc
/* 8003AFAC 00036C0C  7F C4 F3 78 */	mr r4, r30
/* 8003AFB0 00036C10  38 E0 00 00 */	li r7, 0
/* 8003AFB4 00036C14  38 63 02 20 */	addi r3, r3, 0x220
/* 8003AFB8 00036C18  48 01 61 7D */	bl func_80051134
/* 8003AFBC 00036C1C  C0 82 82 20 */	lfs f4, lbl_80640820-_SDA2_BASE_(r2)
/* 8003AFC0 00036C20  FC 40 F0 90 */	fmr f2, f30
/* 8003AFC4 00036C24  FC 60 F8 90 */	fmr f3, f31
/* 8003AFC8 00036C28  C0 3D 00 04 */	lfs f1, 4(r29)
/* 8003AFCC 00036C2C  FC A0 20 90 */	fmr f5, f4
/* 8003AFD0 00036C30  7F C4 F3 78 */	mr r4, r30
/* 8003AFD4 00036C34  7F E6 FB 78 */	mr r6, r31
/* 8003AFD8 00036C38  38 7C 02 E0 */	addi r3, r28, 0x2e0
/* 8003AFDC 00036C3C  38 BC 0C D0 */	addi r5, r28, 0xcd0
/* 8003AFE0 00036C40  38 E0 00 00 */	li r7, 0
/* 8003AFE4 00036C44  48 01 61 51 */	bl func_80051134
/* 8003AFE8 00036C48  C0 82 82 20 */	lfs f4, lbl_80640820-_SDA2_BASE_(r2)
/* 8003AFEC 00036C4C  FC 40 F0 90 */	fmr f2, f30
/* 8003AFF0 00036C50  FC 60 F8 90 */	fmr f3, f31
/* 8003AFF4 00036C54  C0 3D 00 08 */	lfs f1, 8(r29)
/* 8003AFF8 00036C58  FC A0 20 90 */	fmr f5, f4
/* 8003AFFC 00036C5C  7F C4 F3 78 */	mr r4, r30
/* 8003B000 00036C60  7F E6 FB 78 */	mr r6, r31
/* 8003B004 00036C64  38 7C 03 A0 */	addi r3, r28, 0x3a0
/* 8003B008 00036C68  38 BC 0C D4 */	addi r5, r28, 0xcd4
/* 8003B00C 00036C6C  38 E0 00 00 */	li r7, 0
/* 8003B010 00036C70  48 01 61 25 */	bl func_80051134
/* 8003B014 00036C74  E3 E1 00 38 */	psq_l f31, 56(r1), 0, qr0
/* 8003B018 00036C78  CB E1 00 30 */	lfd f31, 0x30(r1)
/* 8003B01C 00036C7C  E3 C1 00 28 */	psq_l f30, 40(r1), 0, qr0
/* 8003B020 00036C80  CB C1 00 20 */	lfd f30, 0x20(r1)
/* 8003B024 00036C84  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8003B028 00036C88  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8003B02C 00036C8C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8003B030 00036C90  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8003B034 00036C94  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8003B038 00036C98  7C 08 03 A6 */	mtlr r0
/* 8003B03C 00036C9C  38 21 00 40 */	addi r1, r1, 0x40
/* 8003B040 00036CA0  4E 80 00 20 */	blr

.global func_8003B044
func_8003B044:
/* 8003B044 00036CA4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003B048 00036CA8  7C 08 02 A6 */	mflr r0
/* 8003B04C 00036CAC  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003B050 00036CB0  39 61 00 20 */	addi r11, r1, 0x20
/* 8003B054 00036CB4  48 18 C0 D5 */	bl _savegpr_27
/* 8003B058 00036CB8  54 C0 00 01 */	rlwinm. r0, r6, 0, 0, 0
/* 8003B05C 00036CBC  7C 7B 1B 78 */	mr r27, r3
/* 8003B060 00036CC0  7C 9C 23 78 */	mr r28, r4
/* 8003B064 00036CC4  7C BD 2B 78 */	mr r29, r5
/* 8003B068 00036CC8  7C DE 33 78 */	mr r30, r6
/* 8003B06C 00036CCC  40 82 00 4C */	bne lbl_8003B0B8
/* 8003B070 00036CD0  54 C0 07 39 */	rlwinm. r0, r6, 0, 0x1c, 0x1c
/* 8003B074 00036CD4  41 82 00 2C */	beq lbl_8003B0A0
/* 8003B078 00036CD8  54 C0 07 FF */	clrlwi. r0, r6, 0x1f
/* 8003B07C 00036CDC  54 DE 07 76 */	rlwinm r30, r6, 0, 0x1d, 0x1b
/* 8003B080 00036CE0  41 82 00 08 */	beq lbl_8003B088
/* 8003B084 00036CE4  63 DE 00 40 */	ori r30, r30, 0x40
lbl_8003B088:
/* 8003B088 00036CE8  57 C0 07 BD */	rlwinm. r0, r30, 0, 0x1e, 0x1e
/* 8003B08C 00036CEC  41 82 00 08 */	beq lbl_8003B094
/* 8003B090 00036CF0  63 DE 00 80 */	ori r30, r30, 0x80
lbl_8003B094:
/* 8003B094 00036CF4  57 C0 07 7B */	rlwinm. r0, r30, 0, 0x1d, 0x1d
/* 8003B098 00036CF8  41 82 00 08 */	beq lbl_8003B0A0
/* 8003B09C 00036CFC  63 DE 01 00 */	ori r30, r30, 0x100
lbl_8003B0A0:
/* 8003B0A0 00036D00  57 C0 07 FF */	clrlwi. r0, r30, 0x1f
/* 8003B0A4 00036D04  40 82 00 08 */	bne lbl_8003B0AC
/* 8003B0A8 00036D08  63 DE 00 09 */	ori r30, r30, 9
lbl_8003B0AC:
/* 8003B0AC 00036D0C  57 C0 07 BD */	rlwinm. r0, r30, 0, 0x1e, 0x1e
/* 8003B0B0 00036D10  40 82 00 08 */	bne lbl_8003B0B8
/* 8003B0B4 00036D14  63 DE 00 12 */	ori r30, r30, 0x12
lbl_8003B0B8:
/* 8003B0B8 00036D18  7F 83 E3 78 */	mr r3, r28
/* 8003B0BC 00036D1C  7F A4 EB 78 */	mr r4, r29
/* 8003B0C0 00036D20  4B FF E8 2D */	bl func_800398EC
/* 8003B0C4 00036D24  2C 03 00 00 */	cmpwi r3, 0
/* 8003B0C8 00036D28  7C 7F 1B 78 */	mr r31, r3
/* 8003B0CC 00036D2C  41 82 00 68 */	beq lbl_8003B134
/* 8003B0D0 00036D30  80 7B 0C 04 */	lwz r3, 0xc04(r27)
/* 8003B0D4 00036D34  80 83 00 08 */	lwz r4, 8(r3)
/* 8003B0D8 00036D38  2C 04 00 00 */	cmpwi r4, 0
/* 8003B0DC 00036D3C  40 82 00 0C */	bne lbl_8003B0E8
/* 8003B0E0 00036D40  38 60 00 00 */	li r3, 0
/* 8003B0E4 00036D44  48 00 00 1C */	b lbl_8003B100
lbl_8003B0E8:
/* 8003B0E8 00036D48  A0 03 00 DE */	lhz r0, 0xde(r3)
/* 8003B0EC 00036D4C  2C 00 00 00 */	cmpwi r0, 0
/* 8003B0F0 00036D50  40 82 00 0C */	bne lbl_8003B0FC
/* 8003B0F4 00036D54  38 60 00 00 */	li r3, 0
/* 8003B0F8 00036D58  48 00 00 08 */	b lbl_8003B100
lbl_8003B0FC:
/* 8003B0FC 00036D5C  80 64 00 00 */	lwz r3, 0(r4)
lbl_8003B100:
/* 8003B100 00036D60  81 83 01 00 */	lwz r12, 0x100(r3)
/* 8003B104 00036D64  38 80 00 01 */	li r4, 1
/* 8003B108 00036D68  81 8C 00 10 */	lwz r12, 0x10(r12)
/* 8003B10C 00036D6C  7D 89 03 A6 */	mtctr r12
/* 8003B110 00036D70  4E 80 04 21 */	bctrl
/* 8003B114 00036D74  80 BB 0C 04 */	lwz r5, 0xc04(r27)
/* 8003B118 00036D78  7F E3 FB 78 */	mr r3, r31
/* 8003B11C 00036D7C  57 C4 04 3E */	clrlwi r4, r30, 0x10
/* 8003B120 00036D80  38 C0 00 00 */	li r6, 0
/* 8003B124 00036D84  38 E0 00 03 */	li r7, 3
/* 8003B128 00036D88  48 1B 71 29 */	bl func_801F2250
/* 8003B12C 00036D8C  93 9B 0D 70 */	stw r28, 0xd70(r27)
/* 8003B130 00036D90  93 BB 0D 74 */	stw r29, 0xd74(r27)
lbl_8003B134:
/* 8003B134 00036D94  39 61 00 20 */	addi r11, r1, 0x20
/* 8003B138 00036D98  48 18 C0 3D */	bl _restgpr_27
/* 8003B13C 00036D9C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003B140 00036DA0  7C 08 03 A6 */	mtlr r0
/* 8003B144 00036DA4  38 21 00 20 */	addi r1, r1, 0x20
/* 8003B148 00036DA8  4E 80 00 20 */	blr

.global func_8003B14C
func_8003B14C:
/* 8003B14C 00036DAC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003B150 00036DB0  7C 08 02 A6 */	mflr r0
/* 8003B154 00036DB4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003B158 00036DB8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003B15C 00036DBC  7C 7F 1B 78 */	mr r31, r3
/* 8003B160 00036DC0  80 03 0D 70 */	lwz r0, 0xd70(r3)
/* 8003B164 00036DC4  2C 00 00 00 */	cmpwi r0, 0
/* 8003B168 00036DC8  41 82 00 28 */	beq lbl_8003B190
/* 8003B16C 00036DCC  80 9F 0D 74 */	lwz r4, 0xd74(r31)
/* 8003B170 00036DD0  7C 03 03 78 */	mr r3, r0
/* 8003B174 00036DD4  4B FF E7 79 */	bl func_800398EC
/* 8003B178 00036DD8  2C 03 00 00 */	cmpwi r3, 0
/* 8003B17C 00036DDC  41 82 00 0C */	beq lbl_8003B188
/* 8003B180 00036DE0  80 9F 0C 04 */	lwz r4, 0xc04(r31)
/* 8003B184 00036DE4  48 1B 71 9D */	bl func_801F2320
lbl_8003B188:
/* 8003B188 00036DE8  38 00 00 00 */	li r0, 0
/* 8003B18C 00036DEC  90 1F 0D 70 */	stw r0, 0xd70(r31)
lbl_8003B190:
/* 8003B190 00036DF0  38 7F 01 B4 */	addi r3, r31, 0x1b4
/* 8003B194 00036DF4  48 01 51 F5 */	bl func_80050388
/* 8003B198 00036DF8  38 7F 01 D8 */	addi r3, r31, 0x1d8
/* 8003B19C 00036DFC  48 01 51 ED */	bl func_80050388
/* 8003B1A0 00036E00  38 7F 01 FC */	addi r3, r31, 0x1fc
/* 8003B1A4 00036E04  48 01 51 E5 */	bl func_80050388
/* 8003B1A8 00036E08  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003B1AC 00036E0C  D0 1F 0D 64 */	stfs f0, 0xd64(r31)
/* 8003B1B0 00036E10  D0 1F 0D 68 */	stfs f0, 0xd68(r31)
/* 8003B1B4 00036E14  D0 1F 0D 6C */	stfs f0, 0xd6c(r31)
/* 8003B1B8 00036E18  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003B1BC 00036E1C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003B1C0 00036E20  7C 08 03 A6 */	mtlr r0
/* 8003B1C4 00036E24  38 21 00 10 */	addi r1, r1, 0x10
/* 8003B1C8 00036E28  4E 80 00 20 */	blr

.global func_8003B1CC
func_8003B1CC:
/* 8003B1CC 00036E2C  94 21 FF 70 */	stwu r1, -0x90(r1)
/* 8003B1D0 00036E30  7C 08 02 A6 */	mflr r0
/* 8003B1D4 00036E34  90 01 00 94 */	stw r0, 0x94(r1)
/* 8003B1D8 00036E38  DB E1 00 80 */	stfd f31, 0x80(r1)
/* 8003B1DC 00036E3C  F3 E1 00 88 */	psq_st f31, 136(r1), 0, qr0
/* 8003B1E0 00036E40  DB C1 00 70 */	stfd f30, 0x70(r1)
/* 8003B1E4 00036E44  F3 C1 00 78 */	psq_st f30, 120(r1), 0, qr0
/* 8003B1E8 00036E48  DB A1 00 60 */	stfd f29, 0x60(r1)
/* 8003B1EC 00036E4C  F3 A1 00 68 */	psq_st f29, 104(r1), 0, qr0
/* 8003B1F0 00036E50  FF A0 08 90 */	fmr f29, f1
/* 8003B1F4 00036E54  FF C0 10 90 */	fmr f30, f2
/* 8003B1F8 00036E58  93 E1 00 5C */	stw r31, 0x5c(r1)
/* 8003B1FC 00036E5C  FF E0 18 90 */	fmr f31, f3
/* 8003B200 00036E60  7C 7F 1B 78 */	mr r31, r3
/* 8003B204 00036E64  80 03 0D 70 */	lwz r0, 0xd70(r3)
/* 8003B208 00036E68  2C 00 00 00 */	cmpwi r0, 0
/* 8003B20C 00036E6C  41 82 00 98 */	beq lbl_8003B2A4
/* 8003B210 00036E70  C0 02 82 70 */	lfs f0, lbl_80640870-_SDA2_BASE_(r2)
/* 8003B214 00036E74  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 8003B218 00036E78  40 80 00 10 */	bge lbl_8003B228
/* 8003B21C 00036E7C  C0 02 82 74 */	lfs f0, lbl_80640874-_SDA2_BASE_(r2)
/* 8003B220 00036E80  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 8003B224 00036E84  41 81 00 80 */	bgt lbl_8003B2A4
lbl_8003B228:
/* 8003B228 00036E88  FC 40 10 50 */	fneg f2, f2
/* 8003B22C 00036E8C  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003B230 00036E90  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 8003B234 00036E94  38 61 00 30 */	addi r3, r1, 0x30
/* 8003B238 00036E98  38 81 00 08 */	addi r4, r1, 8
/* 8003B23C 00036E9C  D0 41 00 08 */	stfs f2, 8(r1)
/* 8003B240 00036EA0  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 8003B244 00036EA4  48 1E 84 7D */	bl func_802236C0
/* 8003B248 00036EA8  FC 00 F8 18 */	frsp f0, f31
/* 8003B24C 00036EAC  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003B250 00036EB0  D3 E1 00 28 */	stfs f31, 0x28(r1)
/* 8003B254 00036EB4  38 61 00 14 */	addi r3, r1, 0x14
/* 8003B258 00036EB8  38 81 00 30 */	addi r4, r1, 0x30
/* 8003B25C 00036EBC  D0 21 00 20 */	stfs f1, 0x20(r1)
/* 8003B260 00036EC0  D0 21 00 24 */	stfs f1, 0x24(r1)
/* 8003B264 00036EC4  D0 21 00 14 */	stfs f1, 0x14(r1)
/* 8003B268 00036EC8  D0 21 00 18 */	stfs f1, 0x18(r1)
/* 8003B26C 00036ECC  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 8003B270 00036ED0  48 1E 87 9D */	bl func_80223A0C
/* 8003B274 00036ED4  C0 41 00 14 */	lfs f2, 0x14(r1)
/* 8003B278 00036ED8  7F E3 FB 78 */	mr r3, r31
/* 8003B27C 00036EDC  C0 21 00 18 */	lfs f1, 0x18(r1)
/* 8003B280 00036EE0  38 81 00 40 */	addi r4, r1, 0x40
/* 8003B284 00036EE4  C0 01 00 1C */	lfs f0, 0x1c(r1)
/* 8003B288 00036EE8  D0 41 00 40 */	stfs f2, 0x40(r1)
/* 8003B28C 00036EEC  D0 21 00 44 */	stfs f1, 0x44(r1)
/* 8003B290 00036EF0  D0 01 00 48 */	stfs f0, 0x48(r1)
/* 8003B294 00036EF4  4B FF D5 89 */	bl func_8003881C
/* 8003B298 00036EF8  D3 FF 0D 64 */	stfs f31, 0xd64(r31)
/* 8003B29C 00036EFC  D3 BF 0D 68 */	stfs f29, 0xd68(r31)
/* 8003B2A0 00036F00  D3 DF 0D 6C */	stfs f30, 0xd6c(r31)
lbl_8003B2A4:
/* 8003B2A4 00036F04  E3 E1 00 88 */	psq_l f31, 136(r1), 0, qr0
/* 8003B2A8 00036F08  CB E1 00 80 */	lfd f31, 0x80(r1)
/* 8003B2AC 00036F0C  E3 C1 00 78 */	psq_l f30, 120(r1), 0, qr0
/* 8003B2B0 00036F10  CB C1 00 70 */	lfd f30, 0x70(r1)
/* 8003B2B4 00036F14  E3 A1 00 68 */	psq_l f29, 104(r1), 0, qr0
/* 8003B2B8 00036F18  CB A1 00 60 */	lfd f29, 0x60(r1)
/* 8003B2BC 00036F1C  80 01 00 94 */	lwz r0, 0x94(r1)
/* 8003B2C0 00036F20  83 E1 00 5C */	lwz r31, 0x5c(r1)
/* 8003B2C4 00036F24  7C 08 03 A6 */	mtlr r0
/* 8003B2C8 00036F28  38 21 00 90 */	addi r1, r1, 0x90
/* 8003B2CC 00036F2C  4E 80 00 20 */	blr

.global func_8003B2D0
func_8003B2D0:
/* 8003B2D0 00036F30  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003B2D4 00036F34  7C 08 02 A6 */	mflr r0
/* 8003B2D8 00036F38  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003B2DC 00036F3C  DB E1 00 28 */	stfd f31, 0x28(r1)
/* 8003B2E0 00036F40  FF E0 20 90 */	fmr f31, f4
/* 8003B2E4 00036F44  93 E1 00 24 */	stw r31, 0x24(r1)
/* 8003B2E8 00036F48  7C 9F 23 78 */	mr r31, r4
/* 8003B2EC 00036F4C  93 C1 00 20 */	stw r30, 0x20(r1)
/* 8003B2F0 00036F50  7C 7E 1B 78 */	mr r30, r3
/* 8003B2F4 00036F54  D0 21 00 08 */	stfs f1, 8(r1)
/* 8003B2F8 00036F58  D0 41 00 0C */	stfs f2, 0xc(r1)
/* 8003B2FC 00036F5C  D0 61 00 10 */	stfs f3, 0x10(r1)
/* 8003B300 00036F60  80 03 0D 70 */	lwz r0, 0xd70(r3)
/* 8003B304 00036F64  2C 00 00 00 */	cmpwi r0, 0
/* 8003B308 00036F68  41 82 00 64 */	beq lbl_8003B36C
/* 8003B30C 00036F6C  7F C4 F3 78 */	mr r4, r30
/* 8003B310 00036F70  38 61 00 14 */	addi r3, r1, 0x14
/* 8003B314 00036F74  4B FF D4 CD */	bl func_800387E0
/* 8003B318 00036F78  FC 20 F8 90 */	fmr f1, f31
/* 8003B31C 00036F7C  38 9E 0D 64 */	addi r4, r30, 0xd64
/* 8003B320 00036F80  7C 86 23 78 */	mr r6, r4
/* 8003B324 00036F84  7F E7 FB 78 */	mr r7, r31
/* 8003B328 00036F88  38 7E 01 B4 */	addi r3, r30, 0x1b4
/* 8003B32C 00036F8C  38 A1 00 10 */	addi r5, r1, 0x10
/* 8003B330 00036F90  48 01 50 0D */	bl func_8005033C
/* 8003B334 00036F94  FC 20 F8 90 */	fmr f1, f31
/* 8003B338 00036F98  38 9E 0D 68 */	addi r4, r30, 0xd68
/* 8003B33C 00036F9C  7C 86 23 78 */	mr r6, r4
/* 8003B340 00036FA0  7F E7 FB 78 */	mr r7, r31
/* 8003B344 00036FA4  38 7E 01 D8 */	addi r3, r30, 0x1d8
/* 8003B348 00036FA8  38 A1 00 08 */	addi r5, r1, 8
/* 8003B34C 00036FAC  48 01 4F F1 */	bl func_8005033C
/* 8003B350 00036FB0  FC 20 F8 90 */	fmr f1, f31
/* 8003B354 00036FB4  38 9E 0D 6C */	addi r4, r30, 0xd6c
/* 8003B358 00036FB8  7C 86 23 78 */	mr r6, r4
/* 8003B35C 00036FBC  7F E7 FB 78 */	mr r7, r31
/* 8003B360 00036FC0  38 7E 01 FC */	addi r3, r30, 0x1fc
/* 8003B364 00036FC4  38 A1 00 0C */	addi r5, r1, 0xc
/* 8003B368 00036FC8  48 01 4F D5 */	bl func_8005033C
lbl_8003B36C:
/* 8003B36C 00036FCC  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003B370 00036FD0  CB E1 00 28 */	lfd f31, 0x28(r1)
/* 8003B374 00036FD4  83 E1 00 24 */	lwz r31, 0x24(r1)
/* 8003B378 00036FD8  83 C1 00 20 */	lwz r30, 0x20(r1)
/* 8003B37C 00036FDC  7C 08 03 A6 */	mtlr r0
/* 8003B380 00036FE0  38 21 00 30 */	addi r1, r1, 0x30
/* 8003B384 00036FE4  4E 80 00 20 */	blr

.global func_8003B388
func_8003B388:
/* 8003B388 00036FE8  3C 80 80 41 */	lis r4, lbl_8040A3F0@ha
/* 8003B38C 00036FEC  38 00 00 03 */	li r0, 3
/* 8003B390 00036FF0  38 A0 00 00 */	li r5, 0
/* 8003B394 00036FF4  38 C0 00 00 */	li r6, 0
/* 8003B398 00036FF8  38 84 A3 F0 */	addi r4, r4, lbl_8040A3F0@l
/* 8003B39C 00036FFC  7C 09 03 A6 */	mtctr r0
lbl_8003B3A0:
/* 8003B3A0 00037000  80 03 00 04 */	lwz r0, 4(r3)
/* 8003B3A4 00037004  2C 00 00 00 */	cmpwi r0, 0
/* 8003B3A8 00037008  41 82 00 0C */	beq lbl_8003B3B4
/* 8003B3AC 0003700C  A0 04 00 00 */	lhz r0, 0(r4)
/* 8003B3B0 00037010  7C A5 03 78 */	or r5, r5, r0
lbl_8003B3B4:
/* 8003B3B4 00037014  80 03 00 28 */	lwz r0, 0x28(r3)
/* 8003B3B8 00037018  2C 00 00 00 */	cmpwi r0, 0
/* 8003B3BC 0003701C  41 82 00 0C */	beq lbl_8003B3C8
/* 8003B3C0 00037020  A0 04 00 02 */	lhz r0, 2(r4)
/* 8003B3C4 00037024  7C A5 03 78 */	or r5, r5, r0
lbl_8003B3C8:
/* 8003B3C8 00037028  80 03 00 4C */	lwz r0, 0x4c(r3)
/* 8003B3CC 0003702C  2C 00 00 00 */	cmpwi r0, 0
/* 8003B3D0 00037030  41 82 00 0C */	beq lbl_8003B3DC
/* 8003B3D4 00037034  A0 04 00 04 */	lhz r0, 4(r4)
/* 8003B3D8 00037038  7C A5 03 78 */	or r5, r5, r0
lbl_8003B3DC:
/* 8003B3DC 0003703C  80 03 00 70 */	lwz r0, 0x70(r3)
/* 8003B3E0 00037040  2C 00 00 00 */	cmpwi r0, 0
/* 8003B3E4 00037044  41 82 00 0C */	beq lbl_8003B3F0
/* 8003B3E8 00037048  A0 04 00 06 */	lhz r0, 6(r4)
/* 8003B3EC 0003704C  7C A5 03 78 */	or r5, r5, r0
lbl_8003B3F0:
/* 8003B3F0 00037050  80 03 00 94 */	lwz r0, 0x94(r3)
/* 8003B3F4 00037054  2C 00 00 00 */	cmpwi r0, 0
/* 8003B3F8 00037058  41 82 00 0C */	beq lbl_8003B404
/* 8003B3FC 0003705C  A0 04 00 08 */	lhz r0, 8(r4)
/* 8003B400 00037060  7C A5 03 78 */	or r5, r5, r0
lbl_8003B404:
/* 8003B404 00037064  38 63 00 B4 */	addi r3, r3, 0xb4
/* 8003B408 00037068  38 84 00 0A */	addi r4, r4, 0xa
/* 8003B40C 0003706C  38 C6 00 04 */	addi r6, r6, 4
/* 8003B410 00037070  42 00 FF 90 */	bdnz lbl_8003B3A0
/* 8003B414 00037074  7C A3 2B 78 */	mr r3, r5
/* 8003B418 00037078  4E 80 00 20 */	blr

.global func_8003B41C
func_8003B41C:
/* 8003B41C 0003707C  80 83 0C 04 */	lwz r4, 0xc04(r3)
/* 8003B420 00037080  2C 04 00 00 */	cmpwi r4, 0
/* 8003B424 00037084  40 82 00 0C */	bne lbl_8003B430
/* 8003B428 00037088  38 60 00 00 */	li r3, 0
/* 8003B42C 0003708C  4E 80 00 20 */	blr
lbl_8003B430:
/* 8003B430 00037090  A0 A4 00 DE */	lhz r5, 0xde(r4)
/* 8003B434 00037094  39 20 00 00 */	li r9, 0
/* 8003B438 00037098  48 00 01 00 */	b lbl_8003B538
lbl_8003B43C:
/* 8003B43C 0003709C  80 83 0C 04 */	lwz r4, 0xc04(r3)
/* 8003B440 000370A0  80 C4 00 08 */	lwz r6, 8(r4)
/* 8003B444 000370A4  2C 06 00 00 */	cmpwi r6, 0
/* 8003B448 000370A8  40 82 00 0C */	bne lbl_8003B454
/* 8003B44C 000370AC  38 80 00 00 */	li r4, 0
/* 8003B450 000370B0  48 00 00 24 */	b lbl_8003B474
lbl_8003B454:
/* 8003B454 000370B4  A0 04 00 DE */	lhz r0, 0xde(r4)
/* 8003B458 000370B8  55 24 04 3E */	clrlwi r4, r9, 0x10
/* 8003B45C 000370BC  7C 04 00 40 */	cmplw r4, r0
/* 8003B460 000370C0  41 80 00 0C */	blt lbl_8003B46C
/* 8003B464 000370C4  38 80 00 00 */	li r4, 0
/* 8003B468 000370C8  48 00 00 0C */	b lbl_8003B474
lbl_8003B46C:
/* 8003B46C 000370CC  55 20 13 BA */	rlwinm r0, r9, 2, 0xe, 0x1d
/* 8003B470 000370D0  7C 86 00 2E */	lwzx r4, r6, r0
lbl_8003B474:
/* 8003B474 000370D4  2C 04 00 00 */	cmpwi r4, 0
/* 8003B478 000370D8  41 82 00 BC */	beq lbl_8003B534
/* 8003B47C 000370DC  80 E4 00 04 */	lwz r7, 4(r4)
/* 8003B480 000370E0  2C 07 00 00 */	cmpwi r7, 0
/* 8003B484 000370E4  41 82 00 B0 */	beq lbl_8003B534
/* 8003B488 000370E8  41 82 00 40 */	beq lbl_8003B4C8
/* 8003B48C 000370EC  A1 07 00 06 */	lhz r8, 6(r7)
/* 8003B490 000370F0  38 C0 00 01 */	li r6, 1
/* 8003B494 000370F4  55 00 07 39 */	rlwinm. r0, r8, 0, 0x1c, 0x1c
/* 8003B498 000370F8  40 82 00 34 */	bne lbl_8003B4CC
/* 8003B49C 000370FC  80 07 00 00 */	lwz r0, 0(r7)
/* 8003B4A0 00037100  38 80 00 00 */	li r4, 0
/* 8003B4A4 00037104  2C 00 00 00 */	cmpwi r0, 0
/* 8003B4A8 00037108  41 82 00 10 */	beq lbl_8003B4B8
/* 8003B4AC 0003710C  55 00 07 FF */	clrlwi. r0, r8, 0x1f
/* 8003B4B0 00037110  41 82 00 08 */	beq lbl_8003B4B8
/* 8003B4B4 00037114  38 80 00 01 */	li r4, 1
lbl_8003B4B8:
/* 8003B4B8 00037118  2C 04 00 00 */	cmpwi r4, 0
/* 8003B4BC 0003711C  41 82 00 10 */	beq lbl_8003B4CC
/* 8003B4C0 00037120  38 C0 00 00 */	li r6, 0
/* 8003B4C4 00037124  48 00 00 08 */	b lbl_8003B4CC
lbl_8003B4C8:
/* 8003B4C8 00037128  38 C0 00 01 */	li r6, 1
lbl_8003B4CC:
/* 8003B4CC 0003712C  2C 06 00 00 */	cmpwi r6, 0
/* 8003B4D0 00037130  41 82 00 0C */	beq lbl_8003B4DC
/* 8003B4D4 00037134  38 60 00 01 */	li r3, 1
/* 8003B4D8 00037138  4E 80 00 20 */	blr
lbl_8003B4DC:
/* 8003B4DC 0003713C  2C 07 00 00 */	cmpwi r7, 0
/* 8003B4E0 00037140  41 82 00 40 */	beq lbl_8003B520
/* 8003B4E4 00037144  A1 07 00 06 */	lhz r8, 6(r7)
/* 8003B4E8 00037148  38 C0 00 01 */	li r6, 1
/* 8003B4EC 0003714C  55 00 07 7B */	rlwinm. r0, r8, 0, 0x1d, 0x1d
/* 8003B4F0 00037150  40 82 00 34 */	bne lbl_8003B524
/* 8003B4F4 00037154  80 07 00 00 */	lwz r0, 0(r7)
/* 8003B4F8 00037158  38 80 00 00 */	li r4, 0
/* 8003B4FC 0003715C  2C 00 00 00 */	cmpwi r0, 0
/* 8003B500 00037160  41 82 00 10 */	beq lbl_8003B510
/* 8003B504 00037164  55 00 07 FF */	clrlwi. r0, r8, 0x1f
/* 8003B508 00037168  41 82 00 08 */	beq lbl_8003B510
/* 8003B50C 0003716C  38 80 00 01 */	li r4, 1
lbl_8003B510:
/* 8003B510 00037170  2C 04 00 00 */	cmpwi r4, 0
/* 8003B514 00037174  41 82 00 10 */	beq lbl_8003B524
/* 8003B518 00037178  38 C0 00 00 */	li r6, 0
/* 8003B51C 0003717C  48 00 00 08 */	b lbl_8003B524
lbl_8003B520:
/* 8003B520 00037180  38 C0 00 01 */	li r6, 1
lbl_8003B524:
/* 8003B524 00037184  2C 06 00 00 */	cmpwi r6, 0
/* 8003B528 00037188  41 82 00 0C */	beq lbl_8003B534
/* 8003B52C 0003718C  38 60 00 02 */	li r3, 2
/* 8003B530 00037190  4E 80 00 20 */	blr
lbl_8003B534:
/* 8003B534 00037194  39 29 00 01 */	addi r9, r9, 1
lbl_8003B538:
/* 8003B538 00037198  55 20 04 3E */	clrlwi r0, r9, 0x10
/* 8003B53C 0003719C  7C 00 28 40 */	cmplw r0, r5
/* 8003B540 000371A0  41 80 FE FC */	blt lbl_8003B43C
/* 8003B544 000371A4  38 60 00 00 */	li r3, 0
/* 8003B548 000371A8  4E 80 00 20 */	blr

.global func_8003B54C
func_8003B54C:
/* 8003B54C 000371AC  80 83 0C 04 */	lwz r4, 0xc04(r3)
/* 8003B550 000371B0  2C 04 00 00 */	cmpwi r4, 0
/* 8003B554 000371B4  40 82 00 0C */	bne lbl_8003B560
/* 8003B558 000371B8  38 60 00 00 */	li r3, 0
/* 8003B55C 000371BC  4E 80 00 20 */	blr
lbl_8003B560:
/* 8003B560 000371C0  A0 A4 00 DE */	lhz r5, 0xde(r4)
/* 8003B564 000371C4  39 20 00 00 */	li r9, 0
/* 8003B568 000371C8  48 00 00 F8 */	b lbl_8003B660
lbl_8003B56C:
/* 8003B56C 000371CC  80 83 0C 04 */	lwz r4, 0xc04(r3)
/* 8003B570 000371D0  80 C4 00 08 */	lwz r6, 8(r4)
/* 8003B574 000371D4  2C 06 00 00 */	cmpwi r6, 0
/* 8003B578 000371D8  40 82 00 0C */	bne lbl_8003B584
/* 8003B57C 000371DC  38 80 00 00 */	li r4, 0
/* 8003B580 000371E0  48 00 00 24 */	b lbl_8003B5A4
lbl_8003B584:
/* 8003B584 000371E4  A0 04 00 DE */	lhz r0, 0xde(r4)
/* 8003B588 000371E8  55 24 04 3E */	clrlwi r4, r9, 0x10
/* 8003B58C 000371EC  7C 04 00 40 */	cmplw r4, r0
/* 8003B590 000371F0  41 80 00 0C */	blt lbl_8003B59C
/* 8003B594 000371F4  38 80 00 00 */	li r4, 0
/* 8003B598 000371F8  48 00 00 0C */	b lbl_8003B5A4
lbl_8003B59C:
/* 8003B59C 000371FC  55 20 13 BA */	rlwinm r0, r9, 2, 0xe, 0x1d
/* 8003B5A0 00037200  7C 86 00 2E */	lwzx r4, r6, r0
lbl_8003B5A4:
/* 8003B5A4 00037204  2C 04 00 00 */	cmpwi r4, 0
/* 8003B5A8 00037208  41 82 00 B4 */	beq lbl_8003B65C
/* 8003B5AC 0003720C  80 E4 00 04 */	lwz r7, 4(r4)
/* 8003B5B0 00037210  2C 07 00 00 */	cmpwi r7, 0
/* 8003B5B4 00037214  41 82 00 A8 */	beq lbl_8003B65C
/* 8003B5B8 00037218  41 82 00 40 */	beq lbl_8003B5F8
/* 8003B5BC 0003721C  A1 07 00 06 */	lhz r8, 6(r7)
/* 8003B5C0 00037220  38 C0 00 01 */	li r6, 1
/* 8003B5C4 00037224  55 00 07 39 */	rlwinm. r0, r8, 0, 0x1c, 0x1c
/* 8003B5C8 00037228  40 82 00 34 */	bne lbl_8003B5FC
/* 8003B5CC 0003722C  80 07 00 00 */	lwz r0, 0(r7)
/* 8003B5D0 00037230  38 80 00 00 */	li r4, 0
/* 8003B5D4 00037234  2C 00 00 00 */	cmpwi r0, 0
/* 8003B5D8 00037238  41 82 00 10 */	beq lbl_8003B5E8
/* 8003B5DC 0003723C  55 00 07 FF */	clrlwi. r0, r8, 0x1f
/* 8003B5E0 00037240  41 82 00 08 */	beq lbl_8003B5E8
/* 8003B5E4 00037244  38 80 00 01 */	li r4, 1
lbl_8003B5E8:
/* 8003B5E8 00037248  2C 04 00 00 */	cmpwi r4, 0
/* 8003B5EC 0003724C  41 82 00 10 */	beq lbl_8003B5FC
/* 8003B5F0 00037250  38 C0 00 00 */	li r6, 0
/* 8003B5F4 00037254  48 00 00 08 */	b lbl_8003B5FC
lbl_8003B5F8:
/* 8003B5F8 00037258  38 C0 00 01 */	li r6, 1
lbl_8003B5FC:
/* 8003B5FC 0003725C  2C 06 00 00 */	cmpwi r6, 0
/* 8003B600 00037260  40 82 00 54 */	bne lbl_8003B654
/* 8003B604 00037264  2C 07 00 00 */	cmpwi r7, 0
/* 8003B608 00037268  41 82 00 40 */	beq lbl_8003B648
/* 8003B60C 0003726C  A1 07 00 06 */	lhz r8, 6(r7)
/* 8003B610 00037270  38 C0 00 01 */	li r6, 1
/* 8003B614 00037274  55 00 07 7B */	rlwinm. r0, r8, 0, 0x1d, 0x1d
/* 8003B618 00037278  40 82 00 34 */	bne lbl_8003B64C
/* 8003B61C 0003727C  80 07 00 00 */	lwz r0, 0(r7)
/* 8003B620 00037280  38 80 00 00 */	li r4, 0
/* 8003B624 00037284  2C 00 00 00 */	cmpwi r0, 0
/* 8003B628 00037288  41 82 00 10 */	beq lbl_8003B638
/* 8003B62C 0003728C  55 00 07 FF */	clrlwi. r0, r8, 0x1f
/* 8003B630 00037290  41 82 00 08 */	beq lbl_8003B638
/* 8003B634 00037294  38 80 00 01 */	li r4, 1
lbl_8003B638:
/* 8003B638 00037298  2C 04 00 00 */	cmpwi r4, 0
/* 8003B63C 0003729C  41 82 00 10 */	beq lbl_8003B64C
/* 8003B640 000372A0  38 C0 00 00 */	li r6, 0
/* 8003B644 000372A4  48 00 00 08 */	b lbl_8003B64C
lbl_8003B648:
/* 8003B648 000372A8  38 C0 00 01 */	li r6, 1
lbl_8003B64C:
/* 8003B64C 000372AC  2C 06 00 00 */	cmpwi r6, 0
/* 8003B650 000372B0  41 82 00 0C */	beq lbl_8003B65C
lbl_8003B654:
/* 8003B654 000372B4  38 60 00 01 */	li r3, 1
/* 8003B658 000372B8  4E 80 00 20 */	blr
lbl_8003B65C:
/* 8003B65C 000372BC  39 29 00 01 */	addi r9, r9, 1
lbl_8003B660:
/* 8003B660 000372C0  55 20 04 3E */	clrlwi r0, r9, 0x10
/* 8003B664 000372C4  7C 00 28 40 */	cmplw r0, r5
/* 8003B668 000372C8  41 80 FF 04 */	blt lbl_8003B56C
/* 8003B66C 000372CC  38 60 00 00 */	li r3, 0
/* 8003B670 000372D0  4E 80 00 20 */	blr

.global func_8003B674
func_8003B674:
/* 8003B674 000372D4  80 C4 0C 04 */	lwz r6, 0xc04(r4)
/* 8003B678 000372D8  2C 06 00 00 */	cmpwi r6, 0
/* 8003B67C 000372DC  41 82 00 64 */	beq lbl_8003B6E0
/* 8003B680 000372E0  2C 05 00 00 */	cmpwi r5, 0
/* 8003B684 000372E4  A0 86 00 DE */	lhz r4, 0xde(r6)
/* 8003B688 000372E8  41 80 00 58 */	blt lbl_8003B6E0
/* 8003B68C 000372EC  7C 05 20 00 */	cmpw r5, r4
/* 8003B690 000372F0  40 80 00 50 */	bge lbl_8003B6E0
/* 8003B694 000372F4  80 C6 00 08 */	lwz r6, 8(r6)
/* 8003B698 000372F8  2C 06 00 00 */	cmpwi r6, 0
/* 8003B69C 000372FC  40 82 00 0C */	bne lbl_8003B6A8
/* 8003B6A0 00037300  38 80 00 00 */	li r4, 0
/* 8003B6A4 00037304  48 00 00 20 */	b lbl_8003B6C4
lbl_8003B6A8:
/* 8003B6A8 00037308  54 A0 04 3E */	clrlwi r0, r5, 0x10
/* 8003B6AC 0003730C  7C 00 20 40 */	cmplw r0, r4
/* 8003B6B0 00037310  41 80 00 0C */	blt lbl_8003B6BC
/* 8003B6B4 00037314  38 80 00 00 */	li r4, 0
/* 8003B6B8 00037318  48 00 00 0C */	b lbl_8003B6C4
lbl_8003B6BC:
/* 8003B6BC 0003731C  54 A0 13 BA */	rlwinm r0, r5, 2, 0xe, 0x1d
/* 8003B6C0 00037320  7C 86 00 2E */	lwzx r4, r6, r0
lbl_8003B6C4:
/* 8003B6C4 00037324  C0 04 00 DC */	lfs f0, 0xdc(r4)
/* 8003B6C8 00037328  D0 03 00 00 */	stfs f0, 0(r3)
/* 8003B6CC 0003732C  C0 04 00 EC */	lfs f0, 0xec(r4)
/* 8003B6D0 00037330  D0 03 00 04 */	stfs f0, 4(r3)
/* 8003B6D4 00037334  C0 04 00 FC */	lfs f0, 0xfc(r4)
/* 8003B6D8 00037338  D0 03 00 08 */	stfs f0, 8(r3)
/* 8003B6DC 0003733C  4E 80 00 20 */	blr
lbl_8003B6E0:
/* 8003B6E0 00037340  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003B6E4 00037344  D0 03 00 00 */	stfs f0, 0(r3)
/* 8003B6E8 00037348  D0 03 00 04 */	stfs f0, 4(r3)
/* 8003B6EC 0003734C  D0 03 00 08 */	stfs f0, 8(r3)
/* 8003B6F0 00037350  4E 80 00 20 */	blr

.global func_8003B6F4
func_8003B6F4:
/* 8003B6F4 00037354  80 84 0C 04 */	lwz r4, 0xc04(r4)
/* 8003B6F8 00037358  2C 04 00 00 */	cmpwi r4, 0
/* 8003B6FC 0003735C  41 82 00 0C */	beq lbl_8003B708
/* 8003B700 00037360  38 84 01 20 */	addi r4, r4, 0x120
/* 8003B704 00037364  48 00 00 08 */	b lbl_8003B70C
lbl_8003B708:
/* 8003B708 00037368  38 80 00 00 */	li r4, 0
lbl_8003B70C:
/* 8003B70C 0003736C  2C 04 00 00 */	cmpwi r4, 0
/* 8003B710 00037370  40 82 00 18 */	bne lbl_8003B728
/* 8003B714 00037374  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003B718 00037378  D0 03 00 00 */	stfs f0, 0(r3)
/* 8003B71C 0003737C  D0 03 00 04 */	stfs f0, 4(r3)
/* 8003B720 00037380  D0 03 00 08 */	stfs f0, 8(r3)
/* 8003B724 00037384  4E 80 00 20 */	blr
lbl_8003B728:
/* 8003B728 00037388  C0 04 00 00 */	lfs f0, 0(r4)
/* 8003B72C 0003738C  D0 03 00 00 */	stfs f0, 0(r3)
/* 8003B730 00037390  C0 04 00 04 */	lfs f0, 4(r4)
/* 8003B734 00037394  D0 03 00 04 */	stfs f0, 4(r3)
/* 8003B738 00037398  C0 04 00 08 */	lfs f0, 8(r4)
/* 8003B73C 0003739C  D0 03 00 08 */	stfs f0, 8(r3)
/* 8003B740 000373A0  4E 80 00 20 */	blr

.global func_8003B744
func_8003B744:
/* 8003B744 000373A4  80 84 0C 04 */	lwz r4, 0xc04(r4)
/* 8003B748 000373A8  2C 04 00 00 */	cmpwi r4, 0
/* 8003B74C 000373AC  41 82 00 0C */	beq lbl_8003B758
/* 8003B750 000373B0  38 84 01 20 */	addi r4, r4, 0x120
/* 8003B754 000373B4  48 00 00 08 */	b lbl_8003B75C
lbl_8003B758:
/* 8003B758 000373B8  38 80 00 00 */	li r4, 0
lbl_8003B75C:
/* 8003B75C 000373BC  2C 04 00 00 */	cmpwi r4, 0
/* 8003B760 000373C0  40 82 00 18 */	bne lbl_8003B778
/* 8003B764 000373C4  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003B768 000373C8  D0 03 00 00 */	stfs f0, 0(r3)
/* 8003B76C 000373CC  D0 03 00 04 */	stfs f0, 4(r3)
/* 8003B770 000373D0  D0 03 00 08 */	stfs f0, 8(r3)
/* 8003B774 000373D4  4E 80 00 20 */	blr
lbl_8003B778:
/* 8003B778 000373D8  C0 04 00 0C */	lfs f0, 0xc(r4)
/* 8003B77C 000373DC  D0 03 00 00 */	stfs f0, 0(r3)
/* 8003B780 000373E0  C0 04 00 10 */	lfs f0, 0x10(r4)
/* 8003B784 000373E4  D0 03 00 04 */	stfs f0, 4(r3)
/* 8003B788 000373E8  C0 04 00 14 */	lfs f0, 0x14(r4)
/* 8003B78C 000373EC  D0 03 00 08 */	stfs f0, 8(r3)
/* 8003B790 000373F0  4E 80 00 20 */	blr

.global func_8003B794
func_8003B794:
/* 8003B794 000373F4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003B798 000373F8  7C 08 02 A6 */	mflr r0
/* 8003B79C 000373FC  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003B7A0 00037400  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003B7A4 00037404  7C 7F 1B 78 */	mr r31, r3
/* 8003B7A8 00037408  38 61 00 08 */	addi r3, r1, 8
/* 8003B7AC 0003740C  7F E4 FB 78 */	mr r4, r31
/* 8003B7B0 00037410  4B FF D0 31 */	bl func_800387E0
/* 8003B7B4 00037414  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 8003B7B8 00037418  2C 03 00 00 */	cmpwi r3, 0
/* 8003B7BC 0003741C  41 82 00 0C */	beq lbl_8003B7C8
/* 8003B7C0 00037420  38 63 01 20 */	addi r3, r3, 0x120
/* 8003B7C4 00037424  48 00 00 08 */	b lbl_8003B7CC
lbl_8003B7C8:
/* 8003B7C8 00037428  38 60 00 00 */	li r3, 0
lbl_8003B7CC:
/* 8003B7CC 0003742C  2C 03 00 00 */	cmpwi r3, 0
/* 8003B7D0 00037430  40 82 00 0C */	bne lbl_8003B7DC
/* 8003B7D4 00037434  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 8003B7D8 00037438  48 00 00 10 */	b lbl_8003B7E8
lbl_8003B7DC:
/* 8003B7DC 0003743C  C0 23 00 04 */	lfs f1, 4(r3)
/* 8003B7E0 00037440  C0 01 00 0C */	lfs f0, 0xc(r1)
/* 8003B7E4 00037444  EC 21 00 2A */	fadds f1, f1, f0
lbl_8003B7E8:
/* 8003B7E8 00037448  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003B7EC 0003744C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8003B7F0 00037450  7C 08 03 A6 */	mtlr r0
/* 8003B7F4 00037454  38 21 00 20 */	addi r1, r1, 0x20
/* 8003B7F8 00037458  4E 80 00 20 */	blr

.global func_8003B7FC
func_8003B7FC:
/* 8003B7FC 0003745C  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 8003B800 00037460  7C 08 02 A6 */	mflr r0
/* 8003B804 00037464  90 01 00 54 */	stw r0, 0x54(r1)
/* 8003B808 00037468  DB E1 00 40 */	stfd f31, 0x40(r1)
/* 8003B80C 0003746C  F3 E1 00 48 */	psq_st f31, 72(r1), 0, qr0
/* 8003B810 00037470  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 8003B814 00037474  7C 7F 1B 78 */	mr r31, r3
/* 8003B818 00037478  38 61 00 20 */	addi r3, r1, 0x20
/* 8003B81C 0003747C  7F E4 FB 78 */	mr r4, r31
/* 8003B820 00037480  4B FF CF C1 */	bl func_800387E0
/* 8003B824 00037484  34 9F 0C 0C */	addic. r4, r31, 0xc0c
/* 8003B828 00037488  40 82 00 0C */	bne lbl_8003B834
/* 8003B82C 0003748C  C3 E2 82 20 */	lfs f31, lbl_80640820-_SDA2_BASE_(r2)
/* 8003B830 00037490  48 00 00 28 */	b lbl_8003B858
lbl_8003B834:
/* 8003B834 00037494  38 64 00 0C */	addi r3, r4, 0xc
/* 8003B838 00037498  38 A1 00 14 */	addi r5, r1, 0x14
/* 8003B83C 0003749C  48 24 14 AD */	bl PSVECSubtract
/* 8003B840 000374A0  C3 E1 00 18 */	lfs f31, 0x18(r1)
/* 8003B844 000374A4  C0 21 00 14 */	lfs f1, 0x14(r1)
/* 8003B848 000374A8  C0 01 00 1C */	lfs f0, 0x1c(r1)
/* 8003B84C 000374AC  D0 21 00 08 */	stfs f1, 8(r1)
/* 8003B850 000374B0  D3 E1 00 0C */	stfs f31, 0xc(r1)
/* 8003B854 000374B4  D0 01 00 10 */	stfs f0, 0x10(r1)
lbl_8003B858:
/* 8003B858 000374B8  7F E3 FB 78 */	mr r3, r31
/* 8003B85C 000374BC  4B FF FF 39 */	bl func_8003B794
/* 8003B860 000374C0  C0 42 82 88 */	lfs f2, lbl_80640888-_SDA2_BASE_(r2)
/* 8003B864 000374C4  C0 01 00 24 */	lfs f0, 0x24(r1)
/* 8003B868 000374C8  EC 42 07 F2 */	fmuls f2, f2, f31
/* 8003B86C 000374CC  EC 21 10 2A */	fadds f1, f1, f2
/* 8003B870 000374D0  EC 20 08 2A */	fadds f1, f0, f1
/* 8003B874 000374D4  E3 E1 00 48 */	psq_l f31, 72(r1), 0, qr0
/* 8003B878 000374D8  CB E1 00 40 */	lfd f31, 0x40(r1)
/* 8003B87C 000374DC  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 8003B880 000374E0  80 01 00 54 */	lwz r0, 0x54(r1)
/* 8003B884 000374E4  7C 08 03 A6 */	mtlr r0
/* 8003B888 000374E8  38 21 00 50 */	addi r1, r1, 0x50
/* 8003B88C 000374EC  4E 80 00 20 */	blr

.global func_8003B890
func_8003B890:
/* 8003B890 000374F0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003B894 000374F4  7C 08 02 A6 */	mflr r0
/* 8003B898 000374F8  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003B89C 000374FC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003B8A0 00037500  7C 9F 23 78 */	mr r31, r4
/* 8003B8A4 00037504  93 C1 00 08 */	stw r30, 8(r1)
/* 8003B8A8 00037508  7C 7E 1B 78 */	mr r30, r3
/* 8003B8AC 0003750C  4B FF CF 35 */	bl func_800387E0
/* 8003B8B0 00037510  7F E3 FB 78 */	mr r3, r31
/* 8003B8B4 00037514  4B FF FF 49 */	bl func_8003B7FC
/* 8003B8B8 00037518  D0 3E 00 04 */	stfs f1, 4(r30)
/* 8003B8BC 0003751C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003B8C0 00037520  83 C1 00 08 */	lwz r30, 8(r1)
/* 8003B8C4 00037524  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003B8C8 00037528  7C 08 03 A6 */	mtlr r0
/* 8003B8CC 0003752C  38 21 00 10 */	addi r1, r1, 0x10
/* 8003B8D0 00037530  4E 80 00 20 */	blr

.global func_8003B8D4
func_8003B8D4:
/* 8003B8D4 00037534  94 21 FF 60 */	stwu r1, -0xa0(r1)
/* 8003B8D8 00037538  7C 08 02 A6 */	mflr r0
/* 8003B8DC 0003753C  90 01 00 A4 */	stw r0, 0xa4(r1)
/* 8003B8E0 00037540  DB E1 00 90 */	stfd f31, 0x90(r1)
/* 8003B8E4 00037544  F3 E1 00 98 */	psq_st f31, 152(r1), 0, qr0
/* 8003B8E8 00037548  DB C1 00 80 */	stfd f30, 0x80(r1)
/* 8003B8EC 0003754C  F3 C1 00 88 */	psq_st f30, 136(r1), 0, qr0
/* 8003B8F0 00037550  39 61 00 80 */	addi r11, r1, 0x80
/* 8003B8F4 00037554  48 18 B8 35 */	bl _savegpr_27
/* 8003B8F8 00037558  FF E0 08 90 */	fmr f31, f1
/* 8003B8FC 0003755C  7C 7E 1B 78 */	mr r30, r3
/* 8003B900 00037560  3B E0 00 00 */	li r31, 0
/* 8003B904 00037564  4B FF C0 A5 */	bl func_800379A8
/* 8003B908 00037568  80 1E 0C 04 */	lwz r0, 0xc04(r30)
/* 8003B90C 0003756C  2C 00 00 00 */	cmpwi r0, 0
/* 8003B910 00037570  41 82 08 EC */	beq lbl_8003C1FC
/* 8003B914 00037574  3F A0 80 41 */	lis r29, lbl_8040A3F0@ha
/* 8003B918 00037578  3B 9E 00 04 */	addi r28, r30, 4
/* 8003B91C 0003757C  3B BD A3 F0 */	addi r29, r29, lbl_8040A3F0@l
/* 8003B920 00037580  3B 60 00 00 */	li r27, 0
lbl_8003B924:
/* 8003B924 00037584  81 9C 00 20 */	lwz r12, 0x20(r28)
/* 8003B928 00037588  FC 20 F8 90 */	fmr f1, f31
/* 8003B92C 0003758C  7F 83 E3 78 */	mr r3, r28
/* 8003B930 00037590  81 8C 00 08 */	lwz r12, 8(r12)
/* 8003B934 00037594  7D 89 03 A6 */	mtctr r12
/* 8003B938 00037598  4E 80 04 21 */	bctrl
/* 8003B93C 0003759C  2C 03 00 00 */	cmpwi r3, 0
/* 8003B940 000375A0  41 82 00 0C */	beq lbl_8003B94C
/* 8003B944 000375A4  A0 1D 00 00 */	lhz r0, 0(r29)
/* 8003B948 000375A8  7F FF 03 78 */	or r31, r31, r0
lbl_8003B94C:
/* 8003B94C 000375AC  3B 7B 00 01 */	addi r27, r27, 1
/* 8003B950 000375B0  3B BD 00 02 */	addi r29, r29, 2
/* 8003B954 000375B4  2C 1B 00 0F */	cmpwi r27, 0xf
/* 8003B958 000375B8  3B 9C 00 24 */	addi r28, r28, 0x24
/* 8003B95C 000375BC  41 80 FF C8 */	blt lbl_8003B924
/* 8003B960 000375C0  81 9E 04 CC */	lwz r12, 0x4cc(r30)
/* 8003B964 000375C4  FC 20 F8 90 */	fmr f1, f31
/* 8003B968 000375C8  38 7E 04 94 */	addi r3, r30, 0x494
/* 8003B96C 000375CC  81 8C 00 08 */	lwz r12, 8(r12)
/* 8003B970 000375D0  7D 89 03 A6 */	mtctr r12
/* 8003B974 000375D4  4E 80 04 21 */	bctrl
/* 8003B978 000375D8  2C 03 00 00 */	cmpwi r3, 0
/* 8003B97C 000375DC  41 82 00 DC */	beq lbl_8003BA58
/* 8003B980 000375E0  C0 1E 0C 28 */	lfs f0, 0xc28(r30)
/* 8003B984 000375E4  FC 00 00 1E */	fctiwz f0, f0
/* 8003B988 000375E8  D8 01 00 40 */	stfd f0, 0x40(r1)
/* 8003B98C 000375EC  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8003B990 000375F0  98 01 00 08 */	stb r0, 8(r1)
/* 8003B994 000375F4  C0 1E 0C 2C */	lfs f0, 0xc2c(r30)
/* 8003B998 000375F8  FC 00 00 1E */	fctiwz f0, f0
/* 8003B99C 000375FC  D8 01 00 48 */	stfd f0, 0x48(r1)
/* 8003B9A0 00037600  80 01 00 4C */	lwz r0, 0x4c(r1)
/* 8003B9A4 00037604  98 01 00 09 */	stb r0, 9(r1)
/* 8003B9A8 00037608  C0 1E 0C 30 */	lfs f0, 0xc30(r30)
/* 8003B9AC 0003760C  FC 00 00 1E */	fctiwz f0, f0
/* 8003B9B0 00037610  D8 01 00 50 */	stfd f0, 0x50(r1)
/* 8003B9B4 00037614  80 01 00 54 */	lwz r0, 0x54(r1)
/* 8003B9B8 00037618  98 01 00 0A */	stb r0, 0xa(r1)
/* 8003B9BC 0003761C  C0 1E 0C 34 */	lfs f0, 0xc34(r30)
/* 8003B9C0 00037620  FC 00 00 1E */	fctiwz f0, f0
/* 8003B9C4 00037624  D8 01 00 58 */	stfd f0, 0x58(r1)
/* 8003B9C8 00037628  80 01 00 5C */	lwz r0, 0x5c(r1)
/* 8003B9CC 0003762C  98 01 00 0B */	stb r0, 0xb(r1)
/* 8003B9D0 00037630  A0 1E 0C 68 */	lhz r0, 0xc68(r30)
/* 8003B9D4 00037634  28 00 01 00 */	cmplwi r0, 0x100
/* 8003B9D8 00037638  40 82 00 74 */	bne lbl_8003BA4C
/* 8003B9DC 0003763C  3B 60 00 00 */	li r27, 0
/* 8003B9E0 00037640  48 00 00 50 */	b lbl_8003BA30
lbl_8003B9E4:
/* 8003B9E4 00037644  80 C5 00 04 */	lwz r6, 4(r5)
/* 8003B9E8 00037648  2C 06 00 00 */	cmpwi r6, 0
/* 8003B9EC 0003764C  40 82 00 0C */	bne lbl_8003B9F8
/* 8003B9F0 00037650  38 60 00 00 */	li r3, 0
/* 8003B9F4 00037654  48 00 00 28 */	b lbl_8003BA1C
lbl_8003B9F8:
/* 8003B9F8 00037658  80 65 00 00 */	lwz r3, 0(r5)
/* 8003B9FC 0003765C  57 64 06 3E */	clrlwi r4, r27, 0x18
/* 8003BA00 00037660  A0 03 00 18 */	lhz r0, 0x18(r3)
/* 8003BA04 00037664  7C 04 00 40 */	cmplw r4, r0
/* 8003BA08 00037668  41 80 00 0C */	blt lbl_8003BA14
/* 8003BA0C 0003766C  38 60 00 00 */	li r3, 0
/* 8003BA10 00037670  48 00 00 0C */	b lbl_8003BA1C
lbl_8003BA14:
/* 8003BA14 00037674  57 60 15 BA */	rlwinm r0, r27, 2, 0x16, 0x1d
/* 8003BA18 00037678  7C 66 00 2E */	lwzx r3, r6, r0
lbl_8003BA1C:
/* 8003BA1C 0003767C  2C 03 00 00 */	cmpwi r3, 0
/* 8003BA20 00037680  41 82 00 0C */	beq lbl_8003BA2C
/* 8003BA24 00037684  38 81 00 08 */	addi r4, r1, 8
/* 8003BA28 00037688  48 1B A7 E5 */	bl func_801F620C
lbl_8003BA2C:
/* 8003BA2C 0003768C  3B 7B 00 01 */	addi r27, r27, 1
lbl_8003BA30:
/* 8003BA30 00037690  80 BE 0C 00 */	lwz r5, 0xc00(r30)
/* 8003BA34 00037694  57 64 06 3E */	clrlwi r4, r27, 0x18
/* 8003BA38 00037698  80 65 00 00 */	lwz r3, 0(r5)
/* 8003BA3C 0003769C  A0 03 00 18 */	lhz r0, 0x18(r3)
/* 8003BA40 000376A0  7C 04 00 00 */	cmpw r4, r0
/* 8003BA44 000376A4  41 80 FF A0 */	blt lbl_8003B9E4
/* 8003BA48 000376A8  48 00 00 10 */	b lbl_8003BA58
lbl_8003BA4C:
/* 8003BA4C 000376AC  80 7E 0C 04 */	lwz r3, 0xc04(r30)
/* 8003BA50 000376B0  38 81 00 08 */	addi r4, r1, 8
/* 8003BA54 000376B4  48 1B A7 B9 */	bl func_801F620C
lbl_8003BA58:
/* 8003BA58 000376B8  81 9E 05 08 */	lwz r12, 0x508(r30)
/* 8003BA5C 000376BC  FC 20 F8 90 */	fmr f1, f31
/* 8003BA60 000376C0  38 7E 04 D0 */	addi r3, r30, 0x4d0
/* 8003BA64 000376C4  81 8C 00 08 */	lwz r12, 8(r12)
/* 8003BA68 000376C8  7D 89 03 A6 */	mtctr r12
/* 8003BA6C 000376CC  4E 80 04 21 */	bctrl
/* 8003BA70 000376D0  2C 03 00 00 */	cmpwi r3, 0
/* 8003BA74 000376D4  41 82 00 DC */	beq lbl_8003BB50
/* 8003BA78 000376D8  C0 1E 0C 38 */	lfs f0, 0xc38(r30)
/* 8003BA7C 000376DC  FC 00 00 1E */	fctiwz f0, f0
/* 8003BA80 000376E0  D8 01 00 58 */	stfd f0, 0x58(r1)
/* 8003BA84 000376E4  80 01 00 5C */	lwz r0, 0x5c(r1)
/* 8003BA88 000376E8  98 01 00 08 */	stb r0, 8(r1)
/* 8003BA8C 000376EC  C0 1E 0C 3C */	lfs f0, 0xc3c(r30)
/* 8003BA90 000376F0  FC 00 00 1E */	fctiwz f0, f0
/* 8003BA94 000376F4  D8 01 00 50 */	stfd f0, 0x50(r1)
/* 8003BA98 000376F8  80 01 00 54 */	lwz r0, 0x54(r1)
/* 8003BA9C 000376FC  98 01 00 09 */	stb r0, 9(r1)
/* 8003BAA0 00037700  C0 1E 0C 40 */	lfs f0, 0xc40(r30)
/* 8003BAA4 00037704  FC 00 00 1E */	fctiwz f0, f0
/* 8003BAA8 00037708  D8 01 00 48 */	stfd f0, 0x48(r1)
/* 8003BAAC 0003770C  80 01 00 4C */	lwz r0, 0x4c(r1)
/* 8003BAB0 00037710  98 01 00 0A */	stb r0, 0xa(r1)
/* 8003BAB4 00037714  C0 1E 0C 44 */	lfs f0, 0xc44(r30)
/* 8003BAB8 00037718  FC 00 00 1E */	fctiwz f0, f0
/* 8003BABC 0003771C  D8 01 00 40 */	stfd f0, 0x40(r1)
/* 8003BAC0 00037720  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8003BAC4 00037724  98 01 00 0B */	stb r0, 0xb(r1)
/* 8003BAC8 00037728  A0 1E 0C 68 */	lhz r0, 0xc68(r30)
/* 8003BACC 0003772C  28 00 01 00 */	cmplwi r0, 0x100
/* 8003BAD0 00037730  40 82 00 74 */	bne lbl_8003BB44
/* 8003BAD4 00037734  3B 60 00 00 */	li r27, 0
/* 8003BAD8 00037738  48 00 00 50 */	b lbl_8003BB28
lbl_8003BADC:
/* 8003BADC 0003773C  80 C5 00 04 */	lwz r6, 4(r5)
/* 8003BAE0 00037740  2C 06 00 00 */	cmpwi r6, 0
/* 8003BAE4 00037744  40 82 00 0C */	bne lbl_8003BAF0
/* 8003BAE8 00037748  38 60 00 00 */	li r3, 0
/* 8003BAEC 0003774C  48 00 00 28 */	b lbl_8003BB14
lbl_8003BAF0:
/* 8003BAF0 00037750  80 65 00 00 */	lwz r3, 0(r5)
/* 8003BAF4 00037754  57 64 06 3E */	clrlwi r4, r27, 0x18
/* 8003BAF8 00037758  A0 03 00 18 */	lhz r0, 0x18(r3)
/* 8003BAFC 0003775C  7C 04 00 40 */	cmplw r4, r0
/* 8003BB00 00037760  41 80 00 0C */	blt lbl_8003BB0C
/* 8003BB04 00037764  38 60 00 00 */	li r3, 0
/* 8003BB08 00037768  48 00 00 0C */	b lbl_8003BB14
lbl_8003BB0C:
/* 8003BB0C 0003776C  57 60 15 BA */	rlwinm r0, r27, 2, 0x16, 0x1d
/* 8003BB10 00037770  7C 66 00 2E */	lwzx r3, r6, r0
lbl_8003BB14:
/* 8003BB14 00037774  2C 03 00 00 */	cmpwi r3, 0
/* 8003BB18 00037778  41 82 00 0C */	beq lbl_8003BB24
/* 8003BB1C 0003777C  38 81 00 08 */	addi r4, r1, 8
/* 8003BB20 00037780  48 1B A6 75 */	bl func_801F6194
lbl_8003BB24:
/* 8003BB24 00037784  3B 7B 00 01 */	addi r27, r27, 1
lbl_8003BB28:
/* 8003BB28 00037788  80 BE 0C 00 */	lwz r5, 0xc00(r30)
/* 8003BB2C 0003778C  57 64 06 3E */	clrlwi r4, r27, 0x18
/* 8003BB30 00037790  80 65 00 00 */	lwz r3, 0(r5)
/* 8003BB34 00037794  A0 03 00 18 */	lhz r0, 0x18(r3)
/* 8003BB38 00037798  7C 04 00 00 */	cmpw r4, r0
/* 8003BB3C 0003779C  41 80 FF A0 */	blt lbl_8003BADC
/* 8003BB40 000377A0  48 00 00 10 */	b lbl_8003BB50
lbl_8003BB44:
/* 8003BB44 000377A4  80 7E 0C 04 */	lwz r3, 0xc04(r30)
/* 8003BB48 000377A8  38 81 00 08 */	addi r4, r1, 8
/* 8003BB4C 000377AC  48 1B A6 49 */	bl func_801F6194
lbl_8003BB50:
/* 8003BB50 000377B0  81 9E 04 90 */	lwz r12, 0x490(r30)
/* 8003BB54 000377B4  FC 20 F8 90 */	fmr f1, f31
/* 8003BB58 000377B8  38 7E 04 60 */	addi r3, r30, 0x460
/* 8003BB5C 000377BC  81 8C 00 08 */	lwz r12, 8(r12)
/* 8003BB60 000377C0  7D 89 03 A6 */	mtctr r12
/* 8003BB64 000377C4  4E 80 04 21 */	bctrl
/* 8003BB68 000377C8  2C 03 00 00 */	cmpwi r3, 0
/* 8003BB6C 000377CC  41 82 00 14 */	beq lbl_8003BB80
/* 8003BB70 000377D0  80 BE 0C 74 */	lwz r5, 0xc74(r30)
/* 8003BB74 000377D4  7F C3 F3 78 */	mr r3, r30
/* 8003BB78 000377D8  38 9E 0C 78 */	addi r4, r30, 0xc78
/* 8003BB7C 000377DC  4B FF ED DD */	bl func_8003A958
lbl_8003BB80:
/* 8003BB80 000377E0  3F 80 80 41 */	lis r28, lbl_8040A3F0@ha
/* 8003BB84 000377E4  3B BE 02 20 */	addi r29, r30, 0x220
/* 8003BB88 000377E8  3B 9C A3 F0 */	addi r28, r28, lbl_8040A3F0@l
/* 8003BB8C 000377EC  3B 60 00 00 */	li r27, 0
lbl_8003BB90:
/* 8003BB90 000377F0  81 9D 00 20 */	lwz r12, 0x20(r29)
/* 8003BB94 000377F4  FC 20 F8 90 */	fmr f1, f31
/* 8003BB98 000377F8  7F A3 EB 78 */	mr r3, r29
/* 8003BB9C 000377FC  81 8C 00 08 */	lwz r12, 8(r12)
/* 8003BBA0 00037800  7D 89 03 A6 */	mtctr r12
/* 8003BBA4 00037804  4E 80 04 21 */	bctrl
/* 8003BBA8 00037808  2C 03 00 00 */	cmpwi r3, 0
/* 8003BBAC 0003780C  41 82 00 0C */	beq lbl_8003BBB8
/* 8003BBB0 00037810  A0 1C 00 0C */	lhz r0, 0xc(r28)
/* 8003BBB4 00037814  7F FF 03 78 */	or r31, r31, r0
lbl_8003BBB8:
/* 8003BBB8 00037818  3B 7B 00 01 */	addi r27, r27, 1
/* 8003BBBC 0003781C  3B 9C 00 02 */	addi r28, r28, 2
/* 8003BBC0 00037820  2C 1B 00 03 */	cmpwi r27, 3
/* 8003BBC4 00037824  3B BD 00 C0 */	addi r29, r29, 0xc0
/* 8003BBC8 00037828  41 80 FF C8 */	blt lbl_8003BB90
/* 8003BBCC 0003782C  80 1E 0D 70 */	lwz r0, 0xd70(r30)
/* 8003BBD0 00037830  2C 00 00 00 */	cmpwi r0, 0
/* 8003BBD4 00037834  41 82 00 18 */	beq lbl_8003BBEC
/* 8003BBD8 00037838  C0 3E 0D 68 */	lfs f1, 0xd68(r30)
/* 8003BBDC 0003783C  7F C3 F3 78 */	mr r3, r30
/* 8003BBE0 00037840  C0 5E 0D 6C */	lfs f2, 0xd6c(r30)
/* 8003BBE4 00037844  C0 7E 0D 64 */	lfs f3, 0xd64(r30)
/* 8003BBE8 00037848  4B FF F5 E5 */	bl func_8003B1CC
lbl_8003BBEC:
/* 8003BBEC 0003784C  FC 20 F8 90 */	fmr f1, f31
/* 8003BBF0 00037850  7F C3 F3 78 */	mr r3, r30
/* 8003BBF4 00037854  48 00 1F 4D */	bl func_8003DB40
/* 8003BBF8 00037858  FC 20 F8 90 */	fmr f1, f31
/* 8003BBFC 0003785C  7F C3 F3 78 */	mr r3, r30
/* 8003BC00 00037860  48 00 0F B9 */	bl func_8003CBB8
/* 8003BC04 00037864  C0 5E 0D 80 */	lfs f2, 0xd80(r30)
/* 8003BC08 00037868  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003BC0C 0003786C  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 8003BC10 00037870  40 81 00 C0 */	ble lbl_8003BCD0
/* 8003BC14 00037874  C0 1E 0D 8C */	lfs f0, 0xd8c(r30)
/* 8003BC18 00037878  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 8003BC1C 0003787C  40 81 00 B4 */	ble lbl_8003BCD0
/* 8003BC20 00037880  EC 00 F8 28 */	fsubs f0, f0, f31
/* 8003BC24 00037884  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 8003BC28 00037888  D0 1E 0D 8C */	stfs f0, 0xd8c(r30)
/* 8003BC2C 0003788C  40 80 00 58 */	bge lbl_8003BC84
/* 8003BC30 00037890  83 BE 0C 04 */	lwz r29, 0xc04(r30)
/* 8003BC34 00037894  D0 3E 0D 8C */	stfs f1, 0xd8c(r30)
/* 8003BC38 00037898  7F A3 EB 78 */	mr r3, r29
/* 8003BC3C 0003789C  48 1B A2 81 */	bl func_801F5EBC
/* 8003BC40 000378A0  2C 03 00 00 */	cmpwi r3, 0
/* 8003BC44 000378A4  41 82 00 18 */	beq lbl_8003BC5C
/* 8003BC48 000378A8  A0 1D 00 DC */	lhz r0, 0xdc(r29)
/* 8003BC4C 000378AC  54 00 06 B5 */	rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 8003BC50 000378B0  40 82 00 0C */	bne lbl_8003BC5C
/* 8003BC54 000378B4  C0 02 82 30 */	lfs f0, lbl_80640830-_SDA2_BASE_(r2)
/* 8003BC58 000378B8  D0 1D 01 18 */	stfs f0, 0x118(r29)
lbl_8003BC5C:
/* 8003BC5C 000378BC  80 7E 0C 04 */	lwz r3, 0xc04(r30)
/* 8003BC60 000378C0  38 C0 00 00 */	li r6, 0
/* 8003BC64 000378C4  38 E0 00 00 */	li r7, 0
/* 8003BC68 000378C8  39 00 00 01 */	li r8, 1
/* 8003BC6C 000378CC  A0 83 01 04 */	lhz r4, 0x104(r3)
/* 8003BC70 000378D0  80 A3 01 08 */	lwz r5, 0x108(r3)
/* 8003BC74 000378D4  C0 23 01 0C */	lfs f1, 0x10c(r3)
/* 8003BC78 000378D8  C0 43 01 14 */	lfs f2, 0x114(r3)
/* 8003BC7C 000378DC  48 1B 91 79 */	bl func_801F4DF4
/* 8003BC80 000378E0  48 00 00 50 */	b lbl_8003BCD0
lbl_8003BC84:
/* 8003BC84 000378E4  EC 20 10 24 */	fdivs f1, f0, f2
/* 8003BC88 000378E8  C0 02 82 30 */	lfs f0, lbl_80640830-_SDA2_BASE_(r2)
/* 8003BC8C 000378EC  EF C0 08 28 */	fsubs f30, f0, f1
/* 8003BC90 000378F0  FC 1E 00 40 */	fcmpo cr0, f30, f0
/* 8003BC94 000378F4  40 81 00 08 */	ble lbl_8003BC9C
/* 8003BC98 000378F8  FF C0 00 90 */	fmr f30, f0
lbl_8003BC9C:
/* 8003BC9C 000378FC  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003BCA0 00037900  FC 1E 00 40 */	fcmpo cr0, f30, f0
/* 8003BCA4 00037904  40 80 00 08 */	bge lbl_8003BCAC
/* 8003BCA8 00037908  FF C0 00 90 */	fmr f30, f0
lbl_8003BCAC:
/* 8003BCAC 0003790C  83 BE 0C 04 */	lwz r29, 0xc04(r30)
/* 8003BCB0 00037910  7F A3 EB 78 */	mr r3, r29
/* 8003BCB4 00037914  48 1B A2 09 */	bl func_801F5EBC
/* 8003BCB8 00037918  2C 03 00 00 */	cmpwi r3, 0
/* 8003BCBC 0003791C  41 82 00 14 */	beq lbl_8003BCD0
/* 8003BCC0 00037920  A0 1D 00 DC */	lhz r0, 0xdc(r29)
/* 8003BCC4 00037924  54 00 06 B5 */	rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 8003BCC8 00037928  40 82 00 08 */	bne lbl_8003BCD0
/* 8003BCCC 0003792C  D3 DD 01 18 */	stfs f30, 0x118(r29)
lbl_8003BCD0:
/* 8003BCD0 00037930  57 E0 07 7F */	clrlwi. r0, r31, 0x1d
/* 8003BCD4 00037934  41 82 00 4C */	beq lbl_8003BD20
/* 8003BCD8 00037938  80 7E 0C 04 */	lwz r3, 0xc04(r30)
/* 8003BCDC 0003793C  C0 5E 0C B4 */	lfs f2, 0xcb4(r30)
/* 8003BCE0 00037940  80 63 00 08 */	lwz r3, 8(r3)
/* 8003BCE4 00037944  C0 3E 0C B8 */	lfs f1, 0xcb8(r30)
/* 8003BCE8 00037948  C0 1E 0C BC */	lfs f0, 0xcbc(r30)
/* 8003BCEC 0003794C  2C 03 00 00 */	cmpwi r3, 0
/* 8003BCF0 00037950  D0 41 00 24 */	stfs f2, 0x24(r1)
/* 8003BCF4 00037954  D0 21 00 28 */	stfs f1, 0x28(r1)
/* 8003BCF8 00037958  D0 01 00 2C */	stfs f0, 0x2c(r1)
/* 8003BCFC 0003795C  41 82 00 24 */	beq lbl_8003BD20
/* 8003BD00 00037960  80 63 00 00 */	lwz r3, 0(r3)
/* 8003BD04 00037964  2C 03 00 00 */	cmpwi r3, 0
/* 8003BD08 00037968  41 82 00 18 */	beq lbl_8003BD20
/* 8003BD0C 0003796C  D0 43 00 20 */	stfs f2, 0x20(r3)
/* 8003BD10 00037970  38 80 00 01 */	li r4, 1
/* 8003BD14 00037974  D0 23 00 24 */	stfs f1, 0x24(r3)
/* 8003BD18 00037978  D0 03 00 28 */	stfs f0, 0x28(r3)
/* 8003BD1C 0003797C  48 1B 69 9D */	bl func_801F26B8
lbl_8003BD20:
/* 8003BD20 00037980  57 E0 06 B9 */	rlwinm. r0, r31, 0, 0x1a, 0x1c
/* 8003BD24 00037984  41 82 00 78 */	beq lbl_8003BD9C
/* 8003BD28 00037988  C0 1E 0C C0 */	lfs f0, 0xcc0(r30)
/* 8003BD2C 0003798C  38 61 00 30 */	addi r3, r1, 0x30
/* 8003BD30 00037990  38 81 00 18 */	addi r4, r1, 0x18
/* 8003BD34 00037994  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 8003BD38 00037998  C0 1E 0C C4 */	lfs f0, 0xcc4(r30)
/* 8003BD3C 0003799C  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 8003BD40 000379A0  C0 1E 0C C8 */	lfs f0, 0xcc8(r30)
/* 8003BD44 000379A4  D0 01 00 20 */	stfs f0, 0x20(r1)
/* 8003BD48 000379A8  48 1E 79 79 */	bl func_802236C0
/* 8003BD4C 000379AC  80 7E 0C 04 */	lwz r3, 0xc04(r30)
/* 8003BD50 000379B0  80 63 00 08 */	lwz r3, 8(r3)
/* 8003BD54 000379B4  2C 03 00 00 */	cmpwi r3, 0
/* 8003BD58 000379B8  41 82 00 44 */	beq lbl_8003BD9C
/* 8003BD5C 000379BC  80 63 00 00 */	lwz r3, 0(r3)
/* 8003BD60 000379C0  2C 03 00 00 */	cmpwi r3, 0
/* 8003BD64 000379C4  41 82 00 38 */	beq lbl_8003BD9C
/* 8003BD68 000379C8  C0 01 00 30 */	lfs f0, 0x30(r1)
/* 8003BD6C 000379CC  38 80 00 01 */	li r4, 1
/* 8003BD70 000379D0  D0 03 00 2C */	stfs f0, 0x2c(r3)
/* 8003BD74 000379D4  C0 01 00 34 */	lfs f0, 0x34(r1)
/* 8003BD78 000379D8  D0 03 00 30 */	stfs f0, 0x30(r3)
/* 8003BD7C 000379DC  C0 01 00 38 */	lfs f0, 0x38(r1)
/* 8003BD80 000379E0  D0 03 00 34 */	stfs f0, 0x34(r3)
/* 8003BD84 000379E4  C0 01 00 3C */	lfs f0, 0x3c(r1)
/* 8003BD88 000379E8  D0 03 00 38 */	stfs f0, 0x38(r3)
/* 8003BD8C 000379EC  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 8003BD90 000379F0  54 00 07 B8 */	rlwinm r0, r0, 0, 0x1e, 0x1c
/* 8003BD94 000379F4  B0 03 00 10 */	sth r0, 0x10(r3)
/* 8003BD98 000379F8  48 1B 69 21 */	bl func_801F26B8
lbl_8003BD9C:
/* 8003BD9C 000379FC  57 E0 05 F3 */	rlwinm. r0, r31, 0, 0x17, 0x19
/* 8003BDA0 00037A00  41 82 00 E8 */	beq lbl_8003BE88
/* 8003BDA4 00037A04  80 7E 0C 04 */	lwz r3, 0xc04(r30)
/* 8003BDA8 00037A08  C0 7E 0C CC */	lfs f3, 0xccc(r30)
/* 8003BDAC 00037A0C  80 63 00 08 */	lwz r3, 8(r3)
/* 8003BDB0 00037A10  C0 3E 0C D0 */	lfs f1, 0xcd0(r30)
/* 8003BDB4 00037A14  C0 1E 0C D4 */	lfs f0, 0xcd4(r30)
/* 8003BDB8 00037A18  2C 03 00 00 */	cmpwi r3, 0
/* 8003BDBC 00037A1C  D0 61 00 0C */	stfs f3, 0xc(r1)
/* 8003BDC0 00037A20  D0 21 00 10 */	stfs f1, 0x10(r1)
/* 8003BDC4 00037A24  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 8003BDC8 00037A28  41 82 00 C0 */	beq lbl_8003BE88
/* 8003BDCC 00037A2C  80 63 00 00 */	lwz r3, 0(r3)
/* 8003BDD0 00037A30  2C 03 00 00 */	cmpwi r3, 0
/* 8003BDD4 00037A34  41 82 00 B4 */	beq lbl_8003BE88
/* 8003BDD8 00037A38  D0 63 00 48 */	stfs f3, 0x48(r3)
/* 8003BDDC 00037A3C  C0 42 82 70 */	lfs f2, lbl_80640870-_SDA2_BASE_(r2)
/* 8003BDE0 00037A40  D0 23 00 4C */	stfs f1, 0x4c(r3)
/* 8003BDE4 00037A44  FC 03 10 40 */	fcmpo cr0, f3, f2
/* 8003BDE8 00037A48  D0 03 00 50 */	stfs f0, 0x50(r3)
/* 8003BDEC 00037A4C  40 80 00 2C */	bge lbl_8003BE18
/* 8003BDF0 00037A50  C0 23 00 48 */	lfs f1, 0x48(r3)
/* 8003BDF4 00037A54  C0 62 82 74 */	lfs f3, lbl_80640874-_SDA2_BASE_(r2)
/* 8003BDF8 00037A58  FC 01 18 40 */	fcmpo cr0, f1, f3
/* 8003BDFC 00037A5C  40 81 00 1C */	ble lbl_8003BE18
/* 8003BE00 00037A60  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003BE04 00037A64  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8003BE08 00037A68  40 80 00 08 */	bge lbl_8003BE10
/* 8003BE0C 00037A6C  48 00 00 08 */	b lbl_8003BE14
lbl_8003BE10:
/* 8003BE10 00037A70  FC 60 10 90 */	fmr f3, f2
lbl_8003BE14:
/* 8003BE14 00037A74  D0 63 00 48 */	stfs f3, 0x48(r3)
lbl_8003BE18:
/* 8003BE18 00037A78  C0 43 00 4C */	lfs f2, 0x4c(r3)
/* 8003BE1C 00037A7C  C0 22 82 70 */	lfs f1, lbl_80640870-_SDA2_BASE_(r2)
/* 8003BE20 00037A80  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 8003BE24 00037A84  40 80 00 28 */	bge lbl_8003BE4C
/* 8003BE28 00037A88  C0 62 82 74 */	lfs f3, lbl_80640874-_SDA2_BASE_(r2)
/* 8003BE2C 00037A8C  FC 02 18 40 */	fcmpo cr0, f2, f3
/* 8003BE30 00037A90  40 81 00 1C */	ble lbl_8003BE4C
/* 8003BE34 00037A94  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003BE38 00037A98  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 8003BE3C 00037A9C  40 80 00 08 */	bge lbl_8003BE44
/* 8003BE40 00037AA0  48 00 00 08 */	b lbl_8003BE48
lbl_8003BE44:
/* 8003BE44 00037AA4  FC 60 08 90 */	fmr f3, f1
lbl_8003BE48:
/* 8003BE48 00037AA8  D0 63 00 4C */	stfs f3, 0x4c(r3)
lbl_8003BE4C:
/* 8003BE4C 00037AAC  C0 43 00 50 */	lfs f2, 0x50(r3)
/* 8003BE50 00037AB0  C0 22 82 70 */	lfs f1, lbl_80640870-_SDA2_BASE_(r2)
/* 8003BE54 00037AB4  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 8003BE58 00037AB8  40 80 00 28 */	bge lbl_8003BE80
/* 8003BE5C 00037ABC  C0 62 82 74 */	lfs f3, lbl_80640874-_SDA2_BASE_(r2)
/* 8003BE60 00037AC0  FC 02 18 40 */	fcmpo cr0, f2, f3
/* 8003BE64 00037AC4  40 81 00 1C */	ble lbl_8003BE80
/* 8003BE68 00037AC8  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003BE6C 00037ACC  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 8003BE70 00037AD0  40 80 00 08 */	bge lbl_8003BE78
/* 8003BE74 00037AD4  48 00 00 08 */	b lbl_8003BE7C
lbl_8003BE78:
/* 8003BE78 00037AD8  FC 60 08 90 */	fmr f3, f1
lbl_8003BE7C:
/* 8003BE7C 00037ADC  D0 63 00 50 */	stfs f3, 0x50(r3)
lbl_8003BE80:
/* 8003BE80 00037AE0  38 80 00 01 */	li r4, 1
/* 8003BE84 00037AE4  48 1B 68 35 */	bl func_801F26B8
lbl_8003BE88:
/* 8003BE88 00037AE8  57 E0 05 AD */	rlwinm. r0, r31, 0, 0x16, 0x16
/* 8003BE8C 00037AEC  41 82 00 28 */	beq lbl_8003BEB4
/* 8003BE90 00037AF0  C0 22 82 38 */	lfs f1, lbl_80640838-_SDA2_BASE_(r2)
/* 8003BE94 00037AF4  C0 1E 0C 70 */	lfs f0, 0xc70(r30)
/* 8003BE98 00037AF8  80 7E 0C 04 */	lwz r3, 0xc04(r30)
/* 8003BE9C 00037AFC  EC 01 00 32 */	fmuls f0, f1, f0
/* 8003BEA0 00037B00  FC 00 00 1E */	fctiwz f0, f0
/* 8003BEA4 00037B04  D8 01 00 58 */	stfd f0, 0x58(r1)
/* 8003BEA8 00037B08  80 81 00 5C */	lwz r4, 0x5c(r1)
/* 8003BEAC 00037B0C  54 84 06 3E */	clrlwi r4, r4, 0x18
/* 8003BEB0 00037B10  48 1B A2 6D */	bl func_801F611C
lbl_8003BEB4:
/* 8003BEB4 00037B14  80 7E 0C B0 */	lwz r3, 0xcb0(r30)
/* 8003BEB8 00037B18  2C 03 00 00 */	cmpwi r3, 0
/* 8003BEBC 00037B1C  41 82 01 0C */	beq lbl_8003BFC8
/* 8003BEC0 00037B20  88 03 00 00 */	lbz r0, 0(r3)
/* 8003BEC4 00037B24  7C 00 07 75 */	extsb. r0, r0
/* 8003BEC8 00037B28  41 80 01 00 */	blt lbl_8003BFC8
/* 8003BECC 00037B2C  7F C3 F3 78 */	mr r3, r30
/* 8003BED0 00037B30  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 8003BED4 00037B34  48 00 03 89 */	bl func_8003C25C
/* 8003BED8 00037B38  7C 7D 1B 78 */	mr r29, r3
/* 8003BEDC 00037B3C  7F C3 F3 78 */	mr r3, r30
/* 8003BEE0 00037B40  4B FF F5 3D */	bl func_8003B41C
/* 8003BEE4 00037B44  80 1E 00 00 */	lwz r0, 0(r30)
/* 8003BEE8 00037B48  7C 7F 1B 78 */	mr r31, r3
/* 8003BEEC 00037B4C  54 00 04 63 */	rlwinm. r0, r0, 0, 0x11, 0x11
/* 8003BEF0 00037B50  41 82 00 10 */	beq lbl_8003BF00
/* 8003BEF4 00037B54  7F C3 F3 78 */	mr r3, r30
/* 8003BEF8 00037B58  48 00 15 BD */	bl func_8003D4B4
/* 8003BEFC 00037B5C  48 00 00 CC */	b lbl_8003BFC8
lbl_8003BF00:
/* 8003BF00 00037B60  80 7E 0C 04 */	lwz r3, 0xc04(r30)
/* 8003BF04 00037B64  48 1B 9F B9 */	bl func_801F5EBC
/* 8003BF08 00037B68  2C 03 00 00 */	cmpwi r3, 0
/* 8003BF0C 00037B6C  40 82 00 BC */	bne lbl_8003BFC8
/* 8003BF10 00037B70  38 1F FF FF */	addi r0, r31, -1
/* 8003BF14 00037B74  28 00 00 01 */	cmplwi r0, 1
/* 8003BF18 00037B78  41 81 00 B0 */	bgt lbl_8003BFC8
/* 8003BF1C 00037B7C  80 7E 0C 04 */	lwz r3, 0xc04(r30)
/* 8003BF20 00037B80  57 A4 04 3E */	clrlwi r4, r29, 0x10
/* 8003BF24 00037B84  A0 03 00 F0 */	lhz r0, 0xf0(r3)
/* 8003BF28 00037B88  7C 04 00 40 */	cmplw r4, r0
/* 8003BF2C 00037B8C  41 82 00 9C */	beq lbl_8003BFC8
/* 8003BF30 00037B90  80 A3 00 04 */	lwz r5, 4(r3)
/* 8003BF34 00037B94  2C 05 00 00 */	cmpwi r5, 0
/* 8003BF38 00037B98  40 82 00 0C */	bne lbl_8003BF44
/* 8003BF3C 00037B9C  38 80 00 00 */	li r4, 0
/* 8003BF40 00037BA0  48 00 00 24 */	b lbl_8003BF64
lbl_8003BF44:
/* 8003BF44 00037BA4  A0 05 00 08 */	lhz r0, 8(r5)
/* 8003BF48 00037BA8  7C 04 00 40 */	cmplw r4, r0
/* 8003BF4C 00037BAC  41 80 00 0C */	blt lbl_8003BF58
/* 8003BF50 00037BB0  38 80 00 00 */	li r4, 0
/* 8003BF54 00037BB4  48 00 00 10 */	b lbl_8003BF64
lbl_8003BF58:
/* 8003BF58 00037BB8  1C 04 00 30 */	mulli r0, r4, 0x30
/* 8003BF5C 00037BBC  80 85 00 0C */	lwz r4, 0xc(r5)
/* 8003BF60 00037BC0  7C 84 02 14 */	add r4, r4, r0
lbl_8003BF64:
/* 8003BF64 00037BC4  88 A4 00 28 */	lbz r5, 0x28(r4)
/* 8003BF68 00037BC8  57 A4 04 3E */	clrlwi r4, r29, 0x10
/* 8003BF6C 00037BCC  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003BF70 00037BD0  38 C0 00 00 */	li r6, 0
/* 8003BF74 00037BD4  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003BF78 00037BD8  38 E0 00 00 */	li r7, 0
/* 8003BF7C 00037BDC  39 00 00 00 */	li r8, 0
/* 8003BF80 00037BE0  48 1B 8E 75 */	bl func_801F4DF4
/* 8003BF84 00037BE4  80 7E 0C B0 */	lwz r3, 0xcb0(r30)
/* 8003BF88 00037BE8  B3 BE 0B F8 */	sth r29, 0xbf8(r30)
/* 8003BF8C 00037BEC  38 03 00 01 */	addi r0, r3, 1
/* 8003BF90 00037BF0  88 63 00 00 */	lbz r3, 0(r3)
/* 8003BF94 00037BF4  2C 03 00 00 */	cmpwi r3, 0
/* 8003BF98 00037BF8  98 7E 0B F6 */	stb r3, 0xbf6(r30)
/* 8003BF9C 00037BFC  90 1E 0C B0 */	stw r0, 0xcb0(r30)
/* 8003BFA0 00037C00  41 82 00 0C */	beq lbl_8003BFAC
/* 8003BFA4 00037C04  28 03 00 10 */	cmplwi r3, 0x10
/* 8003BFA8 00037C08  40 82 00 14 */	bne lbl_8003BFBC
lbl_8003BFAC:
/* 8003BFAC 00037C0C  80 1E 00 00 */	lwz r0, 0(r30)
/* 8003BFB0 00037C10  64 00 00 02 */	oris r0, r0, 2
/* 8003BFB4 00037C14  90 1E 00 00 */	stw r0, 0(r30)
/* 8003BFB8 00037C18  48 00 00 10 */	b lbl_8003BFC8
lbl_8003BFBC:
/* 8003BFBC 00037C1C  80 1E 00 00 */	lwz r0, 0(r30)
/* 8003BFC0 00037C20  54 00 03 DA */	rlwinm r0, r0, 0, 0xf, 0xd
/* 8003BFC4 00037C24  90 1E 00 00 */	stw r0, 0(r30)
lbl_8003BFC8:
/* 8003BFC8 00037C28  80 1E 00 00 */	lwz r0, 0(r30)
/* 8003BFCC 00037C2C  54 00 02 95 */	rlwinm. r0, r0, 0, 0xa, 0xa
/* 8003BFD0 00037C30  41 82 00 24 */	beq lbl_8003BFF4
/* 8003BFD4 00037C34  C0 3E 0D 78 */	lfs f1, 0xd78(r30)
/* 8003BFD8 00037C38  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003BFDC 00037C3C  EC 21 F8 28 */	fsubs f1, f1, f31
/* 8003BFE0 00037C40  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8003BFE4 00037C44  D0 3E 0D 78 */	stfs f1, 0xd78(r30)
/* 8003BFE8 00037C48  40 80 00 0C */	bge lbl_8003BFF4
/* 8003BFEC 00037C4C  7F C3 F3 78 */	mr r3, r30
/* 8003BFF0 00037C50  4B FF DC 21 */	bl func_80039C10
lbl_8003BFF4:
/* 8003BFF4 00037C54  80 7E 00 00 */	lwz r3, 0(r30)
/* 8003BFF8 00037C58  54 60 04 A5 */	rlwinm. r0, r3, 0, 0x12, 0x12
/* 8003BFFC 00037C5C  40 82 01 68 */	bne lbl_8003C164
/* 8003C000 00037C60  54 60 03 9D */	rlwinm. r0, r3, 0, 0xe, 0xe
/* 8003C004 00037C64  41 82 01 60 */	beq lbl_8003C164
/* 8003C008 00037C68  C0 3E 0C 6C */	lfs f1, 0xc6c(r30)
/* 8003C00C 00037C6C  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003C010 00037C70  EC 21 F8 28 */	fsubs f1, f1, f31
/* 8003C014 00037C74  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8003C018 00037C78  D0 3E 0C 6C */	stfs f1, 0xc6c(r30)
/* 8003C01C 00037C7C  40 80 01 48 */	bge lbl_8003C164
/* 8003C020 00037C80  48 1E 78 11 */	bl func_80223830
/* 8003C024 00037C84  3C 80 00 03 */	lis r4, 0x000343FD@ha
/* 8003C028 00037C88  80 A3 00 00 */	lwz r5, 0(r3)
/* 8003C02C 00037C8C  38 84 43 FD */	addi r4, r4, 0x000343FD@l
/* 8003C030 00037C90  3C 00 43 30 */	lis r0, 0x4330
/* 8003C034 00037C94  7C A5 21 D6 */	mullw r5, r5, r4
/* 8003C038 00037C98  90 01 00 58 */	stw r0, 0x58(r1)
/* 8003C03C 00037C9C  C8 62 82 50 */	lfd f3, lbl_80640850-_SDA2_BASE_(r2)
/* 8003C040 00037CA0  38 80 00 13 */	li r4, 0x13
/* 8003C044 00037CA4  C0 22 82 2C */	lfs f1, lbl_8064082C-_SDA2_BASE_(r2)
/* 8003C048 00037CA8  C0 02 82 A8 */	lfs f0, lbl_806408A8-_SDA2_BASE_(r2)
/* 8003C04C 00037CAC  3C A5 00 27 */	addis r5, r5, 0x27
/* 8003C050 00037CB0  38 A5 9E C3 */	addi r5, r5, -24893
/* 8003C054 00037CB4  54 A0 84 3E */	srwi r0, r5, 0x10
/* 8003C058 00037CB8  90 A3 00 00 */	stw r5, 0(r3)
/* 8003C05C 00037CBC  7F C3 F3 78 */	mr r3, r30
/* 8003C060 00037CC0  90 01 00 5C */	stw r0, 0x5c(r1)
/* 8003C064 00037CC4  C8 41 00 58 */	lfd f2, 0x58(r1)
/* 8003C068 00037CC8  EC 42 18 28 */	fsubs f2, f2, f3
/* 8003C06C 00037CCC  EC 22 08 24 */	fdivs f1, f2, f1
/* 8003C070 00037CD0  EC 00 08 2A */	fadds f0, f0, f1
/* 8003C074 00037CD4  D0 1E 0C 6C */	stfs f0, 0xc6c(r30)
/* 8003C078 00037CD8  48 00 01 E5 */	bl func_8003C25C
/* 8003C07C 00037CDC  83 9E 0C 04 */	lwz r28, 0xc04(r30)
/* 8003C080 00037CE0  7C 7F 1B 78 */	mr r31, r3
/* 8003C084 00037CE4  80 9C 00 04 */	lwz r4, 4(r28)
/* 8003C088 00037CE8  2C 04 00 00 */	cmpwi r4, 0
/* 8003C08C 00037CEC  40 82 00 0C */	bne lbl_8003C098
/* 8003C090 00037CF0  38 60 00 00 */	li r3, 0
/* 8003C094 00037CF4  48 00 00 28 */	b lbl_8003C0BC
lbl_8003C098:
/* 8003C098 00037CF8  A0 04 00 08 */	lhz r0, 8(r4)
/* 8003C09C 00037CFC  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 8003C0A0 00037D00  7C 03 00 40 */	cmplw r3, r0
/* 8003C0A4 00037D04  41 80 00 0C */	blt lbl_8003C0B0
/* 8003C0A8 00037D08  38 60 00 00 */	li r3, 0
/* 8003C0AC 00037D0C  48 00 00 10 */	b lbl_8003C0BC
lbl_8003C0B0:
/* 8003C0B0 00037D10  1C 03 00 30 */	mulli r0, r3, 0x30
/* 8003C0B4 00037D14  80 64 00 0C */	lwz r3, 0xc(r4)
/* 8003C0B8 00037D18  7C 63 02 14 */	add r3, r3, r0
lbl_8003C0BC:
/* 8003C0BC 00037D1C  2C 03 00 00 */	cmpwi r3, 0
/* 8003C0C0 00037D20  41 82 00 A4 */	beq lbl_8003C164
/* 8003C0C4 00037D24  80 63 00 00 */	lwz r3, 0(r3)
/* 8003C0C8 00037D28  38 8D 80 E0 */	addi r4, r13, lbl_8063D3A0-_SDA_BASE_
/* 8003C0CC 00037D2C  38 A0 00 03 */	li r5, 3
/* 8003C0D0 00037D30  48 19 24 99 */	bl strncmp
/* 8003C0D4 00037D34  2C 03 00 00 */	cmpwi r3, 0
/* 8003C0D8 00037D38  40 82 00 8C */	bne lbl_8003C164
/* 8003C0DC 00037D3C  57 E4 04 3E */	clrlwi r4, r31, 0x10
/* 8003C0E0 00037D40  28 04 00 FF */	cmplwi r4, 0xff
/* 8003C0E4 00037D44  41 82 00 80 */	beq lbl_8003C164
/* 8003C0E8 00037D48  A0 1E 05 10 */	lhz r0, 0x510(r30)
/* 8003C0EC 00037D4C  28 00 00 59 */	cmplwi r0, 0x59
/* 8003C0F0 00037D50  40 82 00 54 */	bne lbl_8003C144
/* 8003C0F4 00037D54  80 7C 00 1C */	lwz r3, 0x1c(r28)
/* 8003C0F8 00037D58  2C 03 00 00 */	cmpwi r3, 0
/* 8003C0FC 00037D5C  40 82 00 0C */	bne lbl_8003C108
/* 8003C100 00037D60  38 60 00 00 */	li r3, 0
/* 8003C104 00037D64  48 00 00 20 */	b lbl_8003C124
lbl_8003C108:
/* 8003C108 00037D68  A0 1C 00 E6 */	lhz r0, 0xe6(r28)
/* 8003C10C 00037D6C  28 00 00 03 */	cmplwi r0, 3
/* 8003C110 00037D70  41 81 00 0C */	bgt lbl_8003C11C
/* 8003C114 00037D74  38 60 00 00 */	li r3, 0
/* 8003C118 00037D78  48 00 00 0C */	b lbl_8003C124
lbl_8003C11C:
/* 8003C11C 00037D7C  80 63 00 0C */	lwz r3, 0xc(r3)
/* 8003C120 00037D80  80 63 00 14 */	lwz r3, 0x14(r3)
lbl_8003C124:
/* 8003C124 00037D84  2C 03 00 00 */	cmpwi r3, 0
/* 8003C128 00037D88  41 82 00 3C */	beq lbl_8003C164
/* 8003C12C 00037D8C  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003C130 00037D90  57 E4 04 3E */	clrlwi r4, r31, 0x10
/* 8003C134 00037D94  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003C138 00037D98  38 A0 00 00 */	li r5, 0
/* 8003C13C 00037D9C  48 1A 19 81 */	bl func_801DDABC__17GSanimationObjectFUsUsff
/* 8003C140 00037DA0  48 00 00 24 */	b lbl_8003C164
lbl_8003C144:
/* 8003C144 00037DA4  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003C148 00037DA8  7F 83 E3 78 */	mr r3, r28
/* 8003C14C 00037DAC  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003C150 00037DB0  38 A0 00 00 */	li r5, 0
/* 8003C154 00037DB4  38 C0 00 00 */	li r6, 0
/* 8003C158 00037DB8  38 E0 00 00 */	li r7, 0
/* 8003C15C 00037DBC  39 00 00 00 */	li r8, 0
/* 8003C160 00037DC0  48 1B 8C 95 */	bl func_801F4DF4
lbl_8003C164:
/* 8003C164 00037DC4  80 1E 00 00 */	lwz r0, 0(r30)
/* 8003C168 00037DC8  54 00 03 5B */	rlwinm. r0, r0, 0, 0xd, 0xd
/* 8003C16C 00037DCC  41 82 00 90 */	beq lbl_8003C1FC
/* 8003C170 00037DD0  80 7E 0C 04 */	lwz r3, 0xc04(r30)
/* 8003C174 00037DD4  80 A3 00 04 */	lwz r5, 4(r3)
/* 8003C178 00037DD8  A0 83 00 F0 */	lhz r4, 0xf0(r3)
/* 8003C17C 00037DDC  2C 05 00 00 */	cmpwi r5, 0
/* 8003C180 00037DE0  40 82 00 0C */	bne lbl_8003C18C
/* 8003C184 00037DE4  3B A0 00 00 */	li r29, 0
/* 8003C188 00037DE8  48 00 00 24 */	b lbl_8003C1AC
lbl_8003C18C:
/* 8003C18C 00037DEC  A0 05 00 08 */	lhz r0, 8(r5)
/* 8003C190 00037DF0  7C 04 00 40 */	cmplw r4, r0
/* 8003C194 00037DF4  41 80 00 0C */	blt lbl_8003C1A0
/* 8003C198 00037DF8  3B A0 00 00 */	li r29, 0
/* 8003C19C 00037DFC  48 00 00 10 */	b lbl_8003C1AC
lbl_8003C1A0:
/* 8003C1A0 00037E00  1C 04 00 30 */	mulli r0, r4, 0x30
/* 8003C1A4 00037E04  80 85 00 0C */	lwz r4, 0xc(r5)
/* 8003C1A8 00037E08  7F A4 02 14 */	add r29, r4, r0
lbl_8003C1AC:
/* 8003C1AC 00037E0C  88 1E 0C A0 */	lbz r0, 0xca0(r30)
/* 8003C1B0 00037E10  28 00 00 03 */	cmplwi r0, 3
/* 8003C1B4 00037E14  40 80 00 48 */	bge lbl_8003C1FC
/* 8003C1B8 00037E18  48 1B 99 8D */	bl func_801F5B44
/* 8003C1BC 00037E1C  88 9E 0C A0 */	lbz r4, 0xca0(r30)
/* 8003C1C0 00037E20  54 80 10 3A */	slwi r0, r4, 2
/* 8003C1C4 00037E24  7C 7D 02 14 */	add r3, r29, r0
/* 8003C1C8 00037E28  C0 03 00 04 */	lfs f0, 4(r3)
/* 8003C1CC 00037E2C  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 8003C1D0 00037E30  4C 40 13 82 */	cror 2, 0, 2
/* 8003C1D4 00037E34  40 82 00 28 */	bne lbl_8003C1FC
/* 8003C1D8 00037E38  80 1E 00 00 */	lwz r0, 0(r30)
/* 8003C1DC 00037E3C  7F C3 F3 78 */	mr r3, r30
/* 8003C1E0 00037E40  81 9E 0C AC */	lwz r12, 0xcac(r30)
/* 8003C1E4 00037E44  54 00 03 98 */	rlwinm r0, r0, 0, 0xe, 0xc
/* 8003C1E8 00037E48  80 BE 0C A4 */	lwz r5, 0xca4(r30)
/* 8003C1EC 00037E4C  90 1E 00 00 */	stw r0, 0(r30)
/* 8003C1F0 00037E50  80 DE 0C A8 */	lwz r6, 0xca8(r30)
/* 8003C1F4 00037E54  7D 89 03 A6 */	mtctr r12
/* 8003C1F8 00037E58  4E 80 04 21 */	bctrl
lbl_8003C1FC:
/* 8003C1FC 00037E5C  E3 E1 00 98 */	psq_l f31, 152(r1), 0, qr0
/* 8003C200 00037E60  CB E1 00 90 */	lfd f31, 0x90(r1)
/* 8003C204 00037E64  E3 C1 00 88 */	psq_l f30, 136(r1), 0, qr0
/* 8003C208 00037E68  39 61 00 80 */	addi r11, r1, 0x80
/* 8003C20C 00037E6C  CB C1 00 80 */	lfd f30, 0x80(r1)
/* 8003C210 00037E70  48 18 AF 65 */	bl _restgpr_27
/* 8003C214 00037E74  80 01 00 A4 */	lwz r0, 0xa4(r1)
/* 8003C218 00037E78  7C 08 03 A6 */	mtlr r0
/* 8003C21C 00037E7C  38 21 00 A0 */	addi r1, r1, 0xa0
/* 8003C220 00037E80  4E 80 00 20 */	blr

.global func_8003C224
func_8003C224:
/* 8003C224 00037E84  28 05 00 03 */	cmplwi r5, 3
/* 8003C228 00037E88  41 80 00 14 */	blt lbl_8003C23C
/* 8003C22C 00037E8C  80 03 00 00 */	lwz r0, 0(r3)
/* 8003C230 00037E90  54 00 03 98 */	rlwinm r0, r0, 0, 0xe, 0xc
/* 8003C234 00037E94  90 03 00 00 */	stw r0, 0(r3)
/* 8003C238 00037E98  4E 80 00 20 */	blr
lbl_8003C23C:
/* 8003C23C 00037E9C  80 03 00 00 */	lwz r0, 0(r3)
/* 8003C240 00037EA0  98 A3 0C A0 */	stb r5, 0xca0(r3)
/* 8003C244 00037EA4  64 00 00 04 */	oris r0, r0, 4
/* 8003C248 00037EA8  90 C3 0C A4 */	stw r6, 0xca4(r3)
/* 8003C24C 00037EAC  90 E3 0C A8 */	stw r7, 0xca8(r3)
/* 8003C250 00037EB0  90 83 0C AC */	stw r4, 0xcac(r3)
/* 8003C254 00037EB4  90 03 00 00 */	stw r0, 0(r3)
/* 8003C258 00037EB8  4E 80 00 20 */	blr

.global func_8003C25C
func_8003C25C:
/* 8003C25C 00037EBC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003C260 00037EC0  7C 08 02 A6 */	mflr r0
/* 8003C264 00037EC4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003C268 00037EC8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003C26C 00037ECC  7C 9F 23 78 */	mr r31, r4
/* 8003C270 00037ED0  93 C1 00 08 */	stw r30, 8(r1)
/* 8003C274 00037ED4  7C 7E 1B 78 */	mr r30, r3
/* 8003C278 00037ED8  48 00 1E E5 */	bl func_8003E15C
/* 8003C27C 00037EDC  2C 03 00 00 */	cmpwi r3, 0
/* 8003C280 00037EE0  41 82 00 28 */	beq lbl_8003C2A8
/* 8003C284 00037EE4  A0 DE 05 14 */	lhz r6, 0x514(r30)
/* 8003C288 00037EE8  7F E5 FB 78 */	mr r5, r31
/* 8003C28C 00037EEC  A0 1E 05 12 */	lhz r0, 0x512(r30)
/* 8003C290 00037EF0  A0 9E 05 10 */	lhz r4, 0x510(r30)
/* 8003C294 00037EF4  54 C6 06 3E */	clrlwi r6, r6, 0x18
/* 8003C298 00037EF8  54 07 06 3E */	clrlwi r7, r0, 0x18
/* 8003C29C 00037EFC  48 00 25 29 */	bl func_8003E7C4
/* 8003C2A0 00037F00  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 8003C2A4 00037F04  48 00 00 08 */	b lbl_8003C2AC
lbl_8003C2A8:
/* 8003C2A8 00037F08  38 60 00 00 */	li r3, 0
lbl_8003C2AC:
/* 8003C2AC 00037F0C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003C2B0 00037F10  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003C2B4 00037F14  83 C1 00 08 */	lwz r30, 8(r1)
/* 8003C2B8 00037F18  7C 08 03 A6 */	mtlr r0
/* 8003C2BC 00037F1C  38 21 00 10 */	addi r1, r1, 0x10
/* 8003C2C0 00037F20  4E 80 00 20 */	blr

.global func_8003C2C4
func_8003C2C4:
/* 8003C2C4 00037F24  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003C2C8 00037F28  7C 08 02 A6 */	mflr r0
/* 8003C2CC 00037F2C  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003C2D0 00037F30  3C 00 43 30 */	lis r0, 0x4330
/* 8003C2D4 00037F34  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 8003C2D8 00037F38  7C 9F 23 78 */	mr r31, r4
/* 8003C2DC 00037F3C  93 C1 00 28 */	stw r30, 0x28(r1)
/* 8003C2E0 00037F40  7C 7E 1B 78 */	mr r30, r3
/* 8003C2E4 00037F44  93 A1 00 24 */	stw r29, 0x24(r1)
/* 8003C2E8 00037F48  80 A3 0C 04 */	lwz r5, 0xc04(r3)
/* 8003C2EC 00037F4C  90 01 00 08 */	stw r0, 8(r1)
/* 8003C2F0 00037F50  2C 05 00 00 */	cmpwi r5, 0
/* 8003C2F4 00037F54  90 01 00 10 */	stw r0, 0x10(r1)
/* 8003C2F8 00037F58  41 82 01 08 */	beq lbl_8003C400
/* 8003C2FC 00037F5C  A0 03 0C 68 */	lhz r0, 0xc68(r3)
/* 8003C300 00037F60  28 00 01 00 */	cmplwi r0, 0x100
/* 8003C304 00037F64  40 82 00 80 */	bne lbl_8003C384
/* 8003C308 00037F68  80 03 0C 00 */	lwz r0, 0xc00(r3)
/* 8003C30C 00037F6C  2C 00 00 00 */	cmpwi r0, 0
/* 8003C310 00037F70  41 82 00 F0 */	beq lbl_8003C400
/* 8003C314 00037F74  3B A0 00 00 */	li r29, 0
/* 8003C318 00037F78  48 00 00 50 */	b lbl_8003C368
lbl_8003C31C:
/* 8003C31C 00037F7C  80 C5 00 04 */	lwz r6, 4(r5)
/* 8003C320 00037F80  2C 06 00 00 */	cmpwi r6, 0
/* 8003C324 00037F84  40 82 00 0C */	bne lbl_8003C330
/* 8003C328 00037F88  38 60 00 00 */	li r3, 0
/* 8003C32C 00037F8C  48 00 00 28 */	b lbl_8003C354
lbl_8003C330:
/* 8003C330 00037F90  80 65 00 00 */	lwz r3, 0(r5)
/* 8003C334 00037F94  57 A4 06 3E */	clrlwi r4, r29, 0x18
/* 8003C338 00037F98  A0 03 00 18 */	lhz r0, 0x18(r3)
/* 8003C33C 00037F9C  7C 04 00 40 */	cmplw r4, r0
/* 8003C340 00037FA0  41 80 00 0C */	blt lbl_8003C34C
/* 8003C344 00037FA4  38 60 00 00 */	li r3, 0
/* 8003C348 00037FA8  48 00 00 0C */	b lbl_8003C354
lbl_8003C34C:
/* 8003C34C 00037FAC  57 A0 15 BA */	rlwinm r0, r29, 2, 0x16, 0x1d
/* 8003C350 00037FB0  7C 66 00 2E */	lwzx r3, r6, r0
lbl_8003C354:
/* 8003C354 00037FB4  2C 03 00 00 */	cmpwi r3, 0
/* 8003C358 00037FB8  41 82 00 0C */	beq lbl_8003C364
/* 8003C35C 00037FBC  7F E4 FB 78 */	mr r4, r31
/* 8003C360 00037FC0  48 1B 9E AD */	bl func_801F620C
lbl_8003C364:
/* 8003C364 00037FC4  3B BD 00 01 */	addi r29, r29, 1
lbl_8003C368:
/* 8003C368 00037FC8  80 BE 0C 00 */	lwz r5, 0xc00(r30)
/* 8003C36C 00037FCC  57 A4 06 3E */	clrlwi r4, r29, 0x18
/* 8003C370 00037FD0  80 65 00 00 */	lwz r3, 0(r5)
/* 8003C374 00037FD4  A0 03 00 18 */	lhz r0, 0x18(r3)
/* 8003C378 00037FD8  7C 04 00 00 */	cmpw r4, r0
/* 8003C37C 00037FDC  41 80 FF A0 */	blt lbl_8003C31C
/* 8003C380 00037FE0  48 00 00 24 */	b lbl_8003C3A4
lbl_8003C384:
/* 8003C384 00037FE4  7C A3 2B 78 */	mr r3, r5
/* 8003C388 00037FE8  48 1B 9E 85 */	bl func_801F620C
/* 8003C38C 00037FEC  A0 1E 05 0C */	lhz r0, 0x50c(r30)
/* 8003C390 00037FF0  28 00 00 02 */	cmplwi r0, 2
/* 8003C394 00037FF4  40 82 00 10 */	bne lbl_8003C3A4
/* 8003C398 00037FF8  7F E4 FB 78 */	mr r4, r31
/* 8003C39C 00037FFC  38 7E 05 24 */	addi r3, r30, 0x524
/* 8003C3A0 00038000  48 00 3B BD */	bl func_8003FF5C
lbl_8003C3A4:
/* 8003C3A4 00038004  38 7E 04 94 */	addi r3, r30, 0x494
/* 8003C3A8 00038008  48 01 48 39 */	bl func_80050BE0
/* 8003C3AC 0003800C  88 1F 00 00 */	lbz r0, 0(r31)
/* 8003C3B0 00038010  C8 22 82 50 */	lfd f1, lbl_80640850-_SDA2_BASE_(r2)
/* 8003C3B4 00038014  90 01 00 0C */	stw r0, 0xc(r1)
/* 8003C3B8 00038018  C8 01 00 08 */	lfd f0, 8(r1)
/* 8003C3BC 0003801C  EC 00 08 28 */	fsubs f0, f0, f1
/* 8003C3C0 00038020  D0 1E 0C 28 */	stfs f0, 0xc28(r30)
/* 8003C3C4 00038024  88 1F 00 01 */	lbz r0, 1(r31)
/* 8003C3C8 00038028  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003C3CC 0003802C  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 8003C3D0 00038030  EC 00 08 28 */	fsubs f0, f0, f1
/* 8003C3D4 00038034  D0 1E 0C 2C */	stfs f0, 0xc2c(r30)
/* 8003C3D8 00038038  88 1F 00 02 */	lbz r0, 2(r31)
/* 8003C3DC 0003803C  90 01 00 0C */	stw r0, 0xc(r1)
/* 8003C3E0 00038040  C8 01 00 08 */	lfd f0, 8(r1)
/* 8003C3E4 00038044  EC 00 08 28 */	fsubs f0, f0, f1
/* 8003C3E8 00038048  D0 1E 0C 30 */	stfs f0, 0xc30(r30)
/* 8003C3EC 0003804C  88 1F 00 03 */	lbz r0, 3(r31)
/* 8003C3F0 00038050  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003C3F4 00038054  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 8003C3F8 00038058  EC 00 08 28 */	fsubs f0, f0, f1
/* 8003C3FC 0003805C  D0 1E 0C 34 */	stfs f0, 0xc34(r30)
lbl_8003C400:
/* 8003C400 00038060  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003C404 00038064  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 8003C408 00038068  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 8003C40C 0003806C  83 A1 00 24 */	lwz r29, 0x24(r1)
/* 8003C410 00038070  7C 08 03 A6 */	mtlr r0
/* 8003C414 00038074  38 21 00 30 */	addi r1, r1, 0x30
/* 8003C418 00038078  4E 80 00 20 */	blr

.global func_8003C41C
func_8003C41C:
/* 8003C41C 0003807C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003C420 00038080  7C 08 02 A6 */	mflr r0
/* 8003C424 00038084  3C C0 43 30 */	lis r6, 0x4330
/* 8003C428 00038088  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003C42C 0003808C  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 8003C430 00038090  90 C1 00 18 */	stw r6, 0x18(r1)
/* 8003C434 00038094  2C 00 00 00 */	cmpwi r0, 0
/* 8003C438 00038098  90 C1 00 20 */	stw r6, 0x20(r1)
/* 8003C43C 0003809C  41 82 00 70 */	beq lbl_8003C4AC
/* 8003C440 000380A0  88 04 00 00 */	lbz r0, 0(r4)
/* 8003C444 000380A4  7C A7 2B 78 */	mr r7, r5
/* 8003C448 000380A8  C8 42 82 50 */	lfd f2, lbl_80640850-_SDA2_BASE_(r2)
/* 8003C44C 000380AC  38 A1 00 08 */	addi r5, r1, 8
/* 8003C450 000380B0  90 01 00 1C */	stw r0, 0x1c(r1)
/* 8003C454 000380B4  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 8003C458 000380B8  EC 00 10 28 */	fsubs f0, f0, f2
/* 8003C45C 000380BC  D0 01 00 08 */	stfs f0, 8(r1)
/* 8003C460 000380C0  88 04 00 01 */	lbz r0, 1(r4)
/* 8003C464 000380C4  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003C468 000380C8  C8 01 00 20 */	lfd f0, 0x20(r1)
/* 8003C46C 000380CC  EC 00 10 28 */	fsubs f0, f0, f2
/* 8003C470 000380D0  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 8003C474 000380D4  88 04 00 02 */	lbz r0, 2(r4)
/* 8003C478 000380D8  90 01 00 1C */	stw r0, 0x1c(r1)
/* 8003C47C 000380DC  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 8003C480 000380E0  EC 00 10 28 */	fsubs f0, f0, f2
/* 8003C484 000380E4  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 8003C488 000380E8  88 04 00 03 */	lbz r0, 3(r4)
/* 8003C48C 000380EC  38 83 0C 28 */	addi r4, r3, 0xc28
/* 8003C490 000380F0  7C 86 23 78 */	mr r6, r4
/* 8003C494 000380F4  38 63 04 94 */	addi r3, r3, 0x494
/* 8003C498 000380F8  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003C49C 000380FC  C8 01 00 20 */	lfd f0, 0x20(r1)
/* 8003C4A0 00038100  EC 00 10 28 */	fsubs f0, f0, f2
/* 8003C4A4 00038104  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 8003C4A8 00038108  48 01 46 A5 */	bl func_80050B4C
lbl_8003C4AC:
/* 8003C4AC 0003810C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003C4B0 00038110  7C 08 03 A6 */	mtlr r0
/* 8003C4B4 00038114  38 21 00 30 */	addi r1, r1, 0x30
/* 8003C4B8 00038118  4E 80 00 20 */	blr

.global func_8003C4BC
func_8003C4BC:
/* 8003C4BC 0003811C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003C4C0 00038120  7C 08 02 A6 */	mflr r0
/* 8003C4C4 00038124  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003C4C8 00038128  3C 00 43 30 */	lis r0, 0x4330
/* 8003C4CC 0003812C  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 8003C4D0 00038130  7C 9F 23 78 */	mr r31, r4
/* 8003C4D4 00038134  93 C1 00 28 */	stw r30, 0x28(r1)
/* 8003C4D8 00038138  7C 7E 1B 78 */	mr r30, r3
/* 8003C4DC 0003813C  93 A1 00 24 */	stw r29, 0x24(r1)
/* 8003C4E0 00038140  80 A3 0C 04 */	lwz r5, 0xc04(r3)
/* 8003C4E4 00038144  90 01 00 08 */	stw r0, 8(r1)
/* 8003C4E8 00038148  2C 05 00 00 */	cmpwi r5, 0
/* 8003C4EC 0003814C  90 01 00 10 */	stw r0, 0x10(r1)
/* 8003C4F0 00038150  41 82 01 08 */	beq lbl_8003C5F8
/* 8003C4F4 00038154  A0 03 0C 68 */	lhz r0, 0xc68(r3)
/* 8003C4F8 00038158  28 00 01 00 */	cmplwi r0, 0x100
/* 8003C4FC 0003815C  40 82 00 80 */	bne lbl_8003C57C
/* 8003C500 00038160  80 03 0C 00 */	lwz r0, 0xc00(r3)
/* 8003C504 00038164  2C 00 00 00 */	cmpwi r0, 0
/* 8003C508 00038168  41 82 00 F0 */	beq lbl_8003C5F8
/* 8003C50C 0003816C  3B A0 00 00 */	li r29, 0
/* 8003C510 00038170  48 00 00 50 */	b lbl_8003C560
lbl_8003C514:
/* 8003C514 00038174  80 C5 00 04 */	lwz r6, 4(r5)
/* 8003C518 00038178  2C 06 00 00 */	cmpwi r6, 0
/* 8003C51C 0003817C  40 82 00 0C */	bne lbl_8003C528
/* 8003C520 00038180  38 60 00 00 */	li r3, 0
/* 8003C524 00038184  48 00 00 28 */	b lbl_8003C54C
lbl_8003C528:
/* 8003C528 00038188  80 65 00 00 */	lwz r3, 0(r5)
/* 8003C52C 0003818C  57 A4 06 3E */	clrlwi r4, r29, 0x18
/* 8003C530 00038190  A0 03 00 18 */	lhz r0, 0x18(r3)
/* 8003C534 00038194  7C 04 00 40 */	cmplw r4, r0
/* 8003C538 00038198  41 80 00 0C */	blt lbl_8003C544
/* 8003C53C 0003819C  38 60 00 00 */	li r3, 0
/* 8003C540 000381A0  48 00 00 0C */	b lbl_8003C54C
lbl_8003C544:
/* 8003C544 000381A4  57 A0 15 BA */	rlwinm r0, r29, 2, 0x16, 0x1d
/* 8003C548 000381A8  7C 66 00 2E */	lwzx r3, r6, r0
lbl_8003C54C:
/* 8003C54C 000381AC  2C 03 00 00 */	cmpwi r3, 0
/* 8003C550 000381B0  41 82 00 0C */	beq lbl_8003C55C
/* 8003C554 000381B4  7F E4 FB 78 */	mr r4, r31
/* 8003C558 000381B8  48 1B 9C 3D */	bl func_801F6194
lbl_8003C55C:
/* 8003C55C 000381BC  3B BD 00 01 */	addi r29, r29, 1
lbl_8003C560:
/* 8003C560 000381C0  80 BE 0C 00 */	lwz r5, 0xc00(r30)
/* 8003C564 000381C4  57 A4 06 3E */	clrlwi r4, r29, 0x18
/* 8003C568 000381C8  80 65 00 00 */	lwz r3, 0(r5)
/* 8003C56C 000381CC  A0 03 00 18 */	lhz r0, 0x18(r3)
/* 8003C570 000381D0  7C 04 00 00 */	cmpw r4, r0
/* 8003C574 000381D4  41 80 FF A0 */	blt lbl_8003C514
/* 8003C578 000381D8  48 00 00 24 */	b lbl_8003C59C
lbl_8003C57C:
/* 8003C57C 000381DC  7C A3 2B 78 */	mr r3, r5
/* 8003C580 000381E0  48 1B 9C 15 */	bl func_801F6194
/* 8003C584 000381E4  A0 1E 05 0C */	lhz r0, 0x50c(r30)
/* 8003C588 000381E8  28 00 00 02 */	cmplwi r0, 2
/* 8003C58C 000381EC  40 82 00 10 */	bne lbl_8003C59C
/* 8003C590 000381F0  7F E4 FB 78 */	mr r4, r31
/* 8003C594 000381F4  38 7E 05 24 */	addi r3, r30, 0x524
/* 8003C598 000381F8  48 00 3A 41 */	bl func_8003FFD8
lbl_8003C59C:
/* 8003C59C 000381FC  38 7E 04 D0 */	addi r3, r30, 0x4d0
/* 8003C5A0 00038200  48 01 46 41 */	bl func_80050BE0
/* 8003C5A4 00038204  88 1F 00 00 */	lbz r0, 0(r31)
/* 8003C5A8 00038208  C8 22 82 50 */	lfd f1, lbl_80640850-_SDA2_BASE_(r2)
/* 8003C5AC 0003820C  90 01 00 0C */	stw r0, 0xc(r1)
/* 8003C5B0 00038210  C8 01 00 08 */	lfd f0, 8(r1)
/* 8003C5B4 00038214  EC 00 08 28 */	fsubs f0, f0, f1
/* 8003C5B8 00038218  D0 1E 0C 38 */	stfs f0, 0xc38(r30)
/* 8003C5BC 0003821C  88 1F 00 01 */	lbz r0, 1(r31)
/* 8003C5C0 00038220  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003C5C4 00038224  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 8003C5C8 00038228  EC 00 08 28 */	fsubs f0, f0, f1
/* 8003C5CC 0003822C  D0 1E 0C 3C */	stfs f0, 0xc3c(r30)
/* 8003C5D0 00038230  88 1F 00 02 */	lbz r0, 2(r31)
/* 8003C5D4 00038234  90 01 00 0C */	stw r0, 0xc(r1)
/* 8003C5D8 00038238  C8 01 00 08 */	lfd f0, 8(r1)
/* 8003C5DC 0003823C  EC 00 08 28 */	fsubs f0, f0, f1
/* 8003C5E0 00038240  D0 1E 0C 40 */	stfs f0, 0xc40(r30)
/* 8003C5E4 00038244  88 1F 00 03 */	lbz r0, 3(r31)
/* 8003C5E8 00038248  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003C5EC 0003824C  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 8003C5F0 00038250  EC 00 08 28 */	fsubs f0, f0, f1
/* 8003C5F4 00038254  D0 1E 0C 44 */	stfs f0, 0xc44(r30)
lbl_8003C5F8:
/* 8003C5F8 00038258  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003C5FC 0003825C  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 8003C600 00038260  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 8003C604 00038264  83 A1 00 24 */	lwz r29, 0x24(r1)
/* 8003C608 00038268  7C 08 03 A6 */	mtlr r0
/* 8003C60C 0003826C  38 21 00 30 */	addi r1, r1, 0x30
/* 8003C610 00038270  4E 80 00 20 */	blr

.global func_8003C614
func_8003C614:
/* 8003C614 00038274  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003C618 00038278  7C 08 02 A6 */	mflr r0
/* 8003C61C 0003827C  3C C0 43 30 */	lis r6, 0x4330
/* 8003C620 00038280  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003C624 00038284  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 8003C628 00038288  90 C1 00 18 */	stw r6, 0x18(r1)
/* 8003C62C 0003828C  2C 00 00 00 */	cmpwi r0, 0
/* 8003C630 00038290  90 C1 00 20 */	stw r6, 0x20(r1)
/* 8003C634 00038294  41 82 00 70 */	beq lbl_8003C6A4
/* 8003C638 00038298  88 04 00 00 */	lbz r0, 0(r4)
/* 8003C63C 0003829C  7C A7 2B 78 */	mr r7, r5
/* 8003C640 000382A0  C8 42 82 50 */	lfd f2, lbl_80640850-_SDA2_BASE_(r2)
/* 8003C644 000382A4  38 A1 00 08 */	addi r5, r1, 8
/* 8003C648 000382A8  90 01 00 1C */	stw r0, 0x1c(r1)
/* 8003C64C 000382AC  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 8003C650 000382B0  EC 00 10 28 */	fsubs f0, f0, f2
/* 8003C654 000382B4  D0 01 00 08 */	stfs f0, 8(r1)
/* 8003C658 000382B8  88 04 00 01 */	lbz r0, 1(r4)
/* 8003C65C 000382BC  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003C660 000382C0  C8 01 00 20 */	lfd f0, 0x20(r1)
/* 8003C664 000382C4  EC 00 10 28 */	fsubs f0, f0, f2
/* 8003C668 000382C8  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 8003C66C 000382CC  88 04 00 02 */	lbz r0, 2(r4)
/* 8003C670 000382D0  90 01 00 1C */	stw r0, 0x1c(r1)
/* 8003C674 000382D4  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 8003C678 000382D8  EC 00 10 28 */	fsubs f0, f0, f2
/* 8003C67C 000382DC  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 8003C680 000382E0  88 04 00 03 */	lbz r0, 3(r4)
/* 8003C684 000382E4  38 83 0C 38 */	addi r4, r3, 0xc38
/* 8003C688 000382E8  7C 86 23 78 */	mr r6, r4
/* 8003C68C 000382EC  38 63 04 D0 */	addi r3, r3, 0x4d0
/* 8003C690 000382F0  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003C694 000382F4  C8 01 00 20 */	lfd f0, 0x20(r1)
/* 8003C698 000382F8  EC 00 10 28 */	fsubs f0, f0, f2
/* 8003C69C 000382FC  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 8003C6A0 00038300  48 01 44 AD */	bl func_80050B4C
lbl_8003C6A4:
/* 8003C6A4 00038304  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003C6A8 00038308  7C 08 03 A6 */	mtlr r0
/* 8003C6AC 0003830C  38 21 00 30 */	addi r1, r1, 0x30
/* 8003C6B0 00038310  4E 80 00 20 */	blr

.global func_8003C6B4
func_8003C6B4:
/* 8003C6B4 00038314  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003C6B8 00038318  7C 08 02 A6 */	mflr r0
/* 8003C6BC 0003831C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003C6C0 00038320  DB E1 00 10 */	stfd f31, 0x10(r1)
/* 8003C6C4 00038324  F3 E1 00 18 */	psq_st f31, 24(r1), 0, qr0
/* 8003C6C8 00038328  FF E0 08 90 */	fmr f31, f1
/* 8003C6CC 0003832C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003C6D0 00038330  93 C1 00 08 */	stw r30, 8(r1)
/* 8003C6D4 00038334  7C 7E 1B 78 */	mr r30, r3
/* 8003C6D8 00038338  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 8003C6DC 0003833C  2C 00 00 00 */	cmpwi r0, 0
/* 8003C6E0 00038340  41 82 01 3C */	beq lbl_8003C81C
/* 8003C6E4 00038344  48 00 06 69 */	bl func_8003CD4C
/* 8003C6E8 00038348  48 19 E4 41 */	bl func_801DAB28
/* 8003C6EC 0003834C  2C 03 00 00 */	cmpwi r3, 0
/* 8003C6F0 00038350  41 82 00 14 */	beq lbl_8003C704
/* 8003C6F4 00038354  80 6D 96 38 */	lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
/* 8003C6F8 00038358  38 80 00 70 */	li r4, 0x70
/* 8003C6FC 0003835C  48 19 E5 99 */	bl func_801DAC94
/* 8003C700 00038360  48 00 00 08 */	b lbl_8003C708
lbl_8003C704:
/* 8003C704 00038364  38 60 00 00 */	li r3, 0
lbl_8003C708:
/* 8003C708 00038368  2C 03 00 00 */	cmpwi r3, 0
/* 8003C70C 0003836C  7C 7F 1B 78 */	mr r31, r3
/* 8003C710 00038370  41 82 00 10 */	beq lbl_8003C720
/* 8003C714 00038374  80 9E 0C 04 */	lwz r4, 0xc04(r30)
/* 8003C718 00038378  48 1E 0D 0D */	bl func_8021D424
/* 8003C71C 0003837C  7C 7F 1B 78 */	mr r31, r3
lbl_8003C720:
/* 8003C720 00038380  2C 1F 00 00 */	cmpwi r31, 0
/* 8003C724 00038384  41 82 00 F8 */	beq lbl_8003C81C
/* 8003C728 00038388  93 FE 0C 08 */	stw r31, 0xc08(r30)
/* 8003C72C 0003838C  7F E3 FB 78 */	mr r3, r31
/* 8003C730 00038390  88 1E 0D B4 */	lbz r0, 0xdb4(r30)
/* 8003C734 00038394  98 1F 00 1E */	stb r0, 0x1e(r31)
/* 8003C738 00038398  88 1E 0D B5 */	lbz r0, 0xdb5(r30)
/* 8003C73C 0003839C  98 1F 00 20 */	stb r0, 0x20(r31)
/* 8003C740 000383A0  88 1E 0D C0 */	lbz r0, 0xdc0(r30)
/* 8003C744 000383A4  98 1F 00 28 */	stb r0, 0x28(r31)
/* 8003C748 000383A8  88 1E 0D C1 */	lbz r0, 0xdc1(r30)
/* 8003C74C 000383AC  98 1F 00 29 */	stb r0, 0x29(r31)
/* 8003C750 000383B0  88 1E 0D C2 */	lbz r0, 0xdc2(r30)
/* 8003C754 000383B4  98 1F 00 2A */	stb r0, 0x2a(r31)
/* 8003C758 000383B8  88 1E 0D C3 */	lbz r0, 0xdc3(r30)
/* 8003C75C 000383BC  98 1F 00 2B */	stb r0, 0x2b(r31)
/* 8003C760 000383C0  D3 FF 00 6C */	stfs f31, 0x6c(r31)
/* 8003C764 000383C4  C0 1E 0D B8 */	lfs f0, 0xdb8(r30)
/* 8003C768 000383C8  D0 1F 00 48 */	stfs f0, 0x48(r31)
/* 8003C76C 000383CC  88 1E 0D B6 */	lbz r0, 0xdb6(r30)
/* 8003C770 000383D0  98 1F 00 1F */	stb r0, 0x1f(r31)
/* 8003C774 000383D4  C0 1E 0D C4 */	lfs f0, 0xdc4(r30)
/* 8003C778 000383D8  D0 1F 00 5C */	stfs f0, 0x5c(r31)
/* 8003C77C 000383DC  C0 1E 0D C8 */	lfs f0, 0xdc8(r30)
/* 8003C780 000383E0  D0 1F 00 60 */	stfs f0, 0x60(r31)
/* 8003C784 000383E4  C0 1E 0D CC */	lfs f0, 0xdcc(r30)
/* 8003C788 000383E8  D0 1F 00 64 */	stfs f0, 0x64(r31)
/* 8003C78C 000383EC  C0 1E 0D BC */	lfs f0, 0xdbc(r30)
/* 8003C790 000383F0  D0 1F 00 44 */	stfs f0, 0x44(r31)
/* 8003C794 000383F4  C0 1E 0D D0 */	lfs f0, 0xdd0(r30)
/* 8003C798 000383F8  D0 1F 00 38 */	stfs f0, 0x38(r31)
/* 8003C79C 000383FC  C0 1E 0D D4 */	lfs f0, 0xdd4(r30)
/* 8003C7A0 00038400  D0 1F 00 3C */	stfs f0, 0x3c(r31)
/* 8003C7A4 00038404  C0 1E 0D D8 */	lfs f0, 0xdd8(r30)
/* 8003C7A8 00038408  D0 1F 00 40 */	stfs f0, 0x40(r31)
/* 8003C7AC 0003840C  C0 1E 0D DC */	lfs f0, 0xddc(r30)
/* 8003C7B0 00038410  D0 1F 00 2C */	stfs f0, 0x2c(r31)
/* 8003C7B4 00038414  C0 1E 0D E0 */	lfs f0, 0xde0(r30)
/* 8003C7B8 00038418  D0 1F 00 30 */	stfs f0, 0x30(r31)
/* 8003C7BC 0003841C  C0 1E 0D E4 */	lfs f0, 0xde4(r30)
/* 8003C7C0 00038420  D0 1F 00 34 */	stfs f0, 0x34(r31)
/* 8003C7C4 00038424  C0 1E 0D E8 */	lfs f0, 0xde8(r30)
/* 8003C7C8 00038428  D0 1F 00 58 */	stfs f0, 0x58(r31)
/* 8003C7CC 0003842C  C0 1E 0D EC */	lfs f0, 0xdec(r30)
/* 8003C7D0 00038430  D0 1F 00 4C */	stfs f0, 0x4c(r31)
/* 8003C7D4 00038434  C0 1E 0D F0 */	lfs f0, 0xdf0(r30)
/* 8003C7D8 00038438  D0 1F 00 50 */	stfs f0, 0x50(r31)
/* 8003C7DC 0003843C  C0 1E 0D F4 */	lfs f0, 0xdf4(r30)
/* 8003C7E0 00038440  D0 1F 00 54 */	stfs f0, 0x54(r31)
/* 8003C7E4 00038444  81 9F 00 0C */	lwz r12, 0xc(r31)
/* 8003C7E8 00038448  81 8C 00 08 */	lwz r12, 8(r12)
/* 8003C7EC 0003844C  7D 89 03 A6 */	mtctr r12
/* 8003C7F0 00038450  4E 80 04 21 */	bctrl
/* 8003C7F4 00038454  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 8003C7F8 00038458  98 7F 00 08 */	stb r3, 8(r31)
/* 8003C7FC 0003845C  41 82 00 20 */	beq lbl_8003C81C
/* 8003C800 00038460  83 FF 00 04 */	lwz r31, 4(r31)
/* 8003C804 00038464  57 E3 86 3E */	rlwinm r3, r31, 0x10, 0x18, 0x1f
/* 8003C808 00038468  48 1F E8 51 */	bl func_8023B058
/* 8003C80C 0003846C  2C 03 00 00 */	cmpwi r3, 0
/* 8003C810 00038470  41 82 00 0C */	beq lbl_8003C81C
/* 8003C814 00038474  7F E4 FB 78 */	mr r4, r31
/* 8003C818 00038478  48 1F EB A1 */	bl func_8023B3B8
lbl_8003C81C:
/* 8003C81C 0003847C  E3 E1 00 18 */	psq_l f31, 24(r1), 0, qr0
/* 8003C820 00038480  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003C824 00038484  CB E1 00 10 */	lfd f31, 0x10(r1)
/* 8003C828 00038488  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003C82C 0003848C  83 C1 00 08 */	lwz r30, 8(r1)
/* 8003C830 00038490  7C 08 03 A6 */	mtlr r0
/* 8003C834 00038494  38 21 00 20 */	addi r1, r1, 0x20
/* 8003C838 00038498  4E 80 00 20 */	blr

.global func_8003C83C
func_8003C83C:
/* 8003C83C 0003849C  80 63 0C 04 */	lwz r3, 0xc04(r3)
/* 8003C840 000384A0  2C 03 00 00 */	cmpwi r3, 0
/* 8003C844 000384A4  4D 82 00 20 */	beqlr
/* 8003C848 000384A8  7C 80 00 34 */	cntlzw r0, r4
/* 8003C84C 000384AC  54 04 D9 7E */	srwi r4, r0, 5
/* 8003C850 000384B0  48 1B 99 08 */	b func_801F6158
/* 8003C854 000384B4  4E 80 00 20 */	blr

.global func_8003C858
func_8003C858:
/* 8003C858 000384B8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003C85C 000384BC  7C 08 02 A6 */	mflr r0
/* 8003C860 000384C0  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003C864 000384C4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003C868 000384C8  7C 9F 23 78 */	mr r31, r4
/* 8003C86C 000384CC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003C870 000384D0  7C 7E 1B 78 */	mr r30, r3
/* 8003C874 000384D4  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 8003C878 000384D8  2C 00 00 00 */	cmpwi r0, 0
/* 8003C87C 000384DC  41 82 00 0C */	beq lbl_8003C888
/* 8003C880 000384E0  7C 03 03 78 */	mr r3, r0
/* 8003C884 000384E4  48 1B 98 99 */	bl func_801F611C
lbl_8003C888:
/* 8003C888 000384E8  3C 00 43 30 */	lis r0, 0x4330
/* 8003C88C 000384EC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003C890 000384F0  C8 42 82 50 */	lfd f2, lbl_80640850-_SDA2_BASE_(r2)
/* 8003C894 000384F4  90 01 00 08 */	stw r0, 8(r1)
/* 8003C898 000384F8  C0 02 82 38 */	lfs f0, lbl_80640838-_SDA2_BASE_(r2)
/* 8003C89C 000384FC  C8 21 00 08 */	lfd f1, 8(r1)
/* 8003C8A0 00038500  EC 21 10 28 */	fsubs f1, f1, f2
/* 8003C8A4 00038504  EC 01 00 24 */	fdivs f0, f1, f0
/* 8003C8A8 00038508  D0 1E 0C 70 */	stfs f0, 0xc70(r30)
/* 8003C8AC 0003850C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8003C8B0 00038510  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8003C8B4 00038514  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003C8B8 00038518  7C 08 03 A6 */	mtlr r0
/* 8003C8BC 0003851C  38 21 00 20 */	addi r1, r1, 0x20
/* 8003C8C0 00038520  4E 80 00 20 */	blr

.global func_8003C8C4
func_8003C8C4:
/* 8003C8C4 00038524  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003C8C8 00038528  7C 08 02 A6 */	mflr r0
/* 8003C8CC 0003852C  7C A7 2B 78 */	mr r7, r5
/* 8003C8D0 00038530  C8 62 82 50 */	lfd f3, lbl_80640850-_SDA2_BASE_(r2)
/* 8003C8D4 00038534  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003C8D8 00038538  3C 00 43 30 */	lis r0, 0x4330
/* 8003C8DC 0003853C  C0 02 82 38 */	lfs f0, lbl_80640838-_SDA2_BASE_(r2)
/* 8003C8E0 00038540  38 A1 00 08 */	addi r5, r1, 8
/* 8003C8E4 00038544  90 81 00 14 */	stw r4, 0x14(r1)
/* 8003C8E8 00038548  38 83 0C 70 */	addi r4, r3, 0xc70
/* 8003C8EC 0003854C  7C 86 23 78 */	mr r6, r4
/* 8003C8F0 00038550  38 63 01 90 */	addi r3, r3, 0x190
/* 8003C8F4 00038554  90 01 00 10 */	stw r0, 0x10(r1)
/* 8003C8F8 00038558  C8 41 00 10 */	lfd f2, 0x10(r1)
/* 8003C8FC 0003855C  EC 42 18 28 */	fsubs f2, f2, f3
/* 8003C900 00038560  EC 02 00 24 */	fdivs f0, f2, f0
/* 8003C904 00038564  D0 01 00 08 */	stfs f0, 8(r1)
/* 8003C908 00038568  48 01 3A 35 */	bl func_8005033C
/* 8003C90C 0003856C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003C910 00038570  7C 08 03 A6 */	mtlr r0
/* 8003C914 00038574  38 21 00 20 */	addi r1, r1, 0x20
/* 8003C918 00038578  4E 80 00 20 */	blr

.global func_8003C91C
func_8003C91C:
/* 8003C91C 0003857C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003C920 00038580  38 00 00 00 */	li r0, 0
/* 8003C924 00038584  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003C928 00038588  C0 02 82 AC */	lfs f0, lbl_806408AC-_SDA2_BASE_(r2)
/* 8003C92C 0003858C  98 03 00 00 */	stb r0, 0(r3)
/* 8003C930 00038590  D0 23 00 10 */	stfs f1, 0x10(r3)
/* 8003C934 00038594  D0 23 00 0C */	stfs f1, 0xc(r3)
/* 8003C938 00038598  D0 23 00 08 */	stfs f1, 8(r3)
/* 8003C93C 0003859C  D0 23 00 04 */	stfs f1, 4(r3)
/* 8003C940 000385A0  98 03 00 14 */	stb r0, 0x14(r3)
/* 8003C944 000385A4  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 8003C948 000385A8  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 8003C94C 000385AC  D0 03 00 18 */	stfs f0, 0x18(r3)
/* 8003C950 000385B0  D0 03 00 1C */	stfs f0, 0x1c(r3)
/* 8003C954 000385B4  D0 21 00 08 */	stfs f1, 8(r1)
/* 8003C958 000385B8  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 8003C95C 000385BC  D0 23 00 28 */	stfs f1, 0x28(r3)
/* 8003C960 000385C0  D0 23 00 2C */	stfs f1, 0x2c(r3)
/* 8003C964 000385C4  D0 23 00 20 */	stfs f1, 0x20(r3)
/* 8003C968 000385C8  D0 23 00 24 */	stfs f1, 0x24(r3)
/* 8003C96C 000385CC  38 21 00 20 */	addi r1, r1, 0x20
/* 8003C970 000385D0  4E 80 00 20 */	blr

.global func_8003C974
func_8003C974:
/* 8003C974 000385D4  94 21 FF A0 */	stwu r1, -0x60(r1)
/* 8003C978 000385D8  7C 08 02 A6 */	mflr r0
/* 8003C97C 000385DC  90 01 00 64 */	stw r0, 0x64(r1)
/* 8003C980 000385E0  39 61 00 60 */	addi r11, r1, 0x60
/* 8003C984 000385E4  48 18 A7 A5 */	bl _savegpr_27
/* 8003C988 000385E8  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 8003C98C 000385EC  38 E0 00 01 */	li r7, 1
/* 8003C990 000385F0  98 E3 0D 44 */	stb r7, 0xd44(r3)
/* 8003C994 000385F4  7C 7B 1B 78 */	mr r27, r3
/* 8003C998 000385F8  2C 00 00 00 */	cmpwi r0, 0
/* 8003C99C 000385FC  7C 9C 23 78 */	mr r28, r4
/* 8003C9A0 00038600  7C BF 2B 78 */	mr r31, r5
/* 8003C9A4 00038604  7C DD 33 78 */	mr r29, r6
/* 8003C9A8 00038608  3B C0 00 00 */	li r30, 0
/* 8003C9AC 0003860C  41 82 01 40 */	beq lbl_8003CAEC
/* 8003C9B0 00038610  48 00 38 45 */	bl func_800401F4
/* 8003C9B4 00038614  2C 03 00 00 */	cmpwi r3, 0
/* 8003C9B8 00038618  41 82 00 10 */	beq lbl_8003C9C8
/* 8003C9BC 0003861C  38 9D 00 01 */	addi r4, r29, 1
/* 8003C9C0 00038620  48 00 39 C5 */	bl func_80040384
/* 8003C9C4 00038624  7C 7E 1B 78 */	mr r30, r3
lbl_8003C9C8:
/* 8003C9C8 00038628  2C 1E 00 00 */	cmpwi r30, 0
/* 8003C9CC 0003862C  41 82 01 20 */	beq lbl_8003CAEC
/* 8003C9D0 00038630  7F 83 E3 78 */	mr r3, r28
/* 8003C9D4 00038634  7F E4 FB 78 */	mr r4, r31
/* 8003C9D8 00038638  48 19 EA E5 */	bl func_801DB4BC
/* 8003C9DC 0003863C  7C 7D 1B 78 */	mr r29, r3
/* 8003C9E0 00038640  7F C3 F3 78 */	mr r3, r30
/* 8003C9E4 00038644  48 00 5B AD */	bl func_80042590
/* 8003C9E8 00038648  7C 7F 1B 78 */	mr r31, r3
/* 8003C9EC 0003864C  7F C3 F3 78 */	mr r3, r30
/* 8003C9F0 00038650  48 00 48 15 */	bl func_80041204
/* 8003C9F4 00038654  7C 64 1B 78 */	mr r4, r3
/* 8003C9F8 00038658  7F E3 FB 78 */	mr r3, r31
/* 8003C9FC 0003865C  38 A1 00 28 */	addi r5, r1, 0x28
/* 8003CA00 00038660  48 24 02 E9 */	bl PSVECSubtract
/* 8003CA04 00038664  C0 41 00 28 */	lfs f2, 0x28(r1)
/* 8003CA08 00038668  38 61 00 34 */	addi r3, r1, 0x34
/* 8003CA0C 0003866C  C0 21 00 2C */	lfs f1, 0x2c(r1)
/* 8003CA10 00038670  7C 64 1B 78 */	mr r4, r3
/* 8003CA14 00038674  C0 01 00 30 */	lfs f0, 0x30(r1)
/* 8003CA18 00038678  D0 41 00 34 */	stfs f2, 0x34(r1)
/* 8003CA1C 0003867C  D0 21 00 38 */	stfs f1, 0x38(r1)
/* 8003CA20 00038680  D0 01 00 3C */	stfs f0, 0x3c(r1)
/* 8003CA24 00038684  48 24 03 05 */	bl PSVECNormalize
/* 8003CA28 00038688  80 7B 0C 04 */	lwz r3, 0xc04(r27)
/* 8003CA2C 0003868C  7F A4 EB 78 */	mr r4, r29
/* 8003CA30 00038690  7F E5 FB 78 */	mr r5, r31
/* 8003CA34 00038694  38 C1 00 34 */	addi r6, r1, 0x34
/* 8003CA38 00038698  38 E0 00 00 */	li r7, 0
/* 8003CA3C 0003869C  48 1B BE B1 */	bl func_801F88EC
/* 8003CA40 000386A0  98 7B 0D 30 */	stb r3, 0xd30(r27)
/* 8003CA44 000386A4  7F 63 DB 78 */	mr r3, r27
/* 8003CA48 000386A8  4B FF CC 8D */	bl func_800396D4
/* 8003CA4C 000386AC  C0 22 82 30 */	lfs f1, lbl_80640830-_SDA2_BASE_(r2)
/* 8003CA50 000386B0  48 01 1A 4D */	bl func_8004E49C
/* 8003CA54 000386B4  D0 3B 0D 60 */	stfs f1, 0xd60(r27)
/* 8003CA58 000386B8  38 A1 00 20 */	addi r5, r1, 0x20
/* 8003CA5C 000386BC  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003CA60 000386C0  D0 01 00 20 */	stfs f0, 0x20(r1)
/* 8003CA64 000386C4  D0 01 00 24 */	stfs f0, 0x24(r1)
/* 8003CA68 000386C8  80 7B 0C 04 */	lwz r3, 0xc04(r27)
/* 8003CA6C 000386CC  88 9B 0D 30 */	lbz r4, 0xd30(r27)
/* 8003CA70 000386D0  48 1B C0 D1 */	bl func_801F8B40
/* 8003CA74 000386D4  C0 5B 0D 60 */	lfs f2, 0xd60(r27)
/* 8003CA78 000386D8  38 A1 00 18 */	addi r5, r1, 0x18
/* 8003CA7C 000386DC  C0 3B 0D 4C */	lfs f1, 0xd4c(r27)
/* 8003CA80 000386E0  C0 1B 0D 48 */	lfs f0, 0xd48(r27)
/* 8003CA84 000386E4  EC 21 00 B2 */	fmuls f1, f1, f2
/* 8003CA88 000386E8  EC 00 00 B2 */	fmuls f0, f0, f2
/* 8003CA8C 000386EC  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 8003CA90 000386F0  D0 01 00 08 */	stfs f0, 8(r1)
/* 8003CA94 000386F4  80 01 00 0C */	lwz r0, 0xc(r1)
/* 8003CA98 000386F8  80 61 00 08 */	lwz r3, 8(r1)
/* 8003CA9C 000386FC  90 01 00 1C */	stw r0, 0x1c(r1)
/* 8003CAA0 00038700  90 61 00 18 */	stw r3, 0x18(r1)
/* 8003CAA4 00038704  80 7B 0C 04 */	lwz r3, 0xc04(r27)
/* 8003CAA8 00038708  88 9B 0D 30 */	lbz r4, 0xd30(r27)
/* 8003CAAC 0003870C  48 1B C0 C5 */	bl func_801F8B70
/* 8003CAB0 00038710  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003CAB4 00038714  7F A3 EB 78 */	mr r3, r29
/* 8003CAB8 00038718  38 80 00 02 */	li r4, 2
/* 8003CABC 0003871C  38 A0 00 02 */	li r5, 2
/* 8003CAC0 00038720  D0 1B 0D 40 */	stfs f0, 0xd40(r27)
/* 8003CAC4 00038724  38 C0 00 02 */	li r6, 2
/* 8003CAC8 00038728  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 8003CACC 0003872C  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 8003CAD0 00038730  D0 1B 0D 58 */	stfs f0, 0xd58(r27)
/* 8003CAD4 00038734  D0 1B 0D 5C */	stfs f0, 0xd5c(r27)
/* 8003CAD8 00038738  48 20 18 F1 */	bl func_8023E3C8
/* 8003CADC 0003873C  7F A3 EB 78 */	mr r3, r29
/* 8003CAE0 00038740  38 80 00 01 */	li r4, 1
/* 8003CAE4 00038744  38 A0 00 01 */	li r5, 1
/* 8003CAE8 00038748  48 20 18 85 */	bl func_8023E36C
lbl_8003CAEC:
/* 8003CAEC 0003874C  39 61 00 60 */	addi r11, r1, 0x60
/* 8003CAF0 00038750  48 18 A6 85 */	bl _restgpr_27
/* 8003CAF4 00038754  80 01 00 64 */	lwz r0, 0x64(r1)
/* 8003CAF8 00038758  7C 08 03 A6 */	mtlr r0
/* 8003CAFC 0003875C  38 21 00 60 */	addi r1, r1, 0x60
/* 8003CB00 00038760  4E 80 00 20 */	blr

.global func_8003CB04
func_8003CB04:
/* 8003CB04 00038764  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003CB08 00038768  7C 08 02 A6 */	mflr r0
/* 8003CB0C 0003876C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003CB10 00038770  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003CB14 00038774  7C 7F 1B 78 */	mr r31, r3
/* 8003CB18 00038778  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 8003CB1C 0003877C  2C 00 00 00 */	cmpwi r0, 0
/* 8003CB20 00038780  41 82 00 10 */	beq lbl_8003CB30
/* 8003CB24 00038784  88 9F 0D 30 */	lbz r4, 0xd30(r31)
/* 8003CB28 00038788  7C 03 03 78 */	mr r3, r0
/* 8003CB2C 0003878C  48 1B C0 99 */	bl func_801F8BC4
lbl_8003CB30:
/* 8003CB30 00038790  38 00 00 00 */	li r0, 0
/* 8003CB34 00038794  98 1F 0D 44 */	stb r0, 0xd44(r31)
/* 8003CB38 00038798  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003CB3C 0003879C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003CB40 000387A0  7C 08 03 A6 */	mtlr r0
/* 8003CB44 000387A4  38 21 00 10 */	addi r1, r1, 0x10
/* 8003CB48 000387A8  4E 80 00 20 */	blr

.global func_8003CB4C
func_8003CB4C:
/* 8003CB4C 000387AC  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003CB50 000387B0  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8003CB54 000387B4  4C 40 13 82 */	cror 2, 0, 2
/* 8003CB58 000387B8  40 82 00 10 */	bne lbl_8003CB68
/* 8003CB5C 000387BC  38 00 00 00 */	li r0, 0
/* 8003CB60 000387C0  98 03 0D 44 */	stb r0, 0xd44(r3)
/* 8003CB64 000387C4  4E 80 00 20 */	blr
lbl_8003CB68:
/* 8003CB68 000387C8  FC 01 10 40 */	fcmpo cr0, f1, f2
/* 8003CB6C 000387CC  D0 23 0D 34 */	stfs f1, 0xd34(r3)
/* 8003CB70 000387D0  40 80 00 08 */	bge lbl_8003CB78
/* 8003CB74 000387D4  FC 40 08 90 */	fmr f2, f1
lbl_8003CB78:
/* 8003CB78 000387D8  FC 01 18 40 */	fcmpo cr0, f1, f3
/* 8003CB7C 000387DC  40 80 00 08 */	bge lbl_8003CB84
/* 8003CB80 000387E0  FC 60 08 90 */	fmr f3, f1
lbl_8003CB84:
/* 8003CB84 000387E4  D0 43 0D 3C */	stfs f2, 0xd3c(r3)
/* 8003CB88 000387E8  D0 63 0D 38 */	stfs f3, 0xd38(r3)
/* 8003CB8C 000387EC  4E 80 00 20 */	blr

.global func_8003CB90
func_8003CB90:
/* 8003CB90 000387F0  C0 04 00 00 */	lfs f0, 0(r4)
/* 8003CB94 000387F4  D0 03 0D 50 */	stfs f0, 0xd50(r3)
/* 8003CB98 000387F8  C0 04 00 04 */	lfs f0, 4(r4)
/* 8003CB9C 000387FC  D0 03 0D 54 */	stfs f0, 0xd54(r3)
/* 8003CBA0 00038800  4E 80 00 20 */	blr

.global func_8003CBA4
func_8003CBA4:
/* 8003CBA4 00038804  C0 04 00 00 */	lfs f0, 0(r4)
/* 8003CBA8 00038808  D0 03 0D 48 */	stfs f0, 0xd48(r3)
/* 8003CBAC 0003880C  C0 04 00 04 */	lfs f0, 4(r4)
/* 8003CBB0 00038810  D0 03 0D 4C */	stfs f0, 0xd4c(r3)
/* 8003CBB4 00038814  4E 80 00 20 */	blr

.global func_8003CBB8
func_8003CBB8:
/* 8003CBB8 00038818  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 8003CBBC 0003881C  7C 08 02 A6 */	mflr r0
/* 8003CBC0 00038820  90 01 00 44 */	stw r0, 0x44(r1)
/* 8003CBC4 00038824  DB E1 00 30 */	stfd f31, 0x30(r1)
/* 8003CBC8 00038828  F3 E1 00 38 */	psq_st f31, 56(r1), 0, qr0
/* 8003CBCC 0003882C  FF E0 08 90 */	fmr f31, f1
/* 8003CBD0 00038830  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 8003CBD4 00038834  7C 7F 1B 78 */	mr r31, r3
/* 8003CBD8 00038838  88 03 0D 44 */	lbz r0, 0xd44(r3)
/* 8003CBDC 0003883C  2C 00 00 00 */	cmpwi r0, 0
/* 8003CBE0 00038840  41 82 01 50 */	beq lbl_8003CD30
/* 8003CBE4 00038844  C0 23 0D 34 */	lfs f1, 0xd34(r3)
/* 8003CBE8 00038848  C0 03 0D 40 */	lfs f0, 0xd40(r3)
/* 8003CBEC 0003884C  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8003CBF0 00038850  40 80 00 0C */	bge lbl_8003CBFC
/* 8003CBF4 00038854  4B FF FF 11 */	bl func_8003CB04
/* 8003CBF8 00038858  48 00 01 38 */	b lbl_8003CD30
lbl_8003CBFC:
/* 8003CBFC 0003885C  C0 43 0D 60 */	lfs f2, 0xd60(r3)
/* 8003CC00 00038860  C0 23 0D 54 */	lfs f1, 0xd54(r3)
/* 8003CC04 00038864  C0 03 0D 50 */	lfs f0, 0xd50(r3)
/* 8003CC08 00038868  EC 81 00 B2 */	fmuls f4, f1, f2
/* 8003CC0C 0003886C  80 A3 0C 04 */	lwz r5, 0xc04(r3)
/* 8003CC10 00038870  EC 00 00 B2 */	fmuls f0, f0, f2
/* 8003CC14 00038874  C0 63 0D 58 */	lfs f3, 0xd58(r3)
/* 8003CC18 00038878  C0 23 0D 5C */	lfs f1, 0xd5c(r3)
/* 8003CC1C 0003887C  2C 05 00 00 */	cmpwi r5, 0
/* 8003CC20 00038880  D0 01 00 08 */	stfs f0, 8(r1)
/* 8003CC24 00038884  D0 81 00 0C */	stfs f4, 0xc(r1)
/* 8003CC28 00038888  80 81 00 08 */	lwz r4, 8(r1)
/* 8003CC2C 0003888C  80 01 00 0C */	lwz r0, 0xc(r1)
/* 8003CC30 00038890  90 81 00 10 */	stw r4, 0x10(r1)
/* 8003CC34 00038894  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003CC38 00038898  C0 41 00 10 */	lfs f2, 0x10(r1)
/* 8003CC3C 0003889C  C0 01 00 14 */	lfs f0, 0x14(r1)
/* 8003CC40 000388A0  EC 43 10 2A */	fadds f2, f3, f2
/* 8003CC44 000388A4  EC 01 00 2A */	fadds f0, f1, f0
/* 8003CC48 000388A8  D0 43 0D 58 */	stfs f2, 0xd58(r3)
/* 8003CC4C 000388AC  D0 03 0D 5C */	stfs f0, 0xd5c(r3)
/* 8003CC50 000388B0  41 82 00 14 */	beq lbl_8003CC64
/* 8003CC54 000388B4  88 9F 0D 30 */	lbz r4, 0xd30(r31)
/* 8003CC58 000388B8  7C A3 2B 78 */	mr r3, r5
/* 8003CC5C 000388BC  38 BF 0D 58 */	addi r5, r31, 0xd58
/* 8003CC60 000388C0  48 1B BE E1 */	bl func_801F8B40
lbl_8003CC64:
/* 8003CC64 000388C4  C0 5F 0D 40 */	lfs f2, 0xd40(r31)
/* 8003CC68 000388C8  C0 3F 0D 3C */	lfs f1, 0xd3c(r31)
/* 8003CC6C 000388CC  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 8003CC70 000388D0  40 80 00 44 */	bge lbl_8003CCB4
/* 8003CC74 000388D4  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003CC78 000388D8  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8003CC7C 000388DC  40 81 00 38 */	ble lbl_8003CCB4
/* 8003CC80 000388E0  EC 22 08 24 */	fdivs f1, f2, f1
/* 8003CC84 000388E4  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 8003CC88 000388E8  2C 03 00 00 */	cmpwi r3, 0
/* 8003CC8C 000388EC  41 82 00 98 */	beq lbl_8003CD24
/* 8003CC90 000388F0  C0 02 82 38 */	lfs f0, lbl_80640838-_SDA2_BASE_(r2)
/* 8003CC94 000388F4  88 9F 0D 30 */	lbz r4, 0xd30(r31)
/* 8003CC98 000388F8  EC 00 00 72 */	fmuls f0, f0, f1
/* 8003CC9C 000388FC  FC 00 00 1E */	fctiwz f0, f0
/* 8003CCA0 00038900  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 8003CCA4 00038904  80 A1 00 1C */	lwz r5, 0x1c(r1)
/* 8003CCA8 00038908  54 A5 06 3E */	clrlwi r5, r5, 0x18
/* 8003CCAC 0003890C  48 1B BE F5 */	bl func_801F8BA0
/* 8003CCB0 00038910  48 00 00 74 */	b lbl_8003CD24
lbl_8003CCB4:
/* 8003CCB4 00038914  C0 1F 0D 34 */	lfs f0, 0xd34(r31)
/* 8003CCB8 00038918  C0 5F 0D 38 */	lfs f2, 0xd38(r31)
/* 8003CCBC 0003891C  C0 7F 0D 40 */	lfs f3, 0xd40(r31)
/* 8003CCC0 00038920  EC 20 10 28 */	fsubs f1, f0, f2
/* 8003CCC4 00038924  FC 03 08 40 */	fcmpo cr0, f3, f1
/* 8003CCC8 00038928  40 81 00 4C */	ble lbl_8003CD14
/* 8003CCCC 0003892C  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003CCD0 00038930  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 8003CCD4 00038934  40 81 00 40 */	ble lbl_8003CD14
/* 8003CCD8 00038938  EC 03 08 28 */	fsubs f0, f3, f1
/* 8003CCDC 0003893C  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 8003CCE0 00038940  2C 03 00 00 */	cmpwi r3, 0
/* 8003CCE4 00038944  EC 00 10 24 */	fdivs f0, f0, f2
/* 8003CCE8 00038948  41 82 00 3C */	beq lbl_8003CD24
/* 8003CCEC 0003894C  C0 22 82 38 */	lfs f1, lbl_80640838-_SDA2_BASE_(r2)
/* 8003CCF0 00038950  88 9F 0D 30 */	lbz r4, 0xd30(r31)
/* 8003CCF4 00038954  EC 01 00 32 */	fmuls f0, f1, f0
/* 8003CCF8 00038958  EC 01 00 28 */	fsubs f0, f1, f0
/* 8003CCFC 0003895C  FC 00 00 1E */	fctiwz f0, f0
/* 8003CD00 00038960  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 8003CD04 00038964  80 A1 00 1C */	lwz r5, 0x1c(r1)
/* 8003CD08 00038968  54 A5 06 3E */	clrlwi r5, r5, 0x18
/* 8003CD0C 0003896C  48 1B BE 95 */	bl func_801F8BA0
/* 8003CD10 00038970  48 00 00 14 */	b lbl_8003CD24
lbl_8003CD14:
/* 8003CD14 00038974  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 8003CD18 00038978  38 A0 00 FF */	li r5, 0xff
/* 8003CD1C 0003897C  88 9F 0D 30 */	lbz r4, 0xd30(r31)
/* 8003CD20 00038980  48 1B BE 81 */	bl func_801F8BA0
lbl_8003CD24:
/* 8003CD24 00038984  C0 1F 0D 40 */	lfs f0, 0xd40(r31)
/* 8003CD28 00038988  EC 00 F8 2A */	fadds f0, f0, f31
/* 8003CD2C 0003898C  D0 1F 0D 40 */	stfs f0, 0xd40(r31)
lbl_8003CD30:
/* 8003CD30 00038990  E3 E1 00 38 */	psq_l f31, 56(r1), 0, qr0
/* 8003CD34 00038994  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8003CD38 00038998  CB E1 00 30 */	lfd f31, 0x30(r1)
/* 8003CD3C 0003899C  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 8003CD40 000389A0  7C 08 03 A6 */	mtlr r0
/* 8003CD44 000389A4  38 21 00 40 */	addi r1, r1, 0x40
/* 8003CD48 000389A8  4E 80 00 20 */	blr

.global func_8003CD4C
func_8003CD4C:
/* 8003CD4C 000389AC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003CD50 000389B0  7C 08 02 A6 */	mflr r0
/* 8003CD54 000389B4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003CD58 000389B8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003CD5C 000389BC  7C 7F 1B 78 */	mr r31, r3
/* 8003CD60 000389C0  80 03 0C 08 */	lwz r0, 0xc08(r3)
/* 8003CD64 000389C4  2C 00 00 00 */	cmpwi r0, 0
/* 8003CD68 000389C8  41 82 00 28 */	beq lbl_8003CD90
/* 8003CD6C 000389CC  41 82 00 1C */	beq lbl_8003CD88
/* 8003CD70 000389D0  7C 03 03 78 */	mr r3, r0
/* 8003CD74 000389D4  38 80 00 01 */	li r4, 1
/* 8003CD78 000389D8  81 83 00 0C */	lwz r12, 0xc(r3)
/* 8003CD7C 000389DC  81 8C 00 18 */	lwz r12, 0x18(r12)
/* 8003CD80 000389E0  7D 89 03 A6 */	mtctr r12
/* 8003CD84 000389E4  4E 80 04 21 */	bctrl
lbl_8003CD88:
/* 8003CD88 000389E8  38 00 00 00 */	li r0, 0
/* 8003CD8C 000389EC  90 1F 0C 08 */	stw r0, 0xc08(r31)
lbl_8003CD90:
/* 8003CD90 000389F0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003CD94 000389F4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003CD98 000389F8  7C 08 03 A6 */	mtlr r0
/* 8003CD9C 000389FC  38 21 00 10 */	addi r1, r1, 0x10
/* 8003CDA0 00038A00  4E 80 00 20 */	blr

.global func_8003CDA4
func_8003CDA4:
/* 8003CDA4 00038A04  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003CDA8 00038A08  7C 08 02 A6 */	mflr r0
/* 8003CDAC 00038A0C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003CDB0 00038A10  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003CDB4 00038A14  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003CDB8 00038A18  7C 7E 1B 78 */	mr r30, r3
/* 8003CDBC 00038A1C  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 8003CDC0 00038A20  2C 00 00 00 */	cmpwi r0, 0
/* 8003CDC4 00038A24  41 82 00 AC */	beq lbl_8003CE70
/* 8003CDC8 00038A28  4B FF FF 85 */	bl func_8003CD4C
/* 8003CDCC 00038A2C  48 19 DD 5D */	bl func_801DAB28
/* 8003CDD0 00038A30  2C 03 00 00 */	cmpwi r3, 0
/* 8003CDD4 00038A34  41 82 00 14 */	beq lbl_8003CDE8
/* 8003CDD8 00038A38  80 6D 96 38 */	lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
/* 8003CDDC 00038A3C  38 80 00 28 */	li r4, 0x28
/* 8003CDE0 00038A40  48 19 DE B5 */	bl func_801DAC94
/* 8003CDE4 00038A44  48 00 00 08 */	b lbl_8003CDEC
lbl_8003CDE8:
/* 8003CDE8 00038A48  38 60 00 00 */	li r3, 0
lbl_8003CDEC:
/* 8003CDEC 00038A4C  2C 03 00 00 */	cmpwi r3, 0
/* 8003CDF0 00038A50  7C 7F 1B 78 */	mr r31, r3
/* 8003CDF4 00038A54  41 82 00 14 */	beq lbl_8003CE08
/* 8003CDF8 00038A58  80 9E 0C 04 */	lwz r4, 0xc04(r30)
/* 8003CDFC 00038A5C  38 A0 00 00 */	li r5, 0
/* 8003CE00 00038A60  48 1E 1C 49 */	bl func_8021EA48
/* 8003CE04 00038A64  7C 7F 1B 78 */	mr r31, r3
lbl_8003CE08:
/* 8003CE08 00038A68  2C 1F 00 00 */	cmpwi r31, 0
/* 8003CE0C 00038A6C  41 82 00 64 */	beq lbl_8003CE70
/* 8003CE10 00038A70  C0 22 82 98 */	lfs f1, lbl_80640898-_SDA2_BASE_(r2)
/* 8003CE14 00038A74  38 00 00 01 */	li r0, 1
/* 8003CE18 00038A78  93 FE 0C 08 */	stw r31, 0xc08(r30)
/* 8003CE1C 00038A7C  7F E3 FB 78 */	mr r3, r31
/* 8003CE20 00038A80  C0 02 82 88 */	lfs f0, lbl_80640888-_SDA2_BASE_(r2)
/* 8003CE24 00038A84  D0 3F 00 1C */	stfs f1, 0x1c(r31)
/* 8003CE28 00038A88  D0 1F 00 20 */	stfs f0, 0x20(r31)
/* 8003CE2C 00038A8C  90 1F 00 24 */	stw r0, 0x24(r31)
/* 8003CE30 00038A90  81 9F 00 0C */	lwz r12, 0xc(r31)
/* 8003CE34 00038A94  D0 21 00 08 */	stfs f1, 8(r1)
/* 8003CE38 00038A98  81 8C 00 08 */	lwz r12, 8(r12)
/* 8003CE3C 00038A9C  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 8003CE40 00038AA0  7D 89 03 A6 */	mtctr r12
/* 8003CE44 00038AA4  4E 80 04 21 */	bctrl
/* 8003CE48 00038AA8  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 8003CE4C 00038AAC  98 7F 00 08 */	stb r3, 8(r31)
/* 8003CE50 00038AB0  41 82 00 20 */	beq lbl_8003CE70
/* 8003CE54 00038AB4  83 FF 00 04 */	lwz r31, 4(r31)
/* 8003CE58 00038AB8  57 E3 86 3E */	rlwinm r3, r31, 0x10, 0x18, 0x1f
/* 8003CE5C 00038ABC  48 1F E1 FD */	bl func_8023B058
/* 8003CE60 00038AC0  2C 03 00 00 */	cmpwi r3, 0
/* 8003CE64 00038AC4  41 82 00 0C */	beq lbl_8003CE70
/* 8003CE68 00038AC8  7F E4 FB 78 */	mr r4, r31
/* 8003CE6C 00038ACC  48 1F E5 4D */	bl func_8023B3B8
lbl_8003CE70:
/* 8003CE70 00038AD0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003CE74 00038AD4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8003CE78 00038AD8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8003CE7C 00038ADC  7C 08 03 A6 */	mtlr r0
/* 8003CE80 00038AE0  38 21 00 20 */	addi r1, r1, 0x20
/* 8003CE84 00038AE4  4E 80 00 20 */	blr

.global func_8003CE88
func_8003CE88:
/* 8003CE88 00038AE8  80 A3 0C 04 */	lwz r5, 0xc04(r3)
/* 8003CE8C 00038AEC  2C 05 00 00 */	cmpwi r5, 0
/* 8003CE90 00038AF0  41 82 00 74 */	beq lbl_8003CF04
/* 8003CE94 00038AF4  A0 65 00 E0 */	lhz r3, 0xe0(r5)
/* 8003CE98 00038AF8  7C 04 18 00 */	cmpw r4, r3
/* 8003CE9C 00038AFC  40 80 00 68 */	bge lbl_8003CF04
/* 8003CEA0 00038B00  80 C5 00 10 */	lwz r6, 0x10(r5)
/* 8003CEA4 00038B04  2C 06 00 00 */	cmpwi r6, 0
/* 8003CEA8 00038B08  40 82 00 0C */	bne lbl_8003CEB4
/* 8003CEAC 00038B0C  38 60 00 00 */	li r3, 0
/* 8003CEB0 00038B10  4E 80 00 20 */	blr
lbl_8003CEB4:
/* 8003CEB4 00038B14  54 80 04 3E */	clrlwi r0, r4, 0x10
/* 8003CEB8 00038B18  7C 00 18 40 */	cmplw r0, r3
/* 8003CEBC 00038B1C  41 80 00 0C */	blt lbl_8003CEC8
/* 8003CEC0 00038B20  38 60 00 00 */	li r3, 0
/* 8003CEC4 00038B24  4E 80 00 20 */	blr
lbl_8003CEC8:
/* 8003CEC8 00038B28  80 E5 00 08 */	lwz r7, 8(r5)
/* 8003CECC 00038B2C  54 80 0B FC */	rlwinm r0, r4, 1, 0xf, 0x1e
/* 8003CED0 00038B30  7C 66 02 2E */	lhzx r3, r6, r0
/* 8003CED4 00038B34  2C 07 00 00 */	cmpwi r7, 0
/* 8003CED8 00038B38  40 82 00 0C */	bne lbl_8003CEE4
/* 8003CEDC 00038B3C  38 60 00 00 */	li r3, 0
/* 8003CEE0 00038B40  4E 80 00 20 */	blr
lbl_8003CEE4:
/* 8003CEE4 00038B44  A0 05 00 DE */	lhz r0, 0xde(r5)
/* 8003CEE8 00038B48  7C 03 00 40 */	cmplw r3, r0
/* 8003CEEC 00038B4C  41 80 00 0C */	blt lbl_8003CEF8
/* 8003CEF0 00038B50  38 60 00 00 */	li r3, 0
/* 8003CEF4 00038B54  4E 80 00 20 */	blr
lbl_8003CEF8:
/* 8003CEF8 00038B58  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 8003CEFC 00038B5C  7C 67 00 2E */	lwzx r3, r7, r0
/* 8003CF00 00038B60  4E 80 00 20 */	blr
lbl_8003CF04:
/* 8003CF04 00038B64  38 60 00 00 */	li r3, 0
/* 8003CF08 00038B68  4E 80 00 20 */	blr

.global func_8003CF0C
func_8003CF0C:
/* 8003CF0C 00038B6C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003CF10 00038B70  7C 08 02 A6 */	mflr r0
/* 8003CF14 00038B74  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003CF18 00038B78  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003CF1C 00038B7C  7C 7F 1B 78 */	mr r31, r3
/* 8003CF20 00038B80  48 00 12 3D */	bl func_8003E15C
/* 8003CF24 00038B84  2C 1F 00 00 */	cmpwi r31, 0
/* 8003CF28 00038B88  41 82 00 18 */	beq lbl_8003CF40
/* 8003CF2C 00038B8C  2C 03 00 00 */	cmpwi r3, 0
/* 8003CF30 00038B90  40 82 00 08 */	bne lbl_8003CF38
/* 8003CF34 00038B94  48 00 00 0C */	b lbl_8003CF40
lbl_8003CF38:
/* 8003CF38 00038B98  7F E4 FB 78 */	mr r4, r31
/* 8003CF3C 00038B9C  48 00 12 FD */	bl func_8003E238
lbl_8003CF40:
/* 8003CF40 00038BA0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003CF44 00038BA4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003CF48 00038BA8  7C 08 03 A6 */	mtlr r0
/* 8003CF4C 00038BAC  38 21 00 10 */	addi r1, r1, 0x10
/* 8003CF50 00038BB0  4E 80 00 20 */	blr

.global func_8003CF54
func_8003CF54:
/* 8003CF54 00038BB4  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003CF58 00038BB8  7C 08 02 A6 */	mflr r0
/* 8003CF5C 00038BBC  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003CF60 00038BC0  39 61 00 30 */	addi r11, r1, 0x30
/* 8003CF64 00038BC4  48 18 A1 B1 */	bl _savegpr_22
/* 8003CF68 00038BC8  7C 7A 1B 78 */	mr r26, r3
/* 8003CF6C 00038BCC  7C 9B 23 78 */	mr r27, r4
/* 8003CF70 00038BD0  7C BC 2B 78 */	mr r28, r5
/* 8003CF74 00038BD4  7C DD 33 78 */	mr r29, r6
/* 8003CF78 00038BD8  7C FE 3B 78 */	mr r30, r7
/* 8003CF7C 00038BDC  7D 1F 43 78 */	mr r31, r8
/* 8003CF80 00038BE0  48 00 11 DD */	bl func_8003E15C
/* 8003CF84 00038BE4  2C 03 00 00 */	cmpwi r3, 0
/* 8003CF88 00038BE8  7C 78 1B 78 */	mr r24, r3
/* 8003CF8C 00038BEC  40 82 00 0C */	bne lbl_8003CF98
/* 8003CF90 00038BF0  38 60 00 00 */	li r3, 0
/* 8003CF94 00038BF4  48 00 01 14 */	b lbl_8003D0A8
lbl_8003CF98:
/* 8003CF98 00038BF8  7F 64 DB 78 */	mr r4, r27
/* 8003CF9C 00038BFC  7F C6 F3 78 */	mr r6, r30
/* 8003CFA0 00038C00  57 A5 06 3E */	clrlwi r5, r29, 0x18
/* 8003CFA4 00038C04  48 00 16 F5 */	bl func_8003E698
/* 8003CFA8 00038C08  7C 77 1B 78 */	mr r23, r3
/* 8003CFAC 00038C0C  7F 03 C3 78 */	mr r3, r24
/* 8003CFB0 00038C10  7F 64 DB 78 */	mr r4, r27
/* 8003CFB4 00038C14  7F 85 E3 78 */	mr r5, r28
/* 8003CFB8 00038C18  7F C7 F3 78 */	mr r7, r30
/* 8003CFBC 00038C1C  57 A6 06 3E */	clrlwi r6, r29, 0x18
/* 8003CFC0 00038C20  48 00 17 21 */	bl func_8003E6E0
/* 8003CFC4 00038C24  2C 17 00 00 */	cmpwi r23, 0
/* 8003CFC8 00038C28  7C 76 1B 78 */	mr r22, r3
/* 8003CFCC 00038C2C  41 82 00 0C */	beq lbl_8003CFD8
/* 8003CFD0 00038C30  2C 03 00 00 */	cmpwi r3, 0
/* 8003CFD4 00038C34  40 82 00 0C */	bne lbl_8003CFE0
lbl_8003CFD8:
/* 8003CFD8 00038C38  38 60 00 00 */	li r3, 0
/* 8003CFDC 00038C3C  48 00 00 CC */	b lbl_8003D0A8
lbl_8003CFE0:
/* 8003CFE0 00038C40  80 1A 00 00 */	lwz r0, 0(r26)
/* 8003CFE4 00038C44  7F 43 D3 78 */	mr r3, r26
/* 8003CFE8 00038C48  54 18 05 28 */	rlwinm r24, r0, 0, 0x14, 0x14
/* 8003CFEC 00038C4C  4B FF A5 B9 */	bl func_800375A4
/* 8003CFF0 00038C50  80 1A 00 00 */	lwz r0, 0(r26)
/* 8003CFF4 00038C54  7E E3 BB 78 */	mr r3, r23
/* 8003CFF8 00038C58  7E C4 B3 78 */	mr r4, r22
/* 8003CFFC 00038C5C  7C 00 C3 78 */	or r0, r0, r24
/* 8003D000 00038C60  90 1A 00 00 */	stw r0, 0(r26)
/* 8003D004 00038C64  4B FF 9F 85 */	bl func_80036F88
/* 8003D008 00038C68  28 1B 01 47 */	cmplwi r27, 0x147
/* 8003D00C 00038C6C  40 82 00 3C */	bne lbl_8003D048
/* 8003D010 00038C70  3F 00 09 31 */	lis r24, 0x09310C00@ha
/* 8003D014 00038C74  7E E3 BB 78 */	mr r3, r23
/* 8003D018 00038C78  38 98 0C 00 */	addi r4, r24, 0x09310C00@l
/* 8003D01C 00038C7C  4B FF 9F 6D */	bl func_80036F88
/* 8003D020 00038C80  3F 20 09 30 */	lis r25, 0x09300C00@ha
/* 8003D024 00038C84  7E E3 BB 78 */	mr r3, r23
/* 8003D028 00038C88  38 99 0C 00 */	addi r4, r25, 0x09300C00@l
/* 8003D02C 00038C8C  4B FF 9F 5D */	bl func_80036F88
/* 8003D030 00038C90  38 78 0C 00 */	addi r3, r24, 0xc00
/* 8003D034 00038C94  38 19 0C 00 */	addi r0, r25, 0xc00
/* 8003D038 00038C98  92 FA 0C 58 */	stw r23, 0xc58(r26)
/* 8003D03C 00038C9C  90 7A 0C 5C */	stw r3, 0xc5c(r26)
/* 8003D040 00038CA0  92 FA 0C 60 */	stw r23, 0xc60(r26)
/* 8003D044 00038CA4  90 1A 0C 64 */	stw r0, 0xc64(r26)
lbl_8003D048:
/* 8003D048 00038CA8  38 00 00 00 */	li r0, 0
/* 8003D04C 00038CAC  7E E3 BB 78 */	mr r3, r23
/* 8003D050 00038CB0  90 1A 0C D8 */	stw r0, 0xcd8(r26)
/* 8003D054 00038CB4  90 1A 0C E0 */	stw r0, 0xce0(r26)
/* 8003D058 00038CB8  48 20 C8 39 */	bl func_80249890
/* 8003D05C 00038CBC  7E E3 BB 78 */	mr r3, r23
/* 8003D060 00038CC0  48 20 C9 0D */	bl func_8024996C
/* 8003D064 00038CC4  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8003D068 00038CC8  48 1E 75 21 */	bl func_80224588
/* 8003D06C 00038CCC  3B 20 00 01 */	li r25, 1
/* 8003D070 00038CD0  B3 7A 05 10 */	sth r27, 0x510(r26)
/* 8003D074 00038CD4  7F 43 D3 78 */	mr r3, r26
/* 8003D078 00038CD8  7E E4 BB 78 */	mr r4, r23
/* 8003D07C 00038CDC  B3 DA 05 12 */	sth r30, 0x512(r26)
/* 8003D080 00038CE0  7E C5 B3 78 */	mr r5, r22
/* 8003D084 00038CE4  9B 9A 05 16 */	stb r28, 0x516(r26)
/* 8003D088 00038CE8  B3 BA 05 14 */	sth r29, 0x514(r26)
/* 8003D08C 00038CEC  93 FA 05 18 */	stw r31, 0x518(r26)
/* 8003D090 00038CF0  B3 3A 05 0C */	sth r25, 0x50c(r26)
/* 8003D094 00038CF4  4B FF A8 91 */	bl func_80037924
/* 8003D098 00038CF8  B3 3A 05 0C */	sth r25, 0x50c(r26)
/* 8003D09C 00038CFC  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8003D0A0 00038D00  48 1E 74 E9 */	bl func_80224588
/* 8003D0A4 00038D04  38 60 00 01 */	li r3, 1
lbl_8003D0A8:
/* 8003D0A8 00038D08  39 61 00 30 */	addi r11, r1, 0x30
/* 8003D0AC 00038D0C  48 18 A0 B5 */	bl _restgpr_22
/* 8003D0B0 00038D10  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003D0B4 00038D14  7C 08 03 A6 */	mtlr r0
/* 8003D0B8 00038D18  38 21 00 30 */	addi r1, r1, 0x30
/* 8003D0BC 00038D1C  4E 80 00 20 */	blr

.global func_8003D0C0
func_8003D0C0:
/* 8003D0C0 00038D20  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003D0C4 00038D24  7C 08 02 A6 */	mflr r0
/* 8003D0C8 00038D28  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003D0CC 00038D2C  39 61 00 30 */	addi r11, r1, 0x30
/* 8003D0D0 00038D30  48 18 A0 49 */	bl _savegpr_23
/* 8003D0D4 00038D34  3F 00 80 64 */	lis r24, lbl_8063CE34@ha
/* 8003D0D8 00038D38  7C 7A 1B 78 */	mr r26, r3
/* 8003D0DC 00038D3C  3B 18 CE 34 */	addi r24, r24, lbl_8063CE34@l
/* 8003D0E0 00038D40  7C 9B 23 78 */	mr r27, r4
/* 8003D0E4 00038D44  7C BC 2B 78 */	mr r28, r5
/* 8003D0E8 00038D48  7C DD 33 78 */	mr r29, r6
/* 8003D0EC 00038D4C  7C FE 3B 78 */	mr r30, r7
/* 8003D0F0 00038D50  38 78 00 28 */	addi r3, r24, 0x28
/* 8003D0F4 00038D54  48 35 8C F1 */	bl func_80395DE4
/* 8003D0F8 00038D58  7C 1B 18 40 */	cmplw r27, r3
/* 8003D0FC 00038D5C  41 80 00 0C */	blt lbl_8003D108
/* 8003D100 00038D60  38 60 00 00 */	li r3, 0
/* 8003D104 00038D64  48 00 01 84 */	b lbl_8003D288
lbl_8003D108:
/* 8003D108 00038D68  2C 1C 00 00 */	cmpwi r28, 0
/* 8003D10C 00038D6C  41 82 00 28 */	beq lbl_8003D134
/* 8003D110 00038D70  7F 64 DB 78 */	mr r4, r27
/* 8003D114 00038D74  38 78 00 28 */	addi r3, r24, 0x28
/* 8003D118 00038D78  48 35 8D C1 */	bl func_80395ED8
/* 8003D11C 00038D7C  7C 7F 1B 78 */	mr r31, r3
/* 8003D120 00038D80  7F 64 DB 78 */	mr r4, r27
/* 8003D124 00038D84  38 78 00 28 */	addi r3, r24, 0x28
/* 8003D128 00038D88  48 35 8D E5 */	bl func_80395F0C
/* 8003D12C 00038D8C  7C 77 1B 78 */	mr r23, r3
/* 8003D130 00038D90  48 00 00 24 */	b lbl_8003D154
lbl_8003D134:
/* 8003D134 00038D94  7F 64 DB 78 */	mr r4, r27
/* 8003D138 00038D98  38 78 00 28 */	addi r3, r24, 0x28
/* 8003D13C 00038D9C  48 35 8D 35 */	bl func_80395E70
/* 8003D140 00038DA0  7C 7F 1B 78 */	mr r31, r3
/* 8003D144 00038DA4  7F 64 DB 78 */	mr r4, r27
/* 8003D148 00038DA8  38 78 00 28 */	addi r3, r24, 0x28
/* 8003D14C 00038DAC  48 35 8D 59 */	bl func_80395EA4
/* 8003D150 00038DB0  7C 77 1B 78 */	mr r23, r3
lbl_8003D154:
/* 8003D154 00038DB4  2C 1F 00 00 */	cmpwi r31, 0
/* 8003D158 00038DB8  41 82 00 0C */	beq lbl_8003D164
/* 8003D15C 00038DBC  2C 17 00 00 */	cmpwi r23, 0
/* 8003D160 00038DC0  40 82 00 0C */	bne lbl_8003D16C
lbl_8003D164:
/* 8003D164 00038DC4  38 60 00 00 */	li r3, 0
/* 8003D168 00038DC8  48 00 01 20 */	b lbl_8003D288
lbl_8003D16C:
/* 8003D16C 00038DCC  80 1A 00 00 */	lwz r0, 0(r26)
/* 8003D170 00038DD0  7F 43 D3 78 */	mr r3, r26
/* 8003D174 00038DD4  54 18 05 28 */	rlwinm r24, r0, 0, 0x14, 0x14
/* 8003D178 00038DD8  4B FF A4 2D */	bl func_800375A4
/* 8003D17C 00038DDC  80 9A 00 00 */	lwz r4, 0(r26)
/* 8003D180 00038DE0  7F 80 00 34 */	cntlzw r0, r28
/* 8003D184 00038DE4  38 BB 03 E7 */	addi r5, r27, 0x3e7
/* 8003D188 00038DE8  7F E3 FB 78 */	mr r3, r31
/* 8003D18C 00038DEC  7C 84 C3 78 */	or r4, r4, r24
/* 8003D190 00038DF0  54 00 DC 3E */	rlwinm r0, r0, 0x1b, 0x10, 0x1f
/* 8003D194 00038DF4  90 9A 00 00 */	stw r4, 0(r26)
/* 8003D198 00038DF8  7E E4 BB 78 */	mr r4, r23
/* 8003D19C 00038DFC  B0 BA 05 10 */	sth r5, 0x510(r26)
/* 8003D1A0 00038E00  B0 1A 05 14 */	sth r0, 0x514(r26)
/* 8003D1A4 00038E04  48 19 E3 19 */	bl func_801DB4BC
/* 8003D1A8 00038E08  7F A0 07 75 */	extsb. r0, r29
/* 8003D1AC 00038E0C  B3 7A 05 1C */	sth r27, 0x51c(r26)
/* 8003D1B0 00038E10  7C 78 1B 78 */	mr r24, r3
/* 8003D1B4 00038E14  9B 9A 05 20 */	stb r28, 0x520(r26)
/* 8003D1B8 00038E18  41 80 00 08 */	blt lbl_8003D1C0
/* 8003D1BC 00038E1C  9B BA 05 21 */	stb r29, 0x521(r26)
lbl_8003D1C0:
/* 8003D1C0 00038E20  3F 20 80 64 */	lis r25, lbl_8063CE34@ha
/* 8003D1C4 00038E24  7F 64 DB 78 */	mr r4, r27
/* 8003D1C8 00038E28  3B 39 CE 34 */	addi r25, r25, lbl_8063CE34@l
/* 8003D1CC 00038E2C  38 79 00 28 */	addi r3, r25, 0x28
/* 8003D1D0 00038E30  48 35 8C 31 */	bl func_80395E00
/* 8003D1D4 00038E34  2C 03 00 00 */	cmpwi r3, 0
/* 8003D1D8 00038E38  41 82 00 34 */	beq lbl_8003D20C
/* 8003D1DC 00038E3C  7F 64 DB 78 */	mr r4, r27
/* 8003D1E0 00038E40  38 79 00 28 */	addi r3, r25, 0x28
/* 8003D1E4 00038E44  48 35 8C 55 */	bl func_80395E38
/* 8003D1E8 00038E48  B0 7A 05 1E */	sth r3, 0x51e(r26)
/* 8003D1EC 00038E4C  7F 64 DB 78 */	mr r4, r27
/* 8003D1F0 00038E50  7F 85 E3 78 */	mr r5, r28
/* 8003D1F4 00038E54  7F C7 F3 78 */	mr r7, r30
/* 8003D1F8 00038E58  38 7A 05 24 */	addi r3, r26, 0x524
/* 8003D1FC 00038E5C  7F A6 07 74 */	extsb r6, r29
/* 8003D200 00038E60  39 00 00 01 */	li r8, 1
/* 8003D204 00038E64  48 00 20 99 */	bl func_8003F29C
/* 8003D208 00038E68  48 00 00 54 */	b lbl_8003D25C
lbl_8003D20C:
/* 8003D20C 00038E6C  38 00 FF FF */	li r0, -1
/* 8003D210 00038E70  38 7A 05 24 */	addi r3, r26, 0x524
/* 8003D214 00038E74  B0 1A 05 1E */	sth r0, 0x51e(r26)
/* 8003D218 00038E78  48 00 17 89 */	bl func_8003E9A0
/* 8003D21C 00038E7C  2C 18 00 00 */	cmpwi r24, 0
/* 8003D220 00038E80  40 82 00 30 */	bne lbl_8003D250
/* 8003D224 00038E84  7F E3 FB 78 */	mr r3, r31
/* 8003D228 00038E88  7E E4 BB 78 */	mr r4, r23
/* 8003D22C 00038E8C  48 20 C5 F1 */	bl func_8024981C
/* 8003D230 00038E90  48 00 00 0C */	b lbl_8003D23C
lbl_8003D234:
/* 8003D234 00038E94  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8003D238 00038E98  48 1E 73 51 */	bl func_80224588
lbl_8003D23C:
/* 8003D23C 00038E9C  7F E3 FB 78 */	mr r3, r31
/* 8003D240 00038EA0  7E E4 BB 78 */	mr r4, r23
/* 8003D244 00038EA4  48 19 E2 79 */	bl func_801DB4BC
/* 8003D248 00038EA8  2C 03 00 00 */	cmpwi r3, 0
/* 8003D24C 00038EAC  41 82 FF E8 */	beq lbl_8003D234
lbl_8003D250:
/* 8003D250 00038EB0  7F E3 FB 78 */	mr r3, r31
/* 8003D254 00038EB4  7E E4 BB 78 */	mr r4, r23
/* 8003D258 00038EB8  48 19 E2 A5 */	bl func_801DB4FC
lbl_8003D25C:
/* 8003D25C 00038EBC  7F 43 D3 78 */	mr r3, r26
/* 8003D260 00038EC0  7F E4 FB 78 */	mr r4, r31
/* 8003D264 00038EC4  7E E5 BB 78 */	mr r5, r23
/* 8003D268 00038EC8  4B FF A6 BD */	bl func_80037924
/* 8003D26C 00038ECC  38 00 00 02 */	li r0, 2
/* 8003D270 00038ED0  7F E3 FB 78 */	mr r3, r31
/* 8003D274 00038ED4  B0 1A 05 0C */	sth r0, 0x50c(r26)
/* 8003D278 00038ED8  48 20 C6 19 */	bl func_80249890
/* 8003D27C 00038EDC  7F E3 FB 78 */	mr r3, r31
/* 8003D280 00038EE0  48 20 C6 ED */	bl func_8024996C
/* 8003D284 00038EE4  38 60 00 01 */	li r3, 1
lbl_8003D288:
/* 8003D288 00038EE8  39 61 00 30 */	addi r11, r1, 0x30
/* 8003D28C 00038EEC  48 18 9E D9 */	bl _restgpr_23
/* 8003D290 00038EF0  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003D294 00038EF4  7C 08 03 A6 */	mtlr r0
/* 8003D298 00038EF8  38 21 00 30 */	addi r1, r1, 0x30
/* 8003D29C 00038EFC  4E 80 00 20 */	blr

.global func_8003D2A0
func_8003D2A0:
/* 8003D2A0 00038F00  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003D2A4 00038F04  7C 08 02 A6 */	mflr r0
/* 8003D2A8 00038F08  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003D2AC 00038F0C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003D2B0 00038F10  7C 7F 1B 78 */	mr r31, r3
/* 8003D2B4 00038F14  48 00 0E A9 */	bl func_8003E15C
/* 8003D2B8 00038F18  2C 03 00 00 */	cmpwi r3, 0
/* 8003D2BC 00038F1C  41 82 00 20 */	beq lbl_8003D2DC
/* 8003D2C0 00038F20  A0 1F 05 14 */	lhz r0, 0x514(r31)
/* 8003D2C4 00038F24  38 C0 00 00 */	li r6, 0
/* 8003D2C8 00038F28  A0 9F 05 10 */	lhz r4, 0x510(r31)
/* 8003D2CC 00038F2C  54 05 06 3E */	clrlwi r5, r0, 0x18
/* 8003D2D0 00038F30  48 00 12 75 */	bl func_8003E544
/* 8003D2D4 00038F34  7C 64 1B 78 */	mr r4, r3
/* 8003D2D8 00038F38  48 00 00 0C */	b lbl_8003D2E4
lbl_8003D2DC:
/* 8003D2DC 00038F3C  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003D2E0 00038F40  48 00 00 10 */	b lbl_8003D2F0
lbl_8003D2E4:
/* 8003D2E4 00038F44  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8003D2E8 00038F48  38 63 CE 34 */	addi r3, r3, lbl_8063CE34@l
/* 8003D2EC 00038F4C  48 35 40 C9 */	bl func_803913B4
lbl_8003D2F0:
/* 8003D2F0 00038F50  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003D2F4 00038F54  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003D2F8 00038F58  7C 08 03 A6 */	mtlr r0
/* 8003D2FC 00038F5C  38 21 00 10 */	addi r1, r1, 0x10
/* 8003D300 00038F60  4E 80 00 20 */	blr

.global func_8003D304
func_8003D304:
/* 8003D304 00038F64  2C 04 00 00 */	cmpwi r4, 0
/* 8003D308 00038F68  7C 87 23 78 */	mr r7, r4
/* 8003D30C 00038F6C  40 82 00 0C */	bne lbl_8003D318
/* 8003D310 00038F70  38 60 00 00 */	li r3, 0
/* 8003D314 00038F74  4E 80 00 20 */	blr
lbl_8003D318:
/* 8003D318 00038F78  A0 84 00 00 */	lhz r4, 0(r4)
/* 8003D31C 00038F7C  7C C6 07 74 */	extsb r6, r6
/* 8003D320 00038F80  38 E7 00 02 */	addi r7, r7, 2
/* 8003D324 00038F84  4B FF FD 9C */	b func_8003D0C0
/* 8003D328 00038F88  4E 80 00 20 */	blr

.global func_8003D32C
func_8003D32C:
/* 8003D32C 00038F8C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003D330 00038F90  7C 08 02 A6 */	mflr r0
/* 8003D334 00038F94  3C C0 80 64 */	lis r6, lbl_8063CE34@ha
/* 8003D338 00038F98  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003D33C 00038F9C  38 C6 CE 34 */	addi r6, r6, lbl_8063CE34@l
/* 8003D340 00038FA0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003D344 00038FA4  3B E0 00 00 */	li r31, 0
/* 8003D348 00038FA8  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003D34C 00038FAC  7C BE 2B 78 */	mr r30, r5
/* 8003D350 00038FB0  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8003D354 00038FB4  7C 9D 23 78 */	mr r29, r4
/* 8003D358 00038FB8  93 81 00 10 */	stw r28, 0x10(r1)
/* 8003D35C 00038FBC  7C 7C 1B 78 */	mr r28, r3
/* 8003D360 00038FC0  A0 83 05 1C */	lhz r4, 0x51c(r3)
/* 8003D364 00038FC4  38 66 00 28 */	addi r3, r6, 0x28
/* 8003D368 00038FC8  48 35 8A 99 */	bl func_80395E00
/* 8003D36C 00038FCC  2C 03 00 00 */	cmpwi r3, 0
/* 8003D370 00038FD0  41 82 00 24 */	beq lbl_8003D394
/* 8003D374 00038FD4  7F A4 EB 78 */	mr r4, r29
/* 8003D378 00038FD8  7F C5 F3 78 */	mr r5, r30
/* 8003D37C 00038FDC  38 7C 05 24 */	addi r3, r28, 0x524
/* 8003D380 00038FE0  48 00 21 A9 */	bl func_8003F528
/* 8003D384 00038FE4  80 1C 00 00 */	lwz r0, 0(r28)
/* 8003D388 00038FE8  7C 7F 1B 78 */	mr r31, r3
/* 8003D38C 00038FEC  60 00 02 00 */	ori r0, r0, 0x200
/* 8003D390 00038FF0  90 1C 00 00 */	stw r0, 0(r28)
lbl_8003D394:
/* 8003D394 00038FF4  7F E3 FB 78 */	mr r3, r31
/* 8003D398 00038FF8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8003D39C 00038FFC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8003D3A0 00039000  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8003D3A4 00039004  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8003D3A8 00039008  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003D3AC 0003900C  7C 08 03 A6 */	mtlr r0
/* 8003D3B0 00039010  38 21 00 20 */	addi r1, r1, 0x20
/* 8003D3B4 00039014  4E 80 00 20 */	blr

.global func_8003D3B8
func_8003D3B8:
/* 8003D3B8 00039018  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003D3BC 0003901C  7C 08 02 A6 */	mflr r0
/* 8003D3C0 00039020  3C A0 80 64 */	lis r5, lbl_8063CE34@ha
/* 8003D3C4 00039024  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003D3C8 00039028  38 A5 CE 34 */	addi r5, r5, lbl_8063CE34@l
/* 8003D3CC 0003902C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003D3D0 00039030  3B E0 00 00 */	li r31, 0
/* 8003D3D4 00039034  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003D3D8 00039038  7C 9E 23 78 */	mr r30, r4
/* 8003D3DC 0003903C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8003D3E0 00039040  7C 7D 1B 78 */	mr r29, r3
/* 8003D3E4 00039044  A0 83 05 1C */	lhz r4, 0x51c(r3)
/* 8003D3E8 00039048  38 65 00 28 */	addi r3, r5, 0x28
/* 8003D3EC 0003904C  48 35 8A 15 */	bl func_80395E00
/* 8003D3F0 00039050  2C 03 00 00 */	cmpwi r3, 0
/* 8003D3F4 00039054  41 82 00 20 */	beq lbl_8003D414
/* 8003D3F8 00039058  7F C4 F3 78 */	mr r4, r30
/* 8003D3FC 0003905C  38 7D 05 24 */	addi r3, r29, 0x524
/* 8003D400 00039060  48 00 22 05 */	bl func_8003F604
/* 8003D404 00039064  80 1D 00 00 */	lwz r0, 0(r29)
/* 8003D408 00039068  7C 7F 1B 78 */	mr r31, r3
/* 8003D40C 0003906C  60 00 02 00 */	ori r0, r0, 0x200
/* 8003D410 00039070  90 1D 00 00 */	stw r0, 0(r29)
lbl_8003D414:
/* 8003D414 00039074  7F E3 FB 78 */	mr r3, r31
/* 8003D418 00039078  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8003D41C 0003907C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8003D420 00039080  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8003D424 00039084  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003D428 00039088  7C 08 03 A6 */	mtlr r0
/* 8003D42C 0003908C  38 21 00 20 */	addi r1, r1, 0x20
/* 8003D430 00039090  4E 80 00 20 */	blr

.global func_8003D434
func_8003D434:
/* 8003D434 00039094  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003D438 00039098  7C 08 02 A6 */	mflr r0
/* 8003D43C 0003909C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003D440 000390A0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003D444 000390A4  7C 7F 1B 78 */	mr r31, r3
/* 8003D448 000390A8  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8003D44C 000390AC  38 63 CE 34 */	addi r3, r3, lbl_8063CE34@l
/* 8003D450 000390B0  A0 9F 05 1C */	lhz r4, 0x51c(r31)
/* 8003D454 000390B4  38 63 00 28 */	addi r3, r3, 0x28
/* 8003D458 000390B8  48 35 89 A9 */	bl func_80395E00
/* 8003D45C 000390BC  2C 03 00 00 */	cmpwi r3, 0
/* 8003D460 000390C0  41 82 00 18 */	beq lbl_8003D478
/* 8003D464 000390C4  80 1F 00 00 */	lwz r0, 0(r31)
/* 8003D468 000390C8  38 7F 05 24 */	addi r3, r31, 0x524
/* 8003D46C 000390CC  80 9F 0C 04 */	lwz r4, 0xc04(r31)
/* 8003D470 000390D0  54 05 AF FE */	rlwinm r5, r0, 0x15, 0x1f, 0x1f
/* 8003D474 000390D4  48 00 22 81 */	bl func_8003F6F4
lbl_8003D478:
/* 8003D478 000390D8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003D47C 000390DC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003D480 000390E0  7C 08 03 A6 */	mtlr r0
/* 8003D484 000390E4  38 21 00 10 */	addi r1, r1, 0x10
/* 8003D488 000390E8  4E 80 00 20 */	blr

.global func_8003D48C
func_8003D48C:
/* 8003D48C 000390EC  2C 04 00 00 */	cmpwi r4, 0
/* 8003D490 000390F0  41 82 00 14 */	beq lbl_8003D4A4
/* 8003D494 000390F4  80 03 00 00 */	lwz r0, 0(r3)
/* 8003D498 000390F8  60 00 08 00 */	ori r0, r0, 0x800
/* 8003D49C 000390FC  90 03 00 00 */	stw r0, 0(r3)
/* 8003D4A0 00039100  4E 80 00 20 */	blr
lbl_8003D4A4:
/* 8003D4A4 00039104  80 03 00 00 */	lwz r0, 0(r3)
/* 8003D4A8 00039108  54 00 05 66 */	rlwinm r0, r0, 0, 0x15, 0x13
/* 8003D4AC 0003910C  90 03 00 00 */	stw r0, 0(r3)
/* 8003D4B0 00039110  4E 80 00 20 */	blr

.global func_8003D4B4
func_8003D4B4:
/* 8003D4B4 00039114  38 80 00 00 */	li r4, 0
/* 8003D4B8 00039118  48 00 00 1C */	b lbl_8003D4D4

.global func_8003D4BC
func_8003D4BC:
/* 8003D4BC 0003911C  38 80 00 01 */	li r4, 1
/* 8003D4C0 00039120  48 00 00 14 */	b lbl_8003D4D4

.global func_8003D4C4
func_8003D4C4:
/* 8003D4C4 00039124  38 80 00 02 */	li r4, 2
/* 8003D4C8 00039128  48 00 00 0C */	b lbl_8003D4D4

.global func_8003D4CC
func_8003D4CC:
/* 8003D4CC 0003912C  38 80 00 03 */	li r4, 3
/* 8003D4D0 00039130  48 00 00 04 */	b lbl_8003D4D4
lbl_8003D4D4:
/* 8003D4D4 00039134  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003D4D8 00039138  7C 08 02 A6 */	mflr r0
/* 8003D4DC 0003913C  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003D4E0 00039140  39 61 00 30 */	addi r11, r1, 0x30
/* 8003D4E4 00039144  48 18 9C 45 */	bl _savegpr_27
/* 8003D4E8 00039148  2C 04 00 02 */	cmpwi r4, 2
/* 8003D4EC 0003914C  7C 7D 1B 78 */	mr r29, r3
/* 8003D4F0 00039150  7C 9E 23 78 */	mr r30, r4
/* 8003D4F4 00039154  41 82 00 84 */	beq lbl_8003D578
/* 8003D4F8 00039158  40 80 00 14 */	bge lbl_8003D50C
/* 8003D4FC 0003915C  2C 04 00 00 */	cmpwi r4, 0
/* 8003D500 00039160  41 82 00 18 */	beq lbl_8003D518
/* 8003D504 00039164  40 80 00 50 */	bge lbl_8003D554
/* 8003D508 00039168  48 00 02 EC */	b lbl_8003D7F4
lbl_8003D50C:
/* 8003D50C 0003916C  2C 04 00 04 */	cmpwi r4, 4
/* 8003D510 00039170  40 80 02 E4 */	bge lbl_8003D7F4
/* 8003D514 00039174  48 00 00 88 */	b lbl_8003D59C
lbl_8003D518:
/* 8003D518 00039178  80 03 00 00 */	lwz r0, 0(r3)
/* 8003D51C 0003917C  3C 80 19 F9 */	lis r4, 0x19F90A00@ha
/* 8003D520 00039180  80 A3 0C 04 */	lwz r5, 0xc04(r3)
/* 8003D524 00039184  3B E4 0A 00 */	addi r31, r4, 0x19F90A00@l
/* 8003D528 00039188  80 83 00 00 */	lwz r4, 0(r3)
/* 8003D52C 0003918C  60 00 40 00 */	ori r0, r0, 0x4000
/* 8003D530 00039190  2C 05 00 00 */	cmpwi r5, 0
/* 8003D534 00039194  3B 60 00 00 */	li r27, 0
/* 8003D538 00039198  90 03 00 00 */	stw r0, 0(r3)
/* 8003D53C 0003919C  54 9C 97 FE */	rlwinm r28, r4, 0x12, 0x1f, 0x1f
/* 8003D540 000391A0  41 82 00 B8 */	beq lbl_8003D5F8
/* 8003D544 000391A4  A0 05 00 DC */	lhz r0, 0xdc(r5)
/* 8003D548 000391A8  60 00 00 10 */	ori r0, r0, 0x10
/* 8003D54C 000391AC  B0 05 00 DC */	sth r0, 0xdc(r5)
/* 8003D550 000391B0  48 00 00 A8 */	b lbl_8003D5F8
lbl_8003D554:
/* 8003D554 000391B4  80 03 00 00 */	lwz r0, 0(r3)
/* 8003D558 000391B8  3C 80 1C F7 */	lis r4, 0x1CF70A00@ha
/* 8003D55C 000391BC  80 A3 00 00 */	lwz r5, 0(r3)
/* 8003D560 000391C0  3B E4 0A 00 */	addi r31, r4, 0x1CF70A00@l
/* 8003D564 000391C4  64 00 00 08 */	oris r0, r0, 8
/* 8003D568 000391C8  3B 60 FF FE */	li r27, -2
/* 8003D56C 000391CC  90 03 00 00 */	stw r0, 0(r3)
/* 8003D570 000391D0  54 BC 6F FE */	rlwinm r28, r5, 0xd, 0x1f, 0x1f
/* 8003D574 000391D4  48 00 00 84 */	b lbl_8003D5F8
lbl_8003D578:
/* 8003D578 000391D8  80 03 00 00 */	lwz r0, 0(r3)
/* 8003D57C 000391DC  3C 80 1C F6 */	lis r4, 0x1CF60A00@ha
/* 8003D580 000391E0  80 A3 00 00 */	lwz r5, 0(r3)
/* 8003D584 000391E4  3B E4 0A 00 */	addi r31, r4, 0x1CF60A00@l
/* 8003D588 000391E8  64 00 00 10 */	oris r0, r0, 0x10
/* 8003D58C 000391EC  3B 60 FF FE */	li r27, -2
/* 8003D590 000391F0  90 03 00 00 */	stw r0, 0(r3)
/* 8003D594 000391F4  54 BC 67 FE */	rlwinm r28, r5, 0xc, 0x1f, 0x1f
/* 8003D598 000391F8  48 00 00 60 */	b lbl_8003D5F8
lbl_8003D59C:
/* 8003D59C 000391FC  80 03 00 00 */	lwz r0, 0(r3)
/* 8003D5A0 00039200  3C 80 19 FB */	lis r4, 0x19FB0A00@ha
/* 8003D5A4 00039204  3B E4 0A 00 */	addi r31, r4, 0x19FB0A00@l
/* 8003D5A8 00039208  3B 60 00 01 */	li r27, 1
/* 8003D5AC 0003920C  54 1C 9F FE */	rlwinm r28, r0, 0x13, 0x1f, 0x1f
/* 8003D5B0 00039210  38 80 00 14 */	li r4, 0x14
/* 8003D5B4 00039214  4B FF EC A9 */	bl func_8003C25C
/* 8003D5B8 00039218  54 64 04 3E */	clrlwi r4, r3, 0x10
/* 8003D5BC 0003921C  28 04 00 FF */	cmplwi r4, 0xff
/* 8003D5C0 00039220  40 80 00 24 */	bge lbl_8003D5E4
/* 8003D5C4 00039224  80 7D 0C 04 */	lwz r3, 0xc04(r29)
/* 8003D5C8 00039228  38 A0 00 00 */	li r5, 0
/* 8003D5CC 0003922C  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003D5D0 00039230  38 C0 00 01 */	li r6, 1
/* 8003D5D4 00039234  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003D5D8 00039238  38 E0 00 01 */	li r7, 1
/* 8003D5DC 0003923C  39 00 00 00 */	li r8, 0
/* 8003D5E0 00039240  48 1B 78 15 */	bl func_801F4DF4
lbl_8003D5E4:
/* 8003D5E4 00039244  80 1D 00 00 */	lwz r0, 0(r29)
/* 8003D5E8 00039248  60 00 20 00 */	ori r0, r0, 0x2000
/* 8003D5EC 0003924C  90 1D 00 00 */	stw r0, 0(r29)
/* 8003D5F0 00039250  48 00 00 08 */	b lbl_8003D5F8
/* 8003D5F4 00039254  48 00 02 00 */	b lbl_8003D7F4
lbl_8003D5F8:
/* 8003D5F8 00039258  2C 1C 00 00 */	cmpwi r28, 0
/* 8003D5FC 0003925C  40 82 01 A4 */	bne lbl_8003D7A0
/* 8003D600 00039260  7F A3 EB 78 */	mr r3, r29
/* 8003D604 00039264  7F 64 DB 78 */	mr r4, r27
/* 8003D608 00039268  4B FF C2 E5 */	bl func_800398EC
/* 8003D60C 0003926C  2C 03 00 00 */	cmpwi r3, 0
/* 8003D610 00039270  7C 7B 1B 78 */	mr r27, r3
/* 8003D614 00039274  41 82 01 E0 */	beq lbl_8003D7F4
/* 8003D618 00039278  57 E0 00 5E */	rlwinm r0, r31, 0, 1, 0xf
/* 8003D61C 0003927C  38 60 00 0C */	li r3, 0xc
/* 8003D620 00039280  60 04 0E 00 */	ori r4, r0, 0xe00
/* 8003D624 00039284  48 19 DE 99 */	bl func_801DB4BC
/* 8003D628 00039288  2C 03 00 00 */	cmpwi r3, 0
/* 8003D62C 0003928C  7C 7C 1B 78 */	mr r28, r3
/* 8003D630 00039290  41 82 01 C4 */	beq lbl_8003D7F4
/* 8003D634 00039294  57 C0 10 3A */	slwi r0, r30, 2
/* 8003D638 00039298  7F FD 02 14 */	add r31, r29, r0
/* 8003D63C 0003929C  80 7F 0C 90 */	lwz r3, 0xc90(r31)
/* 8003D640 000392A0  2C 03 00 00 */	cmpwi r3, 0
/* 8003D644 000392A4  41 82 00 1C */	beq lbl_8003D660
/* 8003D648 000392A8  41 82 00 18 */	beq lbl_8003D660
/* 8003D64C 000392AC  81 83 01 00 */	lwz r12, 0x100(r3)
/* 8003D650 000392B0  38 80 00 01 */	li r4, 1
/* 8003D654 000392B4  81 8C 00 08 */	lwz r12, 8(r12)
/* 8003D658 000392B8  7D 89 03 A6 */	mtctr r12
/* 8003D65C 000392BC  4E 80 04 21 */	bctrl
lbl_8003D660:
/* 8003D660 000392C0  48 19 D4 C9 */	bl func_801DAB28
/* 8003D664 000392C4  2C 03 00 00 */	cmpwi r3, 0
/* 8003D668 000392C8  41 82 00 14 */	beq lbl_8003D67C
/* 8003D66C 000392CC  80 6D 96 38 */	lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
/* 8003D670 000392D0  38 80 01 40 */	li r4, 0x140
/* 8003D674 000392D4  48 19 D6 21 */	bl func_801DAC94
/* 8003D678 000392D8  48 00 00 08 */	b lbl_8003D680
lbl_8003D67C:
/* 8003D67C 000392DC  38 60 00 00 */	li r3, 0
lbl_8003D680:
/* 8003D680 000392E0  2C 03 00 00 */	cmpwi r3, 0
/* 8003D684 000392E4  7C 65 1B 78 */	mr r5, r3
/* 8003D688 000392E8  41 82 00 10 */	beq lbl_8003D698
/* 8003D68C 000392EC  7F 84 E3 78 */	mr r4, r28
/* 8003D690 000392F0  48 1B C2 5D */	bl func_801F98EC
/* 8003D694 000392F4  7C 65 1B 78 */	mr r5, r3
lbl_8003D698:
/* 8003D698 000392F8  90 BF 0C 90 */	stw r5, 0xc90(r31)
/* 8003D69C 000392FC  7F 63 DB 78 */	mr r3, r27
/* 8003D6A0 00039300  38 80 00 01 */	li r4, 1
/* 8003D6A4 00039304  38 C0 00 00 */	li r6, 0
/* 8003D6A8 00039308  38 E0 00 03 */	li r7, 3
/* 8003D6AC 0003930C  48 1B 4A E1 */	bl func_801F218C
/* 8003D6B0 00039310  7F A3 EB 78 */	mr r3, r29
/* 8003D6B4 00039314  4B FF C0 21 */	bl func_800396D4
/* 8003D6B8 00039318  C0 22 82 30 */	lfs f1, lbl_80640830-_SDA2_BASE_(r2)
/* 8003D6BC 0003931C  48 01 0D E1 */	bl func_8004E49C
/* 8003D6C0 00039320  FC 00 08 18 */	frsp f0, f1
/* 8003D6C4 00039324  80 7F 0C 90 */	lwz r3, 0xc90(r31)
/* 8003D6C8 00039328  C0 42 82 70 */	lfs f2, lbl_80640870-_SDA2_BASE_(r2)
/* 8003D6CC 0003932C  D0 21 00 08 */	stfs f1, 8(r1)
/* 8003D6D0 00039330  FC 00 10 40 */	fcmpo cr0, f0, f2
/* 8003D6D4 00039334  D0 03 00 48 */	stfs f0, 0x48(r3)
/* 8003D6D8 00039338  D0 03 00 4C */	stfs f0, 0x4c(r3)
/* 8003D6DC 0003933C  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 8003D6E0 00039340  D0 21 00 10 */	stfs f1, 0x10(r1)
/* 8003D6E4 00039344  D0 03 00 50 */	stfs f0, 0x50(r3)
/* 8003D6E8 00039348  40 80 00 2C */	bge lbl_8003D714
/* 8003D6EC 0003934C  C0 23 00 48 */	lfs f1, 0x48(r3)
/* 8003D6F0 00039350  C0 62 82 74 */	lfs f3, lbl_80640874-_SDA2_BASE_(r2)
/* 8003D6F4 00039354  FC 01 18 40 */	fcmpo cr0, f1, f3
/* 8003D6F8 00039358  40 81 00 1C */	ble lbl_8003D714
/* 8003D6FC 0003935C  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003D700 00039360  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8003D704 00039364  40 80 00 08 */	bge lbl_8003D70C
/* 8003D708 00039368  48 00 00 08 */	b lbl_8003D710
lbl_8003D70C:
/* 8003D70C 0003936C  FC 60 10 90 */	fmr f3, f2
lbl_8003D710:
/* 8003D710 00039370  D0 63 00 48 */	stfs f3, 0x48(r3)
lbl_8003D714:
/* 8003D714 00039374  C0 43 00 4C */	lfs f2, 0x4c(r3)
/* 8003D718 00039378  C0 22 82 70 */	lfs f1, lbl_80640870-_SDA2_BASE_(r2)
/* 8003D71C 0003937C  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 8003D720 00039380  40 80 00 28 */	bge lbl_8003D748
/* 8003D724 00039384  C0 62 82 74 */	lfs f3, lbl_80640874-_SDA2_BASE_(r2)
/* 8003D728 00039388  FC 02 18 40 */	fcmpo cr0, f2, f3
/* 8003D72C 0003938C  40 81 00 1C */	ble lbl_8003D748
/* 8003D730 00039390  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003D734 00039394  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 8003D738 00039398  40 80 00 08 */	bge lbl_8003D740
/* 8003D73C 0003939C  48 00 00 08 */	b lbl_8003D744
lbl_8003D740:
/* 8003D740 000393A0  FC 60 08 90 */	fmr f3, f1
lbl_8003D744:
/* 8003D744 000393A4  D0 63 00 4C */	stfs f3, 0x4c(r3)
lbl_8003D748:
/* 8003D748 000393A8  C0 43 00 50 */	lfs f2, 0x50(r3)
/* 8003D74C 000393AC  C0 22 82 70 */	lfs f1, lbl_80640870-_SDA2_BASE_(r2)
/* 8003D750 000393B0  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 8003D754 000393B4  40 80 00 28 */	bge lbl_8003D77C
/* 8003D758 000393B8  C0 62 82 74 */	lfs f3, lbl_80640874-_SDA2_BASE_(r2)
/* 8003D75C 000393BC  FC 02 18 40 */	fcmpo cr0, f2, f3
/* 8003D760 000393C0  40 81 00 1C */	ble lbl_8003D77C
/* 8003D764 000393C4  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003D768 000393C8  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 8003D76C 000393CC  40 80 00 08 */	bge lbl_8003D774
/* 8003D770 000393D0  48 00 00 08 */	b lbl_8003D778
lbl_8003D774:
/* 8003D774 000393D4  FC 60 08 90 */	fmr f3, f1
lbl_8003D778:
/* 8003D778 000393D8  D0 63 00 50 */	stfs f3, 0x50(r3)
lbl_8003D77C:
/* 8003D77C 000393DC  38 80 00 01 */	li r4, 1
/* 8003D780 000393E0  48 1B 4F 39 */	bl func_801F26B8
/* 8003D784 000393E4  80 7F 0C 90 */	lwz r3, 0xc90(r31)
/* 8003D788 000393E8  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003D78C 000393EC  80 03 01 04 */	lwz r0, 0x104(r3)
/* 8003D790 000393F0  60 00 00 01 */	ori r0, r0, 1
/* 8003D794 000393F4  54 00 07 F8 */	rlwinm r0, r0, 0, 0x1f, 0x1c
/* 8003D798 000393F8  90 03 01 04 */	stw r0, 0x104(r3)
/* 8003D79C 000393FC  D0 03 01 08 */	stfs f0, 0x108(r3)
lbl_8003D7A0:
/* 8003D7A0 00039400  2C 1E 00 01 */	cmpwi r30, 1
/* 8003D7A4 00039404  41 82 00 18 */	beq lbl_8003D7BC
/* 8003D7A8 00039408  2C 1E 00 02 */	cmpwi r30, 2
/* 8003D7AC 0003940C  41 82 00 10 */	beq lbl_8003D7BC
/* 8003D7B0 00039410  80 1D 00 00 */	lwz r0, 0(r29)
/* 8003D7B4 00039414  54 00 02 53 */	rlwinm. r0, r0, 0, 9, 9
/* 8003D7B8 00039418  41 82 00 3C */	beq lbl_8003D7F4
lbl_8003D7BC:
/* 8003D7BC 0003941C  80 1D 00 00 */	lwz r0, 0(r29)
/* 8003D7C0 00039420  7F A3 EB 78 */	mr r3, r29
/* 8003D7C4 00039424  54 00 07 FE */	clrlwi r0, r0, 0x1f
/* 8003D7C8 00039428  7C 00 00 34 */	cntlzw r0, r0
/* 8003D7CC 0003942C  54 04 D9 7E */	srwi r4, r0, 5
/* 8003D7D0 00039430  4B FF A5 5D */	bl func_80037D2C
/* 8003D7D4 00039434  80 1D 00 00 */	lwz r0, 0(r29)
/* 8003D7D8 00039438  7F A3 EB 78 */	mr r3, r29
/* 8003D7DC 0003943C  54 00 07 FE */	clrlwi r0, r0, 0x1f
/* 8003D7E0 00039440  7C 00 00 34 */	cntlzw r0, r0
/* 8003D7E4 00039444  54 04 D9 7E */	srwi r4, r0, 5
/* 8003D7E8 00039448  4B FF A5 45 */	bl func_80037D2C
/* 8003D7EC 0003944C  7F A3 EB 78 */	mr r3, r29
/* 8003D7F0 00039450  4B FF A8 31 */	bl func_80038020
lbl_8003D7F4:
/* 8003D7F4 00039454  39 61 00 30 */	addi r11, r1, 0x30
/* 8003D7F8 00039458  48 18 99 7D */	bl _restgpr_27
/* 8003D7FC 0003945C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003D800 00039460  7C 08 03 A6 */	mtlr r0
/* 8003D804 00039464  38 21 00 30 */	addi r1, r1, 0x30
/* 8003D808 00039468  4E 80 00 20 */	blr

.global func_8003D80C
func_8003D80C:
/* 8003D80C 0003946C  38 80 00 00 */	li r4, 0
/* 8003D810 00039470  48 00 00 1C */	b lbl_8003D82C

.global func_8003D814
func_8003D814:
/* 8003D814 00039474  38 80 00 01 */	li r4, 1
/* 8003D818 00039478  48 00 00 14 */	b lbl_8003D82C

.global func_8003D81C
func_8003D81C:
/* 8003D81C 0003947C  38 80 00 02 */	li r4, 2
/* 8003D820 00039480  48 00 00 0C */	b lbl_8003D82C

.global func_8003D824
func_8003D824:
/* 8003D824 00039484  38 80 00 03 */	li r4, 3
/* 8003D828 00039488  48 00 00 04 */	b lbl_8003D82C
lbl_8003D82C:
/* 8003D82C 0003948C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003D830 00039490  7C 08 02 A6 */	mflr r0
/* 8003D834 00039494  2C 04 00 02 */	cmpwi r4, 2
/* 8003D838 00039498  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003D83C 0003949C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003D840 000394A0  7C 9F 23 78 */	mr r31, r4
/* 8003D844 000394A4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003D848 000394A8  7C 7E 1B 78 */	mr r30, r3
/* 8003D84C 000394AC  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8003D850 000394B0  41 82 00 74 */	beq lbl_8003D8C4
/* 8003D854 000394B4  40 80 00 14 */	bge lbl_8003D868
/* 8003D858 000394B8  2C 04 00 00 */	cmpwi r4, 0
/* 8003D85C 000394BC  41 82 00 18 */	beq lbl_8003D874
/* 8003D860 000394C0  40 80 00 48 */	bge lbl_8003D8A8
/* 8003D864 000394C4  48 00 01 7C */	b lbl_8003D9E0
lbl_8003D868:
/* 8003D868 000394C8  2C 04 00 04 */	cmpwi r4, 4
/* 8003D86C 000394CC  40 80 01 74 */	bge lbl_8003D9E0
/* 8003D870 000394D0  48 00 00 70 */	b lbl_8003D8E0
lbl_8003D874:
/* 8003D874 000394D4  80 03 00 00 */	lwz r0, 0(r3)
/* 8003D878 000394D8  54 00 04 63 */	rlwinm. r0, r0, 0, 0x11, 0x11
/* 8003D87C 000394DC  41 82 01 64 */	beq lbl_8003D9E0
/* 8003D880 000394E0  80 83 0C 04 */	lwz r4, 0xc04(r3)
/* 8003D884 000394E4  2C 04 00 00 */	cmpwi r4, 0
/* 8003D888 000394E8  41 82 00 10 */	beq lbl_8003D898
/* 8003D88C 000394EC  A0 04 00 DC */	lhz r0, 0xdc(r4)
/* 8003D890 000394F0  54 00 07 34 */	rlwinm r0, r0, 0, 0x1c, 0x1a
/* 8003D894 000394F4  B0 04 00 DC */	sth r0, 0xdc(r4)
lbl_8003D898:
/* 8003D898 000394F8  80 03 00 00 */	lwz r0, 0(r3)
/* 8003D89C 000394FC  54 00 04 A0 */	rlwinm r0, r0, 0, 0x12, 0x10
/* 8003D8A0 00039500  90 03 00 00 */	stw r0, 0(r3)
/* 8003D8A4 00039504  48 00 00 A8 */	b lbl_8003D94C
lbl_8003D8A8:
/* 8003D8A8 00039508  80 03 00 00 */	lwz r0, 0(r3)
/* 8003D8AC 0003950C  54 00 03 19 */	rlwinm. r0, r0, 0, 0xc, 0xc
/* 8003D8B0 00039510  41 82 01 30 */	beq lbl_8003D9E0
/* 8003D8B4 00039514  80 03 00 00 */	lwz r0, 0(r3)
/* 8003D8B8 00039518  54 00 03 56 */	rlwinm r0, r0, 0, 0xd, 0xb
/* 8003D8BC 0003951C  90 03 00 00 */	stw r0, 0(r3)
/* 8003D8C0 00039520  48 00 00 8C */	b lbl_8003D94C
lbl_8003D8C4:
/* 8003D8C4 00039524  80 03 00 00 */	lwz r0, 0(r3)
/* 8003D8C8 00039528  54 00 02 D7 */	rlwinm. r0, r0, 0, 0xb, 0xb
/* 8003D8CC 0003952C  41 82 01 14 */	beq lbl_8003D9E0
/* 8003D8D0 00039530  80 03 00 00 */	lwz r0, 0(r3)
/* 8003D8D4 00039534  54 00 03 14 */	rlwinm r0, r0, 0, 0xc, 0xa
/* 8003D8D8 00039538  90 03 00 00 */	stw r0, 0(r3)
/* 8003D8DC 0003953C  48 00 00 70 */	b lbl_8003D94C
lbl_8003D8E0:
/* 8003D8E0 00039540  80 03 00 00 */	lwz r0, 0(r3)
/* 8003D8E4 00039544  54 00 04 A5 */	rlwinm. r0, r0, 0, 0x12, 0x12
/* 8003D8E8 00039548  41 82 00 F8 */	beq lbl_8003D9E0
/* 8003D8EC 0003954C  38 80 00 15 */	li r4, 0x15
/* 8003D8F0 00039550  4B FF E9 6D */	bl func_8003C25C
/* 8003D8F4 00039554  80 1E 0C 04 */	lwz r0, 0xc04(r30)
/* 8003D8F8 00039558  7C 7D 1B 78 */	mr r29, r3
/* 8003D8FC 0003955C  2C 00 00 00 */	cmpwi r0, 0
/* 8003D900 00039560  41 82 00 38 */	beq lbl_8003D938
/* 8003D904 00039564  7C 03 03 78 */	mr r3, r0
/* 8003D908 00039568  48 1B 7F F5 */	bl func_801F58FC
/* 8003D90C 0003956C  57 A4 04 3E */	clrlwi r4, r29, 0x10
/* 8003D910 00039570  28 04 00 FF */	cmplwi r4, 0xff
/* 8003D914 00039574  40 80 00 24 */	bge lbl_8003D938
/* 8003D918 00039578  80 7E 0C 04 */	lwz r3, 0xc04(r30)
/* 8003D91C 0003957C  38 A0 00 00 */	li r5, 0
/* 8003D920 00039580  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003D924 00039584  38 C0 00 00 */	li r6, 0
/* 8003D928 00039588  C0 42 82 30 */	lfs f2, lbl_80640830-_SDA2_BASE_(r2)
/* 8003D92C 0003958C  38 E0 00 00 */	li r7, 0
/* 8003D930 00039590  39 00 00 00 */	li r8, 0
/* 8003D934 00039594  48 1B 74 C1 */	bl func_801F4DF4
lbl_8003D938:
/* 8003D938 00039598  80 1E 00 00 */	lwz r0, 0(r30)
/* 8003D93C 0003959C  54 00 04 E2 */	rlwinm r0, r0, 0, 0x13, 0x11
/* 8003D940 000395A0  90 1E 00 00 */	stw r0, 0(r30)
/* 8003D944 000395A4  48 00 00 08 */	b lbl_8003D94C
/* 8003D948 000395A8  48 00 00 98 */	b lbl_8003D9E0
lbl_8003D94C:
/* 8003D94C 000395AC  57 E0 10 3A */	slwi r0, r31, 2
/* 8003D950 000395B0  7F BE 02 14 */	add r29, r30, r0
/* 8003D954 000395B4  80 7D 0C 90 */	lwz r3, 0xc90(r29)
/* 8003D958 000395B8  2C 03 00 00 */	cmpwi r3, 0
/* 8003D95C 000395BC  41 82 00 40 */	beq lbl_8003D99C
/* 8003D960 000395C0  80 03 01 04 */	lwz r0, 0x104(r3)
/* 8003D964 000395C4  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003D968 000395C8  60 00 00 04 */	ori r0, r0, 4
/* 8003D96C 000395CC  90 03 01 04 */	stw r0, 0x104(r3)
/* 8003D970 000395D0  D0 03 01 10 */	stfs f0, 0x110(r3)
/* 8003D974 000395D4  80 7D 0C 90 */	lwz r3, 0xc90(r29)
/* 8003D978 000395D8  2C 03 00 00 */	cmpwi r3, 0
/* 8003D97C 000395DC  41 82 00 18 */	beq lbl_8003D994
/* 8003D980 000395E0  81 83 01 00 */	lwz r12, 0x100(r3)
/* 8003D984 000395E4  38 80 00 01 */	li r4, 1
/* 8003D988 000395E8  81 8C 00 08 */	lwz r12, 8(r12)
/* 8003D98C 000395EC  7D 89 03 A6 */	mtctr r12
/* 8003D990 000395F0  4E 80 04 21 */	bctrl
lbl_8003D994:
/* 8003D994 000395F4  38 00 00 00 */	li r0, 0
/* 8003D998 000395F8  90 1D 0C 90 */	stw r0, 0xc90(r29)
lbl_8003D99C:
/* 8003D99C 000395FC  38 1F FF FF */	addi r0, r31, -1
/* 8003D9A0 00039600  28 00 00 01 */	cmplwi r0, 1
/* 8003D9A4 00039604  41 81 00 3C */	bgt lbl_8003D9E0
/* 8003D9A8 00039608  80 1E 00 00 */	lwz r0, 0(r30)
/* 8003D9AC 0003960C  7F C3 F3 78 */	mr r3, r30
/* 8003D9B0 00039610  54 00 07 FE */	clrlwi r0, r0, 0x1f
/* 8003D9B4 00039614  7C 00 00 34 */	cntlzw r0, r0
/* 8003D9B8 00039618  54 04 D9 7E */	srwi r4, r0, 5
/* 8003D9BC 0003961C  4B FF A3 71 */	bl func_80037D2C
/* 8003D9C0 00039620  80 1E 00 00 */	lwz r0, 0(r30)
/* 8003D9C4 00039624  7F C3 F3 78 */	mr r3, r30
/* 8003D9C8 00039628  54 00 07 FE */	clrlwi r0, r0, 0x1f
/* 8003D9CC 0003962C  7C 00 00 34 */	cntlzw r0, r0
/* 8003D9D0 00039630  54 04 D9 7E */	srwi r4, r0, 5
/* 8003D9D4 00039634  4B FF A3 59 */	bl func_80037D2C
/* 8003D9D8 00039638  7F C3 F3 78 */	mr r3, r30
/* 8003D9DC 0003963C  4B FF A6 45 */	bl func_80038020
lbl_8003D9E0:
/* 8003D9E0 00039640  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003D9E4 00039644  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8003D9E8 00039648  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8003D9EC 0003964C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8003D9F0 00039650  7C 08 03 A6 */	mtlr r0
/* 8003D9F4 00039654  38 21 00 20 */	addi r1, r1, 0x20
/* 8003D9F8 00039658  4E 80 00 20 */	blr

.global func_8003D9FC
func_8003D9FC:
/* 8003D9FC 0003965C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003DA00 00039660  7C 08 02 A6 */	mflr r0
/* 8003DA04 00039664  2C 04 00 00 */	cmpwi r4, 0
/* 8003DA08 00039668  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003DA0C 0003966C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003DA10 00039670  93 C1 00 08 */	stw r30, 8(r1)
/* 8003DA14 00039674  7C 7E 1B 78 */	mr r30, r3
/* 8003DA18 00039678  41 82 00 20 */	beq lbl_8003DA38
/* 8003DA1C 0003967C  2C 05 00 00 */	cmpwi r5, 0
/* 8003DA20 00039680  41 82 00 18 */	beq lbl_8003DA38
/* 8003DA24 00039684  2C 06 00 00 */	cmpwi r6, 0
/* 8003DA28 00039688  41 82 00 10 */	beq lbl_8003DA38
/* 8003DA2C 0003968C  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 8003DA30 00039690  2C 00 00 00 */	cmpwi r0, 0
/* 8003DA34 00039694  40 82 00 0C */	bne lbl_8003DA40
lbl_8003DA38:
/* 8003DA38 00039698  38 60 00 00 */	li r3, 0
/* 8003DA3C 0003969C  48 00 00 D0 */	b lbl_8003DB0C
lbl_8003DA40:
/* 8003DA40 000396A0  7C 83 23 78 */	mr r3, r4
/* 8003DA44 000396A4  7C A4 2B 78 */	mr r4, r5
/* 8003DA48 000396A8  7C C5 33 78 */	mr r5, r6
/* 8003DA4C 000396AC  7C E6 3B 78 */	mr r6, r7
/* 8003DA50 000396B0  38 E0 00 01 */	li r7, 1
/* 8003DA54 000396B4  48 1C 30 D9 */	bl func_80200B2C
/* 8003DA58 000396B8  2C 03 00 00 */	cmpwi r3, 0
/* 8003DA5C 000396BC  7C 7F 1B 78 */	mr r31, r3
/* 8003DA60 000396C0  40 82 00 0C */	bne lbl_8003DA6C
/* 8003DA64 000396C4  38 60 00 00 */	li r3, 0
/* 8003DA68 000396C8  48 00 00 A4 */	b lbl_8003DB0C
lbl_8003DA6C:
/* 8003DA6C 000396CC  80 9E 0C 04 */	lwz r4, 0xc04(r30)
/* 8003DA70 000396D0  48 1C 31 E5 */	bl func_80200C54
/* 8003DA74 000396D4  A0 1E 05 0C */	lhz r0, 0x50c(r30)
/* 8003DA78 000396D8  28 00 00 02 */	cmplwi r0, 2
/* 8003DA7C 000396DC  40 82 00 30 */	bne lbl_8003DAAC
/* 8003DA80 000396E0  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8003DA84 000396E4  A0 9E 05 1C */	lhz r4, 0x51c(r30)
/* 8003DA88 000396E8  38 63 CE 34 */	addi r3, r3, lbl_8063CE34@l
/* 8003DA8C 000396EC  38 63 00 28 */	addi r3, r3, 0x28
/* 8003DA90 000396F0  48 35 83 71 */	bl func_80395E00
/* 8003DA94 000396F4  2C 03 00 00 */	cmpwi r3, 0
/* 8003DA98 000396F8  41 82 00 14 */	beq lbl_8003DAAC
/* 8003DA9C 000396FC  7F E4 FB 78 */	mr r4, r31
/* 8003DAA0 00039700  38 7E 05 24 */	addi r3, r30, 0x524
/* 8003DAA4 00039704  38 A0 00 01 */	li r5, 1
/* 8003DAA8 00039708  48 00 22 D1 */	bl func_8003FD78
lbl_8003DAAC:
/* 8003DAAC 0003970C  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8003DAB0 00039710  48 1E 6A D9 */	bl func_80224588
/* 8003DAB4 00039714  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8003DAB8 00039718  48 1E 6A D1 */	bl func_80224588
/* 8003DABC 0003971C  80 9E 0C 04 */	lwz r4, 0xc04(r30)
/* 8003DAC0 00039720  7F E3 FB 78 */	mr r3, r31
/* 8003DAC4 00039724  48 1C 32 45 */	bl func_80200D08
/* 8003DAC8 00039728  A0 1E 05 0C */	lhz r0, 0x50c(r30)
/* 8003DACC 0003972C  28 00 00 02 */	cmplwi r0, 2
/* 8003DAD0 00039730  40 82 00 30 */	bne lbl_8003DB00
/* 8003DAD4 00039734  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8003DAD8 00039738  A0 9E 05 1C */	lhz r4, 0x51c(r30)
/* 8003DADC 0003973C  38 63 CE 34 */	addi r3, r3, lbl_8063CE34@l
/* 8003DAE0 00039740  38 63 00 28 */	addi r3, r3, 0x28
/* 8003DAE4 00039744  48 35 83 1D */	bl func_80395E00
/* 8003DAE8 00039748  2C 03 00 00 */	cmpwi r3, 0
/* 8003DAEC 0003974C  41 82 00 14 */	beq lbl_8003DB00
/* 8003DAF0 00039750  7F E4 FB 78 */	mr r4, r31
/* 8003DAF4 00039754  38 7E 05 24 */	addi r3, r30, 0x524
/* 8003DAF8 00039758  38 A0 00 00 */	li r5, 0
/* 8003DAFC 0003975C  48 00 22 7D */	bl func_8003FD78
lbl_8003DB00:
/* 8003DB00 00039760  7F E3 FB 78 */	mr r3, r31
/* 8003DB04 00039764  48 1C 32 75 */	bl func_80200D78
/* 8003DB08 00039768  38 60 00 01 */	li r3, 1
lbl_8003DB0C:
/* 8003DB0C 0003976C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003DB10 00039770  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003DB14 00039774  83 C1 00 08 */	lwz r30, 8(r1)
/* 8003DB18 00039778  7C 08 03 A6 */	mtlr r0
/* 8003DB1C 0003977C  38 21 00 10 */	addi r1, r1, 0x10
/* 8003DB20 00039780  4E 80 00 20 */	blr

.global func_8003DB24
func_8003DB24:
/* 8003DB24 00039784  3C 80 19 9C */	lis r4, 0x199C0A00@ha
/* 8003DB28 00039788  38 63 0D 04 */	addi r3, r3, 0xd04
/* 8003DB2C 0003978C  38 84 0A 00 */	addi r4, r4, 0x199C0A00@l
/* 8003DB30 00039790  4B FF 95 FC */	b lbl_8003712C

.global WorldDarkening_Fade
WorldDarkening_Fade:
/* 8003DB34 00039794  D0 23 0D 08 */	stfs f1, 0xd08(r3)
/* 8003DB38 00039798  D0 43 0D 0C */	stfs f2, 0xd0c(r3)
/* 8003DB3C 0003979C  4E 80 00 20 */	blr

.global func_8003DB40
func_8003DB40:
/* 8003DB40 000397A0  94 21 FF 80 */	stwu r1, -0x80(r1)
/* 8003DB44 000397A4  7C 08 02 A6 */	mflr r0
/* 8003DB48 000397A8  90 01 00 84 */	stw r0, 0x84(r1)
/* 8003DB4C 000397AC  DB E1 00 70 */	stfd f31, 0x70(r1)
/* 8003DB50 000397B0  F3 E1 00 78 */	psq_st f31, 120(r1), 0, qr0
/* 8003DB54 000397B4  DB C1 00 60 */	stfd f30, 0x60(r1)
/* 8003DB58 000397B8  F3 C1 00 68 */	psq_st f30, 104(r1), 0, qr0
/* 8003DB5C 000397BC  DB A1 00 50 */	stfd f29, 0x50(r1)
/* 8003DB60 000397C0  F3 A1 00 58 */	psq_st f29, 88(r1), 0, qr0
/* 8003DB64 000397C4  39 61 00 50 */	addi r11, r1, 0x50
/* 8003DB68 000397C8  48 18 95 B9 */	bl _savegpr_25
/* 8003DB6C 000397CC  88 03 0D 04 */	lbz r0, 0xd04(r3)
/* 8003DB70 000397D0  FF A0 08 90 */	fmr f29, f1
/* 8003DB74 000397D4  7C 7B 1B 78 */	mr r27, r3
/* 8003DB78 000397D8  2C 00 00 00 */	cmpwi r0, 0
/* 8003DB7C 000397DC  41 82 01 E4 */	beq lbl_8003DD60
/* 8003DB80 000397E0  80 83 0C 04 */	lwz r4, 0xc04(r3)
/* 8003DB84 000397E4  2C 04 00 00 */	cmpwi r4, 0
/* 8003DB88 000397E8  41 82 01 CC */	beq lbl_8003DD54
/* 8003DB8C 000397EC  C0 23 0D 10 */	lfs f1, 0xd10(r3)
/* 8003DB90 000397F0  C0 03 0D 0C */	lfs f0, 0xd0c(r3)
/* 8003DB94 000397F4  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8003DB98 000397F8  4C 41 13 82 */	cror 2, 1, 2
/* 8003DB9C 000397FC  40 82 01 B8 */	bne lbl_8003DD54
/* 8003DBA0 00039800  A3 E4 00 DE */	lhz r31, 0xde(r4)
/* 8003DBA4 00039804  7F 7E DB 78 */	mr r30, r27
/* 8003DBA8 00039808  C3 E2 82 20 */	lfs f31, lbl_80640820-_SDA2_BASE_(r2)
/* 8003DBAC 0003980C  3B A0 00 00 */	li r29, 0
/* 8003DBB0 00039810  C3 C2 82 40 */	lfs f30, lbl_80640840-_SDA2_BASE_(r2)
/* 8003DBB4 00039814  3B 80 00 00 */	li r28, 0
/* 8003DBB8 00039818  3B 40 00 00 */	li r26, 0
/* 8003DBBC 0003981C  48 00 01 90 */	b lbl_8003DD4C
lbl_8003DBC0:
/* 8003DBC0 00039820  80 1E 0D 18 */	lwz r0, 0xd18(r30)
/* 8003DBC4 00039824  2C 00 00 00 */	cmpwi r0, 0
/* 8003DBC8 00039828  41 82 01 7C */	beq lbl_8003DD44
/* 8003DBCC 0003982C  80 7B 0C 04 */	lwz r3, 0xc04(r27)
/* 8003DBD0 00039830  80 83 00 08 */	lwz r4, 8(r3)
/* 8003DBD4 00039834  2C 04 00 00 */	cmpwi r4, 0
/* 8003DBD8 00039838  40 82 00 0C */	bne lbl_8003DBE4
/* 8003DBDC 0003983C  38 60 00 00 */	li r3, 0
/* 8003DBE0 00039840  48 00 00 24 */	b lbl_8003DC04
lbl_8003DBE4:
/* 8003DBE4 00039844  A0 03 00 DE */	lhz r0, 0xde(r3)
/* 8003DBE8 00039848  57 83 04 3E */	clrlwi r3, r28, 0x10
/* 8003DBEC 0003984C  7C 03 00 40 */	cmplw r3, r0
/* 8003DBF0 00039850  41 80 00 0C */	blt lbl_8003DBFC
/* 8003DBF4 00039854  38 60 00 00 */	li r3, 0
/* 8003DBF8 00039858  48 00 00 0C */	b lbl_8003DC04
lbl_8003DBFC:
/* 8003DBFC 0003985C  57 80 13 BA */	rlwinm r0, r28, 2, 0xe, 0x1d
/* 8003DC00 00039860  7C 64 00 2E */	lwzx r3, r4, r0
lbl_8003DC04:
/* 8003DC04 00039864  C0 43 00 EC */	lfs f2, 0xec(r3)
/* 8003DC08 00039868  C0 1B 0D 08 */	lfs f0, 0xd08(r27)
/* 8003DC0C 0003986C  C0 63 00 DC */	lfs f3, 0xdc(r3)
/* 8003DC10 00039870  C0 23 00 FC */	lfs f1, 0xfc(r3)
/* 8003DC14 00039874  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 8003DC18 00039878  D0 61 00 24 */	stfs f3, 0x24(r1)
/* 8003DC1C 0003987C  D0 41 00 28 */	stfs f2, 0x28(r1)
/* 8003DC20 00039880  D0 21 00 2C */	stfs f1, 0x2c(r1)
/* 8003DC24 00039884  4C 40 13 82 */	cror 2, 0, 2
/* 8003DC28 00039888  40 82 01 1C */	bne lbl_8003DD44
/* 8003DC2C 0003988C  FC 02 F0 40 */	fcmpo cr0, f2, f30
/* 8003DC30 00039890  40 81 01 14 */	ble lbl_8003DD44
/* 8003DC34 00039894  D3 E1 00 28 */	stfs f31, 0x28(r1)
/* 8003DC38 00039898  7F 63 DB 78 */	mr r3, r27
/* 8003DC3C 0003989C  4B FF BA 99 */	bl func_800396D4
/* 8003DC40 000398A0  80 1B 0D 14 */	lwz r0, 0xd14(r27)
/* 8003DC44 000398A4  7C 64 1B 78 */	mr r4, r3
/* 8003DC48 000398A8  C0 22 82 30 */	lfs f1, lbl_80640830-_SDA2_BASE_(r2)
/* 8003DC4C 000398AC  54 00 10 3A */	slwi r0, r0, 2
/* 8003DC50 000398B0  7C 7B 02 14 */	add r3, r27, r0
/* 8003DC54 000398B4  80 63 0D 18 */	lwz r3, 0xd18(r3)
/* 8003DC58 000398B8  48 01 06 FD */	bl func_8004E354
/* 8003DC5C 000398BC  7F 64 DB 78 */	mr r4, r27
/* 8003DC60 000398C0  38 61 00 18 */	addi r3, r1, 0x18
/* 8003DC64 000398C4  4B FF AE 31 */	bl func_80038A94
/* 8003DC68 000398C8  80 1B 0D 14 */	lwz r0, 0xd14(r27)
/* 8003DC6C 000398CC  54 00 10 3A */	slwi r0, r0, 2
/* 8003DC70 000398D0  7C 7B 02 14 */	add r3, r27, r0
/* 8003DC74 000398D4  83 23 0D 18 */	lwz r25, 0xd18(r3)
/* 8003DC78 000398D8  80 19 00 40 */	lwz r0, 0x40(r25)
/* 8003DC7C 000398DC  2C 00 00 00 */	cmpwi r0, 0
/* 8003DC80 000398E0  41 82 00 48 */	beq lbl_8003DCC8
/* 8003DC84 000398E4  38 61 00 08 */	addi r3, r1, 8
/* 8003DC88 000398E8  38 81 00 18 */	addi r4, r1, 0x18
/* 8003DC8C 000398EC  48 1E 5A 35 */	bl func_802236C0
/* 8003DC90 000398F0  80 79 00 40 */	lwz r3, 0x40(r25)
/* 8003DC94 000398F4  38 80 00 01 */	li r4, 1
/* 8003DC98 000398F8  C0 01 00 08 */	lfs f0, 8(r1)
/* 8003DC9C 000398FC  D0 03 00 2C */	stfs f0, 0x2c(r3)
/* 8003DCA0 00039900  C0 01 00 0C */	lfs f0, 0xc(r1)
/* 8003DCA4 00039904  D0 03 00 30 */	stfs f0, 0x30(r3)
/* 8003DCA8 00039908  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 8003DCAC 0003990C  D0 03 00 34 */	stfs f0, 0x34(r3)
/* 8003DCB0 00039910  C0 01 00 14 */	lfs f0, 0x14(r1)
/* 8003DCB4 00039914  D0 03 00 38 */	stfs f0, 0x38(r3)
/* 8003DCB8 00039918  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 8003DCBC 0003991C  54 00 07 B8 */	rlwinm r0, r0, 0, 0x1e, 0x1c
/* 8003DCC0 00039920  B0 03 00 10 */	sth r0, 0x10(r3)
/* 8003DCC4 00039924  48 1B 49 F5 */	bl func_801F26B8
lbl_8003DCC8:
/* 8003DCC8 00039928  80 1B 0D 14 */	lwz r0, 0xd14(r27)
/* 8003DCCC 0003992C  54 00 10 3A */	slwi r0, r0, 2
/* 8003DCD0 00039930  7C 7B 02 14 */	add r3, r27, r0
/* 8003DCD4 00039934  80 63 0D 18 */	lwz r3, 0xd18(r3)
/* 8003DCD8 00039938  80 63 00 40 */	lwz r3, 0x40(r3)
/* 8003DCDC 0003993C  2C 03 00 00 */	cmpwi r3, 0
/* 8003DCE0 00039940  41 82 00 24 */	beq lbl_8003DD04
/* 8003DCE4 00039944  C0 01 00 24 */	lfs f0, 0x24(r1)
/* 8003DCE8 00039948  38 80 00 01 */	li r4, 1
/* 8003DCEC 0003994C  C0 21 00 28 */	lfs f1, 0x28(r1)
/* 8003DCF0 00039950  D0 03 00 20 */	stfs f0, 0x20(r3)
/* 8003DCF4 00039954  C0 01 00 2C */	lfs f0, 0x2c(r1)
/* 8003DCF8 00039958  D0 23 00 24 */	stfs f1, 0x24(r3)
/* 8003DCFC 0003995C  D0 03 00 28 */	stfs f0, 0x28(r3)
/* 8003DD00 00039960  48 1B 49 B9 */	bl func_801F26B8
lbl_8003DD04:
/* 8003DD04 00039964  80 1B 0D 14 */	lwz r0, 0xd14(r27)
/* 8003DD08 00039968  C0 22 82 20 */	lfs f1, lbl_80640820-_SDA2_BASE_(r2)
/* 8003DD0C 0003996C  54 00 10 3A */	slwi r0, r0, 2
/* 8003DD10 00039970  7C 7B 02 14 */	add r3, r27, r0
/* 8003DD14 00039974  80 63 0D 18 */	lwz r3, 0xd18(r3)
/* 8003DD18 00039978  48 01 0A B1 */	bl func_8004E7C8
/* 8003DD1C 0003997C  80 7B 0D 14 */	lwz r3, 0xd14(r27)
/* 8003DD20 00039980  38 03 00 01 */	addi r0, r3, 1
/* 8003DD24 00039984  2C 00 00 06 */	cmpwi r0, 6
/* 8003DD28 00039988  90 1B 0D 14 */	stw r0, 0xd14(r27)
/* 8003DD2C 0003998C  41 80 00 08 */	blt lbl_8003DD34
/* 8003DD30 00039990  93 5B 0D 14 */	stw r26, 0xd14(r27)
lbl_8003DD34:
/* 8003DD34 00039994  3B BD 00 01 */	addi r29, r29, 1
/* 8003DD38 00039998  D3 FB 0D 10 */	stfs f31, 0xd10(r27)
/* 8003DD3C 0003999C  2C 1D 00 02 */	cmpwi r29, 2
/* 8003DD40 000399A0  40 80 00 20 */	bge lbl_8003DD60
lbl_8003DD44:
/* 8003DD44 000399A4  3B DE 00 04 */	addi r30, r30, 4
/* 8003DD48 000399A8  3B 9C 00 01 */	addi r28, r28, 1
lbl_8003DD4C:
/* 8003DD4C 000399AC  7C 1C F8 00 */	cmpw r28, r31
/* 8003DD50 000399B0  41 80 FE 70 */	blt lbl_8003DBC0
lbl_8003DD54:
/* 8003DD54 000399B4  C0 1B 0D 10 */	lfs f0, 0xd10(r27)
/* 8003DD58 000399B8  EC 00 E8 2A */	fadds f0, f0, f29
/* 8003DD5C 000399BC  D0 1B 0D 10 */	stfs f0, 0xd10(r27)
lbl_8003DD60:
/* 8003DD60 000399C0  E3 E1 00 78 */	psq_l f31, 120(r1), 0, qr0
/* 8003DD64 000399C4  CB E1 00 70 */	lfd f31, 0x70(r1)
/* 8003DD68 000399C8  E3 C1 00 68 */	psq_l f30, 104(r1), 0, qr0
/* 8003DD6C 000399CC  CB C1 00 60 */	lfd f30, 0x60(r1)
/* 8003DD70 000399D0  E3 A1 00 58 */	psq_l f29, 88(r1), 0, qr0
/* 8003DD74 000399D4  39 61 00 50 */	addi r11, r1, 0x50
/* 8003DD78 000399D8  CB A1 00 50 */	lfd f29, 0x50(r1)
/* 8003DD7C 000399DC  48 18 93 F1 */	bl _restgpr_25
/* 8003DD80 000399E0  80 01 00 84 */	lwz r0, 0x84(r1)
/* 8003DD84 000399E4  7C 08 03 A6 */	mtlr r0
/* 8003DD88 000399E8  38 21 00 80 */	addi r1, r1, 0x80
/* 8003DD8C 000399EC  4E 80 00 20 */	blr

.global func_8003DD90
func_8003DD90:
/* 8003DD90 000399F0  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003DD94 000399F4  38 00 00 01 */	li r0, 1
/* 8003DD98 000399F8  98 03 0D 04 */	stb r0, 0xd04(r3)
/* 8003DD9C 000399FC  D0 03 0D 10 */	stfs f0, 0xd10(r3)
/* 8003DDA0 00039A00  4E 80 00 20 */	blr

.global func_8003DDA4
func_8003DDA4:
/* 8003DDA4 00039A04  C0 02 82 20 */	lfs f0, lbl_80640820-_SDA2_BASE_(r2)
/* 8003DDA8 00039A08  38 00 00 00 */	li r0, 0
/* 8003DDAC 00039A0C  2C 04 00 00 */	cmpwi r4, 0
/* 8003DDB0 00039A10  98 03 0D 04 */	stb r0, 0xd04(r3)
/* 8003DDB4 00039A14  D0 03 0D 10 */	stfs f0, 0xd10(r3)
/* 8003DDB8 00039A18  4D 82 00 20 */	beqlr
/* 8003DDBC 00039A1C  38 00 00 02 */	li r0, 2
/* 8003DDC0 00039A20  38 A0 00 00 */	li r5, 0
/* 8003DDC4 00039A24  7C 09 03 A6 */	mtctr r0
lbl_8003DDC8:
/* 8003DDC8 00039A28  80 83 0D 18 */	lwz r4, 0xd18(r3)
/* 8003DDCC 00039A2C  2C 04 00 00 */	cmpwi r4, 0
/* 8003DDD0 00039A30  41 82 00 20 */	beq lbl_8003DDF0
/* 8003DDD4 00039A34  80 84 00 40 */	lwz r4, 0x40(r4)
/* 8003DDD8 00039A38  2C 04 00 00 */	cmpwi r4, 0
/* 8003DDDC 00039A3C  41 82 00 14 */	beq lbl_8003DDF0
/* 8003DDE0 00039A40  80 04 01 04 */	lwz r0, 0x104(r4)
/* 8003DDE4 00039A44  60 00 00 04 */	ori r0, r0, 4
/* 8003DDE8 00039A48  90 04 01 04 */	stw r0, 0x104(r4)
/* 8003DDEC 00039A4C  D0 04 01 10 */	stfs f0, 0x110(r4)
lbl_8003DDF0:
/* 8003DDF0 00039A50  80 83 0D 1C */	lwz r4, 0xd1c(r3)
/* 8003DDF4 00039A54  2C 04 00 00 */	cmpwi r4, 0
/* 8003DDF8 00039A58  41 82 00 20 */	beq lbl_8003DE18
/* 8003DDFC 00039A5C  80 84 00 40 */	lwz r4, 0x40(r4)
/* 8003DE00 00039A60  2C 04 00 00 */	cmpwi r4, 0
/* 8003DE04 00039A64  41 82 00 14 */	beq lbl_8003DE18
/* 8003DE08 00039A68  80 04 01 04 */	lwz r0, 0x104(r4)
/* 8003DE0C 00039A6C  60 00 00 04 */	ori r0, r0, 4
/* 8003DE10 00039A70  90 04 01 04 */	stw r0, 0x104(r4)
/* 8003DE14 00039A74  D0 04 01 10 */	stfs f0, 0x110(r4)
lbl_8003DE18:
/* 8003DE18 00039A78  80 83 0D 20 */	lwz r4, 0xd20(r3)
/* 8003DE1C 00039A7C  2C 04 00 00 */	cmpwi r4, 0
/* 8003DE20 00039A80  41 82 00 20 */	beq lbl_8003DE40
/* 8003DE24 00039A84  80 84 00 40 */	lwz r4, 0x40(r4)
/* 8003DE28 00039A88  2C 04 00 00 */	cmpwi r4, 0
/* 8003DE2C 00039A8C  41 82 00 14 */	beq lbl_8003DE40
/* 8003DE30 00039A90  80 04 01 04 */	lwz r0, 0x104(r4)
/* 8003DE34 00039A94  60 00 00 04 */	ori r0, r0, 4
/* 8003DE38 00039A98  90 04 01 04 */	stw r0, 0x104(r4)
/* 8003DE3C 00039A9C  D0 04 01 10 */	stfs f0, 0x110(r4)
lbl_8003DE40:
/* 8003DE40 00039AA0  38 63 00 0C */	addi r3, r3, 0xc
/* 8003DE44 00039AA4  38 A5 00 02 */	addi r5, r5, 2
/* 8003DE48 00039AA8  42 00 FF 80 */	bdnz lbl_8003DDC8
/* 8003DE4C 00039AAC  4E 80 00 20 */	blr

.global func_8003DE50
func_8003DE50:
/* 8003DE50 00039AB0  88 63 0D 04 */	lbz r3, 0xd04(r3)
/* 8003DE54 00039AB4  4E 80 00 20 */	blr

.global func_8003DE58
func_8003DE58:
/* 8003DE58 00039AB8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003DE5C 00039ABC  7C 08 02 A6 */	mflr r0
/* 8003DE60 00039AC0  38 80 00 01 */	li r4, 1
/* 8003DE64 00039AC4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003DE68 00039AC8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003DE6C 00039ACC  7C 7F 1B 78 */	mr r31, r3
/* 8003DE70 00039AD0  4B FF FF 35 */	bl func_8003DDA4
/* 8003DE74 00039AD4  38 7F 0D 04 */	addi r3, r31, 0xd04
/* 8003DE78 00039AD8  4B FF 93 5D */	bl func_800371D4
/* 8003DE7C 00039ADC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003DE80 00039AE0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003DE84 00039AE4  7C 08 03 A6 */	mtlr r0
/* 8003DE88 00039AE8  38 21 00 10 */	addi r1, r1, 0x10
/* 8003DE8C 00039AEC  4E 80 00 20 */	blr

.global func_8003DE90
func_8003DE90:
/* 8003DE90 00039AF0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003DE94 00039AF4  7C 08 02 A6 */	mflr r0
/* 8003DE98 00039AF8  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003DE9C 00039AFC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003DEA0 00039B00  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8003DEA4 00039B04  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8003DEA8 00039B08  7C BD 2B 78 */	mr r29, r5
/* 8003DEAC 00039B0C  93 81 00 10 */	stw r28, 0x10(r1)
/* 8003DEB0 00039B10  7C 9C 23 78 */	mr r28, r4
/* 8003DEB4 00039B14  88 03 0D 04 */	lbz r0, 0xd04(r3)
/* 8003DEB8 00039B18  2C 00 00 00 */	cmpwi r0, 0
/* 8003DEBC 00039B1C  40 82 00 10 */	bne lbl_8003DECC
/* 8003DEC0 00039B20  80 03 0C 04 */	lwz r0, 0xc04(r3)
/* 8003DEC4 00039B24  2C 00 00 00 */	cmpwi r0, 0
/* 8003DEC8 00039B28  41 82 00 34 */	beq lbl_8003DEFC
lbl_8003DECC:
/* 8003DECC 00039B2C  7C 7F 1B 78 */	mr r31, r3
/* 8003DED0 00039B30  3B C0 00 00 */	li r30, 0
lbl_8003DED4:
/* 8003DED4 00039B34  80 7F 0D 18 */	lwz r3, 0xd18(r31)
/* 8003DED8 00039B38  2C 03 00 00 */	cmpwi r3, 0
/* 8003DEDC 00039B3C  41 82 00 10 */	beq lbl_8003DEEC
/* 8003DEE0 00039B40  7F 84 E3 78 */	mr r4, r28
/* 8003DEE4 00039B44  7F A5 EB 78 */	mr r5, r29
/* 8003DEE8 00039B48  48 01 07 91 */	bl func_8004E678
lbl_8003DEEC:
/* 8003DEEC 00039B4C  3B DE 00 01 */	addi r30, r30, 1
/* 8003DEF0 00039B50  3B FF 00 04 */	addi r31, r31, 4
/* 8003DEF4 00039B54  2C 1E 00 06 */	cmpwi r30, 6
/* 8003DEF8 00039B58  41 80 FF DC */	blt lbl_8003DED4
lbl_8003DEFC:
/* 8003DEFC 00039B5C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003DF00 00039B60  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8003DF04 00039B64  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8003DF08 00039B68  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8003DF0C 00039B6C  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8003DF10 00039B70  7C 08 03 A6 */	mtlr r0
/* 8003DF14 00039B74  38 21 00 20 */	addi r1, r1, 0x20
/* 8003DF18 00039B78  4E 80 00 20 */	blr

.global func_8003DF1C
func_8003DF1C:
/* 8003DF1C 00039B7C  80 63 0C 04 */	lwz r3, 0xc04(r3)
/* 8003DF20 00039B80  2C 03 00 00 */	cmpwi r3, 0
/* 8003DF24 00039B84  4D 82 00 20 */	beqlr
/* 8003DF28 00039B88  2C 04 00 00 */	cmpwi r4, 0
/* 8003DF2C 00039B8C  41 82 00 08 */	beq lbl_8003DF34
/* 8003DF30 00039B90  48 1B B8 14 */	b func_801F9744
lbl_8003DF34:
/* 8003DF34 00039B94  48 1B B8 D4 */	b func_801F9808
/* 8003DF38 00039B98  4E 80 00 20 */	blr

.global func_8003DF3C
func_8003DF3C:
/* 8003DF3C 00039B9C  80 63 0C 00 */	lwz r3, 0xc00(r3)
/* 8003DF40 00039BA0  2C 03 00 00 */	cmpwi r3, 0
/* 8003DF44 00039BA4  41 82 00 74 */	beq lbl_8003DFB8
/* 8003DF48 00039BA8  80 C3 00 04 */	lwz r6, 4(r3)
/* 8003DF4C 00039BAC  2C 06 00 00 */	cmpwi r6, 0
/* 8003DF50 00039BB0  40 82 00 0C */	bne lbl_8003DF5C
/* 8003DF54 00039BB4  38 60 00 00 */	li r3, 0
/* 8003DF58 00039BB8  48 00 00 24 */	b lbl_8003DF7C
lbl_8003DF5C:
/* 8003DF5C 00039BBC  80 63 00 00 */	lwz r3, 0(r3)
/* 8003DF60 00039BC0  A0 03 00 18 */	lhz r0, 0x18(r3)
/* 8003DF64 00039BC4  7C 04 00 40 */	cmplw r4, r0
/* 8003DF68 00039BC8  41 80 00 0C */	blt lbl_8003DF74
/* 8003DF6C 00039BCC  38 60 00 00 */	li r3, 0
/* 8003DF70 00039BD0  48 00 00 0C */	b lbl_8003DF7C
lbl_8003DF74:
/* 8003DF74 00039BD4  54 80 13 BA */	rlwinm r0, r4, 2, 0xe, 0x1d
/* 8003DF78 00039BD8  7C 66 00 2E */	lwzx r3, r6, r0
lbl_8003DF7C:
/* 8003DF7C 00039BDC  2C 03 00 00 */	cmpwi r3, 0
/* 8003DF80 00039BE0  41 82 00 38 */	beq lbl_8003DFB8
/* 8003DF84 00039BE4  80 83 00 08 */	lwz r4, 8(r3)
/* 8003DF88 00039BE8  2C 04 00 00 */	cmpwi r4, 0
/* 8003DF8C 00039BEC  40 82 00 0C */	bne lbl_8003DF98
/* 8003DF90 00039BF0  38 60 00 00 */	li r3, 0
/* 8003DF94 00039BF4  4E 80 00 20 */	blr
lbl_8003DF98:
/* 8003DF98 00039BF8  A0 03 00 DE */	lhz r0, 0xde(r3)
/* 8003DF9C 00039BFC  7C 05 00 40 */	cmplw r5, r0
/* 8003DFA0 00039C00  41 80 00 0C */	blt lbl_8003DFAC
/* 8003DFA4 00039C04  38 60 00 00 */	li r3, 0
/* 8003DFA8 00039C08  4E 80 00 20 */	blr
lbl_8003DFAC:
/* 8003DFAC 00039C0C  54 A0 13 BA */	rlwinm r0, r5, 2, 0xe, 0x1d
/* 8003DFB0 00039C10  7C 64 00 2E */	lwzx r3, r4, r0
/* 8003DFB4 00039C14  4E 80 00 20 */	blr
lbl_8003DFB8:
/* 8003DFB8 00039C18  38 60 00 00 */	li r3, 0
/* 8003DFBC 00039C1C  4E 80 00 20 */	blr

.global func_8003DFC0
func_8003DFC0:
/* 8003DFC0 00039C20  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003DFC4 00039C24  7C 08 02 A6 */	mflr r0
/* 8003DFC8 00039C28  38 80 00 00 */	li r4, 0
/* 8003DFCC 00039C2C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003DFD0 00039C30  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003DFD4 00039C34  93 C1 00 08 */	stw r30, 8(r1)
/* 8003DFD8 00039C38  7C 7E 1B 78 */	mr r30, r3
/* 8003DFDC 00039C3C  4B FF E2 81 */	bl func_8003C25C
/* 8003DFE0 00039C40  54 7F 04 3E */	clrlwi r31, r3, 0x10
/* 8003DFE4 00039C44  7F C3 F3 78 */	mr r3, r30
/* 8003DFE8 00039C48  38 80 00 0A */	li r4, 0xa
/* 8003DFEC 00039C4C  4B FF E2 71 */	bl func_8003C25C
/* 8003DFF0 00039C50  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 8003DFF4 00039C54  7C 60 F8 50 */	subf r3, r0, r31
/* 8003DFF8 00039C58  7C 1F 00 50 */	subf r0, r31, r0
/* 8003DFFC 00039C5C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003E000 00039C60  7C 60 03 78 */	or r0, r3, r0
/* 8003E004 00039C64  83 C1 00 08 */	lwz r30, 8(r1)
/* 8003E008 00039C68  54 03 0F FE */	srwi r3, r0, 0x1f
/* 8003E00C 00039C6C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003E010 00039C70  7C 08 03 A6 */	mtlr r0
/* 8003E014 00039C74  38 21 00 10 */	addi r1, r1, 0x10
/* 8003E018 00039C78  4E 80 00 20 */	blr

.global func_8003E01C
func_8003E01C:
/* 8003E01C 00039C7C  38 A0 00 01 */	li r5, 1
/* 8003E020 00039C80  38 6D 97 B0 */	addi r3, r13, lbl_8063EA70-_SDA_BASE_
/* 8003E024 00039C84  38 80 00 04 */	li r4, 4
/* 8003E028 00039C88  38 00 00 00 */	li r0, 0
/* 8003E02C 00039C8C  98 AD 97 B0 */	stb r5, lbl_8063EA70-_SDA_BASE_(r13)
/* 8003E030 00039C90  B0 83 00 02 */	sth r4, 2(r3)
/* 8003E034 00039C94  98 03 00 04 */	stb r0, 4(r3)
/* 8003E038 00039C98  4E 80 00 20 */	blr