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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global VFiPFFAT_ReadFATSector
VFiPFFAT_ReadFATSector:
/* 8030E538 0030A198 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8030E53C 0030A19C 7C 08 02 A6 */ mflr r0
/* 8030E540 0030A1A0 90 01 00 24 */ stw r0, 0x24(r1)
/* 8030E544 0030A1A4 39 61 00 20 */ addi r11, r1, 0x20
/* 8030E548 0030A1A8 4B EB 8B E1 */ bl _savegpr_27
/* 8030E54C 0030A1AC 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8030E550 0030A1B0 7C 7B 1B 78 */ mr r27, r3
/* 8030E554 0030A1B4 7C 9C 23 78 */ mr r28, r4
/* 8030E558 0030A1B8 2C 00 00 01 */ cmpwi r0, 1
/* 8030E55C 0030A1BC 41 82 00 30 */ beq lbl_8030E58C
/* 8030E560 0030A1C0 40 80 00 10 */ bge lbl_8030E570
/* 8030E564 0030A1C4 2C 00 00 00 */ cmpwi r0, 0
/* 8030E568 0030A1C8 40 80 00 14 */ bge lbl_8030E57C
/* 8030E56C 0030A1CC 48 00 00 30 */ b lbl_8030E59C
lbl_8030E570:
/* 8030E570 0030A1D0 2C 00 00 03 */ cmpwi r0, 3
/* 8030E574 0030A1D4 40 80 00 28 */ bge lbl_8030E59C
/* 8030E578 0030A1D8 48 00 00 1C */ b lbl_8030E594
lbl_8030E57C:
/* 8030E57C 0030A1DC 54 A0 F8 7E */ srwi r0, r5, 1
/* 8030E580 0030A1E0 7C 05 02 14 */ add r0, r5, r0
/* 8030E584 0030A1E4 54 06 04 3E */ clrlwi r6, r0, 0x10
/* 8030E588 0030A1E8 48 00 00 1C */ b lbl_8030E5A4
lbl_8030E58C:
/* 8030E58C 0030A1EC 54 A6 08 3C */ slwi r6, r5, 1
/* 8030E590 0030A1F0 48 00 00 14 */ b lbl_8030E5A4
lbl_8030E594:
/* 8030E594 0030A1F4 54 A6 10 3A */ slwi r6, r5, 2
/* 8030E598 0030A1F8 48 00 00 0C */ b lbl_8030E5A4
lbl_8030E59C:
/* 8030E59C 0030A1FC 38 60 00 0F */ li r3, 0xf
/* 8030E5A0 0030A200 48 00 00 B0 */ b lbl_8030E650
lbl_8030E5A4:
/* 8030E5A4 0030A204 A0 A3 00 18 */ lhz r5, 0x18(r3)
/* 8030E5A8 0030A208 3B C0 00 01 */ li r30, 1
/* 8030E5AC 0030A20C 88 83 00 20 */ lbz r4, 0x20(r3)
/* 8030E5B0 0030A210 54 A0 06 31 */ rlwinm. r0, r5, 0, 0x18, 0x18
/* 8030E5B4 0030A214 80 63 00 28 */ lwz r3, 0x28(r3)
/* 8030E5B8 0030A218 7C C0 24 30 */ srw r0, r6, r4
/* 8030E5BC 0030A21C 7C 03 02 14 */ add r0, r3, r0
/* 8030E5C0 0030A220 54 1D 04 3E */ clrlwi r29, r0, 0x10
/* 8030E5C4 0030A224 41 82 00 08 */ beq lbl_8030E5CC
/* 8030E5C8 0030A228 54 BE 07 7E */ clrlwi r30, r5, 0x1d
lbl_8030E5CC:
/* 8030E5CC 0030A22C 7F 63 DB 78 */ mr r3, r27
/* 8030E5D0 0030A230 7F A4 EB 78 */ mr r4, r29
/* 8030E5D4 0030A234 7F 85 E3 78 */ mr r5, r28
/* 8030E5D8 0030A238 4B FF C2 75 */ bl VFiPFCACHE_ReadFATPage
/* 8030E5DC 0030A23C 2C 03 10 00 */ cmpwi r3, 0x1000
/* 8030E5E0 0030A240 7C 7F 1B 78 */ mr r31, r3
/* 8030E5E4 0030A244 40 82 00 50 */ bne lbl_8030E634
/* 8030E5E8 0030A248 81 9B 18 90 */ lwz r12, 0x1890(r27)
/* 8030E5EC 0030A24C 2C 0C 00 00 */ cmpwi r12, 0
/* 8030E5F0 0030A250 41 82 00 44 */ beq lbl_8030E634
/* 8030E5F4 0030A254 80 7B 18 70 */ lwz r3, 0x1870(r27)
/* 8030E5F8 0030A258 7D 89 03 A6 */ mtctr r12
/* 8030E5FC 0030A25C 4E 80 04 21 */ bctrl
/* 8030E600 0030A260 2C 03 00 00 */ cmpwi r3, 0
/* 8030E604 0030A264 41 82 00 40 */ beq lbl_8030E644
/* 8030E608 0030A268 2C 03 00 01 */ cmpwi r3, 1
/* 8030E60C 0030A26C 40 82 00 28 */ bne lbl_8030E634
/* 8030E610 0030A270 88 1B 00 22 */ lbz r0, 0x22(r27)
/* 8030E614 0030A274 28 00 00 02 */ cmplwi r0, 2
/* 8030E618 0030A278 41 80 00 1C */ blt lbl_8030E634
/* 8030E61C 0030A27C 7C 1E 00 40 */ cmplw r30, r0
/* 8030E620 0030A280 40 80 00 14 */ bge lbl_8030E634
/* 8030E624 0030A284 80 1B 00 0C */ lwz r0, 0xc(r27)
/* 8030E628 0030A288 3B DE 00 01 */ addi r30, r30, 1
/* 8030E62C 0030A28C 7F BD 02 14 */ add r29, r29, r0
/* 8030E630 0030A290 48 00 00 14 */ b lbl_8030E644
lbl_8030E634:
/* 8030E634 0030A294 2C 1F 00 00 */ cmpwi r31, 0
/* 8030E638 0030A298 41 82 00 0C */ beq lbl_8030E644
/* 8030E63C 0030A29C 7F E3 FB 78 */ mr r3, r31
/* 8030E640 0030A2A0 48 00 00 10 */ b lbl_8030E650
lbl_8030E644:
/* 8030E644 0030A2A4 2C 1F 00 00 */ cmpwi r31, 0
/* 8030E648 0030A2A8 40 82 FF 84 */ bne lbl_8030E5CC
/* 8030E64C 0030A2AC 7F E3 FB 78 */ mr r3, r31
lbl_8030E650:
/* 8030E650 0030A2B0 39 61 00 20 */ addi r11, r1, 0x20
/* 8030E654 0030A2B4 4B EB 8B 21 */ bl _restgpr_27
/* 8030E658 0030A2B8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8030E65C 0030A2BC 7C 08 03 A6 */ mtlr r0
/* 8030E660 0030A2C0 38 21 00 20 */ addi r1, r1, 0x20
/* 8030E664 0030A2C4 4E 80 00 20 */ blr
.global VFiPFFAT_SearchForNumFreeClusters
VFiPFFAT_SearchForNumFreeClusters:
/* 8030E668 0030A2C8 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8030E66C 0030A2CC 7C 08 02 A6 */ mflr r0
/* 8030E670 0030A2D0 90 01 00 54 */ stw r0, 0x54(r1)
/* 8030E674 0030A2D4 39 61 00 50 */ addi r11, r1, 0x50
/* 8030E678 0030A2D8 4B EB 8A 91 */ bl _savegpr_19
/* 8030E67C 0030A2DC 38 00 FF FF */ li r0, -1
/* 8030E680 0030A2E0 28 04 00 02 */ cmplwi r4, 2
/* 8030E684 0030A2E4 90 07 00 00 */ stw r0, 0(r7)
/* 8030E688 0030A2E8 7C 74 1B 78 */ mr r20, r3
/* 8030E68C 0030A2EC 7C 95 23 78 */ mr r21, r4
/* 8030E690 0030A2F0 7C B6 2B 78 */ mr r22, r5
/* 8030E694 0030A2F4 90 08 00 00 */ stw r0, 0(r8)
/* 8030E698 0030A2F8 7C D7 33 78 */ mr r23, r6
/* 8030E69C 0030A2FC 7C F8 3B 78 */ mr r24, r7
/* 8030E6A0 0030A300 7D 19 43 78 */ mr r25, r8
/* 8030E6A4 0030A304 80 63 00 34 */ lwz r3, 0x34(r3)
/* 8030E6A8 0030A308 3B 60 00 00 */ li r27, 0
/* 8030E6AC 0030A30C 3B C0 00 00 */ li r30, 0
/* 8030E6B0 0030A310 3B A0 FF FF */ li r29, -1
/* 8030E6B4 0030A314 3B E3 00 02 */ addi r31, r3, 2
/* 8030E6B8 0030A318 3B 80 00 00 */ li r28, 0
/* 8030E6BC 0030A31C 41 80 00 0C */ blt lbl_8030E6C8
/* 8030E6C0 0030A320 7C 04 F8 40 */ cmplw r4, r31
/* 8030E6C4 0030A324 41 80 00 08 */ blt lbl_8030E6CC
lbl_8030E6C8:
/* 8030E6C8 0030A328 3A A0 00 02 */ li r21, 2
lbl_8030E6CC:
/* 8030E6CC 0030A32C 28 05 00 02 */ cmplwi r5, 2
/* 8030E6D0 0030A330 41 80 00 0C */ blt lbl_8030E6DC
/* 8030E6D4 0030A334 7C 05 F8 40 */ cmplw r5, r31
/* 8030E6D8 0030A338 41 80 00 08 */ blt lbl_8030E6E0
lbl_8030E6DC:
/* 8030E6DC 0030A33C 3A DF FF FF */ addi r22, r31, -1
lbl_8030E6E0:
/* 8030E6E0 0030A340 7E BA AB 78 */ mr r26, r21
/* 8030E6E4 0030A344 7E 83 A3 78 */ mr r3, r20
/* 8030E6E8 0030A348 7E A5 AB 78 */ mr r5, r21
/* 8030E6EC 0030A34C 38 81 00 08 */ addi r4, r1, 8
/* 8030E6F0 0030A350 4B FF FE 49 */ bl VFiPFFAT_ReadFATSector
/* 8030E6F4 0030A354 2C 03 00 00 */ cmpwi r3, 0
/* 8030E6F8 0030A358 41 82 00 08 */ beq lbl_8030E700
/* 8030E6FC 0030A35C 48 00 01 58 */ b lbl_8030E854
lbl_8030E700:
/* 8030E700 0030A360 80 61 00 08 */ lwz r3, 8(r1)
/* 8030E704 0030A364 38 00 00 00 */ li r0, 0
/* 8030E708 0030A368 3A 60 FF FF */ li r19, -1
/* 8030E70C 0030A36C B0 03 00 02 */ sth r0, 2(r3)
/* 8030E710 0030A370 48 00 01 10 */ b lbl_8030E820
lbl_8030E714:
/* 8030E714 0030A374 7C 1F A8 40 */ cmplw r31, r21
/* 8030E718 0030A378 41 81 00 08 */ bgt lbl_8030E720
/* 8030E71C 0030A37C 3A A0 00 02 */ li r21, 2
lbl_8030E720:
/* 8030E720 0030A380 80 14 00 1C */ lwz r0, 0x1c(r20)
/* 8030E724 0030A384 2C 00 00 01 */ cmpwi r0, 1
/* 8030E728 0030A388 41 82 00 38 */ beq lbl_8030E760
/* 8030E72C 0030A38C 40 80 00 10 */ bge lbl_8030E73C
/* 8030E730 0030A390 2C 00 00 00 */ cmpwi r0, 0
/* 8030E734 0030A394 40 80 00 14 */ bge lbl_8030E748
/* 8030E738 0030A398 48 00 00 58 */ b lbl_8030E790
lbl_8030E73C:
/* 8030E73C 0030A39C 2C 00 00 03 */ cmpwi r0, 3
/* 8030E740 0030A3A0 40 80 00 50 */ bge lbl_8030E790
/* 8030E744 0030A3A4 48 00 00 34 */ b lbl_8030E778
lbl_8030E748:
/* 8030E748 0030A3A8 7E 83 A3 78 */ mr r3, r20
/* 8030E74C 0030A3AC 56 A4 04 3E */ clrlwi r4, r21, 0x10
/* 8030E750 0030A3B0 38 A1 00 0C */ addi r5, r1, 0xc
/* 8030E754 0030A3B4 38 C1 00 08 */ addi r6, r1, 8
/* 8030E758 0030A3B8 48 00 2B FD */ bl VFiPFFAT12_ReadFATEntryPage
/* 8030E75C 0030A3BC 48 00 00 38 */ b lbl_8030E794
lbl_8030E760:
/* 8030E760 0030A3C0 7E 83 A3 78 */ mr r3, r20
/* 8030E764 0030A3C4 7E A4 AB 78 */ mr r4, r21
/* 8030E768 0030A3C8 38 A1 00 0C */ addi r5, r1, 0xc
/* 8030E76C 0030A3CC 38 C1 00 08 */ addi r6, r1, 8
/* 8030E770 0030A3D0 48 00 36 4D */ bl VFiPFFAT16_ReadFATEntryPage
/* 8030E774 0030A3D4 48 00 00 20 */ b lbl_8030E794
lbl_8030E778:
/* 8030E778 0030A3D8 7E 83 A3 78 */ mr r3, r20
/* 8030E77C 0030A3DC 7E A4 AB 78 */ mr r4, r21
/* 8030E780 0030A3E0 38 A1 00 0C */ addi r5, r1, 0xc
/* 8030E784 0030A3E4 38 C1 00 08 */ addi r6, r1, 8
/* 8030E788 0030A3E8 48 00 3B BD */ bl VFiPFFAT32_ReadFATEntryPage
/* 8030E78C 0030A3EC 48 00 00 08 */ b lbl_8030E794
lbl_8030E790:
/* 8030E790 0030A3F0 38 60 00 0F */ li r3, 0xf
lbl_8030E794:
/* 8030E794 0030A3F4 2C 03 00 00 */ cmpwi r3, 0
/* 8030E798 0030A3F8 41 82 00 08 */ beq lbl_8030E7A0
/* 8030E79C 0030A3FC 48 00 00 B8 */ b lbl_8030E854
lbl_8030E7A0:
/* 8030E7A0 0030A400 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8030E7A4 0030A404 2C 00 00 00 */ cmpwi r0, 0
/* 8030E7A8 0030A408 40 82 00 30 */ bne lbl_8030E7D8
/* 8030E7AC 0030A40C 80 78 00 00 */ lwz r3, 0(r24)
/* 8030E7B0 0030A410 3C 03 00 01 */ addis r0, r3, 1
/* 8030E7B4 0030A414 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030E7B8 0030A418 40 82 00 08 */ bne lbl_8030E7C0
/* 8030E7BC 0030A41C 92 B8 00 00 */ stw r21, 0(r24)
lbl_8030E7C0:
/* 8030E7C0 0030A420 3B DE 00 01 */ addi r30, r30, 1
/* 8030E7C4 0030A424 7C 1E B8 40 */ cmplw r30, r23
/* 8030E7C8 0030A428 41 80 00 28 */ blt lbl_8030E7F0
/* 8030E7CC 0030A42C 92 B9 00 00 */ stw r21, 0(r25)
/* 8030E7D0 0030A430 38 60 00 00 */ li r3, 0
/* 8030E7D4 0030A434 48 00 00 80 */ b lbl_8030E854
lbl_8030E7D8:
/* 8030E7D8 0030A438 7C 1C F0 40 */ cmplw r28, r30
/* 8030E7DC 0030A43C 40 80 00 0C */ bge lbl_8030E7E8
/* 8030E7E0 0030A440 83 B8 00 00 */ lwz r29, 0(r24)
/* 8030E7E4 0030A444 7F DC F3 78 */ mr r28, r30
lbl_8030E7E8:
/* 8030E7E8 0030A448 92 78 00 00 */ stw r19, 0(r24)
/* 8030E7EC 0030A44C 3B C0 00 00 */ li r30, 0
lbl_8030E7F0:
/* 8030E7F0 0030A450 2C 1B 00 00 */ cmpwi r27, 0
/* 8030E7F4 0030A454 3A B5 00 01 */ addi r21, r21, 1
/* 8030E7F8 0030A458 40 82 00 28 */ bne lbl_8030E820
/* 8030E7FC 0030A45C 2C 1E 00 00 */ cmpwi r30, 0
/* 8030E800 0030A460 40 82 00 20 */ bne lbl_8030E820
/* 8030E804 0030A464 28 15 00 02 */ cmplwi r21, 2
/* 8030E808 0030A468 40 81 00 18 */ ble lbl_8030E820
/* 8030E80C 0030A46C 7C 15 B0 40 */ cmplw r21, r22
/* 8030E810 0030A470 40 82 00 10 */ bne lbl_8030E820
/* 8030E814 0030A474 7F 56 D3 78 */ mr r22, r26
/* 8030E818 0030A478 3A A0 00 02 */ li r21, 2
/* 8030E81C 0030A47C 3B 60 00 01 */ li r27, 1
lbl_8030E820:
/* 8030E820 0030A480 7C 15 B0 40 */ cmplw r21, r22
/* 8030E824 0030A484 40 81 FE F0 */ ble lbl_8030E714
/* 8030E828 0030A488 7C 1C F0 40 */ cmplw r28, r30
/* 8030E82C 0030A48C 40 80 00 0C */ bge lbl_8030E838
/* 8030E830 0030A490 83 B8 00 00 */ lwz r29, 0(r24)
/* 8030E834 0030A494 7F DC F3 78 */ mr r28, r30
lbl_8030E838:
/* 8030E838 0030A498 2C 1C 00 00 */ cmpwi r28, 0
/* 8030E83C 0030A49C 41 82 00 14 */ beq lbl_8030E850
/* 8030E840 0030A4A0 7C 7C EA 14 */ add r3, r28, r29
/* 8030E844 0030A4A4 93 B8 00 00 */ stw r29, 0(r24)
/* 8030E848 0030A4A8 38 03 FF FF */ addi r0, r3, -1
/* 8030E84C 0030A4AC 90 19 00 00 */ stw r0, 0(r25)
lbl_8030E850:
/* 8030E850 0030A4B0 38 60 00 00 */ li r3, 0
lbl_8030E854:
/* 8030E854 0030A4B4 39 61 00 50 */ addi r11, r1, 0x50
/* 8030E858 0030A4B8 4B EB 88 FD */ bl _restgpr_19
/* 8030E85C 0030A4BC 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8030E860 0030A4C0 7C 08 03 A6 */ mtlr r0
/* 8030E864 0030A4C4 38 21 00 50 */ addi r1, r1, 0x50
/* 8030E868 0030A4C8 4E 80 00 20 */ blr
.global VFiPFFAT_FindClusterLink
VFiPFFAT_FindClusterLink:
/* 8030E86C 0030A4CC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8030E870 0030A4D0 7C 08 02 A6 */ mflr r0
/* 8030E874 0030A4D4 90 01 00 34 */ stw r0, 0x34(r1)
/* 8030E878 0030A4D8 39 61 00 30 */ addi r11, r1, 0x30
/* 8030E87C 0030A4DC 4B EB 88 AD */ bl _savegpr_27
/* 8030E880 0030A4E0 38 E0 FF FF */ li r7, -1
/* 8030E884 0030A4E4 38 00 00 00 */ li r0, 0
/* 8030E888 0030A4E8 90 E1 00 0C */ stw r7, 0xc(r1)
/* 8030E88C 0030A4EC 7C 7B 1B 78 */ mr r27, r3
/* 8030E890 0030A4F0 7C BE 2B 78 */ mr r30, r5
/* 8030E894 0030A4F4 7C DF 33 78 */ mr r31, r6
/* 8030E898 0030A4F8 90 06 00 00 */ stw r0, 0(r6)
/* 8030E89C 0030A4FC 80 03 00 24 */ lwz r0, 0x24(r3)
/* 8030E8A0 0030A500 2C 00 00 00 */ cmpwi r0, 0
/* 8030E8A4 0030A504 40 82 00 0C */ bne lbl_8030E8B0
/* 8030E8A8 0030A508 38 60 00 00 */ li r3, 0
/* 8030E8AC 0030A50C 48 00 01 64 */ b lbl_8030EA10
lbl_8030E8B0:
/* 8030E8B0 0030A510 80 03 00 2C */ lwz r0, 0x2c(r3)
/* 8030E8B4 0030A514 7C 00 20 40 */ cmplw r0, r4
/* 8030E8B8 0030A518 41 80 01 4C */ blt lbl_8030EA04
/* 8030E8BC 0030A51C A0 E3 00 20 */ lhz r7, 0x20(r3)
/* 8030E8C0 0030A520 38 07 00 01 */ addi r0, r7, 1
/* 8030E8C4 0030A524 7C E4 03 96 */ divwu r7, r4, r0
/* 8030E8C8 0030A528 7C 07 01 D6 */ mullw r0, r7, r0
/* 8030E8CC 0030A52C 7F 80 20 51 */ subf. r28, r0, r4
/* 8030E8D0 0030A530 40 82 00 20 */ bne lbl_8030E8F0
/* 8030E8D4 0030A534 80 83 00 1C */ lwz r4, 0x1c(r3)
/* 8030E8D8 0030A538 54 E3 10 3A */ slwi r3, r7, 2
/* 8030E8DC 0030A53C 38 00 00 01 */ li r0, 1
/* 8030E8E0 0030A540 7C 64 18 2E */ lwzx r3, r4, r3
/* 8030E8E4 0030A544 90 65 00 00 */ stw r3, 0(r5)
/* 8030E8E8 0030A548 90 06 00 00 */ stw r0, 0(r6)
/* 8030E8EC 0030A54C 48 00 01 20 */ b lbl_8030EA0C
lbl_8030E8F0:
/* 8030E8F0 0030A550 80 A3 00 1C */ lwz r5, 0x1c(r3)
/* 8030E8F4 0030A554 54 E0 10 3A */ slwi r0, r7, 2
/* 8030E8F8 0030A558 80 63 00 34 */ lwz r3, 0x34(r3)
/* 8030E8FC 0030A55C 38 81 00 08 */ addi r4, r1, 8
/* 8030E900 0030A560 7F A5 00 2E */ lwzx r29, r5, r0
/* 8030E904 0030A564 7F A5 EB 78 */ mr r5, r29
/* 8030E908 0030A568 4B FF FC 31 */ bl VFiPFFAT_ReadFATSector
/* 8030E90C 0030A56C 2C 03 00 00 */ cmpwi r3, 0
/* 8030E910 0030A570 41 82 00 9C */ beq lbl_8030E9AC
/* 8030E914 0030A574 48 00 00 FC */ b lbl_8030EA10
/* 8030E918 0030A578 48 00 00 94 */ b lbl_8030E9AC
lbl_8030E91C:
/* 8030E91C 0030A57C 80 7B 00 34 */ lwz r3, 0x34(r27)
/* 8030E920 0030A580 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8030E924 0030A584 2C 00 00 01 */ cmpwi r0, 1
/* 8030E928 0030A588 41 82 00 34 */ beq lbl_8030E95C
/* 8030E92C 0030A58C 40 80 00 10 */ bge lbl_8030E93C
/* 8030E930 0030A590 2C 00 00 00 */ cmpwi r0, 0
/* 8030E934 0030A594 40 80 00 14 */ bge lbl_8030E948
/* 8030E938 0030A598 48 00 00 4C */ b lbl_8030E984
lbl_8030E93C:
/* 8030E93C 0030A59C 2C 00 00 03 */ cmpwi r0, 3
/* 8030E940 0030A5A0 40 80 00 44 */ bge lbl_8030E984
/* 8030E944 0030A5A4 48 00 00 2C */ b lbl_8030E970
lbl_8030E948:
/* 8030E948 0030A5A8 57 A4 04 3E */ clrlwi r4, r29, 0x10
/* 8030E94C 0030A5AC 38 A1 00 0C */ addi r5, r1, 0xc
/* 8030E950 0030A5B0 38 C1 00 08 */ addi r6, r1, 8
/* 8030E954 0030A5B4 48 00 2A 01 */ bl VFiPFFAT12_ReadFATEntryPage
/* 8030E958 0030A5B8 48 00 00 30 */ b lbl_8030E988
lbl_8030E95C:
/* 8030E95C 0030A5BC 7F A4 EB 78 */ mr r4, r29
/* 8030E960 0030A5C0 38 A1 00 0C */ addi r5, r1, 0xc
/* 8030E964 0030A5C4 38 C1 00 08 */ addi r6, r1, 8
/* 8030E968 0030A5C8 48 00 34 55 */ bl VFiPFFAT16_ReadFATEntryPage
/* 8030E96C 0030A5CC 48 00 00 1C */ b lbl_8030E988
lbl_8030E970:
/* 8030E970 0030A5D0 7F A4 EB 78 */ mr r4, r29
/* 8030E974 0030A5D4 38 A1 00 0C */ addi r5, r1, 0xc
/* 8030E978 0030A5D8 38 C1 00 08 */ addi r6, r1, 8
/* 8030E97C 0030A5DC 48 00 39 C9 */ bl VFiPFFAT32_ReadFATEntryPage
/* 8030E980 0030A5E0 48 00 00 08 */ b lbl_8030E988
lbl_8030E984:
/* 8030E984 0030A5E4 38 60 00 0F */ li r3, 0xf
lbl_8030E988:
/* 8030E988 0030A5E8 2C 03 00 00 */ cmpwi r3, 0
/* 8030E98C 0030A5EC 41 82 00 08 */ beq lbl_8030E994
/* 8030E990 0030A5F0 48 00 00 80 */ b lbl_8030EA10
lbl_8030E994:
/* 8030E994 0030A5F4 83 A1 00 0C */ lwz r29, 0xc(r1)
/* 8030E998 0030A5F8 2C 1D 00 00 */ cmpwi r29, 0
/* 8030E99C 0030A5FC 40 82 00 0C */ bne lbl_8030E9A8
/* 8030E9A0 0030A600 38 60 00 0D */ li r3, 0xd
/* 8030E9A4 0030A604 48 00 00 6C */ b lbl_8030EA10
lbl_8030E9A8:
/* 8030E9A8 0030A608 3B 9C FF FF */ addi r28, r28, -1
lbl_8030E9AC:
/* 8030E9AC 0030A60C 2C 1C 00 00 */ cmpwi r28, 0
/* 8030E9B0 0030A610 40 82 FF 6C */ bne lbl_8030E91C
/* 8030E9B4 0030A614 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 8030E9B8 0030A618 2C 05 00 00 */ cmpwi r5, 0
/* 8030E9BC 0030A61C 40 82 00 0C */ bne lbl_8030E9C8
/* 8030E9C0 0030A620 38 60 00 0D */ li r3, 0xd
/* 8030E9C4 0030A624 48 00 00 4C */ b lbl_8030EA10
lbl_8030E9C8:
/* 8030E9C8 0030A628 80 7B 00 34 */ lwz r3, 0x34(r27)
/* 8030E9CC 0030A62C 3C 80 80 40 */ lis r4, lbl_803FE280@ha
/* 8030E9D0 0030A630 38 84 E2 80 */ addi r4, r4, lbl_803FE280@l
/* 8030E9D4 0030A634 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8030E9D8 0030A638 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8030E9DC 0030A63C 7C 64 02 14 */ add r3, r4, r0
/* 8030E9E0 0030A640 80 03 00 08 */ lwz r0, 8(r3)
/* 8030E9E4 0030A644 7C 05 00 40 */ cmplw r5, r0
/* 8030E9E8 0030A648 40 82 00 0C */ bne lbl_8030E9F4
/* 8030E9EC 0030A64C 38 60 00 00 */ li r3, 0
/* 8030E9F0 0030A650 48 00 00 20 */ b lbl_8030EA10
lbl_8030E9F4:
/* 8030E9F4 0030A654 90 BE 00 00 */ stw r5, 0(r30)
/* 8030E9F8 0030A658 38 00 00 01 */ li r0, 1
/* 8030E9FC 0030A65C 90 1F 00 00 */ stw r0, 0(r31)
/* 8030EA00 0030A660 48 00 00 0C */ b lbl_8030EA0C
lbl_8030EA04:
/* 8030EA04 0030A664 38 60 00 00 */ li r3, 0
/* 8030EA08 0030A668 48 00 00 08 */ b lbl_8030EA10
lbl_8030EA0C:
/* 8030EA0C 0030A66C 38 60 00 00 */ li r3, 0
lbl_8030EA10:
/* 8030EA10 0030A670 39 61 00 30 */ addi r11, r1, 0x30
/* 8030EA14 0030A674 4B EB 87 61 */ bl _restgpr_27
/* 8030EA18 0030A678 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8030EA1C 0030A67C 7C 08 03 A6 */ mtlr r0
/* 8030EA20 0030A680 38 21 00 30 */ addi r1, r1, 0x30
/* 8030EA24 0030A684 4E 80 00 20 */ blr
.global VFiPFFAT_FindClusterLinkPage
VFiPFFAT_FindClusterLinkPage:
/* 8030EA28 0030A688 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8030EA2C 0030A68C 7C 08 02 A6 */ mflr r0
/* 8030EA30 0030A690 39 00 FF FF */ li r8, -1
/* 8030EA34 0030A694 90 01 00 24 */ stw r0, 0x24(r1)
/* 8030EA38 0030A698 38 00 00 00 */ li r0, 0
/* 8030EA3C 0030A69C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8030EA40 0030A6A0 7C DF 33 78 */ mr r31, r6
/* 8030EA44 0030A6A4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8030EA48 0030A6A8 7C BE 2B 78 */ mr r30, r5
/* 8030EA4C 0030A6AC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8030EA50 0030A6B0 93 81 00 10 */ stw r28, 0x10(r1)
/* 8030EA54 0030A6B4 7C 7C 1B 78 */ mr r28, r3
/* 8030EA58 0030A6B8 90 E1 00 08 */ stw r7, 8(r1)
/* 8030EA5C 0030A6BC 91 01 00 0C */ stw r8, 0xc(r1)
/* 8030EA60 0030A6C0 90 06 00 00 */ stw r0, 0(r6)
/* 8030EA64 0030A6C4 80 03 00 24 */ lwz r0, 0x24(r3)
/* 8030EA68 0030A6C8 2C 00 00 00 */ cmpwi r0, 0
/* 8030EA6C 0030A6CC 40 82 00 0C */ bne lbl_8030EA78
/* 8030EA70 0030A6D0 38 60 00 00 */ li r3, 0
/* 8030EA74 0030A6D4 48 00 01 40 */ b lbl_8030EBB4
lbl_8030EA78:
/* 8030EA78 0030A6D8 80 03 00 2C */ lwz r0, 0x2c(r3)
/* 8030EA7C 0030A6DC 7C 00 20 40 */ cmplw r0, r4
/* 8030EA80 0030A6E0 41 80 01 28 */ blt lbl_8030EBA8
/* 8030EA84 0030A6E4 A0 E3 00 20 */ lhz r7, 0x20(r3)
/* 8030EA88 0030A6E8 38 07 00 01 */ addi r0, r7, 1
/* 8030EA8C 0030A6EC 7C E4 03 96 */ divwu r7, r4, r0
/* 8030EA90 0030A6F0 7C 07 01 D6 */ mullw r0, r7, r0
/* 8030EA94 0030A6F4 7F A0 20 51 */ subf. r29, r0, r4
/* 8030EA98 0030A6F8 40 82 00 20 */ bne lbl_8030EAB8
/* 8030EA9C 0030A6FC 80 83 00 1C */ lwz r4, 0x1c(r3)
/* 8030EAA0 0030A700 54 E3 10 3A */ slwi r3, r7, 2
/* 8030EAA4 0030A704 38 00 00 01 */ li r0, 1
/* 8030EAA8 0030A708 7C 64 18 2E */ lwzx r3, r4, r3
/* 8030EAAC 0030A70C 90 65 00 00 */ stw r3, 0(r5)
/* 8030EAB0 0030A710 90 06 00 00 */ stw r0, 0(r6)
/* 8030EAB4 0030A714 48 00 00 FC */ b lbl_8030EBB0
lbl_8030EAB8:
/* 8030EAB8 0030A718 80 63 00 1C */ lwz r3, 0x1c(r3)
/* 8030EABC 0030A71C 54 E0 10 3A */ slwi r0, r7, 2
/* 8030EAC0 0030A720 7C 83 00 2E */ lwzx r4, r3, r0
/* 8030EAC4 0030A724 48 00 00 8C */ b lbl_8030EB50
lbl_8030EAC8:
/* 8030EAC8 0030A728 80 7C 00 34 */ lwz r3, 0x34(r28)
/* 8030EACC 0030A72C 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8030EAD0 0030A730 2C 00 00 01 */ cmpwi r0, 1
/* 8030EAD4 0030A734 41 82 00 34 */ beq lbl_8030EB08
/* 8030EAD8 0030A738 40 80 00 10 */ bge lbl_8030EAE8
/* 8030EADC 0030A73C 2C 00 00 00 */ cmpwi r0, 0
/* 8030EAE0 0030A740 40 80 00 14 */ bge lbl_8030EAF4
/* 8030EAE4 0030A744 48 00 00 44 */ b lbl_8030EB28
lbl_8030EAE8:
/* 8030EAE8 0030A748 2C 00 00 03 */ cmpwi r0, 3
/* 8030EAEC 0030A74C 40 80 00 3C */ bge lbl_8030EB28
/* 8030EAF0 0030A750 48 00 00 28 */ b lbl_8030EB18
lbl_8030EAF4:
/* 8030EAF4 0030A754 54 84 04 3E */ clrlwi r4, r4, 0x10
/* 8030EAF8 0030A758 38 A1 00 0C */ addi r5, r1, 0xc
/* 8030EAFC 0030A75C 38 C1 00 08 */ addi r6, r1, 8
/* 8030EB00 0030A760 48 00 28 55 */ bl VFiPFFAT12_ReadFATEntryPage
/* 8030EB04 0030A764 48 00 00 28 */ b lbl_8030EB2C
lbl_8030EB08:
/* 8030EB08 0030A768 38 A1 00 0C */ addi r5, r1, 0xc
/* 8030EB0C 0030A76C 38 C1 00 08 */ addi r6, r1, 8
/* 8030EB10 0030A770 48 00 32 AD */ bl VFiPFFAT16_ReadFATEntryPage
/* 8030EB14 0030A774 48 00 00 18 */ b lbl_8030EB2C
lbl_8030EB18:
/* 8030EB18 0030A778 38 A1 00 0C */ addi r5, r1, 0xc
/* 8030EB1C 0030A77C 38 C1 00 08 */ addi r6, r1, 8
/* 8030EB20 0030A780 48 00 38 25 */ bl VFiPFFAT32_ReadFATEntryPage
/* 8030EB24 0030A784 48 00 00 08 */ b lbl_8030EB2C
lbl_8030EB28:
/* 8030EB28 0030A788 38 60 00 0F */ li r3, 0xf
lbl_8030EB2C:
/* 8030EB2C 0030A78C 2C 03 00 00 */ cmpwi r3, 0
/* 8030EB30 0030A790 41 82 00 08 */ beq lbl_8030EB38
/* 8030EB34 0030A794 48 00 00 80 */ b lbl_8030EBB4
lbl_8030EB38:
/* 8030EB38 0030A798 80 81 00 0C */ lwz r4, 0xc(r1)
/* 8030EB3C 0030A79C 2C 04 00 00 */ cmpwi r4, 0
/* 8030EB40 0030A7A0 40 82 00 0C */ bne lbl_8030EB4C
/* 8030EB44 0030A7A4 38 60 00 0D */ li r3, 0xd
/* 8030EB48 0030A7A8 48 00 00 6C */ b lbl_8030EBB4
lbl_8030EB4C:
/* 8030EB4C 0030A7AC 3B BD FF FF */ addi r29, r29, -1
lbl_8030EB50:
/* 8030EB50 0030A7B0 2C 1D 00 00 */ cmpwi r29, 0
/* 8030EB54 0030A7B4 40 82 FF 74 */ bne lbl_8030EAC8
/* 8030EB58 0030A7B8 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 8030EB5C 0030A7BC 2C 05 00 00 */ cmpwi r5, 0
/* 8030EB60 0030A7C0 40 82 00 0C */ bne lbl_8030EB6C
/* 8030EB64 0030A7C4 38 60 00 0D */ li r3, 0xd
/* 8030EB68 0030A7C8 48 00 00 4C */ b lbl_8030EBB4
lbl_8030EB6C:
/* 8030EB6C 0030A7CC 80 7C 00 34 */ lwz r3, 0x34(r28)
/* 8030EB70 0030A7D0 3C 80 80 40 */ lis r4, lbl_803FE280@ha
/* 8030EB74 0030A7D4 38 84 E2 80 */ addi r4, r4, lbl_803FE280@l
/* 8030EB78 0030A7D8 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8030EB7C 0030A7DC 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8030EB80 0030A7E0 7C 64 02 14 */ add r3, r4, r0
/* 8030EB84 0030A7E4 80 03 00 08 */ lwz r0, 8(r3)
/* 8030EB88 0030A7E8 7C 05 00 40 */ cmplw r5, r0
/* 8030EB8C 0030A7EC 40 82 00 0C */ bne lbl_8030EB98
/* 8030EB90 0030A7F0 38 60 00 00 */ li r3, 0
/* 8030EB94 0030A7F4 48 00 00 20 */ b lbl_8030EBB4
lbl_8030EB98:
/* 8030EB98 0030A7F8 90 BE 00 00 */ stw r5, 0(r30)
/* 8030EB9C 0030A7FC 38 00 00 01 */ li r0, 1
/* 8030EBA0 0030A800 90 1F 00 00 */ stw r0, 0(r31)
/* 8030EBA4 0030A804 48 00 00 0C */ b lbl_8030EBB0
lbl_8030EBA8:
/* 8030EBA8 0030A808 38 60 00 00 */ li r3, 0
/* 8030EBAC 0030A80C 48 00 00 08 */ b lbl_8030EBB4
lbl_8030EBB0:
/* 8030EBB0 0030A810 38 60 00 00 */ li r3, 0
lbl_8030EBB4:
/* 8030EBB4 0030A814 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8030EBB8 0030A818 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8030EBBC 0030A81C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8030EBC0 0030A820 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8030EBC4 0030A824 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8030EBC8 0030A828 7C 08 03 A6 */ mtlr r0
/* 8030EBCC 0030A82C 38 21 00 20 */ addi r1, r1, 0x20
/* 8030EBD0 0030A830 4E 80 00 20 */ blr
.global VFiPFFAT_ReadClusterPage
VFiPFFAT_ReadClusterPage:
/* 8030EBD4 0030A834 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8030EBD8 0030A838 7C 08 02 A6 */ mflr r0
/* 8030EBDC 0030A83C 90 01 00 24 */ stw r0, 0x24(r1)
/* 8030EBE0 0030A840 39 61 00 20 */ addi r11, r1, 0x20
/* 8030EBE4 0030A844 4B EB 85 41 */ bl _savegpr_26
/* 8030EBE8 0030A848 38 00 FF FF */ li r0, -1
/* 8030EBEC 0030A84C 7C 7E 1B 78 */ mr r30, r3
/* 8030EBF0 0030A850 90 06 00 00 */ stw r0, 0(r6)
/* 8030EBF4 0030A854 7C 9A 23 78 */ mr r26, r4
/* 8030EBF8 0030A858 7C BF 2B 78 */ mr r31, r5
/* 8030EBFC 0030A85C 7C DB 33 78 */ mr r27, r6
/* 8030EC00 0030A860 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8030EC04 0030A864 7C FC 3B 78 */ mr r28, r7
/* 8030EC08 0030A868 7D 1D 43 78 */ mr r29, r8
/* 8030EC0C 0030A86C 2C 00 00 00 */ cmpwi r0, 0
/* 8030EC10 0030A870 41 82 00 30 */ beq lbl_8030EC40
/* 8030EC14 0030A874 80 07 00 00 */ lwz r0, 0(r7)
/* 8030EC18 0030A878 28 00 00 01 */ cmplwi r0, 1
/* 8030EC1C 0030A87C 40 82 00 24 */ bne lbl_8030EC40
/* 8030EC20 0030A880 80 E8 00 00 */ lwz r7, 0(r8)
/* 8030EC24 0030A884 7F E4 FB 78 */ mr r4, r31
/* 8030EC28 0030A888 7F 65 DB 78 */ mr r5, r27
/* 8030EC2C 0030A88C 7F 86 E3 78 */ mr r6, r28
/* 8030EC30 0030A890 4B FF FD F9 */ bl VFiPFFAT_FindClusterLinkPage
/* 8030EC34 0030A894 2C 03 00 00 */ cmpwi r3, 0
/* 8030EC38 0030A898 41 82 00 08 */ beq lbl_8030EC40
/* 8030EC3C 0030A89C 48 00 01 4C */ b lbl_8030ED88
lbl_8030EC40:
/* 8030EC40 0030A8A0 80 1E 00 1C */ lwz r0, 0x1c(r30)
/* 8030EC44 0030A8A4 2C 00 00 00 */ cmpwi r0, 0
/* 8030EC48 0030A8A8 41 82 00 10 */ beq lbl_8030EC58
/* 8030EC4C 0030A8AC 80 1C 00 00 */ lwz r0, 0(r28)
/* 8030EC50 0030A8B0 2C 00 00 00 */ cmpwi r0, 0
/* 8030EC54 0030A8B4 40 82 01 30 */ bne lbl_8030ED84
lbl_8030EC58:
/* 8030EC58 0030A8B8 80 7E 00 34 */ lwz r3, 0x34(r30)
/* 8030EC5C 0030A8BC 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8030EC60 0030A8C0 2C 00 00 01 */ cmpwi r0, 1
/* 8030EC64 0030A8C4 41 82 00 34 */ beq lbl_8030EC98
/* 8030EC68 0030A8C8 40 80 00 10 */ bge lbl_8030EC78
/* 8030EC6C 0030A8CC 2C 00 00 00 */ cmpwi r0, 0
/* 8030EC70 0030A8D0 40 80 00 14 */ bge lbl_8030EC84
/* 8030EC74 0030A8D4 48 00 00 4C */ b lbl_8030ECC0
lbl_8030EC78:
/* 8030EC78 0030A8D8 2C 00 00 03 */ cmpwi r0, 3
/* 8030EC7C 0030A8DC 40 80 00 44 */ bge lbl_8030ECC0
/* 8030EC80 0030A8E0 48 00 00 2C */ b lbl_8030ECAC
lbl_8030EC84:
/* 8030EC84 0030A8E4 7F 65 DB 78 */ mr r5, r27
/* 8030EC88 0030A8E8 7F A6 EB 78 */ mr r6, r29
/* 8030EC8C 0030A8EC 57 44 04 3E */ clrlwi r4, r26, 0x10
/* 8030EC90 0030A8F0 48 00 26 C5 */ bl VFiPFFAT12_ReadFATEntryPage
/* 8030EC94 0030A8F4 48 00 00 30 */ b lbl_8030ECC4
lbl_8030EC98:
/* 8030EC98 0030A8F8 7F 44 D3 78 */ mr r4, r26
/* 8030EC9C 0030A8FC 7F 65 DB 78 */ mr r5, r27
/* 8030ECA0 0030A900 7F A6 EB 78 */ mr r6, r29
/* 8030ECA4 0030A904 48 00 31 19 */ bl VFiPFFAT16_ReadFATEntryPage
/* 8030ECA8 0030A908 48 00 00 1C */ b lbl_8030ECC4
lbl_8030ECAC:
/* 8030ECAC 0030A90C 7F 44 D3 78 */ mr r4, r26
/* 8030ECB0 0030A910 7F 65 DB 78 */ mr r5, r27
/* 8030ECB4 0030A914 7F A6 EB 78 */ mr r6, r29
/* 8030ECB8 0030A918 48 00 36 8D */ bl VFiPFFAT32_ReadFATEntryPage
/* 8030ECBC 0030A91C 48 00 00 08 */ b lbl_8030ECC4
lbl_8030ECC0:
/* 8030ECC0 0030A920 38 60 00 0F */ li r3, 0xf
lbl_8030ECC4:
/* 8030ECC4 0030A924 2C 03 00 00 */ cmpwi r3, 0
/* 8030ECC8 0030A928 41 82 00 08 */ beq lbl_8030ECD0
/* 8030ECCC 0030A92C 48 00 00 BC */ b lbl_8030ED88
lbl_8030ECD0:
/* 8030ECD0 0030A930 80 DB 00 00 */ lwz r6, 0(r27)
/* 8030ECD4 0030A934 2C 06 00 00 */ cmpwi r6, 0
/* 8030ECD8 0030A938 40 82 00 0C */ bne lbl_8030ECE4
/* 8030ECDC 0030A93C 38 60 00 0D */ li r3, 0xd
/* 8030ECE0 0030A940 48 00 00 A8 */ b lbl_8030ED88
lbl_8030ECE4:
/* 8030ECE4 0030A944 3C 06 00 01 */ addis r0, r6, 1
/* 8030ECE8 0030A948 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030ECEC 0030A94C 40 82 00 0C */ bne lbl_8030ECF8
/* 8030ECF0 0030A950 38 60 00 06 */ li r3, 6
/* 8030ECF4 0030A954 48 00 00 94 */ b lbl_8030ED88
lbl_8030ECF8:
/* 8030ECF8 0030A958 80 BE 00 1C */ lwz r5, 0x1c(r30)
/* 8030ECFC 0030A95C 2C 05 00 00 */ cmpwi r5, 0
/* 8030ED00 0030A960 41 82 00 84 */ beq lbl_8030ED84
/* 8030ED04 0030A964 80 7E 00 34 */ lwz r3, 0x34(r30)
/* 8030ED08 0030A968 3C 80 80 40 */ lis r4, lbl_803FE280@ha
/* 8030ED0C 0030A96C 38 84 E2 80 */ addi r4, r4, lbl_803FE280@l
/* 8030ED10 0030A970 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8030ED14 0030A974 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8030ED18 0030A978 7C 64 02 14 */ add r3, r4, r0
/* 8030ED1C 0030A97C 80 03 00 08 */ lwz r0, 8(r3)
/* 8030ED20 0030A980 7C 06 00 40 */ cmplw r6, r0
/* 8030ED24 0030A984 41 82 00 60 */ beq lbl_8030ED84
/* 8030ED28 0030A988 80 9E 00 24 */ lwz r4, 0x24(r30)
/* 8030ED2C 0030A98C 80 1E 00 28 */ lwz r0, 0x28(r30)
/* 8030ED30 0030A990 7C 00 20 40 */ cmplw r0, r4
/* 8030ED34 0030A994 40 81 00 50 */ ble lbl_8030ED84
/* 8030ED38 0030A998 2C 00 00 00 */ cmpwi r0, 0
/* 8030ED3C 0030A99C 41 82 00 48 */ beq lbl_8030ED84
/* 8030ED40 0030A9A0 A0 7E 00 20 */ lhz r3, 0x20(r30)
/* 8030ED44 0030A9A4 38 03 00 01 */ addi r0, r3, 1
/* 8030ED48 0030A9A8 7C 04 01 D6 */ mullw r0, r4, r0
/* 8030ED4C 0030A9AC 7C 1F 00 40 */ cmplw r31, r0
/* 8030ED50 0030A9B0 40 82 00 24 */ bne lbl_8030ED74
/* 8030ED54 0030A9B4 38 60 00 00 */ li r3, 0
/* 8030ED58 0030A9B8 54 80 10 3A */ slwi r0, r4, 2
/* 8030ED5C 0030A9BC B0 7E 00 22 */ sth r3, 0x22(r30)
/* 8030ED60 0030A9C0 7C C5 01 2E */ stwx r6, r5, r0
/* 8030ED64 0030A9C4 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 8030ED68 0030A9C8 38 03 00 01 */ addi r0, r3, 1
/* 8030ED6C 0030A9CC 90 1E 00 24 */ stw r0, 0x24(r30)
/* 8030ED70 0030A9D0 48 00 00 10 */ b lbl_8030ED80
lbl_8030ED74:
/* 8030ED74 0030A9D4 A0 7E 00 22 */ lhz r3, 0x22(r30)
/* 8030ED78 0030A9D8 38 03 00 01 */ addi r0, r3, 1
/* 8030ED7C 0030A9DC B0 1E 00 22 */ sth r0, 0x22(r30)
lbl_8030ED80:
/* 8030ED80 0030A9E0 93 FE 00 2C */ stw r31, 0x2c(r30)
lbl_8030ED84:
/* 8030ED84 0030A9E4 38 60 00 00 */ li r3, 0
lbl_8030ED88:
/* 8030ED88 0030A9E8 39 61 00 20 */ addi r11, r1, 0x20
/* 8030ED8C 0030A9EC 4B EB 83 E5 */ bl _restgpr_26
/* 8030ED90 0030A9F0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8030ED94 0030A9F4 7C 08 03 A6 */ mtlr r0
/* 8030ED98 0030A9F8 38 21 00 20 */ addi r1, r1, 0x20
/* 8030ED9C 0030A9FC 4E 80 00 20 */ blr
.global VFiPFFAT_WriteCluster
VFiPFFAT_WriteCluster:
/* 8030EDA0 0030AA00 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8030EDA4 0030AA04 7C 08 02 A6 */ mflr r0
/* 8030EDA8 0030AA08 90 01 00 24 */ stw r0, 0x24(r1)
/* 8030EDAC 0030AA0C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8030EDB0 0030AA10 7C BF 2B 78 */ mr r31, r5
/* 8030EDB4 0030AA14 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8030EDB8 0030AA18 7C 9E 23 78 */ mr r30, r4
/* 8030EDBC 0030AA1C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8030EDC0 0030AA20 7C 7D 1B 78 */ mr r29, r3
/* 8030EDC4 0030AA24 93 81 00 10 */ stw r28, 0x10(r1)
/* 8030EDC8 0030AA28 7C DC 33 78 */ mr r28, r6
/* 8030EDCC 0030AA2C 90 E1 00 08 */ stw r7, 8(r1)
/* 8030EDD0 0030AA30 80 63 00 34 */ lwz r3, 0x34(r3)
/* 8030EDD4 0030AA34 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8030EDD8 0030AA38 2C 00 00 01 */ cmpwi r0, 1
/* 8030EDDC 0030AA3C 41 82 00 40 */ beq lbl_8030EE1C
/* 8030EDE0 0030AA40 40 80 00 10 */ bge lbl_8030EDF0
/* 8030EDE4 0030AA44 2C 00 00 00 */ cmpwi r0, 0
/* 8030EDE8 0030AA48 40 80 00 14 */ bge lbl_8030EDFC
/* 8030EDEC 0030AA4C 48 00 00 70 */ b lbl_8030EE5C
lbl_8030EDF0:
/* 8030EDF0 0030AA50 2C 00 00 03 */ cmpwi r0, 3
/* 8030EDF4 0030AA54 40 80 00 68 */ bge lbl_8030EE5C
/* 8030EDF8 0030AA58 48 00 00 40 */ b lbl_8030EE38
lbl_8030EDFC:
/* 8030EDFC 0030AA5C 28 06 0F FF */ cmplwi r6, 0xfff
/* 8030EE00 0030AA60 40 81 00 0C */ ble lbl_8030EE0C
/* 8030EE04 0030AA64 38 60 00 10 */ li r3, 0x10
/* 8030EE08 0030AA68 48 00 00 58 */ b lbl_8030EE60
lbl_8030EE0C:
/* 8030EE0C 0030AA6C 54 84 04 3E */ clrlwi r4, r4, 0x10
/* 8030EE10 0030AA70 54 C5 04 3E */ clrlwi r5, r6, 0x10
/* 8030EE14 0030AA74 48 00 28 15 */ bl VFiPFFAT12_WriteFATEntry
/* 8030EE18 0030AA78 48 00 00 48 */ b lbl_8030EE60
lbl_8030EE1C:
/* 8030EE1C 0030AA7C 28 06 FF FF */ cmplwi r6, 0xffff
/* 8030EE20 0030AA80 40 81 00 0C */ ble lbl_8030EE2C
/* 8030EE24 0030AA84 38 60 00 10 */ li r3, 0x10
/* 8030EE28 0030AA88 48 00 00 38 */ b lbl_8030EE60
lbl_8030EE2C:
/* 8030EE2C 0030AA8C 7F 85 E3 78 */ mr r5, r28
/* 8030EE30 0030AA90 48 00 31 49 */ bl VFiPFFAT16_WriteFATEntry
/* 8030EE34 0030AA94 48 00 00 2C */ b lbl_8030EE60
lbl_8030EE38:
/* 8030EE38 0030AA98 3C A0 10 00 */ lis r5, 0x0FFFFFFF@ha
/* 8030EE3C 0030AA9C 38 05 FF FF */ addi r0, r5, 0x0FFFFFFF@l
/* 8030EE40 0030AAA0 7C 06 00 40 */ cmplw r6, r0
/* 8030EE44 0030AAA4 40 81 00 0C */ ble lbl_8030EE50
/* 8030EE48 0030AAA8 38 60 00 10 */ li r3, 0x10
/* 8030EE4C 0030AAAC 48 00 00 14 */ b lbl_8030EE60
lbl_8030EE50:
/* 8030EE50 0030AAB0 7F 85 E3 78 */ mr r5, r28
/* 8030EE54 0030AAB4 48 00 36 BD */ bl VFiPFFAT32_WriteFATEntry
/* 8030EE58 0030AAB8 48 00 00 08 */ b lbl_8030EE60
lbl_8030EE5C:
/* 8030EE5C 0030AABC 38 60 00 0F */ li r3, 0xf
lbl_8030EE60:
/* 8030EE60 0030AAC0 2C 03 00 00 */ cmpwi r3, 0
/* 8030EE64 0030AAC4 41 82 00 08 */ beq lbl_8030EE6C
/* 8030EE68 0030AAC8 48 00 01 3C */ b lbl_8030EFA4
lbl_8030EE6C:
/* 8030EE6C 0030AACC 80 BD 00 1C */ lwz r5, 0x1c(r29)
/* 8030EE70 0030AAD0 2C 05 00 00 */ cmpwi r5, 0
/* 8030EE74 0030AAD4 41 82 01 2C */ beq lbl_8030EFA0
/* 8030EE78 0030AAD8 80 01 00 08 */ lwz r0, 8(r1)
/* 8030EE7C 0030AADC 28 00 00 01 */ cmplwi r0, 1
/* 8030EE80 0030AAE0 40 82 01 20 */ bne lbl_8030EFA0
/* 8030EE84 0030AAE4 2C 1C 00 00 */ cmpwi r28, 0
/* 8030EE88 0030AAE8 40 82 00 68 */ bne lbl_8030EEF0
/* 8030EE8C 0030AAEC A0 7D 00 20 */ lhz r3, 0x20(r29)
/* 8030EE90 0030AAF0 80 1D 00 28 */ lwz r0, 0x28(r29)
/* 8030EE94 0030AAF4 38 83 00 01 */ addi r4, r3, 1
/* 8030EE98 0030AAF8 7C 7F 23 96 */ divwu r3, r31, r4
/* 8030EE9C 0030AAFC 7C 00 18 40 */ cmplw r0, r3
/* 8030EEA0 0030AB00 41 80 01 00 */ blt lbl_8030EFA0
/* 8030EEA4 0030AB04 7C 03 21 D6 */ mullw r0, r3, r4
/* 8030EEA8 0030AB08 7C 00 F8 51 */ subf. r0, r0, r31
/* 8030EEAC 0030AB0C 40 82 00 10 */ bne lbl_8030EEBC
/* 8030EEB0 0030AB10 54 60 10 3A */ slwi r0, r3, 2
/* 8030EEB4 0030AB14 38 60 00 00 */ li r3, 0
/* 8030EEB8 0030AB18 7C 65 01 2E */ stwx r3, r5, r0
lbl_8030EEBC:
/* 8030EEBC 0030AB1C 80 1D 00 2C */ lwz r0, 0x2c(r29)
/* 8030EEC0 0030AB20 7C 00 F8 40 */ cmplw r0, r31
/* 8030EEC4 0030AB24 41 80 00 DC */ blt lbl_8030EFA0
/* 8030EEC8 0030AB28 A0 7D 00 20 */ lhz r3, 0x20(r29)
/* 8030EECC 0030AB2C 38 9F FF FF */ addi r4, r31, -1
/* 8030EED0 0030AB30 90 9D 00 2C */ stw r4, 0x2c(r29)
/* 8030EED4 0030AB34 38 03 00 01 */ addi r0, r3, 1
/* 8030EED8 0030AB38 7C 64 03 96 */ divwu r3, r4, r0
/* 8030EEDC 0030AB3C 7C 03 01 D6 */ mullw r0, r3, r0
/* 8030EEE0 0030AB40 90 7D 00 24 */ stw r3, 0x24(r29)
/* 8030EEE4 0030AB44 7C 00 20 50 */ subf r0, r0, r4
/* 8030EEE8 0030AB48 B0 1D 00 22 */ sth r0, 0x22(r29)
/* 8030EEEC 0030AB4C 48 00 00 B4 */ b lbl_8030EFA0
lbl_8030EEF0:
/* 8030EEF0 0030AB50 80 7D 00 34 */ lwz r3, 0x34(r29)
/* 8030EEF4 0030AB54 3C 80 80 40 */ lis r4, lbl_803FE280@ha
/* 8030EEF8 0030AB58 38 84 E2 80 */ addi r4, r4, lbl_803FE280@l
/* 8030EEFC 0030AB5C 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8030EF00 0030AB60 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8030EF04 0030AB64 7C 64 02 14 */ add r3, r4, r0
/* 8030EF08 0030AB68 80 03 00 08 */ lwz r0, 8(r3)
/* 8030EF0C 0030AB6C 7C 1E 00 40 */ cmplw r30, r0
/* 8030EF10 0030AB70 41 82 00 90 */ beq lbl_8030EFA0
/* 8030EF14 0030AB74 7F A3 EB 78 */ mr r3, r29
/* 8030EF18 0030AB78 7F E4 FB 78 */ mr r4, r31
/* 8030EF1C 0030AB7C 38 A1 00 0C */ addi r5, r1, 0xc
/* 8030EF20 0030AB80 38 C1 00 08 */ addi r6, r1, 8
/* 8030EF24 0030AB84 4B FF F9 49 */ bl VFiPFFAT_FindClusterLink
/* 8030EF28 0030AB88 2C 03 00 00 */ cmpwi r3, 0
/* 8030EF2C 0030AB8C 41 82 00 08 */ beq lbl_8030EF34
/* 8030EF30 0030AB90 48 00 00 74 */ b lbl_8030EFA4
lbl_8030EF34:
/* 8030EF34 0030AB94 80 01 00 08 */ lwz r0, 8(r1)
/* 8030EF38 0030AB98 2C 00 00 00 */ cmpwi r0, 0
/* 8030EF3C 0030AB9C 40 82 00 64 */ bne lbl_8030EFA0
/* 8030EF40 0030ABA0 80 9D 00 24 */ lwz r4, 0x24(r29)
/* 8030EF44 0030ABA4 80 1D 00 28 */ lwz r0, 0x28(r29)
/* 8030EF48 0030ABA8 7C 00 20 40 */ cmplw r0, r4
/* 8030EF4C 0030ABAC 40 81 00 54 */ ble lbl_8030EFA0
/* 8030EF50 0030ABB0 2C 00 00 00 */ cmpwi r0, 0
/* 8030EF54 0030ABB4 41 82 00 4C */ beq lbl_8030EFA0
/* 8030EF58 0030ABB8 A0 7D 00 20 */ lhz r3, 0x20(r29)
/* 8030EF5C 0030ABBC 38 03 00 01 */ addi r0, r3, 1
/* 8030EF60 0030ABC0 7C 04 01 D6 */ mullw r0, r4, r0
/* 8030EF64 0030ABC4 7C 1F 00 40 */ cmplw r31, r0
/* 8030EF68 0030ABC8 40 82 00 28 */ bne lbl_8030EF90
/* 8030EF6C 0030ABCC 38 00 00 00 */ li r0, 0
/* 8030EF70 0030ABD0 80 7D 00 1C */ lwz r3, 0x1c(r29)
/* 8030EF74 0030ABD4 B0 1D 00 22 */ sth r0, 0x22(r29)
/* 8030EF78 0030ABD8 54 80 10 3A */ slwi r0, r4, 2
/* 8030EF7C 0030ABDC 7F C3 01 2E */ stwx r30, r3, r0
/* 8030EF80 0030ABE0 80 7D 00 24 */ lwz r3, 0x24(r29)
/* 8030EF84 0030ABE4 38 03 00 01 */ addi r0, r3, 1
/* 8030EF88 0030ABE8 90 1D 00 24 */ stw r0, 0x24(r29)
/* 8030EF8C 0030ABEC 48 00 00 10 */ b lbl_8030EF9C
lbl_8030EF90:
/* 8030EF90 0030ABF0 A0 7D 00 22 */ lhz r3, 0x22(r29)
/* 8030EF94 0030ABF4 38 03 00 01 */ addi r0, r3, 1
/* 8030EF98 0030ABF8 B0 1D 00 22 */ sth r0, 0x22(r29)
lbl_8030EF9C:
/* 8030EF9C 0030ABFC 93 FD 00 2C */ stw r31, 0x2c(r29)
lbl_8030EFA0:
/* 8030EFA0 0030AC00 38 60 00 00 */ li r3, 0
lbl_8030EFA4:
/* 8030EFA4 0030AC04 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8030EFA8 0030AC08 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8030EFAC 0030AC0C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8030EFB0 0030AC10 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8030EFB4 0030AC14 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8030EFB8 0030AC18 7C 08 03 A6 */ mtlr r0
/* 8030EFBC 0030AC1C 38 21 00 20 */ addi r1, r1, 0x20
/* 8030EFC0 0030AC20 4E 80 00 20 */ blr
.global VFiPFFAT_WriteClusterPage
VFiPFFAT_WriteClusterPage:
/* 8030EFC4 0030AC24 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8030EFC8 0030AC28 7C 08 02 A6 */ mflr r0
/* 8030EFCC 0030AC2C 90 01 00 34 */ stw r0, 0x34(r1)
/* 8030EFD0 0030AC30 39 61 00 30 */ addi r11, r1, 0x30
/* 8030EFD4 0030AC34 4B EB 81 55 */ bl _savegpr_27
/* 8030EFD8 0030AC38 90 E1 00 08 */ stw r7, 8(r1)
/* 8030EFDC 0030AC3C 7C 7D 1B 78 */ mr r29, r3
/* 8030EFE0 0030AC40 7C 9E 23 78 */ mr r30, r4
/* 8030EFE4 0030AC44 7C BF 2B 78 */ mr r31, r5
/* 8030EFE8 0030AC48 80 63 00 34 */ lwz r3, 0x34(r3)
/* 8030EFEC 0030AC4C 7C DB 33 78 */ mr r27, r6
/* 8030EFF0 0030AC50 7D 1C 43 78 */ mr r28, r8
/* 8030EFF4 0030AC54 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8030EFF8 0030AC58 2C 00 00 01 */ cmpwi r0, 1
/* 8030EFFC 0030AC5C 41 82 00 44 */ beq lbl_8030F040
/* 8030F000 0030AC60 40 80 00 10 */ bge lbl_8030F010
/* 8030F004 0030AC64 2C 00 00 00 */ cmpwi r0, 0
/* 8030F008 0030AC68 40 80 00 14 */ bge lbl_8030F01C
/* 8030F00C 0030AC6C 48 00 00 7C */ b lbl_8030F088
lbl_8030F010:
/* 8030F010 0030AC70 2C 00 00 03 */ cmpwi r0, 3
/* 8030F014 0030AC74 40 80 00 74 */ bge lbl_8030F088
/* 8030F018 0030AC78 48 00 00 48 */ b lbl_8030F060
lbl_8030F01C:
/* 8030F01C 0030AC7C 28 06 0F FF */ cmplwi r6, 0xfff
/* 8030F020 0030AC80 40 81 00 0C */ ble lbl_8030F02C
/* 8030F024 0030AC84 38 60 00 10 */ li r3, 0x10
/* 8030F028 0030AC88 48 00 00 64 */ b lbl_8030F08C
lbl_8030F02C:
/* 8030F02C 0030AC8C 54 C5 04 3E */ clrlwi r5, r6, 0x10
/* 8030F030 0030AC90 7F 86 E3 78 */ mr r6, r28
/* 8030F034 0030AC94 54 84 04 3E */ clrlwi r4, r4, 0x10
/* 8030F038 0030AC98 48 00 27 95 */ bl VFiPFFAT12_WriteFATEntryPage
/* 8030F03C 0030AC9C 48 00 00 50 */ b lbl_8030F08C
lbl_8030F040:
/* 8030F040 0030ACA0 28 06 FF FF */ cmplwi r6, 0xffff
/* 8030F044 0030ACA4 40 81 00 0C */ ble lbl_8030F050
/* 8030F048 0030ACA8 38 60 00 10 */ li r3, 0x10
/* 8030F04C 0030ACAC 48 00 00 40 */ b lbl_8030F08C
lbl_8030F050:
/* 8030F050 0030ACB0 7F 65 DB 78 */ mr r5, r27
/* 8030F054 0030ACB4 7F 86 E3 78 */ mr r6, r28
/* 8030F058 0030ACB8 48 00 2F B9 */ bl VFiPFFAT16_WriteFATEntryPage
/* 8030F05C 0030ACBC 48 00 00 30 */ b lbl_8030F08C
lbl_8030F060:
/* 8030F060 0030ACC0 3C A0 10 00 */ lis r5, 0x0FFFFFFF@ha
/* 8030F064 0030ACC4 38 05 FF FF */ addi r0, r5, 0x0FFFFFFF@l
/* 8030F068 0030ACC8 7C 06 00 40 */ cmplw r6, r0
/* 8030F06C 0030ACCC 40 81 00 0C */ ble lbl_8030F078
/* 8030F070 0030ACD0 38 60 00 10 */ li r3, 0x10
/* 8030F074 0030ACD4 48 00 00 18 */ b lbl_8030F08C
lbl_8030F078:
/* 8030F078 0030ACD8 7F 65 DB 78 */ mr r5, r27
/* 8030F07C 0030ACDC 7F 86 E3 78 */ mr r6, r28
/* 8030F080 0030ACE0 48 00 35 B1 */ bl VFiPFFAT32_WriteFATEntryPage
/* 8030F084 0030ACE4 48 00 00 08 */ b lbl_8030F08C
lbl_8030F088:
/* 8030F088 0030ACE8 38 60 00 0F */ li r3, 0xf
lbl_8030F08C:
/* 8030F08C 0030ACEC 2C 03 00 00 */ cmpwi r3, 0
/* 8030F090 0030ACF0 41 82 00 08 */ beq lbl_8030F098
/* 8030F094 0030ACF4 48 00 01 40 */ b lbl_8030F1D4
lbl_8030F098:
/* 8030F098 0030ACF8 80 BD 00 1C */ lwz r5, 0x1c(r29)
/* 8030F09C 0030ACFC 2C 05 00 00 */ cmpwi r5, 0
/* 8030F0A0 0030AD00 41 82 01 30 */ beq lbl_8030F1D0
/* 8030F0A4 0030AD04 80 01 00 08 */ lwz r0, 8(r1)
/* 8030F0A8 0030AD08 28 00 00 01 */ cmplwi r0, 1
/* 8030F0AC 0030AD0C 40 82 01 24 */ bne lbl_8030F1D0
/* 8030F0B0 0030AD10 2C 1B 00 00 */ cmpwi r27, 0
/* 8030F0B4 0030AD14 40 82 00 68 */ bne lbl_8030F11C
/* 8030F0B8 0030AD18 A0 7D 00 20 */ lhz r3, 0x20(r29)
/* 8030F0BC 0030AD1C 80 1D 00 28 */ lwz r0, 0x28(r29)
/* 8030F0C0 0030AD20 38 83 00 01 */ addi r4, r3, 1
/* 8030F0C4 0030AD24 7C 7F 23 96 */ divwu r3, r31, r4
/* 8030F0C8 0030AD28 7C 00 18 40 */ cmplw r0, r3
/* 8030F0CC 0030AD2C 41 80 01 04 */ blt lbl_8030F1D0
/* 8030F0D0 0030AD30 7C 03 21 D6 */ mullw r0, r3, r4
/* 8030F0D4 0030AD34 7C 00 F8 51 */ subf. r0, r0, r31
/* 8030F0D8 0030AD38 40 82 00 10 */ bne lbl_8030F0E8
/* 8030F0DC 0030AD3C 54 60 10 3A */ slwi r0, r3, 2
/* 8030F0E0 0030AD40 38 60 00 00 */ li r3, 0
/* 8030F0E4 0030AD44 7C 65 01 2E */ stwx r3, r5, r0
lbl_8030F0E8:
/* 8030F0E8 0030AD48 80 1D 00 2C */ lwz r0, 0x2c(r29)
/* 8030F0EC 0030AD4C 7C 00 F8 40 */ cmplw r0, r31
/* 8030F0F0 0030AD50 41 80 00 E0 */ blt lbl_8030F1D0
/* 8030F0F4 0030AD54 A0 7D 00 20 */ lhz r3, 0x20(r29)
/* 8030F0F8 0030AD58 38 9F FF FF */ addi r4, r31, -1
/* 8030F0FC 0030AD5C 90 9D 00 2C */ stw r4, 0x2c(r29)
/* 8030F100 0030AD60 38 03 00 01 */ addi r0, r3, 1
/* 8030F104 0030AD64 7C 64 03 96 */ divwu r3, r4, r0
/* 8030F108 0030AD68 7C 03 01 D6 */ mullw r0, r3, r0
/* 8030F10C 0030AD6C 90 7D 00 24 */ stw r3, 0x24(r29)
/* 8030F110 0030AD70 7C 00 20 50 */ subf r0, r0, r4
/* 8030F114 0030AD74 B0 1D 00 22 */ sth r0, 0x22(r29)
/* 8030F118 0030AD78 48 00 00 B8 */ b lbl_8030F1D0
lbl_8030F11C:
/* 8030F11C 0030AD7C 80 7D 00 34 */ lwz r3, 0x34(r29)
/* 8030F120 0030AD80 3C 80 80 40 */ lis r4, lbl_803FE280@ha
/* 8030F124 0030AD84 38 84 E2 80 */ addi r4, r4, lbl_803FE280@l
/* 8030F128 0030AD88 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8030F12C 0030AD8C 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8030F130 0030AD90 7C 64 02 14 */ add r3, r4, r0
/* 8030F134 0030AD94 80 03 00 08 */ lwz r0, 8(r3)
/* 8030F138 0030AD98 7C 1E 00 40 */ cmplw r30, r0
/* 8030F13C 0030AD9C 41 82 00 94 */ beq lbl_8030F1D0
/* 8030F140 0030ADA0 80 FC 00 00 */ lwz r7, 0(r28)
/* 8030F144 0030ADA4 7F A3 EB 78 */ mr r3, r29
/* 8030F148 0030ADA8 7F E4 FB 78 */ mr r4, r31
/* 8030F14C 0030ADAC 38 A1 00 0C */ addi r5, r1, 0xc
/* 8030F150 0030ADB0 38 C1 00 08 */ addi r6, r1, 8
/* 8030F154 0030ADB4 4B FF F8 D5 */ bl VFiPFFAT_FindClusterLinkPage
/* 8030F158 0030ADB8 2C 03 00 00 */ cmpwi r3, 0
/* 8030F15C 0030ADBC 41 82 00 08 */ beq lbl_8030F164
/* 8030F160 0030ADC0 48 00 00 74 */ b lbl_8030F1D4
lbl_8030F164:
/* 8030F164 0030ADC4 80 01 00 08 */ lwz r0, 8(r1)
/* 8030F168 0030ADC8 2C 00 00 00 */ cmpwi r0, 0
/* 8030F16C 0030ADCC 40 82 00 64 */ bne lbl_8030F1D0
/* 8030F170 0030ADD0 80 9D 00 24 */ lwz r4, 0x24(r29)
/* 8030F174 0030ADD4 80 1D 00 28 */ lwz r0, 0x28(r29)
/* 8030F178 0030ADD8 7C 00 20 40 */ cmplw r0, r4
/* 8030F17C 0030ADDC 40 81 00 54 */ ble lbl_8030F1D0
/* 8030F180 0030ADE0 2C 00 00 00 */ cmpwi r0, 0
/* 8030F184 0030ADE4 41 82 00 4C */ beq lbl_8030F1D0
/* 8030F188 0030ADE8 A0 7D 00 20 */ lhz r3, 0x20(r29)
/* 8030F18C 0030ADEC 38 03 00 01 */ addi r0, r3, 1
/* 8030F190 0030ADF0 7C 04 01 D6 */ mullw r0, r4, r0
/* 8030F194 0030ADF4 7C 1F 00 40 */ cmplw r31, r0
/* 8030F198 0030ADF8 40 82 00 28 */ bne lbl_8030F1C0
/* 8030F19C 0030ADFC 38 00 00 00 */ li r0, 0
/* 8030F1A0 0030AE00 80 7D 00 1C */ lwz r3, 0x1c(r29)
/* 8030F1A4 0030AE04 B0 1D 00 22 */ sth r0, 0x22(r29)
/* 8030F1A8 0030AE08 54 80 10 3A */ slwi r0, r4, 2
/* 8030F1AC 0030AE0C 7F C3 01 2E */ stwx r30, r3, r0
/* 8030F1B0 0030AE10 80 7D 00 24 */ lwz r3, 0x24(r29)
/* 8030F1B4 0030AE14 38 03 00 01 */ addi r0, r3, 1
/* 8030F1B8 0030AE18 90 1D 00 24 */ stw r0, 0x24(r29)
/* 8030F1BC 0030AE1C 48 00 00 10 */ b lbl_8030F1CC
lbl_8030F1C0:
/* 8030F1C0 0030AE20 A0 7D 00 22 */ lhz r3, 0x22(r29)
/* 8030F1C4 0030AE24 38 03 00 01 */ addi r0, r3, 1
/* 8030F1C8 0030AE28 B0 1D 00 22 */ sth r0, 0x22(r29)
lbl_8030F1CC:
/* 8030F1CC 0030AE2C 93 FD 00 2C */ stw r31, 0x2c(r29)
lbl_8030F1D0:
/* 8030F1D0 0030AE30 38 60 00 00 */ li r3, 0
lbl_8030F1D4:
/* 8030F1D4 0030AE34 39 61 00 30 */ addi r11, r1, 0x30
/* 8030F1D8 0030AE38 4B EB 7F 9D */ bl _restgpr_27
/* 8030F1DC 0030AE3C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8030F1E0 0030AE40 7C 08 03 A6 */ mtlr r0
/* 8030F1E4 0030AE44 38 21 00 30 */ addi r1, r1, 0x30
/* 8030F1E8 0030AE48 4E 80 00 20 */ blr
.global VFiPFFAT_DoAllocateChain
VFiPFFAT_DoAllocateChain:
/* 8030F1EC 0030AE4C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8030F1F0 0030AE50 7C 08 02 A6 */ mflr r0
/* 8030F1F4 0030AE54 90 01 00 44 */ stw r0, 0x44(r1)
/* 8030F1F8 0030AE58 39 61 00 40 */ addi r11, r1, 0x40
/* 8030F1FC 0030AE5C 4B EB 7F 25 */ bl _savegpr_25
/* 8030F200 0030AE60 83 E3 00 34 */ lwz r31, 0x34(r3)
/* 8030F204 0030AE64 7C 79 1B 78 */ mr r25, r3
/* 8030F208 0030AE68 3D 00 80 40 */ lis r8, lbl_803FE280@ha
/* 8030F20C 0030AE6C 38 00 FF FF */ li r0, -1
/* 8030F210 0030AE70 80 7F 00 1C */ lwz r3, 0x1c(r31)
/* 8030F214 0030AE74 39 08 E2 80 */ addi r8, r8, lbl_803FE280@l
/* 8030F218 0030AE78 7C BA 2B 78 */ mr r26, r5
/* 8030F21C 0030AE7C 7C DB 33 78 */ mr r27, r6
/* 8030F220 0030AE80 90 06 00 00 */ stw r0, 0(r6)
/* 8030F224 0030AE84 1C 63 00 14 */ mulli r3, r3, 0x14
/* 8030F228 0030AE88 7C 86 23 78 */ mr r6, r4
/* 8030F22C 0030AE8C 90 07 00 00 */ stw r0, 0(r7)
/* 8030F230 0030AE90 7C FC 3B 78 */ mr r28, r7
/* 8030F234 0030AE94 7C A8 1A 14 */ add r5, r8, r3
/* 8030F238 0030AE98 38 E1 00 10 */ addi r7, r1, 0x10
/* 8030F23C 0030AE9C 90 01 00 0C */ stw r0, 0xc(r1)
/* 8030F240 0030AEA0 7F E3 FB 78 */ mr r3, r31
/* 8030F244 0030AEA4 83 C5 00 08 */ lwz r30, 8(r5)
/* 8030F248 0030AEA8 39 01 00 0C */ addi r8, r1, 0xc
/* 8030F24C 0030AEAC 80 9F 00 3C */ lwz r4, 0x3c(r31)
/* 8030F250 0030AEB0 38 A0 FF FF */ li r5, -1
/* 8030F254 0030AEB4 4B FF F4 15 */ bl VFiPFFAT_SearchForNumFreeClusters
/* 8030F258 0030AEB8 2C 03 00 00 */ cmpwi r3, 0
/* 8030F25C 0030AEBC 41 82 00 08 */ beq lbl_8030F264
/* 8030F260 0030AEC0 48 00 02 20 */ b lbl_8030F480
lbl_8030F264:
/* 8030F264 0030AEC4 80 A1 00 10 */ lwz r5, 0x10(r1)
/* 8030F268 0030AEC8 3C 05 00 01 */ addis r0, r5, 1
/* 8030F26C 0030AECC 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030F270 0030AED0 40 82 00 0C */ bne lbl_8030F27C
/* 8030F274 0030AED4 38 60 00 00 */ li r3, 0
/* 8030F278 0030AED8 48 00 02 08 */ b lbl_8030F480
lbl_8030F27C:
/* 8030F27C 0030AEDC 7F E3 FB 78 */ mr r3, r31
/* 8030F280 0030AEE0 38 81 00 08 */ addi r4, r1, 8
/* 8030F284 0030AEE4 4B FF F2 B5 */ bl VFiPFFAT_ReadFATSector
/* 8030F288 0030AEE8 2C 03 00 00 */ cmpwi r3, 0
/* 8030F28C 0030AEEC 41 82 00 08 */ beq lbl_8030F294
/* 8030F290 0030AEF0 48 00 01 F0 */ b lbl_8030F480
lbl_8030F294:
/* 8030F294 0030AEF4 80 61 00 08 */ lwz r3, 8(r1)
/* 8030F298 0030AEF8 38 00 00 00 */ li r0, 0
/* 8030F29C 0030AEFC B0 03 00 02 */ sth r0, 2(r3)
/* 8030F2A0 0030AF00 83 A1 00 10 */ lwz r29, 0x10(r1)
/* 8030F2A4 0030AF04 48 00 00 98 */ b lbl_8030F33C
lbl_8030F2A8:
/* 8030F2A8 0030AF08 7F 23 CB 78 */ mr r3, r25
/* 8030F2AC 0030AF0C 7F A4 EB 78 */ mr r4, r29
/* 8030F2B0 0030AF10 7F 45 D3 78 */ mr r5, r26
/* 8030F2B4 0030AF14 38 DD 00 01 */ addi r6, r29, 1
/* 8030F2B8 0030AF18 39 01 00 08 */ addi r8, r1, 8
/* 8030F2BC 0030AF1C 38 E0 00 01 */ li r7, 1
/* 8030F2C0 0030AF20 4B FF FD 05 */ bl VFiPFFAT_WriteClusterPage
/* 8030F2C4 0030AF24 2C 03 00 00 */ cmpwi r3, 0
/* 8030F2C8 0030AF28 41 82 00 08 */ beq lbl_8030F2D0
/* 8030F2CC 0030AF2C 48 00 01 B4 */ b lbl_8030F480
lbl_8030F2D0:
/* 8030F2D0 0030AF30 A0 1F 18 7C */ lhz r0, 0x187c(r31)
/* 8030F2D4 0030AF34 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 8030F2D8 0030AF38 41 82 00 44 */ beq lbl_8030F31C
/* 8030F2DC 0030AF3C 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 8030F2E0 0030AF40 3C 03 00 01 */ addis r0, r3, 1
/* 8030F2E4 0030AF44 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030F2E8 0030AF48 41 82 00 34 */ beq lbl_8030F31C
/* 8030F2EC 0030AF4C 2C 03 00 00 */ cmpwi r3, 0
/* 8030F2F0 0030AF50 41 82 00 2C */ beq lbl_8030F31C
/* 8030F2F4 0030AF54 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 8030F2F8 0030AF58 2C 00 00 02 */ cmpwi r0, 2
/* 8030F2FC 0030AF5C 40 82 00 14 */ bne lbl_8030F310
/* 8030F300 0030AF60 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8030F304 0030AF64 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 8030F308 0030AF68 7C 03 00 40 */ cmplw r3, r0
/* 8030F30C 0030AF6C 41 82 00 10 */ beq lbl_8030F31C
lbl_8030F310:
/* 8030F310 0030AF70 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 8030F314 0030AF74 38 03 FF FF */ addi r0, r3, -1
/* 8030F318 0030AF78 90 1F 00 38 */ stw r0, 0x38(r31)
lbl_8030F31C:
/* 8030F31C 0030AF7C 80 7B 00 00 */ lwz r3, 0(r27)
/* 8030F320 0030AF80 3C 03 00 01 */ addis r0, r3, 1
/* 8030F324 0030AF84 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030F328 0030AF88 40 82 00 08 */ bne lbl_8030F330
/* 8030F32C 0030AF8C 93 BB 00 00 */ stw r29, 0(r27)
lbl_8030F330:
/* 8030F330 0030AF90 93 BC 00 00 */ stw r29, 0(r28)
/* 8030F334 0030AF94 3B 5A 00 01 */ addi r26, r26, 1
/* 8030F338 0030AF98 3B BD 00 01 */ addi r29, r29, 1
lbl_8030F33C:
/* 8030F33C 0030AF9C 80 81 00 0C */ lwz r4, 0xc(r1)
/* 8030F340 0030AFA0 7C 1D 20 40 */ cmplw r29, r4
/* 8030F344 0030AFA4 41 80 FF 64 */ blt lbl_8030F2A8
/* 8030F348 0030AFA8 3C 04 00 01 */ addis r0, r4, 1
/* 8030F34C 0030AFAC 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030F350 0030AFB0 41 82 00 80 */ beq lbl_8030F3D0
/* 8030F354 0030AFB4 7F 23 CB 78 */ mr r3, r25
/* 8030F358 0030AFB8 7F 45 D3 78 */ mr r5, r26
/* 8030F35C 0030AFBC 7F C6 F3 78 */ mr r6, r30
/* 8030F360 0030AFC0 39 01 00 08 */ addi r8, r1, 8
/* 8030F364 0030AFC4 38 E0 00 01 */ li r7, 1
/* 8030F368 0030AFC8 4B FF FC 5D */ bl VFiPFFAT_WriteClusterPage
/* 8030F36C 0030AFCC 2C 03 00 00 */ cmpwi r3, 0
/* 8030F370 0030AFD0 41 82 00 08 */ beq lbl_8030F378
/* 8030F374 0030AFD4 48 00 01 0C */ b lbl_8030F480
lbl_8030F378:
/* 8030F378 0030AFD8 80 7B 00 00 */ lwz r3, 0(r27)
/* 8030F37C 0030AFDC 3C 03 00 01 */ addis r0, r3, 1
/* 8030F380 0030AFE0 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030F384 0030AFE4 40 82 00 08 */ bne lbl_8030F38C
/* 8030F388 0030AFE8 93 BB 00 00 */ stw r29, 0(r27)
lbl_8030F38C:
/* 8030F38C 0030AFEC 93 BC 00 00 */ stw r29, 0(r28)
/* 8030F390 0030AFF0 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 8030F394 0030AFF4 3C 03 00 01 */ addis r0, r3, 1
/* 8030F398 0030AFF8 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030F39C 0030AFFC 41 82 00 34 */ beq lbl_8030F3D0
/* 8030F3A0 0030B000 2C 03 00 00 */ cmpwi r3, 0
/* 8030F3A4 0030B004 41 82 00 2C */ beq lbl_8030F3D0
/* 8030F3A8 0030B008 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 8030F3AC 0030B00C 2C 00 00 02 */ cmpwi r0, 2
/* 8030F3B0 0030B010 40 82 00 14 */ bne lbl_8030F3C4
/* 8030F3B4 0030B014 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8030F3B8 0030B018 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 8030F3BC 0030B01C 7C 03 00 40 */ cmplw r3, r0
/* 8030F3C0 0030B020 41 82 00 10 */ beq lbl_8030F3D0
lbl_8030F3C4:
/* 8030F3C4 0030B024 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 8030F3C8 0030B028 38 03 FF FF */ addi r0, r3, -1
/* 8030F3CC 0030B02C 90 1F 00 38 */ stw r0, 0x38(r31)
lbl_8030F3D0:
/* 8030F3D0 0030B030 80 81 00 0C */ lwz r4, 0xc(r1)
/* 8030F3D4 0030B034 38 60 00 00 */ li r3, 0
/* 8030F3D8 0030B038 38 04 00 01 */ addi r0, r4, 1
/* 8030F3DC 0030B03C 90 1F 00 3C */ stw r0, 0x3c(r31)
/* 8030F3E0 0030B040 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8030F3E4 0030B044 90 19 00 0C */ stw r0, 0xc(r25)
/* 8030F3E8 0030B048 93 59 00 10 */ stw r26, 0x10(r25)
/* 8030F3EC 0030B04C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8030F3F0 0030B050 90 1C 00 00 */ stw r0, 0(r28)
/* 8030F3F4 0030B054 80 81 00 08 */ lwz r4, 8(r1)
/* 8030F3F8 0030B058 A0 04 00 00 */ lhz r0, 0(r4)
/* 8030F3FC 0030B05C 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
/* 8030F400 0030B060 2C 00 00 02 */ cmpwi r0, 2
/* 8030F404 0030B064 40 82 00 0C */ bne lbl_8030F410
/* 8030F408 0030B068 7F E3 FB 78 */ mr r3, r31
/* 8030F40C 0030B06C 4B FF B5 71 */ bl VFiPFCACHE_WriteFATPage
lbl_8030F410:
/* 8030F410 0030B070 2C 03 00 00 */ cmpwi r3, 0
/* 8030F414 0030B074 41 82 00 08 */ beq lbl_8030F41C
/* 8030F418 0030B078 48 00 00 68 */ b lbl_8030F480
lbl_8030F41C:
/* 8030F41C 0030B07C 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 8030F420 0030B080 2C 80 00 02 */ cmpwi cr1, r0, 2
/* 8030F424 0030B084 40 86 00 58 */ bne cr1, lbl_8030F47C
/* 8030F428 0030B088 A0 1F 18 7C */ lhz r0, 0x187c(r31)
/* 8030F42C 0030B08C 54 03 07 BD */ rlwinm. r3, r0, 0, 0x1e, 0x1e
/* 8030F430 0030B090 41 82 00 4C */ beq lbl_8030F47C
/* 8030F434 0030B094 38 60 00 00 */ li r3, 0
/* 8030F438 0030B098 41 86 00 0C */ beq cr1, lbl_8030F444
/* 8030F43C 0030B09C 38 60 00 0C */ li r3, 0xc
/* 8030F440 0030B0A0 48 00 00 20 */ b lbl_8030F460
lbl_8030F444:
/* 8030F444 0030B0A4 40 82 00 0C */ bne lbl_8030F450
/* 8030F448 0030B0A8 38 60 00 24 */ li r3, 0x24
/* 8030F44C 0030B0AC 48 00 00 14 */ b lbl_8030F460
lbl_8030F450:
/* 8030F450 0030B0B0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 8030F454 0030B0B4 41 82 00 0C */ beq lbl_8030F460
/* 8030F458 0030B0B8 7F E3 FB 78 */ mr r3, r31
/* 8030F45C 0030B0BC 4B FF 67 41 */ bl VFiPFDRV_StoreFreeCountToFSINFO
lbl_8030F460:
/* 8030F460 0030B0C0 2C 03 00 00 */ cmpwi r3, 0
/* 8030F464 0030B0C4 41 82 00 18 */ beq lbl_8030F47C
/* 8030F468 0030B0C8 38 00 FF FF */ li r0, -1
/* 8030F46C 0030B0CC 90 1F 00 38 */ stw r0, 0x38(r31)
/* 8030F470 0030B0D0 A0 1F 18 7C */ lhz r0, 0x187c(r31)
/* 8030F474 0030B0D4 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
/* 8030F478 0030B0D8 B0 1F 18 7C */ sth r0, 0x187c(r31)
lbl_8030F47C:
/* 8030F47C 0030B0DC 38 60 00 00 */ li r3, 0
lbl_8030F480:
/* 8030F480 0030B0E0 39 61 00 40 */ addi r11, r1, 0x40
/* 8030F484 0030B0E4 4B EB 7C E9 */ bl _restgpr_25
/* 8030F488 0030B0E8 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8030F48C 0030B0EC 7C 08 03 A6 */ mtlr r0
/* 8030F490 0030B0F0 38 21 00 40 */ addi r1, r1, 0x40
/* 8030F494 0030B0F4 4E 80 00 20 */ blr
.global VFiPFFAT_GetClusterInChain
VFiPFFAT_GetClusterInChain:
/* 8030F498 0030B0F8 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8030F49C 0030B0FC 7C 08 02 A6 */ mflr r0
/* 8030F4A0 0030B100 90 01 00 54 */ stw r0, 0x54(r1)
/* 8030F4A4 0030B104 39 61 00 50 */ addi r11, r1, 0x50
/* 8030F4A8 0030B108 4B EB 7C 69 */ bl _savegpr_21
/* 8030F4AC 0030B10C 38 00 00 00 */ li r0, 0
/* 8030F4B0 0030B110 3D 20 80 40 */ lis r9, lbl_803FE280@ha
/* 8030F4B4 0030B114 90 01 00 08 */ stw r0, 8(r1)
/* 8030F4B8 0030B118 38 00 FF FF */ li r0, -1
/* 8030F4BC 0030B11C 7D 19 43 78 */ mr r25, r8
/* 8030F4C0 0030B120 39 29 E2 80 */ addi r9, r9, lbl_803FE280@l
/* 8030F4C4 0030B124 81 43 00 34 */ lwz r10, 0x34(r3)
/* 8030F4C8 0030B128 7C F8 3B 78 */ mr r24, r7
/* 8030F4CC 0030B12C 7C 76 1B 78 */ mr r22, r3
/* 8030F4D0 0030B130 7C B7 2B 78 */ mr r23, r5
/* 8030F4D4 0030B134 81 4A 00 1C */ lwz r10, 0x1c(r10)
/* 8030F4D8 0030B138 90 08 00 00 */ stw r0, 0(r8)
/* 8030F4DC 0030B13C 1D 0A 00 14 */ mulli r8, r10, 0x14
/* 8030F4E0 0030B140 90 07 00 00 */ stw r0, 0(r7)
/* 8030F4E4 0030B144 7C E9 42 14 */ add r7, r9, r8
/* 8030F4E8 0030B148 7F E9 40 2E */ lwzx r31, r9, r8
/* 8030F4EC 0030B14C 80 03 00 14 */ lwz r0, 0x14(r3)
/* 8030F4F0 0030B150 83 C7 00 04 */ lwz r30, 4(r7)
/* 8030F4F4 0030B154 2C 00 00 00 */ cmpwi r0, 0
/* 8030F4F8 0030B158 41 82 00 28 */ beq lbl_8030F520
/* 8030F4FC 0030B15C 7C 00 20 40 */ cmplw r0, r4
/* 8030F500 0030B160 41 81 00 20 */ bgt lbl_8030F520
/* 8030F504 0030B164 80 03 00 18 */ lwz r0, 0x18(r3)
/* 8030F508 0030B168 3B 41 00 10 */ addi r26, r1, 0x10
/* 8030F50C 0030B16C 90 01 00 10 */ stw r0, 0x10(r1)
/* 8030F510 0030B170 80 E3 00 14 */ lwz r7, 0x14(r3)
/* 8030F514 0030B174 7F 87 20 50 */ subf r28, r7, r4
/* 8030F518 0030B178 3B 67 00 01 */ addi r27, r7, 1
/* 8030F51C 0030B17C 48 00 00 10 */ b lbl_8030F52C
lbl_8030F520:
/* 8030F520 0030B180 83 43 00 08 */ lwz r26, 8(r3)
/* 8030F524 0030B184 7C 9C 23 78 */ mr r28, r4
/* 8030F528 0030B188 3B 60 00 01 */ li r27, 1
lbl_8030F52C:
/* 8030F52C 0030B18C 83 BA 00 00 */ lwz r29, 0(r26)
/* 8030F530 0030B190 28 05 00 02 */ cmplwi r5, 2
/* 8030F534 0030B194 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8030F538 0030B198 40 82 00 74 */ bne lbl_8030F5AC
/* 8030F53C 0030B19C 2C 1C 00 00 */ cmpwi r28, 0
/* 8030F540 0030B1A0 41 82 00 18 */ beq lbl_8030F558
/* 8030F544 0030B1A4 2C 06 00 00 */ cmpwi r6, 0
/* 8030F548 0030B1A8 41 82 00 10 */ beq lbl_8030F558
/* 8030F54C 0030B1AC 7C BC 32 14 */ add r5, r28, r6
/* 8030F550 0030B1B0 3B 85 FF FF */ addi r28, r5, -1
/* 8030F554 0030B1B4 48 00 00 08 */ b lbl_8030F55C
lbl_8030F558:
/* 8030F558 0030B1B8 7C DC 33 78 */ mr r28, r6
lbl_8030F55C:
/* 8030F55C 0030B1BC 81 23 00 0C */ lwz r9, 0xc(r3)
/* 8030F560 0030B1C0 7F 88 E3 78 */ mr r8, r28
/* 8030F564 0030B1C4 2C 09 00 00 */ cmpwi r9, 0
/* 8030F568 0030B1C8 41 82 00 5C */ beq lbl_8030F5C4
/* 8030F56C 0030B1CC 80 A3 00 34 */ lwz r5, 0x34(r3)
/* 8030F570 0030B1D0 3C E0 80 40 */ lis r7, lbl_803FE280@ha
/* 8030F574 0030B1D4 81 03 00 10 */ lwz r8, 0x10(r3)
/* 8030F578 0030B1D8 38 E7 E2 80 */ addi r7, r7, lbl_803FE280@l
/* 8030F57C 0030B1DC 80 05 00 1C */ lwz r0, 0x1c(r5)
/* 8030F580 0030B1E0 7D 3D 4B 78 */ mr r29, r9
/* 8030F584 0030B1E4 7C A8 32 14 */ add r5, r8, r6
/* 8030F588 0030B1E8 3B 80 00 00 */ li r28, 0
/* 8030F58C 0030B1EC 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8030F590 0030B1F0 7D 04 28 50 */ subf r8, r4, r5
/* 8030F594 0030B1F4 7C 87 02 14 */ add r4, r7, r0
/* 8030F598 0030B1F8 80 04 00 08 */ lwz r0, 8(r4)
/* 8030F59C 0030B1FC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030F5A0 0030B200 80 83 00 10 */ lwz r4, 0x10(r3)
/* 8030F5A4 0030B204 3B 64 00 01 */ addi r27, r4, 1
/* 8030F5A8 0030B208 48 00 00 1C */ b lbl_8030F5C4
lbl_8030F5AC:
/* 8030F5AC 0030B20C 28 05 00 01 */ cmplwi r5, 1
/* 8030F5B0 0030B210 40 82 00 10 */ bne lbl_8030F5C0
/* 8030F5B4 0030B214 2C 1D 00 00 */ cmpwi r29, 0
/* 8030F5B8 0030B218 40 82 00 08 */ bne lbl_8030F5C0
/* 8030F5BC 0030B21C 3B 9C 00 01 */ addi r28, r28, 1
lbl_8030F5C0:
/* 8030F5C0 0030B220 7F 88 E3 78 */ mr r8, r28
lbl_8030F5C4:
/* 8030F5C4 0030B224 2C 1C 00 00 */ cmpwi r28, 0
/* 8030F5C8 0030B228 41 82 00 FC */ beq lbl_8030F6C4
/* 8030F5CC 0030B22C 80 63 00 34 */ lwz r3, 0x34(r3)
/* 8030F5D0 0030B230 7F A5 EB 78 */ mr r5, r29
/* 8030F5D4 0030B234 38 81 00 08 */ addi r4, r1, 8
/* 8030F5D8 0030B238 4B FF EF 61 */ bl VFiPFFAT_ReadFATSector
/* 8030F5DC 0030B23C 2C 03 00 00 */ cmpwi r3, 0
/* 8030F5E0 0030B240 41 82 00 08 */ beq lbl_8030F5E8
/* 8030F5E4 0030B244 48 00 01 C4 */ b lbl_8030F7A8
lbl_8030F5E8:
/* 8030F5E8 0030B248 80 61 00 08 */ lwz r3, 8(r1)
/* 8030F5EC 0030B24C 38 80 00 00 */ li r4, 0
/* 8030F5F0 0030B250 3E A0 80 40 */ lis r21, lbl_803FE280@ha
/* 8030F5F4 0030B254 38 00 00 01 */ li r0, 1
/* 8030F5F8 0030B258 B0 83 00 02 */ sth r4, 2(r3)
/* 8030F5FC 0030B25C 3A B5 E2 80 */ addi r21, r21, lbl_803FE280@l
/* 8030F600 0030B260 90 01 00 0C */ stw r0, 0xc(r1)
/* 8030F604 0030B264 48 00 00 A8 */ b lbl_8030F6AC
lbl_8030F608:
/* 8030F608 0030B268 2C 1D 00 00 */ cmpwi r29, 0
/* 8030F60C 0030B26C 41 82 00 3C */ beq lbl_8030F648
/* 8030F610 0030B270 7E C3 B3 78 */ mr r3, r22
/* 8030F614 0030B274 7F A4 EB 78 */ mr r4, r29
/* 8030F618 0030B278 7F 65 DB 78 */ mr r5, r27
/* 8030F61C 0030B27C 38 C1 00 14 */ addi r6, r1, 0x14
/* 8030F620 0030B280 38 E1 00 0C */ addi r7, r1, 0xc
/* 8030F624 0030B284 39 01 00 08 */ addi r8, r1, 8
/* 8030F628 0030B288 4B FF F5 AD */ bl VFiPFFAT_ReadClusterPage
/* 8030F62C 0030B28C 2C 03 00 00 */ cmpwi r3, 0
/* 8030F630 0030B290 41 82 00 34 */ beq lbl_8030F664
/* 8030F634 0030B294 80 81 00 14 */ lwz r4, 0x14(r1)
/* 8030F638 0030B298 3C 04 00 01 */ addis r0, r4, 1
/* 8030F63C 0030B29C 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030F640 0030B2A0 41 82 00 24 */ beq lbl_8030F664
/* 8030F644 0030B2A4 48 00 01 64 */ b lbl_8030F7A8
lbl_8030F648:
/* 8030F648 0030B2A8 80 76 00 34 */ lwz r3, 0x34(r22)
/* 8030F64C 0030B2AC 3B 7B FF FF */ addi r27, r27, -1
/* 8030F650 0030B2B0 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8030F654 0030B2B4 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8030F658 0030B2B8 7C 75 02 14 */ add r3, r21, r0
/* 8030F65C 0030B2BC 80 03 00 08 */ lwz r0, 8(r3)
/* 8030F660 0030B2C0 90 01 00 14 */ stw r0, 0x14(r1)
lbl_8030F664:
/* 8030F664 0030B2C4 80 81 00 14 */ lwz r4, 0x14(r1)
/* 8030F668 0030B2C8 28 04 00 02 */ cmplwi r4, 2
/* 8030F66C 0030B2CC 41 80 00 18 */ blt lbl_8030F684
/* 8030F670 0030B2D0 80 76 00 34 */ lwz r3, 0x34(r22)
/* 8030F674 0030B2D4 80 63 00 34 */ lwz r3, 0x34(r3)
/* 8030F678 0030B2D8 38 03 00 02 */ addi r0, r3, 2
/* 8030F67C 0030B2DC 7C 04 00 40 */ cmplw r4, r0
/* 8030F680 0030B2E0 41 80 00 14 */ blt lbl_8030F694
lbl_8030F684:
/* 8030F684 0030B2E4 7C 04 F0 40 */ cmplw r4, r30
/* 8030F688 0030B2E8 40 80 00 0C */ bge lbl_8030F694
/* 8030F68C 0030B2EC 38 60 00 0E */ li r3, 0xe
/* 8030F690 0030B2F0 48 00 01 18 */ b lbl_8030F7A8
lbl_8030F694:
/* 8030F694 0030B2F4 2C 17 00 00 */ cmpwi r23, 0
/* 8030F698 0030B2F8 41 82 00 0C */ beq lbl_8030F6A4
/* 8030F69C 0030B2FC 7C 04 F0 40 */ cmplw r4, r30
/* 8030F6A0 0030B300 40 80 00 20 */ bge lbl_8030F6C0
lbl_8030F6A4:
/* 8030F6A4 0030B304 7C 9D 23 78 */ mr r29, r4
/* 8030F6A8 0030B308 3B 7B 00 01 */ addi r27, r27, 1
lbl_8030F6AC:
/* 8030F6AC 0030B30C 2C 1C 00 00 */ cmpwi r28, 0
/* 8030F6B0 0030B310 3B 9C FF FF */ addi r28, r28, -1
/* 8030F6B4 0030B314 41 82 00 0C */ beq lbl_8030F6C0
/* 8030F6B8 0030B318 7C 1D F8 40 */ cmplw r29, r31
/* 8030F6BC 0030B31C 41 80 FF 4C */ blt lbl_8030F608
lbl_8030F6C0:
/* 8030F6C0 0030B320 7F 88 E3 78 */ mr r8, r28
lbl_8030F6C4:
/* 8030F6C4 0030B324 2C 17 00 00 */ cmpwi r23, 0
/* 8030F6C8 0030B328 41 82 00 D8 */ beq lbl_8030F7A0
/* 8030F6CC 0030B32C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030F6D0 0030B330 7C 00 F0 40 */ cmplw r0, r30
/* 8030F6D4 0030B334 41 80 00 CC */ blt lbl_8030F7A0
/* 8030F6D8 0030B338 38 00 00 00 */ li r0, 0
/* 8030F6DC 0030B33C 7E C3 B3 78 */ mr r3, r22
/* 8030F6E0 0030B340 90 18 00 00 */ stw r0, 0(r24)
/* 8030F6E4 0030B344 7F 65 DB 78 */ mr r5, r27
/* 8030F6E8 0030B348 7F 06 C3 78 */ mr r6, r24
/* 8030F6EC 0030B34C 38 88 00 01 */ addi r4, r8, 1
/* 8030F6F0 0030B350 38 E1 00 14 */ addi r7, r1, 0x14
/* 8030F6F4 0030B354 4B FF FA F9 */ bl VFiPFFAT_DoAllocateChain
/* 8030F6F8 0030B358 2C 03 00 00 */ cmpwi r3, 0
/* 8030F6FC 0030B35C 7C 75 1B 78 */ mr r21, r3
/* 8030F700 0030B360 41 82 00 34 */ beq lbl_8030F734
/* 8030F704 0030B364 80 98 00 00 */ lwz r4, 0(r24)
/* 8030F708 0030B368 3C 04 00 01 */ addis r0, r4, 1
/* 8030F70C 0030B36C 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030F710 0030B370 41 82 00 14 */ beq lbl_8030F724
/* 8030F714 0030B374 7E C3 B3 78 */ mr r3, r22
/* 8030F718 0030B378 7F 65 DB 78 */ mr r5, r27
/* 8030F71C 0030B37C 38 C0 FF FF */ li r6, -1
/* 8030F720 0030B380 48 00 0D 09 */ bl VFiPFFAT_FreeChain
lbl_8030F724:
/* 8030F724 0030B384 38 00 FF FF */ li r0, -1
/* 8030F728 0030B388 90 18 00 00 */ stw r0, 0(r24)
/* 8030F72C 0030B38C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030F730 0030B390 48 00 00 08 */ b lbl_8030F738
lbl_8030F734:
/* 8030F734 0030B394 3A A0 00 00 */ li r21, 0
lbl_8030F738:
/* 8030F738 0030B398 2C 15 00 00 */ cmpwi r21, 0
/* 8030F73C 0030B39C 41 82 00 0C */ beq lbl_8030F748
/* 8030F740 0030B3A0 7E A3 AB 78 */ mr r3, r21
/* 8030F744 0030B3A4 48 00 00 64 */ b lbl_8030F7A8
lbl_8030F748:
/* 8030F748 0030B3A8 80 61 00 14 */ lwz r3, 0x14(r1)
/* 8030F74C 0030B3AC 3C 03 00 01 */ addis r0, r3, 1
/* 8030F750 0030B3B0 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030F754 0030B3B4 40 82 00 0C */ bne lbl_8030F760
/* 8030F758 0030B3B8 38 60 00 06 */ li r3, 6
/* 8030F75C 0030B3BC 48 00 00 4C */ b lbl_8030F7A8
lbl_8030F760:
/* 8030F760 0030B3C0 80 1A 00 00 */ lwz r0, 0(r26)
/* 8030F764 0030B3C4 2C 00 00 00 */ cmpwi r0, 0
/* 8030F768 0030B3C8 40 82 00 10 */ bne lbl_8030F778
/* 8030F76C 0030B3CC 80 18 00 00 */ lwz r0, 0(r24)
/* 8030F770 0030B3D0 90 1A 00 00 */ stw r0, 0(r26)
/* 8030F774 0030B3D4 48 00 00 28 */ b lbl_8030F79C
lbl_8030F778:
/* 8030F778 0030B3D8 80 D8 00 00 */ lwz r6, 0(r24)
/* 8030F77C 0030B3DC 7E C3 B3 78 */ mr r3, r22
/* 8030F780 0030B3E0 7F A4 EB 78 */ mr r4, r29
/* 8030F784 0030B3E4 38 BB FF FF */ addi r5, r27, -1
/* 8030F788 0030B3E8 38 E0 00 01 */ li r7, 1
/* 8030F78C 0030B3EC 4B FF F6 15 */ bl VFiPFFAT_WriteCluster
/* 8030F790 0030B3F0 2C 03 00 00 */ cmpwi r3, 0
/* 8030F794 0030B3F4 41 82 00 08 */ beq lbl_8030F79C
/* 8030F798 0030B3F8 48 00 00 10 */ b lbl_8030F7A8
lbl_8030F79C:
/* 8030F79C 0030B3FC 83 A1 00 14 */ lwz r29, 0x14(r1)
lbl_8030F7A0:
/* 8030F7A0 0030B400 93 B9 00 00 */ stw r29, 0(r25)
/* 8030F7A4 0030B404 38 60 00 00 */ li r3, 0
lbl_8030F7A8:
/* 8030F7A8 0030B408 39 61 00 50 */ addi r11, r1, 0x50
/* 8030F7AC 0030B40C 4B EB 79 B1 */ bl _restgpr_21
/* 8030F7B0 0030B410 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8030F7B4 0030B414 7C 08 03 A6 */ mtlr r0
/* 8030F7B8 0030B418 38 21 00 50 */ addi r1, r1, 0x50
/* 8030F7BC 0030B41C 4E 80 00 20 */ blr
.global VFiPFFAT_GetClusterContinuousSectorInChain
VFiPFFAT_GetClusterContinuousSectorInChain:
/* 8030F7C0 0030B420 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8030F7C4 0030B424 7C 08 02 A6 */ mflr r0
/* 8030F7C8 0030B428 90 01 00 34 */ stw r0, 0x34(r1)
/* 8030F7CC 0030B42C 39 61 00 30 */ addi r11, r1, 0x30
/* 8030F7D0 0030B430 4B EB 79 55 */ bl _savegpr_26
/* 8030F7D4 0030B434 83 E3 00 34 */ lwz r31, 0x34(r3)
/* 8030F7D8 0030B438 39 00 FF FF */ li r8, -1
/* 8030F7DC 0030B43C 38 00 00 01 */ li r0, 1
/* 8030F7E0 0030B440 7C 7B 1B 78 */ mr r27, r3
/* 8030F7E4 0030B444 91 01 00 10 */ stw r8, 0x10(r1)
/* 8030F7E8 0030B448 7C BC 2B 78 */ mr r28, r5
/* 8030F7EC 0030B44C 7C DD 33 78 */ mr r29, r6
/* 8030F7F0 0030B450 7C FE 3B 78 */ mr r30, r7
/* 8030F7F4 0030B454 90 01 00 0C */ stw r0, 0xc(r1)
/* 8030F7F8 0030B458 7C 9A 23 78 */ mr r26, r4
/* 8030F7FC 0030B45C 7C 85 23 78 */ mr r5, r4
/* 8030F800 0030B460 7F E3 FB 78 */ mr r3, r31
/* 8030F804 0030B464 38 81 00 08 */ addi r4, r1, 8
/* 8030F808 0030B468 4B FF ED 31 */ bl VFiPFFAT_ReadFATSector
/* 8030F80C 0030B46C 2C 03 00 00 */ cmpwi r3, 0
/* 8030F810 0030B470 41 82 00 B8 */ beq lbl_8030F8C8
/* 8030F814 0030B474 48 00 00 C4 */ b lbl_8030F8D8
/* 8030F818 0030B478 48 00 00 B0 */ b lbl_8030F8C8
lbl_8030F81C:
/* 8030F81C 0030B47C 7F 63 DB 78 */ mr r3, r27
/* 8030F820 0030B480 7F 44 D3 78 */ mr r4, r26
/* 8030F824 0030B484 7F 85 E3 78 */ mr r5, r28
/* 8030F828 0030B488 38 C1 00 10 */ addi r6, r1, 0x10
/* 8030F82C 0030B48C 38 E1 00 0C */ addi r7, r1, 0xc
/* 8030F830 0030B490 39 01 00 08 */ addi r8, r1, 8
/* 8030F834 0030B494 4B FF F3 A1 */ bl VFiPFFAT_ReadClusterPage
/* 8030F838 0030B498 2C 03 00 00 */ cmpwi r3, 0
/* 8030F83C 0030B49C 41 82 00 08 */ beq lbl_8030F844
/* 8030F840 0030B4A0 48 00 00 98 */ b lbl_8030F8D8
lbl_8030F844:
/* 8030F844 0030B4A4 80 81 00 10 */ lwz r4, 0x10(r1)
/* 8030F848 0030B4A8 38 1A 00 01 */ addi r0, r26, 1
/* 8030F84C 0030B4AC 7C 00 20 40 */ cmplw r0, r4
/* 8030F850 0030B4B0 41 82 00 34 */ beq lbl_8030F884
/* 8030F854 0030B4B4 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 8030F858 0030B4B8 3C 60 80 40 */ lis r3, lbl_803FE280@ha
/* 8030F85C 0030B4BC 38 63 E2 80 */ addi r3, r3, lbl_803FE280@l
/* 8030F860 0030B4C0 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8030F864 0030B4C4 7C 63 02 14 */ add r3, r3, r0
/* 8030F868 0030B4C8 80 03 00 08 */ lwz r0, 8(r3)
/* 8030F86C 0030B4CC 7C 04 00 40 */ cmplw r4, r0
/* 8030F870 0030B4D0 40 82 00 64 */ bne lbl_8030F8D4
/* 8030F874 0030B4D4 38 1C FF FF */ addi r0, r28, -1
/* 8030F878 0030B4D8 93 5B 00 0C */ stw r26, 0xc(r27)
/* 8030F87C 0030B4DC 90 1B 00 10 */ stw r0, 0x10(r27)
/* 8030F880 0030B4E0 48 00 00 54 */ b lbl_8030F8D4
lbl_8030F884:
/* 8030F884 0030B4E4 80 9B 00 30 */ lwz r4, 0x30(r27)
/* 8030F888 0030B4E8 80 64 00 00 */ lwz r3, 0(r4)
/* 8030F88C 0030B4EC 38 03 00 01 */ addi r0, r3, 1
/* 8030F890 0030B4F0 90 04 00 00 */ stw r0, 0(r4)
/* 8030F894 0030B4F4 80 01 00 10 */ lwz r0, 0x10(r1)
/* 8030F898 0030B4F8 80 7B 00 30 */ lwz r3, 0x30(r27)
/* 8030F89C 0030B4FC 90 03 00 04 */ stw r0, 4(r3)
/* 8030F8A0 0030B500 80 7E 00 00 */ lwz r3, 0(r30)
/* 8030F8A4 0030B504 88 1F 00 06 */ lbz r0, 6(r31)
/* 8030F8A8 0030B508 7C 63 02 14 */ add r3, r3, r0
/* 8030F8AC 0030B50C 90 7E 00 00 */ stw r3, 0(r30)
/* 8030F8B0 0030B510 88 1F 00 20 */ lbz r0, 0x20(r31)
/* 8030F8B4 0030B514 7C 60 00 30 */ slw r0, r3, r0
/* 8030F8B8 0030B518 7C 00 E8 40 */ cmplw r0, r29
/* 8030F8BC 0030B51C 40 80 00 18 */ bge lbl_8030F8D4
/* 8030F8C0 0030B520 83 41 00 10 */ lwz r26, 0x10(r1)
/* 8030F8C4 0030B524 3B 9C 00 01 */ addi r28, r28, 1
lbl_8030F8C8:
/* 8030F8C8 0030B528 80 01 00 10 */ lwz r0, 0x10(r1)
/* 8030F8CC 0030B52C 2C 00 00 00 */ cmpwi r0, 0
/* 8030F8D0 0030B530 40 82 FF 4C */ bne lbl_8030F81C
lbl_8030F8D4:
/* 8030F8D4 0030B534 38 60 00 00 */ li r3, 0
lbl_8030F8D8:
/* 8030F8D8 0030B538 39 61 00 30 */ addi r11, r1, 0x30
/* 8030F8DC 0030B53C 4B EB 78 95 */ bl _restgpr_26
/* 8030F8E0 0030B540 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8030F8E4 0030B544 7C 08 03 A6 */ mtlr r0
/* 8030F8E8 0030B548 38 21 00 30 */ addi r1, r1, 0x30
/* 8030F8EC 0030B54C 4E 80 00 20 */ blr
.global VFiPFFAT_GetClusterAllocatedInChain
VFiPFFAT_GetClusterAllocatedInChain:
/* 8030F8F0 0030B550 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8030F8F4 0030B554 7C 08 02 A6 */ mflr r0
/* 8030F8F8 0030B558 90 01 00 44 */ stw r0, 0x44(r1)
/* 8030F8FC 0030B55C 39 61 00 40 */ addi r11, r1, 0x40
/* 8030F900 0030B560 4B EB 78 1D */ bl _savegpr_24
/* 8030F904 0030B564 83 E3 00 34 */ lwz r31, 0x34(r3)
/* 8030F908 0030B568 39 00 FF FF */ li r8, -1
/* 8030F90C 0030B56C 38 00 00 01 */ li r0, 1
/* 8030F910 0030B570 7C 79 1B 78 */ mr r25, r3
/* 8030F914 0030B574 91 01 00 10 */ stw r8, 0x10(r1)
/* 8030F918 0030B578 7C BA 2B 78 */ mr r26, r5
/* 8030F91C 0030B57C 7C DB 33 78 */ mr r27, r6
/* 8030F920 0030B580 7C FC 3B 78 */ mr r28, r7
/* 8030F924 0030B584 90 01 00 0C */ stw r0, 0xc(r1)
/* 8030F928 0030B588 7C 9E 23 78 */ mr r30, r4
/* 8030F92C 0030B58C 7C 85 23 78 */ mr r5, r4
/* 8030F930 0030B590 7F E3 FB 78 */ mr r3, r31
/* 8030F934 0030B594 38 81 00 08 */ addi r4, r1, 8
/* 8030F938 0030B598 3B A0 00 00 */ li r29, 0
/* 8030F93C 0030B59C 4B FF EB FD */ bl VFiPFFAT_ReadFATSector
/* 8030F940 0030B5A0 2C 03 00 00 */ cmpwi r3, 0
/* 8030F944 0030B5A4 41 82 00 08 */ beq lbl_8030F94C
/* 8030F948 0030B5A8 48 00 00 A0 */ b lbl_8030F9E8
lbl_8030F94C:
/* 8030F94C 0030B5AC 3F 00 80 40 */ lis r24, lbl_803FE280@ha
/* 8030F950 0030B5B0 3B 18 E2 80 */ addi r24, r24, lbl_803FE280@l
/* 8030F954 0030B5B4 48 00 00 84 */ b lbl_8030F9D8
lbl_8030F958:
/* 8030F958 0030B5B8 A0 9F 00 00 */ lhz r4, 0(r31)
/* 8030F95C 0030B5BC 88 1F 00 21 */ lbz r0, 0x21(r31)
/* 8030F960 0030B5C0 80 7C 00 00 */ lwz r3, 0(r28)
/* 8030F964 0030B5C4 7C 80 00 30 */ slw r0, r4, r0
/* 8030F968 0030B5C8 7F BD 02 14 */ add r29, r29, r0
/* 8030F96C 0030B5CC 38 03 00 01 */ addi r0, r3, 1
/* 8030F970 0030B5D0 7C 1D D8 40 */ cmplw r29, r27
/* 8030F974 0030B5D4 90 1C 00 00 */ stw r0, 0(r28)
/* 8030F978 0030B5D8 40 80 00 6C */ bge lbl_8030F9E4
/* 8030F97C 0030B5DC 7F 23 CB 78 */ mr r3, r25
/* 8030F980 0030B5E0 7F C4 F3 78 */ mr r4, r30
/* 8030F984 0030B5E4 7F 45 D3 78 */ mr r5, r26
/* 8030F988 0030B5E8 38 C1 00 10 */ addi r6, r1, 0x10
/* 8030F98C 0030B5EC 38 E1 00 0C */ addi r7, r1, 0xc
/* 8030F990 0030B5F0 39 01 00 08 */ addi r8, r1, 8
/* 8030F994 0030B5F4 4B FF F2 41 */ bl VFiPFFAT_ReadClusterPage
/* 8030F998 0030B5F8 2C 03 00 00 */ cmpwi r3, 0
/* 8030F99C 0030B5FC 41 82 00 08 */ beq lbl_8030F9A4
/* 8030F9A0 0030B600 48 00 00 48 */ b lbl_8030F9E8
lbl_8030F9A4:
/* 8030F9A4 0030B604 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 8030F9A8 0030B608 80 81 00 10 */ lwz r4, 0x10(r1)
/* 8030F9AC 0030B60C 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8030F9B0 0030B610 7C 78 02 14 */ add r3, r24, r0
/* 8030F9B4 0030B614 80 03 00 08 */ lwz r0, 8(r3)
/* 8030F9B8 0030B618 7C 04 00 40 */ cmplw r4, r0
/* 8030F9BC 0030B61C 40 82 00 14 */ bne lbl_8030F9D0
/* 8030F9C0 0030B620 38 1A FF FF */ addi r0, r26, -1
/* 8030F9C4 0030B624 93 D9 00 0C */ stw r30, 0xc(r25)
/* 8030F9C8 0030B628 90 19 00 10 */ stw r0, 0x10(r25)
/* 8030F9CC 0030B62C 48 00 00 18 */ b lbl_8030F9E4
lbl_8030F9D0:
/* 8030F9D0 0030B630 7C 9E 23 78 */ mr r30, r4
/* 8030F9D4 0030B634 3B 5A 00 01 */ addi r26, r26, 1
lbl_8030F9D8:
/* 8030F9D8 0030B638 80 01 00 10 */ lwz r0, 0x10(r1)
/* 8030F9DC 0030B63C 2C 00 00 00 */ cmpwi r0, 0
/* 8030F9E0 0030B640 40 82 FF 78 */ bne lbl_8030F958
lbl_8030F9E4:
/* 8030F9E4 0030B644 38 60 00 00 */ li r3, 0
lbl_8030F9E8:
/* 8030F9E8 0030B648 39 61 00 40 */ addi r11, r1, 0x40
/* 8030F9EC 0030B64C 4B EB 77 7D */ bl _restgpr_24
/* 8030F9F0 0030B650 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8030F9F4 0030B654 7C 08 03 A6 */ mtlr r0
/* 8030F9F8 0030B658 38 21 00 40 */ addi r1, r1, 0x40
/* 8030F9FC 0030B65C 4E 80 00 20 */ blr
.global VFiPFFAT_GetClusterSpecified
VFiPFFAT_GetClusterSpecified:
/* 8030FA00 0030B660 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8030FA04 0030B664 7C 08 02 A6 */ mflr r0
/* 8030FA08 0030B668 90 01 00 34 */ stw r0, 0x34(r1)
/* 8030FA0C 0030B66C 39 61 00 30 */ addi r11, r1, 0x30
/* 8030FA10 0030B670 4B EB 77 19 */ bl _savegpr_27
/* 8030FA14 0030B674 80 E3 00 08 */ lwz r7, 8(r3)
/* 8030FA18 0030B678 7C 9D 23 78 */ mr r29, r4
/* 8030FA1C 0030B67C 81 03 00 34 */ lwz r8, 0x34(r3)
/* 8030FA20 0030B680 7C 7C 1B 78 */ mr r28, r3
/* 8030FA24 0030B684 80 07 00 00 */ lwz r0, 0(r7)
/* 8030FA28 0030B688 7C BB 2B 78 */ mr r27, r5
/* 8030FA2C 0030B68C 80 88 00 1C */ lwz r4, 0x1c(r8)
/* 8030FA30 0030B690 7C DE 33 78 */ mr r30, r6
/* 8030FA34 0030B694 2C 00 00 00 */ cmpwi r0, 0
/* 8030FA38 0030B698 83 E3 00 30 */ lwz r31, 0x30(r3)
/* 8030FA3C 0030B69C 40 82 00 1C */ bne lbl_8030FA58
/* 8030FA40 0030B6A0 2C 05 00 00 */ cmpwi r5, 0
/* 8030FA44 0030B6A4 40 82 00 14 */ bne lbl_8030FA58
/* 8030FA48 0030B6A8 38 00 FF FF */ li r0, -1
/* 8030FA4C 0030B6AC 38 60 00 00 */ li r3, 0
/* 8030FA50 0030B6B0 90 06 00 00 */ stw r0, 0(r6)
/* 8030FA54 0030B6B4 48 00 01 24 */ b lbl_8030FB78
lbl_8030FA58:
/* 8030FA58 0030B6B8 28 00 00 01 */ cmplwi r0, 1
/* 8030FA5C 0030B6BC 40 82 00 24 */ bne lbl_8030FA80
/* 8030FA60 0030B6C0 28 04 00 01 */ cmplwi r4, 1
/* 8030FA64 0030B6C4 41 81 00 14 */ bgt lbl_8030FA78
/* 8030FA68 0030B6C8 38 00 FF FF */ li r0, -1
/* 8030FA6C 0030B6CC 38 60 00 00 */ li r3, 0
/* 8030FA70 0030B6D0 90 06 00 00 */ stw r0, 0(r6)
/* 8030FA74 0030B6D4 48 00 01 04 */ b lbl_8030FB78
lbl_8030FA78:
/* 8030FA78 0030B6D8 80 08 00 10 */ lwz r0, 0x10(r8)
/* 8030FA7C 0030B6DC 90 07 00 00 */ stw r0, 0(r7)
lbl_8030FA80:
/* 8030FA80 0030B6E0 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8030FA84 0030B6E4 2C 00 00 00 */ cmpwi r0, 0
/* 8030FA88 0030B6E8 41 82 00 54 */ beq lbl_8030FADC
/* 8030FA8C 0030B6EC 2C 05 00 00 */ cmpwi r5, 0
/* 8030FA90 0030B6F0 40 82 00 4C */ bne lbl_8030FADC
/* 8030FA94 0030B6F4 7F 83 E3 78 */ mr r3, r28
/* 8030FA98 0030B6F8 7F A4 EB 78 */ mr r4, r29
/* 8030FA9C 0030B6FC 7F C5 F3 78 */ mr r5, r30
/* 8030FAA0 0030B700 38 C1 00 10 */ addi r6, r1, 0x10
/* 8030FAA4 0030B704 4B FF ED C9 */ bl VFiPFFAT_FindClusterLink
/* 8030FAA8 0030B708 2C 03 00 00 */ cmpwi r3, 0
/* 8030FAAC 0030B70C 41 82 00 08 */ beq lbl_8030FAB4
/* 8030FAB0 0030B710 48 00 00 C8 */ b lbl_8030FB78
lbl_8030FAB4:
/* 8030FAB4 0030B714 80 01 00 10 */ lwz r0, 0x10(r1)
/* 8030FAB8 0030B718 28 00 00 01 */ cmplwi r0, 1
/* 8030FABC 0030B71C 40 82 00 20 */ bne lbl_8030FADC
/* 8030FAC0 0030B720 80 1C 00 00 */ lwz r0, 0(r28)
/* 8030FAC4 0030B724 38 60 00 00 */ li r3, 0
/* 8030FAC8 0030B728 90 1F 00 08 */ stw r0, 8(r31)
/* 8030FACC 0030B72C 93 BF 00 00 */ stw r29, 0(r31)
/* 8030FAD0 0030B730 80 1E 00 00 */ lwz r0, 0(r30)
/* 8030FAD4 0030B734 90 1F 00 04 */ stw r0, 4(r31)
/* 8030FAD8 0030B738 48 00 00 A0 */ b lbl_8030FB78
lbl_8030FADC:
/* 8030FADC 0030B73C 7C 1B 00 D0 */ neg r0, r27
/* 8030FAE0 0030B740 38 60 FF FF */ li r3, -1
/* 8030FAE4 0030B744 7C 00 DB 78 */ or r0, r0, r27
/* 8030FAE8 0030B748 90 7E 00 00 */ stw r3, 0(r30)
/* 8030FAEC 0030B74C 7F 83 E3 78 */ mr r3, r28
/* 8030FAF0 0030B750 7F A4 EB 78 */ mr r4, r29
/* 8030FAF4 0030B754 54 05 0F FE */ srwi r5, r0, 0x1f
/* 8030FAF8 0030B758 38 E1 00 08 */ addi r7, r1, 8
/* 8030FAFC 0030B75C 39 01 00 0C */ addi r8, r1, 0xc
/* 8030FB00 0030B760 38 C0 00 00 */ li r6, 0
/* 8030FB04 0030B764 4B FF F9 95 */ bl VFiPFFAT_GetClusterInChain
/* 8030FB08 0030B768 2C 03 00 00 */ cmpwi r3, 0
/* 8030FB0C 0030B76C 41 82 00 08 */ beq lbl_8030FB14
/* 8030FB10 0030B770 48 00 00 2C */ b lbl_8030FB3C
lbl_8030FB14:
/* 8030FB14 0030B774 80 81 00 0C */ lwz r4, 0xc(r1)
/* 8030FB18 0030B778 28 04 00 02 */ cmplwi r4, 2
/* 8030FB1C 0030B77C 41 80 00 1C */ blt lbl_8030FB38
/* 8030FB20 0030B780 80 7C 00 34 */ lwz r3, 0x34(r28)
/* 8030FB24 0030B784 80 63 00 34 */ lwz r3, 0x34(r3)
/* 8030FB28 0030B788 38 03 00 02 */ addi r0, r3, 2
/* 8030FB2C 0030B78C 7C 04 00 40 */ cmplw r4, r0
/* 8030FB30 0030B790 40 80 00 08 */ bge lbl_8030FB38
/* 8030FB34 0030B794 90 9E 00 00 */ stw r4, 0(r30)
lbl_8030FB38:
/* 8030FB38 0030B798 38 60 00 00 */ li r3, 0
lbl_8030FB3C:
/* 8030FB3C 0030B79C 2C 03 00 00 */ cmpwi r3, 0
/* 8030FB40 0030B7A0 41 82 00 08 */ beq lbl_8030FB48
/* 8030FB44 0030B7A4 48 00 00 34 */ b lbl_8030FB78
lbl_8030FB48:
/* 8030FB48 0030B7A8 80 7E 00 00 */ lwz r3, 0(r30)
/* 8030FB4C 0030B7AC 3C 03 00 01 */ addis r0, r3, 1
/* 8030FB50 0030B7B0 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030FB54 0030B7B4 40 82 00 0C */ bne lbl_8030FB60
/* 8030FB58 0030B7B8 38 60 00 00 */ li r3, 0
/* 8030FB5C 0030B7BC 48 00 00 1C */ b lbl_8030FB78
lbl_8030FB60:
/* 8030FB60 0030B7C0 80 1C 00 00 */ lwz r0, 0(r28)
/* 8030FB64 0030B7C4 38 60 00 00 */ li r3, 0
/* 8030FB68 0030B7C8 90 1F 00 08 */ stw r0, 8(r31)
/* 8030FB6C 0030B7CC 93 BF 00 00 */ stw r29, 0(r31)
/* 8030FB70 0030B7D0 80 1E 00 00 */ lwz r0, 0(r30)
/* 8030FB74 0030B7D4 90 1F 00 04 */ stw r0, 4(r31)
lbl_8030FB78:
/* 8030FB78 0030B7D8 39 61 00 30 */ addi r11, r1, 0x30
/* 8030FB7C 0030B7DC 4B EB 75 F9 */ bl _restgpr_27
/* 8030FB80 0030B7E0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8030FB84 0030B7E4 7C 08 03 A6 */ mtlr r0
/* 8030FB88 0030B7E8 38 21 00 30 */ addi r1, r1, 0x30
/* 8030FB8C 0030B7EC 4E 80 00 20 */ blr
.global VFiPFFAT_GetClusterAllocated
VFiPFFAT_GetClusterAllocated:
/* 8030FB90 0030B7F0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8030FB94 0030B7F4 7C 08 02 A6 */ mflr r0
/* 8030FB98 0030B7F8 90 01 00 34 */ stw r0, 0x34(r1)
/* 8030FB9C 0030B7FC 39 61 00 30 */ addi r11, r1, 0x30
/* 8030FBA0 0030B800 4B EB 75 89 */ bl _savegpr_27
/* 8030FBA4 0030B804 81 03 00 08 */ lwz r8, 8(r3)
/* 8030FBA8 0030B808 7C 9D 23 78 */ mr r29, r4
/* 8030FBAC 0030B80C 81 23 00 34 */ lwz r9, 0x34(r3)
/* 8030FBB0 0030B810 7C 7C 1B 78 */ mr r28, r3
/* 8030FBB4 0030B814 80 08 00 00 */ lwz r0, 0(r8)
/* 8030FBB8 0030B818 7C DE 33 78 */ mr r30, r6
/* 8030FBBC 0030B81C 80 89 00 1C */ lwz r4, 0x1c(r9)
/* 8030FBC0 0030B820 7C FB 3B 78 */ mr r27, r7
/* 8030FBC4 0030B824 28 00 00 01 */ cmplwi r0, 1
/* 8030FBC8 0030B828 83 E3 00 30 */ lwz r31, 0x30(r3)
/* 8030FBCC 0030B82C 40 82 00 24 */ bne lbl_8030FBF0
/* 8030FBD0 0030B830 28 04 00 01 */ cmplwi r4, 1
/* 8030FBD4 0030B834 41 81 00 14 */ bgt lbl_8030FBE8
/* 8030FBD8 0030B838 38 00 FF FF */ li r0, -1
/* 8030FBDC 0030B83C 38 60 00 00 */ li r3, 0
/* 8030FBE0 0030B840 90 06 00 00 */ stw r0, 0(r6)
/* 8030FBE4 0030B844 48 00 00 B4 */ b lbl_8030FC98
lbl_8030FBE8:
/* 8030FBE8 0030B848 80 09 00 10 */ lwz r0, 0x10(r9)
/* 8030FBEC 0030B84C 90 08 00 00 */ stw r0, 0(r8)
lbl_8030FBF0:
/* 8030FBF0 0030B850 38 00 FF FF */ li r0, -1
/* 8030FBF4 0030B854 7F 83 E3 78 */ mr r3, r28
/* 8030FBF8 0030B858 90 06 00 00 */ stw r0, 0(r6)
/* 8030FBFC 0030B85C 7C A6 2B 78 */ mr r6, r5
/* 8030FC00 0030B860 7F A4 EB 78 */ mr r4, r29
/* 8030FC04 0030B864 38 E1 00 08 */ addi r7, r1, 8
/* 8030FC08 0030B868 39 01 00 0C */ addi r8, r1, 0xc
/* 8030FC0C 0030B86C 38 A0 00 02 */ li r5, 2
/* 8030FC10 0030B870 4B FF F8 89 */ bl VFiPFFAT_GetClusterInChain
/* 8030FC14 0030B874 2C 03 00 00 */ cmpwi r3, 0
/* 8030FC18 0030B878 41 82 00 08 */ beq lbl_8030FC20
/* 8030FC1C 0030B87C 48 00 00 40 */ b lbl_8030FC5C
lbl_8030FC20:
/* 8030FC20 0030B880 80 61 00 08 */ lwz r3, 8(r1)
/* 8030FC24 0030B884 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8030FC28 0030B888 7C 63 00 50 */ subf r3, r3, r0
/* 8030FC2C 0030B88C 38 03 00 01 */ addi r0, r3, 1
/* 8030FC30 0030B890 90 1B 00 00 */ stw r0, 0(r27)
/* 8030FC34 0030B894 80 81 00 08 */ lwz r4, 8(r1)
/* 8030FC38 0030B898 28 04 00 02 */ cmplwi r4, 2
/* 8030FC3C 0030B89C 41 80 00 1C */ blt lbl_8030FC58
/* 8030FC40 0030B8A0 80 7C 00 34 */ lwz r3, 0x34(r28)
/* 8030FC44 0030B8A4 80 63 00 34 */ lwz r3, 0x34(r3)
/* 8030FC48 0030B8A8 38 03 00 02 */ addi r0, r3, 2
/* 8030FC4C 0030B8AC 7C 04 00 40 */ cmplw r4, r0
/* 8030FC50 0030B8B0 40 80 00 08 */ bge lbl_8030FC58
/* 8030FC54 0030B8B4 90 9E 00 00 */ stw r4, 0(r30)
lbl_8030FC58:
/* 8030FC58 0030B8B8 38 60 00 00 */ li r3, 0
lbl_8030FC5C:
/* 8030FC5C 0030B8BC 2C 03 00 00 */ cmpwi r3, 0
/* 8030FC60 0030B8C0 41 82 00 08 */ beq lbl_8030FC68
/* 8030FC64 0030B8C4 48 00 00 34 */ b lbl_8030FC98
lbl_8030FC68:
/* 8030FC68 0030B8C8 80 7E 00 00 */ lwz r3, 0(r30)
/* 8030FC6C 0030B8CC 3C 03 00 01 */ addis r0, r3, 1
/* 8030FC70 0030B8D0 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030FC74 0030B8D4 40 82 00 0C */ bne lbl_8030FC80
/* 8030FC78 0030B8D8 38 60 00 00 */ li r3, 0
/* 8030FC7C 0030B8DC 48 00 00 1C */ b lbl_8030FC98
lbl_8030FC80:
/* 8030FC80 0030B8E0 80 1C 00 00 */ lwz r0, 0(r28)
/* 8030FC84 0030B8E4 38 60 00 00 */ li r3, 0
/* 8030FC88 0030B8E8 90 1F 00 08 */ stw r0, 8(r31)
/* 8030FC8C 0030B8EC 93 BF 00 00 */ stw r29, 0(r31)
/* 8030FC90 0030B8F0 80 1E 00 00 */ lwz r0, 0(r30)
/* 8030FC94 0030B8F4 90 1F 00 04 */ stw r0, 4(r31)
lbl_8030FC98:
/* 8030FC98 0030B8F8 39 61 00 30 */ addi r11, r1, 0x30
/* 8030FC9C 0030B8FC 4B EB 74 D9 */ bl _restgpr_27
/* 8030FCA0 0030B900 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8030FCA4 0030B904 7C 08 03 A6 */ mtlr r0
/* 8030FCA8 0030B908 38 21 00 30 */ addi r1, r1, 0x30
/* 8030FCAC 0030B90C 4E 80 00 20 */ blr
.global VFiPFFAT_GetSector
VFiPFFAT_GetSector:
/* 8030FCB0 0030B910 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8030FCB4 0030B914 7C 08 02 A6 */ mflr r0
/* 8030FCB8 0030B918 90 01 00 24 */ stw r0, 0x24(r1)
/* 8030FCBC 0030B91C 38 00 00 00 */ li r0, 0
/* 8030FCC0 0030B920 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8030FCC4 0030B924 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8030FCC8 0030B928 7D 1E 43 78 */ mr r30, r8
/* 8030FCCC 0030B92C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8030FCD0 0030B930 7C FD 3B 78 */ mr r29, r7
/* 8030FCD4 0030B934 93 81 00 10 */ stw r28, 0x10(r1)
/* 8030FCD8 0030B938 7C 9C 23 78 */ mr r28, r4
/* 8030FCDC 0030B93C 90 01 00 08 */ stw r0, 8(r1)
/* 8030FCE0 0030B940 81 23 00 08 */ lwz r9, 8(r3)
/* 8030FCE4 0030B944 83 E3 00 34 */ lwz r31, 0x34(r3)
/* 8030FCE8 0030B948 80 09 00 00 */ lwz r0, 0(r9)
/* 8030FCEC 0030B94C 81 1F 00 1C */ lwz r8, 0x1c(r31)
/* 8030FCF0 0030B950 28 00 00 01 */ cmplwi r0, 1
/* 8030FCF4 0030B954 40 82 00 64 */ bne lbl_8030FD58
/* 8030FCF8 0030B958 28 08 00 01 */ cmplwi r8, 1
/* 8030FCFC 0030B95C 41 81 00 5C */ bgt lbl_8030FD58
/* 8030FD00 0030B960 2C 08 00 00 */ cmpwi r8, 0
/* 8030FD04 0030B964 41 82 00 14 */ beq lbl_8030FD18
/* 8030FD08 0030B968 2C 08 00 01 */ cmpwi r8, 1
/* 8030FD0C 0030B96C 41 82 00 0C */ beq lbl_8030FD18
/* 8030FD10 0030B970 38 60 00 0C */ li r3, 0xc
/* 8030FD14 0030B974 48 00 00 30 */ b lbl_8030FD44
lbl_8030FD18:
/* 8030FD18 0030B978 A0 1F 00 24 */ lhz r0, 0x24(r31)
/* 8030FD1C 0030B97C 7C 04 00 40 */ cmplw r4, r0
/* 8030FD20 0030B980 41 80 00 14 */ blt lbl_8030FD34
/* 8030FD24 0030B984 38 00 FF FF */ li r0, -1
/* 8030FD28 0030B988 38 60 00 00 */ li r3, 0
/* 8030FD2C 0030B98C 90 07 00 00 */ stw r0, 0(r7)
/* 8030FD30 0030B990 48 00 00 14 */ b lbl_8030FD44
lbl_8030FD34:
/* 8030FD34 0030B994 80 1F 00 2C */ lwz r0, 0x2c(r31)
/* 8030FD38 0030B998 38 60 00 00 */ li r3, 0
/* 8030FD3C 0030B99C 7C 00 22 14 */ add r0, r0, r4
/* 8030FD40 0030B9A0 90 07 00 00 */ stw r0, 0(r7)
lbl_8030FD44:
/* 8030FD44 0030B9A4 7C 03 00 D0 */ neg r0, r3
/* 8030FD48 0030B9A8 7C 00 1B 78 */ or r0, r0, r3
/* 8030FD4C 0030B9AC 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 8030FD50 0030B9B0 7C 63 00 38 */ and r3, r3, r0
/* 8030FD54 0030B9B4 48 00 00 F4 */ b lbl_8030FE48
lbl_8030FD58:
/* 8030FD58 0030B9B8 89 3F 00 21 */ lbz r9, 0x21(r31)
/* 8030FD5C 0030B9BC 28 05 00 02 */ cmplwi r5, 2
/* 8030FD60 0030B9C0 7C 84 4C 30 */ srw r4, r4, r9
/* 8030FD64 0030B9C4 40 82 00 74 */ bne lbl_8030FDD8
/* 8030FD68 0030B9C8 A0 BF 00 00 */ lhz r5, 0(r31)
/* 8030FD6C 0030B9CC 89 1F 00 20 */ lbz r8, 0x20(r31)
/* 8030FD70 0030B9D0 38 05 FF FF */ addi r0, r5, -1
/* 8030FD74 0030B9D4 88 BF 00 06 */ lbz r5, 6(r31)
/* 8030FD78 0030B9D8 7C C7 00 38 */ and r7, r6, r0
/* 8030FD7C 0030B9DC 7C C8 44 30 */ srw r8, r6, r8
/* 8030FD80 0030B9E0 7C C7 00 D0 */ neg r6, r7
/* 8030FD84 0030B9E4 38 05 FF FF */ addi r0, r5, -1
/* 8030FD88 0030B9E8 7C C5 3B 78 */ or r5, r6, r7
/* 8030FD8C 0030B9EC 38 E1 00 08 */ addi r7, r1, 8
/* 8030FD90 0030B9F0 54 A5 0F FE */ srwi r5, r5, 0x1f
/* 8030FD94 0030B9F4 38 C1 00 0C */ addi r6, r1, 0xc
/* 8030FD98 0030B9F8 7D 08 2A 14 */ add r8, r8, r5
/* 8030FD9C 0030B9FC 7C 05 40 38 */ and r5, r0, r8
/* 8030FDA0 0030BA00 7C 05 00 D0 */ neg r0, r5
/* 8030FDA4 0030BA04 7D 08 4C 30 */ srw r8, r8, r9
/* 8030FDA8 0030BA08 7C 00 2B 78 */ or r0, r0, r5
/* 8030FDAC 0030BA0C 54 00 0F FE */ srwi r0, r0, 0x1f
/* 8030FDB0 0030BA10 7C A8 02 14 */ add r5, r8, r0
/* 8030FDB4 0030BA14 4B FF FD DD */ bl VFiPFFAT_GetClusterAllocated
/* 8030FDB8 0030BA18 2C 03 00 00 */ cmpwi r3, 0
/* 8030FDBC 0030BA1C 41 82 00 08 */ beq lbl_8030FDC4
/* 8030FDC0 0030BA20 48 00 00 88 */ b lbl_8030FE48
lbl_8030FDC4:
/* 8030FDC4 0030BA24 80 61 00 08 */ lwz r3, 8(r1)
/* 8030FDC8 0030BA28 88 1F 00 21 */ lbz r0, 0x21(r31)
/* 8030FDCC 0030BA2C 7C 60 00 30 */ slw r0, r3, r0
/* 8030FDD0 0030BA30 90 1E 00 00 */ stw r0, 0(r30)
/* 8030FDD4 0030BA34 48 00 00 28 */ b lbl_8030FDFC
lbl_8030FDD8:
/* 8030FDD8 0030BA38 38 C1 00 0C */ addi r6, r1, 0xc
/* 8030FDDC 0030BA3C 4B FF FC 25 */ bl VFiPFFAT_GetClusterSpecified
/* 8030FDE0 0030BA40 2C 03 00 00 */ cmpwi r3, 0
/* 8030FDE4 0030BA44 41 82 00 08 */ beq lbl_8030FDEC
/* 8030FDE8 0030BA48 48 00 00 60 */ b lbl_8030FE48
lbl_8030FDEC:
/* 8030FDEC 0030BA4C 88 1F 00 21 */ lbz r0, 0x21(r31)
/* 8030FDF0 0030BA50 38 60 00 01 */ li r3, 1
/* 8030FDF4 0030BA54 7C 60 00 30 */ slw r0, r3, r0
/* 8030FDF8 0030BA58 90 1E 00 00 */ stw r0, 0(r30)
lbl_8030FDFC:
/* 8030FDFC 0030BA5C 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8030FE00 0030BA60 3C 03 00 01 */ addis r0, r3, 1
/* 8030FE04 0030BA64 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030FE08 0030BA68 40 82 00 14 */ bne lbl_8030FE1C
/* 8030FE0C 0030BA6C 38 00 FF FF */ li r0, -1
/* 8030FE10 0030BA70 38 60 00 00 */ li r3, 0
/* 8030FE14 0030BA74 90 1D 00 00 */ stw r0, 0(r29)
/* 8030FE18 0030BA78 48 00 00 30 */ b lbl_8030FE48
lbl_8030FE1C:
/* 8030FE1C 0030BA7C 88 9F 00 06 */ lbz r4, 6(r31)
/* 8030FE20 0030BA80 38 C3 FF FE */ addi r6, r3, -2
/* 8030FE24 0030BA84 88 BF 00 21 */ lbz r5, 0x21(r31)
/* 8030FE28 0030BA88 38 60 00 00 */ li r3, 0
/* 8030FE2C 0030BA8C 38 04 FF FF */ addi r0, r4, -1
/* 8030FE30 0030BA90 80 FF 00 30 */ lwz r7, 0x30(r31)
/* 8030FE34 0030BA94 7C C5 28 30 */ slw r5, r6, r5
/* 8030FE38 0030BA98 7F 84 00 38 */ and r4, r28, r0
/* 8030FE3C 0030BA9C 7C 07 2A 14 */ add r0, r7, r5
/* 8030FE40 0030BAA0 7C 04 02 14 */ add r0, r4, r0
/* 8030FE44 0030BAA4 90 1D 00 00 */ stw r0, 0(r29)
lbl_8030FE48:
/* 8030FE48 0030BAA8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8030FE4C 0030BAAC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8030FE50 0030BAB0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8030FE54 0030BAB4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8030FE58 0030BAB8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8030FE5C 0030BABC 7C 08 03 A6 */ mtlr r0
/* 8030FE60 0030BAC0 38 21 00 20 */ addi r1, r1, 0x20
/* 8030FE64 0030BAC4 4E 80 00 20 */ blr
.global VFiPFFAT_UpdateFATEntry
VFiPFFAT_UpdateFATEntry:
/* 8030FE68 0030BAC8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8030FE6C 0030BACC 7C 08 02 A6 */ mflr r0
/* 8030FE70 0030BAD0 38 A0 00 00 */ li r5, 0
/* 8030FE74 0030BAD4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030FE78 0030BAD8 A0 04 00 00 */ lhz r0, 0(r4)
/* 8030FE7C 0030BADC 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
/* 8030FE80 0030BAE0 2C 00 00 02 */ cmpwi r0, 2
/* 8030FE84 0030BAE4 40 82 00 0C */ bne lbl_8030FE90
/* 8030FE88 0030BAE8 4B FF AA F5 */ bl VFiPFCACHE_WriteFATPage
/* 8030FE8C 0030BAEC 7C 65 1B 78 */ mr r5, r3
lbl_8030FE90:
/* 8030FE90 0030BAF0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030FE94 0030BAF4 7C A3 2B 78 */ mr r3, r5
/* 8030FE98 0030BAF8 7C 08 03 A6 */ mtlr r0
/* 8030FE9C 0030BAFC 38 21 00 10 */ addi r1, r1, 0x10
/* 8030FEA0 0030BB00 4E 80 00 20 */ blr
.global VFiPFFAT_UpdateAlternateFATEntry
VFiPFFAT_UpdateAlternateFATEntry:
/* 8030FEA4 0030BB04 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8030FEA8 0030BB08 7C 08 02 A6 */ mflr r0
/* 8030FEAC 0030BB0C 90 01 00 34 */ stw r0, 0x34(r1)
/* 8030FEB0 0030BB10 39 61 00 30 */ addi r11, r1, 0x30
/* 8030FEB4 0030BB14 4B EB 72 71 */ bl _savegpr_26
/* 8030FEB8 0030BB18 A0 03 00 02 */ lhz r0, 2(r3)
/* 8030FEBC 0030BB1C 7C 7A 1B 78 */ mr r26, r3
/* 8030FEC0 0030BB20 80 63 00 0C */ lwz r3, 0xc(r3)
/* 8030FEC4 0030BB24 7C 9B 23 78 */ mr r27, r4
/* 8030FEC8 0030BB28 7C 80 28 50 */ subf r4, r0, r5
/* 8030FECC 0030BB2C 7C DD 33 78 */ mr r29, r6
/* 8030FED0 0030BB30 7C 04 1B 97 */ divwu. r0, r4, r3
/* 8030FED4 0030BB34 3B E0 00 00 */ li r31, 0
/* 8030FED8 0030BB38 41 82 00 14 */ beq lbl_8030FEEC
/* 8030FEDC 0030BB3C 7C 00 19 D6 */ mullw r0, r0, r3
/* 8030FEE0 0030BB40 3B C0 00 00 */ li r30, 0
/* 8030FEE4 0030BB44 7F 80 20 50 */ subf r28, r0, r4
/* 8030FEE8 0030BB48 48 00 00 58 */ b lbl_8030FF40
lbl_8030FEEC:
/* 8030FEEC 0030BB4C 7F 85 1A 14 */ add r28, r5, r3
/* 8030FEF0 0030BB50 3B C0 00 01 */ li r30, 1
/* 8030FEF4 0030BB54 48 00 00 4C */ b lbl_8030FF40
lbl_8030FEF8:
/* 8030FEF8 0030BB58 7F 43 D3 78 */ mr r3, r26
/* 8030FEFC 0030BB5C 7F 64 DB 78 */ mr r4, r27
/* 8030FF00 0030BB60 7F 85 E3 78 */ mr r5, r28
/* 8030FF04 0030BB64 7F A6 EB 78 */ mr r6, r29
/* 8030FF08 0030BB68 38 E1 00 08 */ addi r7, r1, 8
/* 8030FF0C 0030BB6C 4B FF 63 35 */ bl VFiPFDRV_lwrite
/* 8030FF10 0030BB70 2C 03 00 00 */ cmpwi r3, 0
/* 8030FF14 0030BB74 41 82 00 10 */ beq lbl_8030FF24
/* 8030FF18 0030BB78 2C 1F 00 00 */ cmpwi r31, 0
/* 8030FF1C 0030BB7C 40 82 00 08 */ bne lbl_8030FF24
/* 8030FF20 0030BB80 7C 7F 1B 78 */ mr r31, r3
lbl_8030FF24:
/* 8030FF24 0030BB84 80 01 00 08 */ lwz r0, 8(r1)
/* 8030FF28 0030BB88 7C 00 E8 40 */ cmplw r0, r29
/* 8030FF2C 0030BB8C 41 82 00 08 */ beq lbl_8030FF34
/* 8030FF30 0030BB90 3B E0 00 11 */ li r31, 0x11
lbl_8030FF34:
/* 8030FF34 0030BB94 80 1A 00 0C */ lwz r0, 0xc(r26)
/* 8030FF38 0030BB98 3B DE 00 01 */ addi r30, r30, 1
/* 8030FF3C 0030BB9C 7F 9C 02 14 */ add r28, r28, r0
lbl_8030FF40:
/* 8030FF40 0030BBA0 88 1A 00 22 */ lbz r0, 0x22(r26)
/* 8030FF44 0030BBA4 7C 1E 00 40 */ cmplw r30, r0
/* 8030FF48 0030BBA8 41 80 FF B0 */ blt lbl_8030FEF8
/* 8030FF4C 0030BBAC 39 61 00 30 */ addi r11, r1, 0x30
/* 8030FF50 0030BBB0 7F E3 FB 78 */ mr r3, r31
/* 8030FF54 0030BBB4 4B EB 72 1D */ bl _restgpr_26
/* 8030FF58 0030BBB8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8030FF5C 0030BBBC 7C 08 03 A6 */ mtlr r0
/* 8030FF60 0030BBC0 38 21 00 30 */ addi r1, r1, 0x30
/* 8030FF64 0030BBC4 4E 80 00 20 */ blr
.global VFiPFFAT_GetSectorSpecified
VFiPFFAT_GetSectorSpecified:
/* 8030FF68 0030BBC8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8030FF6C 0030BBCC 7C 08 02 A6 */ mflr r0
/* 8030FF70 0030BBD0 2C 03 00 00 */ cmpwi r3, 0
/* 8030FF74 0030BBD4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030FF78 0030BBD8 40 82 00 0C */ bne lbl_8030FF84
/* 8030FF7C 0030BBDC 38 60 00 0A */ li r3, 0xa
/* 8030FF80 0030BBE0 48 00 00 B0 */ b lbl_80310030
lbl_8030FF84:
/* 8030FF84 0030BBE4 81 03 00 30 */ lwz r8, 0x30(r3)
/* 8030FF88 0030BBE8 2C 08 00 00 */ cmpwi r8, 0
/* 8030FF8C 0030BBEC 40 82 00 0C */ bne lbl_8030FF98
/* 8030FF90 0030BBF0 38 60 00 0A */ li r3, 0xa
/* 8030FF94 0030BBF4 48 00 00 9C */ b lbl_80310030
lbl_8030FF98:
/* 8030FF98 0030BBF8 80 E3 00 00 */ lwz r7, 0(r3)
/* 8030FF9C 0030BBFC 2C 07 00 00 */ cmpwi r7, 0
/* 8030FFA0 0030BC00 40 82 00 0C */ bne lbl_8030FFAC
/* 8030FFA4 0030BC04 38 60 00 0A */ li r3, 0xa
/* 8030FFA8 0030BC08 48 00 00 88 */ b lbl_80310030
lbl_8030FFAC:
/* 8030FFAC 0030BC0C 80 08 00 08 */ lwz r0, 8(r8)
/* 8030FFB0 0030BC10 7C 00 38 40 */ cmplw r0, r7
/* 8030FFB4 0030BC14 40 81 00 0C */ ble lbl_8030FFC0
/* 8030FFB8 0030BC18 38 60 00 0A */ li r3, 0xa
/* 8030FFBC 0030BC1C 48 00 00 74 */ b lbl_80310030
lbl_8030FFC0:
/* 8030FFC0 0030BC20 80 E3 00 34 */ lwz r7, 0x34(r3)
/* 8030FFC4 0030BC24 88 07 18 7A */ lbz r0, 0x187a(r7)
/* 8030FFC8 0030BC28 7C 00 07 74 */ extsb r0, r0
/* 8030FFCC 0030BC2C 2C 00 00 41 */ cmpwi r0, 0x41
/* 8030FFD0 0030BC30 41 80 00 0C */ blt lbl_8030FFDC
/* 8030FFD4 0030BC34 2C 00 00 5A */ cmpwi r0, 0x5a
/* 8030FFD8 0030BC38 40 81 00 0C */ ble lbl_8030FFE4
lbl_8030FFDC:
/* 8030FFDC 0030BC3C 38 60 00 23 */ li r3, 0x23
/* 8030FFE0 0030BC40 48 00 00 50 */ b lbl_80310030
lbl_8030FFE4:
/* 8030FFE4 0030BC44 88 07 00 20 */ lbz r0, 0x20(r7)
/* 8030FFE8 0030BC48 38 E0 FF FF */ li r7, -1
/* 8030FFEC 0030BC4C 7C E7 04 30 */ srw r7, r7, r0
/* 8030FFF0 0030BC50 38 07 00 01 */ addi r0, r7, 1
/* 8030FFF4 0030BC54 7C 04 00 40 */ cmplw r4, r0
/* 8030FFF8 0030BC58 41 80 00 0C */ blt lbl_80310004
/* 8030FFFC 0030BC5C 38 60 00 25 */ li r3, 0x25
/* 80310000 0030BC60 48 00 00 30 */ b lbl_80310030
lbl_80310004:
/* 80310004 0030BC64 7C 05 00 D0 */ neg r0, r5
/* 80310008 0030BC68 7C C7 33 78 */ mr r7, r6
/* 8031000C 0030BC6C 7C 00 2B 78 */ or r0, r0, r5
/* 80310010 0030BC70 39 01 00 08 */ addi r8, r1, 8
/* 80310014 0030BC74 54 05 0F FE */ srwi r5, r0, 0x1f
/* 80310018 0030BC78 38 C0 00 00 */ li r6, 0
/* 8031001C 0030BC7C 4B FF FC 95 */ bl VFiPFFAT_GetSector
/* 80310020 0030BC80 2C 03 00 00 */ cmpwi r3, 0
/* 80310024 0030BC84 41 82 00 08 */ beq lbl_8031002C
/* 80310028 0030BC88 48 00 00 08 */ b lbl_80310030
lbl_8031002C:
/* 8031002C 0030BC8C 38 60 00 00 */ li r3, 0
lbl_80310030:
/* 80310030 0030BC90 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80310034 0030BC94 7C 08 03 A6 */ mtlr r0
/* 80310038 0030BC98 38 21 00 10 */ addi r1, r1, 0x10
/* 8031003C 0030BC9C 4E 80 00 20 */ blr
.global VFiPFFAT_GetSectorAllocated
VFiPFFAT_GetSectorAllocated:
/* 80310040 0030BCA0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80310044 0030BCA4 7C 08 02 A6 */ mflr r0
/* 80310048 0030BCA8 2C 03 00 00 */ cmpwi r3, 0
/* 8031004C 0030BCAC 7C C9 33 78 */ mr r9, r6
/* 80310050 0030BCB0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80310054 0030BCB4 7C E8 3B 78 */ mr r8, r7
/* 80310058 0030BCB8 40 82 00 0C */ bne lbl_80310064
/* 8031005C 0030BCBC 38 60 00 0A */ li r3, 0xa
/* 80310060 0030BCC0 48 00 00 A4 */ b lbl_80310104
lbl_80310064:
/* 80310064 0030BCC4 80 E3 00 30 */ lwz r7, 0x30(r3)
/* 80310068 0030BCC8 2C 07 00 00 */ cmpwi r7, 0
/* 8031006C 0030BCCC 40 82 00 0C */ bne lbl_80310078
/* 80310070 0030BCD0 38 60 00 0A */ li r3, 0xa
/* 80310074 0030BCD4 48 00 00 90 */ b lbl_80310104
lbl_80310078:
/* 80310078 0030BCD8 80 C3 00 00 */ lwz r6, 0(r3)
/* 8031007C 0030BCDC 2C 06 00 00 */ cmpwi r6, 0
/* 80310080 0030BCE0 40 82 00 0C */ bne lbl_8031008C
/* 80310084 0030BCE4 38 60 00 0A */ li r3, 0xa
/* 80310088 0030BCE8 48 00 00 7C */ b lbl_80310104
lbl_8031008C:
/* 8031008C 0030BCEC 80 07 00 08 */ lwz r0, 8(r7)
/* 80310090 0030BCF0 7C 00 30 40 */ cmplw r0, r6
/* 80310094 0030BCF4 40 81 00 0C */ ble lbl_803100A0
/* 80310098 0030BCF8 38 60 00 0A */ li r3, 0xa
/* 8031009C 0030BCFC 48 00 00 68 */ b lbl_80310104
lbl_803100A0:
/* 803100A0 0030BD00 80 C3 00 34 */ lwz r6, 0x34(r3)
/* 803100A4 0030BD04 88 06 18 7A */ lbz r0, 0x187a(r6)
/* 803100A8 0030BD08 7C 00 07 74 */ extsb r0, r0
/* 803100AC 0030BD0C 2C 00 00 41 */ cmpwi r0, 0x41
/* 803100B0 0030BD10 41 80 00 0C */ blt lbl_803100BC
/* 803100B4 0030BD14 2C 00 00 5A */ cmpwi r0, 0x5a
/* 803100B8 0030BD18 40 81 00 0C */ ble lbl_803100C4
lbl_803100BC:
/* 803100BC 0030BD1C 38 60 00 23 */ li r3, 0x23
/* 803100C0 0030BD20 48 00 00 44 */ b lbl_80310104
lbl_803100C4:
/* 803100C4 0030BD24 88 06 00 20 */ lbz r0, 0x20(r6)
/* 803100C8 0030BD28 38 C0 FF FF */ li r6, -1
/* 803100CC 0030BD2C 7C C6 04 30 */ srw r6, r6, r0
/* 803100D0 0030BD30 38 06 00 01 */ addi r0, r6, 1
/* 803100D4 0030BD34 7C 04 00 40 */ cmplw r4, r0
/* 803100D8 0030BD38 41 80 00 0C */ blt lbl_803100E4
/* 803100DC 0030BD3C 38 60 00 25 */ li r3, 0x25
/* 803100E0 0030BD40 48 00 00 24 */ b lbl_80310104
lbl_803100E4:
/* 803100E4 0030BD44 7C A6 2B 78 */ mr r6, r5
/* 803100E8 0030BD48 7D 27 4B 78 */ mr r7, r9
/* 803100EC 0030BD4C 38 A0 00 02 */ li r5, 2
/* 803100F0 0030BD50 4B FF FB C1 */ bl VFiPFFAT_GetSector
/* 803100F4 0030BD54 7C 03 00 D0 */ neg r0, r3
/* 803100F8 0030BD58 7C 00 1B 78 */ or r0, r0, r3
/* 803100FC 0030BD5C 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 80310100 0030BD60 7C 63 00 38 */ and r3, r3, r0
lbl_80310104:
/* 80310104 0030BD64 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80310108 0030BD68 7C 08 03 A6 */ mtlr r0
/* 8031010C 0030BD6C 38 21 00 10 */ addi r1, r1, 0x10
/* 80310110 0030BD70 4E 80 00 20 */ blr
.global VFiPFFAT_GetContinuousSector
VFiPFFAT_GetContinuousSector:
/* 80310114 0030BD74 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80310118 0030BD78 7C 08 02 A6 */ mflr r0
/* 8031011C 0030BD7C 90 01 00 34 */ stw r0, 0x34(r1)
/* 80310120 0030BD80 39 61 00 30 */ addi r11, r1, 0x30
/* 80310124 0030BD84 4B EB 6F FD */ bl _savegpr_25
/* 80310128 0030BD88 2C 03 00 00 */ cmpwi r3, 0
/* 8031012C 0030BD8C 7C 79 1B 78 */ mr r25, r3
/* 80310130 0030BD90 7C 9A 23 78 */ mr r26, r4
/* 80310134 0030BD94 7C BB 2B 78 */ mr r27, r5
/* 80310138 0030BD98 7C DC 33 78 */ mr r28, r6
/* 8031013C 0030BD9C 7C FD 3B 78 */ mr r29, r7
/* 80310140 0030BDA0 3B C0 FF FF */ li r30, -1
/* 80310144 0030BDA4 40 82 00 0C */ bne lbl_80310150
/* 80310148 0030BDA8 38 60 00 0A */ li r3, 0xa
/* 8031014C 0030BDAC 48 00 01 6C */ b lbl_803102B8
lbl_80310150:
/* 80310150 0030BDB0 80 E3 00 30 */ lwz r7, 0x30(r3)
/* 80310154 0030BDB4 2C 07 00 00 */ cmpwi r7, 0
/* 80310158 0030BDB8 40 82 00 0C */ bne lbl_80310164
/* 8031015C 0030BDBC 38 60 00 0A */ li r3, 0xa
/* 80310160 0030BDC0 48 00 01 58 */ b lbl_803102B8
lbl_80310164:
/* 80310164 0030BDC4 80 A3 00 00 */ lwz r5, 0(r3)
/* 80310168 0030BDC8 2C 05 00 00 */ cmpwi r5, 0
/* 8031016C 0030BDCC 40 82 00 0C */ bne lbl_80310178
/* 80310170 0030BDD0 38 60 00 0A */ li r3, 0xa
/* 80310174 0030BDD4 48 00 01 44 */ b lbl_803102B8
lbl_80310178:
/* 80310178 0030BDD8 80 07 00 08 */ lwz r0, 8(r7)
/* 8031017C 0030BDDC 7C 00 28 40 */ cmplw r0, r5
/* 80310180 0030BDE0 40 81 00 0C */ ble lbl_8031018C
/* 80310184 0030BDE4 38 60 00 0A */ li r3, 0xa
/* 80310188 0030BDE8 48 00 01 30 */ b lbl_803102B8
lbl_8031018C:
/* 8031018C 0030BDEC 83 E3 00 34 */ lwz r31, 0x34(r3)
/* 80310190 0030BDF0 88 1F 18 7A */ lbz r0, 0x187a(r31)
/* 80310194 0030BDF4 7C 00 07 74 */ extsb r0, r0
/* 80310198 0030BDF8 2C 00 00 41 */ cmpwi r0, 0x41
/* 8031019C 0030BDFC 41 80 00 0C */ blt lbl_803101A8
/* 803101A0 0030BE00 2C 00 00 5A */ cmpwi r0, 0x5a
/* 803101A4 0030BE04 40 81 00 0C */ ble lbl_803101B0
lbl_803101A8:
/* 803101A8 0030BE08 38 60 00 23 */ li r3, 0x23
/* 803101AC 0030BE0C 48 00 01 0C */ b lbl_803102B8
lbl_803101B0:
/* 803101B0 0030BE10 88 1F 00 20 */ lbz r0, 0x20(r31)
/* 803101B4 0030BE14 38 A0 FF FF */ li r5, -1
/* 803101B8 0030BE18 7C A5 04 30 */ srw r5, r5, r0
/* 803101BC 0030BE1C 38 05 00 01 */ addi r0, r5, 1
/* 803101C0 0030BE20 7C 04 00 40 */ cmplw r4, r0
/* 803101C4 0030BE24 41 80 00 0C */ blt lbl_803101D0
/* 803101C8 0030BE28 38 60 00 25 */ li r3, 0x25
/* 803101CC 0030BE2C 48 00 00 EC */ b lbl_803102B8
lbl_803101D0:
/* 803101D0 0030BE30 80 A6 00 00 */ lwz r5, 0(r6)
/* 803101D4 0030BE34 3C 05 00 01 */ addis r0, r5, 1
/* 803101D8 0030BE38 28 00 FF FF */ cmplwi r0, 0xffff
/* 803101DC 0030BE3C 41 82 00 1C */ beq lbl_803101F8
/* 803101E0 0030BE40 80 7F 00 30 */ lwz r3, 0x30(r31)
/* 803101E4 0030BE44 88 1F 00 21 */ lbz r0, 0x21(r31)
/* 803101E8 0030BE48 7C 63 28 50 */ subf r3, r3, r5
/* 803101EC 0030BE4C 7C 63 04 30 */ srw r3, r3, r0
/* 803101F0 0030BE50 3B C3 00 02 */ addi r30, r3, 2
/* 803101F4 0030BE54 48 00 00 3C */ b lbl_80310230
lbl_803101F8:
/* 803101F8 0030BE58 38 A0 00 00 */ li r5, 0
/* 803101FC 0030BE5C 4B FF FD 6D */ bl VFiPFFAT_GetSectorSpecified
/* 80310200 0030BE60 2C 03 00 00 */ cmpwi r3, 0
/* 80310204 0030BE64 41 82 00 08 */ beq lbl_8031020C
/* 80310208 0030BE68 48 00 00 B0 */ b lbl_803102B8
lbl_8031020C:
/* 8031020C 0030BE6C 80 BC 00 00 */ lwz r5, 0(r28)
/* 80310210 0030BE70 3C 05 00 01 */ addis r0, r5, 1
/* 80310214 0030BE74 28 00 FF FF */ cmplwi r0, 0xffff
/* 80310218 0030BE78 41 82 00 18 */ beq lbl_80310230
/* 8031021C 0030BE7C 80 7F 00 30 */ lwz r3, 0x30(r31)
/* 80310220 0030BE80 88 1F 00 21 */ lbz r0, 0x21(r31)
/* 80310224 0030BE84 7C 63 28 50 */ subf r3, r3, r5
/* 80310228 0030BE88 7C 63 04 30 */ srw r3, r3, r0
/* 8031022C 0030BE8C 3B C3 00 02 */ addi r30, r3, 2
lbl_80310230:
/* 80310230 0030BE90 3C 05 00 01 */ addis r0, r5, 1
/* 80310234 0030BE94 28 00 FF FF */ cmplwi r0, 0xffff
/* 80310238 0030BE98 41 82 00 24 */ beq lbl_8031025C
/* 8031023C 0030BE9C 88 1F 00 21 */ lbz r0, 0x21(r31)
/* 80310240 0030BEA0 38 7E FF FF */ addi r3, r30, -1
/* 80310244 0030BEA4 80 9F 00 30 */ lwz r4, 0x30(r31)
/* 80310248 0030BEA8 7C 60 00 30 */ slw r0, r3, r0
/* 8031024C 0030BEAC 7C 04 02 14 */ add r0, r4, r0
/* 80310250 0030BEB0 7C 05 00 50 */ subf r0, r5, r0
/* 80310254 0030BEB4 90 1D 00 00 */ stw r0, 0(r29)
/* 80310258 0030BEB8 48 00 00 0C */ b lbl_80310264
lbl_8031025C:
/* 8031025C 0030BEBC 38 00 00 00 */ li r0, 0
/* 80310260 0030BEC0 90 1D 00 00 */ stw r0, 0(r29)
lbl_80310264:
/* 80310264 0030BEC4 80 7C 00 00 */ lwz r3, 0(r28)
/* 80310268 0030BEC8 3C 03 00 01 */ addis r0, r3, 1
/* 8031026C 0030BECC 28 00 FF FF */ cmplwi r0, 0xffff
/* 80310270 0030BED0 41 82 00 44 */ beq lbl_803102B4
/* 80310274 0030BED4 80 7D 00 00 */ lwz r3, 0(r29)
/* 80310278 0030BED8 88 1F 00 20 */ lbz r0, 0x20(r31)
/* 8031027C 0030BEDC 7C 60 00 30 */ slw r0, r3, r0
/* 80310280 0030BEE0 7C 00 D8 40 */ cmplw r0, r27
/* 80310284 0030BEE4 40 80 00 30 */ bge lbl_803102B4
/* 80310288 0030BEE8 88 1F 00 21 */ lbz r0, 0x21(r31)
/* 8031028C 0030BEEC 7F 23 CB 78 */ mr r3, r25
/* 80310290 0030BEF0 7F C4 F3 78 */ mr r4, r30
/* 80310294 0030BEF4 7F 66 DB 78 */ mr r6, r27
/* 80310298 0030BEF8 7F 45 04 30 */ srw r5, r26, r0
/* 8031029C 0030BEFC 7F A7 EB 78 */ mr r7, r29
/* 803102A0 0030BF00 38 A5 00 01 */ addi r5, r5, 1
/* 803102A4 0030BF04 4B FF F5 1D */ bl VFiPFFAT_GetClusterContinuousSectorInChain
/* 803102A8 0030BF08 2C 03 00 00 */ cmpwi r3, 0
/* 803102AC 0030BF0C 41 82 00 08 */ beq lbl_803102B4
/* 803102B0 0030BF10 48 00 00 08 */ b lbl_803102B8
lbl_803102B4:
/* 803102B4 0030BF14 38 60 00 00 */ li r3, 0
lbl_803102B8:
/* 803102B8 0030BF18 39 61 00 30 */ addi r11, r1, 0x30
/* 803102BC 0030BF1C 4B EB 6E B1 */ bl _restgpr_25
/* 803102C0 0030BF20 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803102C4 0030BF24 7C 08 03 A6 */ mtlr r0
/* 803102C8 0030BF28 38 21 00 30 */ addi r1, r1, 0x30
/* 803102CC 0030BF2C 4E 80 00 20 */ blr
.global VFiPFFAT_CountAllocatedClusters
VFiPFFAT_CountAllocatedClusters:
/* 803102D0 0030BF30 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803102D4 0030BF34 7C 08 02 A6 */ mflr r0
/* 803102D8 0030BF38 2C 03 00 00 */ cmpwi r3, 0
/* 803102DC 0030BF3C 7C 86 23 78 */ mr r6, r4
/* 803102E0 0030BF40 90 01 00 14 */ stw r0, 0x14(r1)
/* 803102E4 0030BF44 38 00 00 00 */ li r0, 0
/* 803102E8 0030BF48 7C A7 2B 78 */ mr r7, r5
/* 803102EC 0030BF4C 90 05 00 00 */ stw r0, 0(r5)
/* 803102F0 0030BF50 40 82 00 0C */ bne lbl_803102FC
/* 803102F4 0030BF54 38 60 00 0A */ li r3, 0xa
/* 803102F8 0030BF58 48 00 01 20 */ b lbl_80310418
lbl_803102FC:
/* 803102FC 0030BF5C 81 23 00 30 */ lwz r9, 0x30(r3)
/* 80310300 0030BF60 2C 09 00 00 */ cmpwi r9, 0
/* 80310304 0030BF64 40 82 00 0C */ bne lbl_80310310
/* 80310308 0030BF68 38 60 00 0A */ li r3, 0xa
/* 8031030C 0030BF6C 48 00 01 0C */ b lbl_80310418
lbl_80310310:
/* 80310310 0030BF70 81 03 00 00 */ lwz r8, 0(r3)
/* 80310314 0030BF74 2C 08 00 00 */ cmpwi r8, 0
/* 80310318 0030BF78 40 82 00 0C */ bne lbl_80310324
/* 8031031C 0030BF7C 38 60 00 0A */ li r3, 0xa
/* 80310320 0030BF80 48 00 00 F8 */ b lbl_80310418
lbl_80310324:
/* 80310324 0030BF84 80 09 00 08 */ lwz r0, 8(r9)
/* 80310328 0030BF88 7C 00 40 40 */ cmplw r0, r8
/* 8031032C 0030BF8C 40 81 00 0C */ ble lbl_80310338
/* 80310330 0030BF90 38 60 00 0A */ li r3, 0xa
/* 80310334 0030BF94 48 00 00 E4 */ b lbl_80310418
lbl_80310338:
/* 80310338 0030BF98 81 43 00 34 */ lwz r10, 0x34(r3)
/* 8031033C 0030BF9C 88 0A 18 7A */ lbz r0, 0x187a(r10)
/* 80310340 0030BFA0 7C 00 07 74 */ extsb r0, r0
/* 80310344 0030BFA4 2C 00 00 41 */ cmpwi r0, 0x41
/* 80310348 0030BFA8 41 80 00 0C */ blt lbl_80310354
/* 8031034C 0030BFAC 2C 00 00 5A */ cmpwi r0, 0x5a
/* 80310350 0030BFB0 40 81 00 0C */ ble lbl_8031035C
lbl_80310354:
/* 80310354 0030BFB4 38 60 00 23 */ li r3, 0x23
/* 80310358 0030BFB8 48 00 00 C0 */ b lbl_80310418
lbl_8031035C:
/* 8031035C 0030BFBC 81 03 00 08 */ lwz r8, 8(r3)
/* 80310360 0030BFC0 81 68 00 00 */ lwz r11, 0(r8)
/* 80310364 0030BFC4 28 0B 00 02 */ cmplwi r11, 2
/* 80310368 0030BFC8 40 80 00 0C */ bge lbl_80310374
/* 8031036C 0030BFCC 38 60 00 00 */ li r3, 0
/* 80310370 0030BFD0 48 00 00 A8 */ b lbl_80310418
lbl_80310374:
/* 80310374 0030BFD4 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80310378 0030BFD8 2C 00 00 00 */ cmpwi r0, 0
/* 8031037C 0030BFDC 41 82 00 18 */ beq lbl_80310394
/* 80310380 0030BFE0 80 83 00 10 */ lwz r4, 0x10(r3)
/* 80310384 0030BFE4 38 60 00 00 */ li r3, 0
/* 80310388 0030BFE8 38 04 00 01 */ addi r0, r4, 1
/* 8031038C 0030BFEC 90 05 00 00 */ stw r0, 0(r5)
/* 80310390 0030BFF0 48 00 00 88 */ b lbl_80310418
lbl_80310394:
/* 80310394 0030BFF4 80 09 00 04 */ lwz r0, 4(r9)
/* 80310398 0030BFF8 2C 00 00 00 */ cmpwi r0, 0
/* 8031039C 0030BFFC 41 82 00 60 */ beq lbl_803103FC
/* 803103A0 0030C000 81 09 00 00 */ lwz r8, 0(r9)
/* 803103A4 0030C004 88 CA 00 20 */ lbz r6, 0x20(r10)
/* 803103A8 0030C008 88 0A 00 21 */ lbz r0, 0x21(r10)
/* 803103AC 0030C00C 39 28 00 01 */ addi r9, r8, 1
/* 803103B0 0030C010 7C 06 02 14 */ add r0, r6, r0
/* 803103B4 0030C014 7D 20 00 30 */ slw r0, r9, r0
/* 803103B8 0030C018 7C 04 00 40 */ cmplw r4, r0
/* 803103BC 0030C01C 41 81 00 10 */ bgt lbl_803103CC
/* 803103C0 0030C020 91 25 00 00 */ stw r9, 0(r5)
/* 803103C4 0030C024 38 60 00 00 */ li r3, 0
/* 803103C8 0030C028 48 00 00 50 */ b lbl_80310418
lbl_803103CC:
/* 803103CC 0030C02C 91 05 00 00 */ stw r8, 0(r5)
/* 803103D0 0030C030 81 03 00 34 */ lwz r8, 0x34(r3)
/* 803103D4 0030C034 80 C3 00 30 */ lwz r6, 0x30(r3)
/* 803103D8 0030C038 88 A8 00 20 */ lbz r5, 0x20(r8)
/* 803103DC 0030C03C 88 08 00 21 */ lbz r0, 0x21(r8)
/* 803103E0 0030C040 81 06 00 00 */ lwz r8, 0(r6)
/* 803103E4 0030C044 7C 05 02 14 */ add r0, r5, r0
/* 803103E8 0030C048 81 66 00 04 */ lwz r11, 4(r6)
/* 803103EC 0030C04C 7D 00 00 30 */ slw r0, r8, r0
/* 803103F0 0030C050 38 A8 00 01 */ addi r5, r8, 1
/* 803103F4 0030C054 7C C0 20 50 */ subf r6, r0, r4
/* 803103F8 0030C058 48 00 00 08 */ b lbl_80310400
lbl_803103FC:
/* 803103FC 0030C05C 38 A0 00 01 */ li r5, 1
lbl_80310400:
/* 80310400 0030C060 7D 64 5B 78 */ mr r4, r11
/* 80310404 0030C064 4B FF F4 ED */ bl VFiPFFAT_GetClusterAllocatedInChain
/* 80310408 0030C068 2C 03 00 00 */ cmpwi r3, 0
/* 8031040C 0030C06C 41 82 00 08 */ beq lbl_80310414
/* 80310410 0030C070 48 00 00 08 */ b lbl_80310418
lbl_80310414:
/* 80310414 0030C074 38 60 00 00 */ li r3, 0
lbl_80310418:
/* 80310418 0030C078 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8031041C 0030C07C 7C 08 03 A6 */ mtlr r0
/* 80310420 0030C080 38 21 00 10 */ addi r1, r1, 0x10
/* 80310424 0030C084 4E 80 00 20 */ blr
.global VFiPFFAT_FreeChain
VFiPFFAT_FreeChain:
/* 80310428 0030C088 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8031042C 0030C08C 7C 08 02 A6 */ mflr r0
/* 80310430 0030C090 90 01 00 44 */ stw r0, 0x44(r1)
/* 80310434 0030C094 39 61 00 40 */ addi r11, r1, 0x40
/* 80310438 0030C098 4B EB 6C E1 */ bl _savegpr_23
/* 8031043C 0030C09C 83 E3 00 34 */ lwz r31, 0x34(r3)
/* 80310440 0030C0A0 7C 78 1B 78 */ mr r24, r3
/* 80310444 0030C0A4 7C 99 23 78 */ mr r25, r4
/* 80310448 0030C0A8 7C BA 2B 78 */ mr r26, r5
/* 8031044C 0030C0AC 2C 1F 00 00 */ cmpwi r31, 0
/* 80310450 0030C0B0 7C DB 33 78 */ mr r27, r6
/* 80310454 0030C0B4 40 82 00 0C */ bne lbl_80310460
/* 80310458 0030C0B8 38 60 00 0A */ li r3, 0xa
/* 8031045C 0030C0BC 48 00 03 34 */ b lbl_80310790
lbl_80310460:
/* 80310460 0030C0C0 28 04 00 02 */ cmplwi r4, 2
/* 80310464 0030C0C4 41 80 00 14 */ blt lbl_80310478
/* 80310468 0030C0C8 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 8031046C 0030C0CC 38 03 00 02 */ addi r0, r3, 2
/* 80310470 0030C0D0 7C 04 00 40 */ cmplw r4, r0
/* 80310474 0030C0D4 41 80 00 14 */ blt lbl_80310488
lbl_80310478:
/* 80310478 0030C0D8 2C 04 00 00 */ cmpwi r4, 0
/* 8031047C 0030C0DC 41 82 00 0C */ beq lbl_80310488
/* 80310480 0030C0E0 38 60 00 0E */ li r3, 0xe
/* 80310484 0030C0E4 48 00 03 0C */ b lbl_80310790
lbl_80310488:
/* 80310488 0030C0E8 2C 04 00 00 */ cmpwi r4, 0
/* 8031048C 0030C0EC 40 82 00 0C */ bne lbl_80310498
/* 80310490 0030C0F0 38 60 00 00 */ li r3, 0
/* 80310494 0030C0F4 48 00 02 FC */ b lbl_80310790
lbl_80310498:
/* 80310498 0030C0F8 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 8031049C 0030C0FC 3C 60 80 40 */ lis r3, lbl_803FE280@ha
/* 803104A0 0030C100 38 63 E2 80 */ addi r3, r3, lbl_803FE280@l
/* 803104A4 0030C104 2C 06 00 00 */ cmpwi r6, 0
/* 803104A8 0030C108 1C 00 00 14 */ mulli r0, r0, 0x14
/* 803104AC 0030C10C 7C 63 02 14 */ add r3, r3, r0
/* 803104B0 0030C110 83 C3 00 04 */ lwz r30, 4(r3)
/* 803104B4 0030C114 41 82 00 18 */ beq lbl_803104CC
/* 803104B8 0030C118 A0 7F 00 00 */ lhz r3, 0(r31)
/* 803104BC 0030C11C 7F 7D DB 78 */ mr r29, r27
/* 803104C0 0030C120 88 1F 00 21 */ lbz r0, 0x21(r31)
/* 803104C4 0030C124 7C 7C 00 30 */ slw r28, r3, r0
/* 803104C8 0030C128 48 00 00 0C */ b lbl_803104D4
lbl_803104CC:
/* 803104CC 0030C12C 38 60 00 00 */ li r3, 0
/* 803104D0 0030C130 48 00 02 C0 */ b lbl_80310790
lbl_803104D4:
/* 803104D4 0030C134 7F E3 FB 78 */ mr r3, r31
/* 803104D8 0030C138 7F 25 CB 78 */ mr r5, r25
/* 803104DC 0030C13C 38 81 00 08 */ addi r4, r1, 8
/* 803104E0 0030C140 4B FF E0 59 */ bl VFiPFFAT_ReadFATSector
/* 803104E4 0030C144 2C 03 00 00 */ cmpwi r3, 0
/* 803104E8 0030C148 41 82 00 08 */ beq lbl_803104F0
/* 803104EC 0030C14C 48 00 02 A4 */ b lbl_80310790
lbl_803104F0:
/* 803104F0 0030C150 80 61 00 08 */ lwz r3, 8(r1)
/* 803104F4 0030C154 38 00 00 01 */ li r0, 1
/* 803104F8 0030C158 B0 03 00 02 */ sth r0, 2(r3)
/* 803104FC 0030C15C 93 21 00 0C */ stw r25, 0xc(r1)
/* 80310500 0030C160 48 00 01 F8 */ b lbl_803106F8
lbl_80310504:
/* 80310504 0030C164 2C 1B 00 00 */ cmpwi r27, 0
/* 80310508 0030C168 41 82 00 0C */ beq lbl_80310514
/* 8031050C 0030C16C 2C 1D 00 00 */ cmpwi r29, 0
/* 80310510 0030C170 41 82 01 F0 */ beq lbl_80310700
lbl_80310514:
/* 80310514 0030C174 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 80310518 0030C178 80 61 00 08 */ lwz r3, 8(r1)
/* 8031051C 0030C17C 2C 00 00 01 */ cmpwi r0, 1
/* 80310520 0030C180 82 E3 00 18 */ lwz r23, 0x18(r3)
/* 80310524 0030C184 41 82 00 38 */ beq lbl_8031055C
/* 80310528 0030C188 40 80 00 10 */ bge lbl_80310538
/* 8031052C 0030C18C 2C 00 00 00 */ cmpwi r0, 0
/* 80310530 0030C190 40 80 00 14 */ bge lbl_80310544
/* 80310534 0030C194 48 00 00 58 */ b lbl_8031058C
lbl_80310538:
/* 80310538 0030C198 2C 00 00 03 */ cmpwi r0, 3
/* 8031053C 0030C19C 40 80 00 50 */ bge lbl_8031058C
/* 80310540 0030C1A0 48 00 00 34 */ b lbl_80310574
lbl_80310544:
/* 80310544 0030C1A4 7F E3 FB 78 */ mr r3, r31
/* 80310548 0030C1A8 57 24 04 3E */ clrlwi r4, r25, 0x10
/* 8031054C 0030C1AC 38 A1 00 0C */ addi r5, r1, 0xc
/* 80310550 0030C1B0 38 C1 00 08 */ addi r6, r1, 8
/* 80310554 0030C1B4 48 00 0E 01 */ bl VFiPFFAT12_ReadFATEntryPage
/* 80310558 0030C1B8 48 00 00 38 */ b lbl_80310590
lbl_8031055C:
/* 8031055C 0030C1BC 7F E3 FB 78 */ mr r3, r31
/* 80310560 0030C1C0 7F 24 CB 78 */ mr r4, r25
/* 80310564 0030C1C4 38 A1 00 0C */ addi r5, r1, 0xc
/* 80310568 0030C1C8 38 C1 00 08 */ addi r6, r1, 8
/* 8031056C 0030C1CC 48 00 18 51 */ bl VFiPFFAT16_ReadFATEntryPage
/* 80310570 0030C1D0 48 00 00 20 */ b lbl_80310590
lbl_80310574:
/* 80310574 0030C1D4 7F E3 FB 78 */ mr r3, r31
/* 80310578 0030C1D8 7F 24 CB 78 */ mr r4, r25
/* 8031057C 0030C1DC 38 A1 00 0C */ addi r5, r1, 0xc
/* 80310580 0030C1E0 38 C1 00 08 */ addi r6, r1, 8
/* 80310584 0030C1E4 48 00 1D C1 */ bl VFiPFFAT32_ReadFATEntryPage
/* 80310588 0030C1E8 48 00 00 08 */ b lbl_80310590
lbl_8031058C:
/* 8031058C 0030C1EC 38 60 00 0F */ li r3, 0xf
lbl_80310590:
/* 80310590 0030C1F0 2C 03 00 00 */ cmpwi r3, 0
/* 80310594 0030C1F4 41 82 00 08 */ beq lbl_8031059C
/* 80310598 0030C1F8 48 00 01 F8 */ b lbl_80310790
lbl_8031059C:
/* 8031059C 0030C1FC 80 01 00 0C */ lwz r0, 0xc(r1)
/* 803105A0 0030C200 2C 00 00 00 */ cmpwi r0, 0
/* 803105A4 0030C204 40 82 00 38 */ bne lbl_803105DC
/* 803105A8 0030C208 80 81 00 08 */ lwz r4, 8(r1)
/* 803105AC 0030C20C 38 60 00 00 */ li r3, 0
/* 803105B0 0030C210 A0 04 00 00 */ lhz r0, 0(r4)
/* 803105B4 0030C214 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
/* 803105B8 0030C218 2C 00 00 02 */ cmpwi r0, 2
/* 803105BC 0030C21C 40 82 00 0C */ bne lbl_803105C8
/* 803105C0 0030C220 7F E3 FB 78 */ mr r3, r31
/* 803105C4 0030C224 4B FF A3 B9 */ bl VFiPFCACHE_WriteFATPage
lbl_803105C8:
/* 803105C8 0030C228 2C 03 00 00 */ cmpwi r3, 0
/* 803105CC 0030C22C 41 82 00 08 */ beq lbl_803105D4
/* 803105D0 0030C230 48 00 01 C0 */ b lbl_80310790
lbl_803105D4:
/* 803105D4 0030C234 38 60 00 00 */ li r3, 0
/* 803105D8 0030C238 48 00 01 B8 */ b lbl_80310790
lbl_803105DC:
/* 803105DC 0030C23C 80 61 00 08 */ lwz r3, 8(r1)
/* 803105E0 0030C240 80 03 00 18 */ lwz r0, 0x18(r3)
/* 803105E4 0030C244 7C 17 00 40 */ cmplw r23, r0
/* 803105E8 0030C248 41 82 00 20 */ beq lbl_80310608
/* 803105EC 0030C24C 7F E3 FB 78 */ mr r3, r31
/* 803105F0 0030C250 7F 25 CB 78 */ mr r5, r25
/* 803105F4 0030C254 38 81 00 08 */ addi r4, r1, 8
/* 803105F8 0030C258 4B FF DF 41 */ bl VFiPFFAT_ReadFATSector
/* 803105FC 0030C25C 2C 03 00 00 */ cmpwi r3, 0
/* 80310600 0030C260 41 82 00 08 */ beq lbl_80310608
/* 80310604 0030C264 48 00 01 8C */ b lbl_80310790
lbl_80310608:
/* 80310608 0030C268 3C 1A 00 01 */ addis r0, r26, 1
/* 8031060C 0030C26C 28 00 FF FF */ cmplwi r0, 0xffff
/* 80310610 0030C270 41 82 00 28 */ beq lbl_80310638
/* 80310614 0030C274 7F 03 C3 78 */ mr r3, r24
/* 80310618 0030C278 7F 24 CB 78 */ mr r4, r25
/* 8031061C 0030C27C 7F 45 D3 78 */ mr r5, r26
/* 80310620 0030C280 39 01 00 08 */ addi r8, r1, 8
/* 80310624 0030C284 38 C0 00 00 */ li r6, 0
/* 80310628 0030C288 38 E0 00 01 */ li r7, 1
/* 8031062C 0030C28C 4B FF E9 99 */ bl VFiPFFAT_WriteClusterPage
/* 80310630 0030C290 3B 5A 00 01 */ addi r26, r26, 1
/* 80310634 0030C294 48 00 00 78 */ b lbl_803106AC
lbl_80310638:
/* 80310638 0030C298 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 8031063C 0030C29C 2C 00 00 01 */ cmpwi r0, 1
/* 80310640 0030C2A0 41 82 00 38 */ beq lbl_80310678
/* 80310644 0030C2A4 40 80 00 10 */ bge lbl_80310654
/* 80310648 0030C2A8 2C 00 00 00 */ cmpwi r0, 0
/* 8031064C 0030C2AC 40 80 00 14 */ bge lbl_80310660
/* 80310650 0030C2B0 48 00 00 58 */ b lbl_803106A8
lbl_80310654:
/* 80310654 0030C2B4 2C 00 00 03 */ cmpwi r0, 3
/* 80310658 0030C2B8 40 80 00 50 */ bge lbl_803106A8
/* 8031065C 0030C2BC 48 00 00 34 */ b lbl_80310690
lbl_80310660:
/* 80310660 0030C2C0 7F E3 FB 78 */ mr r3, r31
/* 80310664 0030C2C4 57 24 04 3E */ clrlwi r4, r25, 0x10
/* 80310668 0030C2C8 38 C1 00 08 */ addi r6, r1, 8
/* 8031066C 0030C2CC 38 A0 00 00 */ li r5, 0
/* 80310670 0030C2D0 48 00 11 5D */ bl VFiPFFAT12_WriteFATEntryPage
/* 80310674 0030C2D4 48 00 00 38 */ b lbl_803106AC
lbl_80310678:
/* 80310678 0030C2D8 7F E3 FB 78 */ mr r3, r31
/* 8031067C 0030C2DC 7F 24 CB 78 */ mr r4, r25
/* 80310680 0030C2E0 38 C1 00 08 */ addi r6, r1, 8
/* 80310684 0030C2E4 38 A0 00 00 */ li r5, 0
/* 80310688 0030C2E8 48 00 19 89 */ bl VFiPFFAT16_WriteFATEntryPage
/* 8031068C 0030C2EC 48 00 00 20 */ b lbl_803106AC
lbl_80310690:
/* 80310690 0030C2F0 7F E3 FB 78 */ mr r3, r31
/* 80310694 0030C2F4 7F 24 CB 78 */ mr r4, r25
/* 80310698 0030C2F8 38 C1 00 08 */ addi r6, r1, 8
/* 8031069C 0030C2FC 38 A0 00 00 */ li r5, 0
/* 803106A0 0030C300 48 00 1F 91 */ bl VFiPFFAT32_WriteFATEntryPage
/* 803106A4 0030C304 48 00 00 08 */ b lbl_803106AC
lbl_803106A8:
/* 803106A8 0030C308 38 60 00 0F */ li r3, 0xf
lbl_803106AC:
/* 803106AC 0030C30C 2C 03 00 00 */ cmpwi r3, 0
/* 803106B0 0030C310 41 82 00 08 */ beq lbl_803106B8
/* 803106B4 0030C314 48 00 00 DC */ b lbl_80310790
lbl_803106B8:
/* 803106B8 0030C318 2C 1B 00 00 */ cmpwi r27, 0
/* 803106BC 0030C31C 41 82 00 20 */ beq lbl_803106DC
/* 803106C0 0030C320 2C 1D 00 00 */ cmpwi r29, 0
/* 803106C4 0030C324 41 82 00 18 */ beq lbl_803106DC
/* 803106C8 0030C328 7C 1D E0 10 */ subfc r0, r29, r28
/* 803106CC 0030C32C 7C 7D 01 94 */ addze r3, r29
/* 803106D0 0030C330 7C 1C E8 50 */ subf r0, r28, r29
/* 803106D4 0030C334 7C 63 E8 50 */ subf r3, r3, r29
/* 803106D8 0030C338 7C 1D 18 78 */ andc r29, r0, r3
lbl_803106DC:
/* 803106DC 0030C33C 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 803106E0 0030C340 3C 03 00 01 */ addis r0, r3, 1
/* 803106E4 0030C344 28 00 FF FF */ cmplwi r0, 0xffff
/* 803106E8 0030C348 41 82 00 0C */ beq lbl_803106F4
/* 803106EC 0030C34C 38 03 00 01 */ addi r0, r3, 1
/* 803106F0 0030C350 90 1F 00 38 */ stw r0, 0x38(r31)
lbl_803106F4:
/* 803106F4 0030C354 83 21 00 0C */ lwz r25, 0xc(r1)
lbl_803106F8:
/* 803106F8 0030C358 7C 19 F0 40 */ cmplw r25, r30
/* 803106FC 0030C35C 41 80 FE 08 */ blt lbl_80310504
lbl_80310700:
/* 80310700 0030C360 80 81 00 08 */ lwz r4, 8(r1)
/* 80310704 0030C364 38 60 00 00 */ li r3, 0
/* 80310708 0030C368 A0 04 00 00 */ lhz r0, 0(r4)
/* 8031070C 0030C36C 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
/* 80310710 0030C370 2C 00 00 02 */ cmpwi r0, 2
/* 80310714 0030C374 40 82 00 0C */ bne lbl_80310720
/* 80310718 0030C378 7F E3 FB 78 */ mr r3, r31
/* 8031071C 0030C37C 4B FF A2 61 */ bl VFiPFCACHE_WriteFATPage
lbl_80310720:
/* 80310720 0030C380 2C 03 00 00 */ cmpwi r3, 0
/* 80310724 0030C384 41 82 00 08 */ beq lbl_8031072C
/* 80310728 0030C388 48 00 00 68 */ b lbl_80310790
lbl_8031072C:
/* 8031072C 0030C38C 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 80310730 0030C390 2C 80 00 02 */ cmpwi cr1, r0, 2
/* 80310734 0030C394 40 86 00 58 */ bne cr1, lbl_8031078C
/* 80310738 0030C398 A0 1F 18 7C */ lhz r0, 0x187c(r31)
/* 8031073C 0030C39C 54 03 07 BD */ rlwinm. r3, r0, 0, 0x1e, 0x1e
/* 80310740 0030C3A0 41 82 00 4C */ beq lbl_8031078C
/* 80310744 0030C3A4 38 60 00 00 */ li r3, 0
/* 80310748 0030C3A8 41 86 00 0C */ beq cr1, lbl_80310754
/* 8031074C 0030C3AC 38 60 00 0C */ li r3, 0xc
/* 80310750 0030C3B0 48 00 00 20 */ b lbl_80310770
lbl_80310754:
/* 80310754 0030C3B4 40 82 00 0C */ bne lbl_80310760
/* 80310758 0030C3B8 38 60 00 24 */ li r3, 0x24
/* 8031075C 0030C3BC 48 00 00 14 */ b lbl_80310770
lbl_80310760:
/* 80310760 0030C3C0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 80310764 0030C3C4 41 82 00 0C */ beq lbl_80310770
/* 80310768 0030C3C8 7F E3 FB 78 */ mr r3, r31
/* 8031076C 0030C3CC 4B FF 54 31 */ bl VFiPFDRV_StoreFreeCountToFSINFO
lbl_80310770:
/* 80310770 0030C3D0 2C 03 00 00 */ cmpwi r3, 0
/* 80310774 0030C3D4 41 82 00 18 */ beq lbl_8031078C
/* 80310778 0030C3D8 38 00 FF FF */ li r0, -1
/* 8031077C 0030C3DC 90 1F 00 38 */ stw r0, 0x38(r31)
/* 80310780 0030C3E0 A0 1F 18 7C */ lhz r0, 0x187c(r31)
/* 80310784 0030C3E4 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
/* 80310788 0030C3E8 B0 1F 18 7C */ sth r0, 0x187c(r31)
lbl_8031078C:
/* 8031078C 0030C3EC 38 60 00 00 */ li r3, 0
lbl_80310790:
/* 80310790 0030C3F0 39 61 00 40 */ addi r11, r1, 0x40
/* 80310794 0030C3F4 4B EB 69 D1 */ bl _restgpr_23
/* 80310798 0030C3F8 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8031079C 0030C3FC 7C 08 03 A6 */ mtlr r0
/* 803107A0 0030C400 38 21 00 40 */ addi r1, r1, 0x40
/* 803107A4 0030C404 4E 80 00 20 */ blr
.global VFiPFFAT_GetBeforeChain
VFiPFFAT_GetBeforeChain:
/* 803107A8 0030C408 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803107AC 0030C40C 7C 08 02 A6 */ mflr r0
/* 803107B0 0030C410 90 01 00 34 */ stw r0, 0x34(r1)
/* 803107B4 0030C414 39 61 00 30 */ addi r11, r1, 0x30
/* 803107B8 0030C418 4B EB 69 71 */ bl _savegpr_27
/* 803107BC 0030C41C 2C 03 00 00 */ cmpwi r3, 0
/* 803107C0 0030C420 7C 7C 1B 78 */ mr r28, r3
/* 803107C4 0030C424 7C 9D 23 78 */ mr r29, r4
/* 803107C8 0030C428 7C BE 2B 78 */ mr r30, r5
/* 803107CC 0030C42C 7C DF 33 78 */ mr r31, r6
/* 803107D0 0030C430 40 82 00 14 */ bne lbl_803107E4
/* 803107D4 0030C434 38 00 FF FF */ li r0, -1
/* 803107D8 0030C438 38 60 00 0A */ li r3, 0xa
/* 803107DC 0030C43C 90 06 00 00 */ stw r0, 0(r6)
/* 803107E0 0030C440 48 00 01 48 */ b lbl_80310928
lbl_803107E4:
/* 803107E4 0030C444 28 04 00 02 */ cmplwi r4, 2
/* 803107E8 0030C448 41 80 00 14 */ blt lbl_803107FC
/* 803107EC 0030C44C 80 A3 00 34 */ lwz r5, 0x34(r3)
/* 803107F0 0030C450 38 05 00 02 */ addi r0, r5, 2
/* 803107F4 0030C454 7C 04 00 40 */ cmplw r4, r0
/* 803107F8 0030C458 41 80 00 14 */ blt lbl_8031080C
lbl_803107FC:
/* 803107FC 0030C45C 38 00 FF FF */ li r0, -1
/* 80310800 0030C460 38 60 00 0A */ li r3, 0xa
/* 80310804 0030C464 90 06 00 00 */ stw r0, 0(r6)
/* 80310808 0030C468 48 00 01 20 */ b lbl_80310928
lbl_8031080C:
/* 8031080C 0030C46C 80 83 00 1C */ lwz r4, 0x1c(r3)
/* 80310810 0030C470 3D 00 80 40 */ lis r8, lbl_803FE280@ha
/* 80310814 0030C474 38 00 FF FF */ li r0, -1
/* 80310818 0030C478 7F A5 EB 78 */ mr r5, r29
/* 8031081C 0030C47C 1C E4 00 14 */ mulli r7, r4, 0x14
/* 80310820 0030C480 39 08 E2 80 */ addi r8, r8, lbl_803FE280@l
/* 80310824 0030C484 90 06 00 00 */ stw r0, 0(r6)
/* 80310828 0030C488 38 81 00 08 */ addi r4, r1, 8
/* 8031082C 0030C48C 7C C8 3A 14 */ add r6, r8, r7
/* 80310830 0030C490 83 66 00 04 */ lwz r27, 4(r6)
/* 80310834 0030C494 4B FF DD 05 */ bl VFiPFFAT_ReadFATSector
/* 80310838 0030C498 2C 03 00 00 */ cmpwi r3, 0
/* 8031083C 0030C49C 41 82 00 08 */ beq lbl_80310844
/* 80310840 0030C4A0 48 00 00 E8 */ b lbl_80310928
lbl_80310844:
/* 80310844 0030C4A4 80 61 00 08 */ lwz r3, 8(r1)
/* 80310848 0030C4A8 38 00 00 00 */ li r0, 0
/* 8031084C 0030C4AC B0 03 00 02 */ sth r0, 2(r3)
/* 80310850 0030C4B0 48 00 00 CC */ b lbl_8031091C
lbl_80310854:
/* 80310854 0030C4B4 80 1C 00 1C */ lwz r0, 0x1c(r28)
/* 80310858 0030C4B8 2C 00 00 01 */ cmpwi r0, 1
/* 8031085C 0030C4BC 41 82 00 38 */ beq lbl_80310894
/* 80310860 0030C4C0 40 80 00 10 */ bge lbl_80310870
/* 80310864 0030C4C4 2C 00 00 00 */ cmpwi r0, 0
/* 80310868 0030C4C8 40 80 00 14 */ bge lbl_8031087C
/* 8031086C 0030C4CC 48 00 00 58 */ b lbl_803108C4
lbl_80310870:
/* 80310870 0030C4D0 2C 00 00 03 */ cmpwi r0, 3
/* 80310874 0030C4D4 40 80 00 50 */ bge lbl_803108C4
/* 80310878 0030C4D8 48 00 00 34 */ b lbl_803108AC
lbl_8031087C:
/* 8031087C 0030C4DC 7F 83 E3 78 */ mr r3, r28
/* 80310880 0030C4E0 57 A4 04 3E */ clrlwi r4, r29, 0x10
/* 80310884 0030C4E4 38 A1 00 0C */ addi r5, r1, 0xc
/* 80310888 0030C4E8 38 C1 00 08 */ addi r6, r1, 8
/* 8031088C 0030C4EC 48 00 0A C9 */ bl VFiPFFAT12_ReadFATEntryPage
/* 80310890 0030C4F0 48 00 00 38 */ b lbl_803108C8
lbl_80310894:
/* 80310894 0030C4F4 7F 83 E3 78 */ mr r3, r28
/* 80310898 0030C4F8 7F A4 EB 78 */ mr r4, r29
/* 8031089C 0030C4FC 38 A1 00 0C */ addi r5, r1, 0xc
/* 803108A0 0030C500 38 C1 00 08 */ addi r6, r1, 8
/* 803108A4 0030C504 48 00 15 19 */ bl VFiPFFAT16_ReadFATEntryPage
/* 803108A8 0030C508 48 00 00 20 */ b lbl_803108C8
lbl_803108AC:
/* 803108AC 0030C50C 7F 83 E3 78 */ mr r3, r28
/* 803108B0 0030C510 7F A4 EB 78 */ mr r4, r29
/* 803108B4 0030C514 38 A1 00 0C */ addi r5, r1, 0xc
/* 803108B8 0030C518 38 C1 00 08 */ addi r6, r1, 8
/* 803108BC 0030C51C 48 00 1A 89 */ bl VFiPFFAT32_ReadFATEntryPage
/* 803108C0 0030C520 48 00 00 08 */ b lbl_803108C8
lbl_803108C4:
/* 803108C4 0030C524 38 60 00 0F */ li r3, 0xf
lbl_803108C8:
/* 803108C8 0030C528 2C 03 00 00 */ cmpwi r3, 0
/* 803108CC 0030C52C 41 82 00 08 */ beq lbl_803108D4
/* 803108D0 0030C530 48 00 00 58 */ b lbl_80310928
lbl_803108D4:
/* 803108D4 0030C534 80 01 00 0C */ lwz r0, 0xc(r1)
/* 803108D8 0030C538 7C 1E 00 40 */ cmplw r30, r0
/* 803108DC 0030C53C 40 82 00 10 */ bne lbl_803108EC
/* 803108E0 0030C540 93 BF 00 00 */ stw r29, 0(r31)
/* 803108E4 0030C544 38 60 00 00 */ li r3, 0
/* 803108E8 0030C548 48 00 00 40 */ b lbl_80310928
lbl_803108EC:
/* 803108EC 0030C54C 3B BD FF FF */ addi r29, r29, -1
/* 803108F0 0030C550 28 1D 00 02 */ cmplwi r29, 2
/* 803108F4 0030C554 41 80 00 14 */ blt lbl_80310908
/* 803108F8 0030C558 80 7C 00 34 */ lwz r3, 0x34(r28)
/* 803108FC 0030C55C 38 03 00 02 */ addi r0, r3, 2
/* 80310900 0030C560 7C 1D 00 40 */ cmplw r29, r0
/* 80310904 0030C564 41 80 00 18 */ blt lbl_8031091C
lbl_80310908:
/* 80310908 0030C568 7C 1D D8 40 */ cmplw r29, r27
/* 8031090C 0030C56C 40 80 00 10 */ bge lbl_8031091C
/* 80310910 0030C570 93 DF 00 00 */ stw r30, 0(r31)
/* 80310914 0030C574 38 60 00 00 */ li r3, 0
/* 80310918 0030C578 48 00 00 10 */ b lbl_80310928
lbl_8031091C:
/* 8031091C 0030C57C 7C 1D D8 40 */ cmplw r29, r27
/* 80310920 0030C580 41 80 FF 34 */ blt lbl_80310854
/* 80310924 0030C584 38 60 00 0D */ li r3, 0xd
lbl_80310928:
/* 80310928 0030C588 39 61 00 30 */ addi r11, r1, 0x30
/* 8031092C 0030C58C 4B EB 68 49 */ bl _restgpr_27
/* 80310930 0030C590 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80310934 0030C594 7C 08 03 A6 */ mtlr r0
/* 80310938 0030C598 38 21 00 30 */ addi r1, r1, 0x30
/* 8031093C 0030C59C 4E 80 00 20 */ blr
.global VFiPFFAT_InitFATRegion
VFiPFFAT_InitFATRegion:
/* 80310940 0030C5A0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80310944 0030C5A4 7C 08 02 A6 */ mflr r0
/* 80310948 0030C5A8 2C 03 00 00 */ cmpwi r3, 0
/* 8031094C 0030C5AC 90 01 00 24 */ stw r0, 0x24(r1)
/* 80310950 0030C5B0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80310954 0030C5B4 7C 7F 1B 78 */ mr r31, r3
/* 80310958 0030C5B8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8031095C 0030C5BC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80310960 0030C5C0 40 82 00 0C */ bne lbl_8031096C
/* 80310964 0030C5C4 38 60 00 0A */ li r3, 0xa
/* 80310968 0030C5C8 48 00 02 40 */ b lbl_80310BA8
lbl_8031096C:
/* 8031096C 0030C5CC 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80310970 0030C5D0 2C 00 00 00 */ cmpwi r0, 0
/* 80310974 0030C5D4 41 82 00 1C */ beq lbl_80310990
/* 80310978 0030C5D8 2C 00 00 01 */ cmpwi r0, 1
/* 8031097C 0030C5DC 41 82 00 14 */ beq lbl_80310990
/* 80310980 0030C5E0 2C 00 00 02 */ cmpwi r0, 2
/* 80310984 0030C5E4 41 82 00 0C */ beq lbl_80310990
/* 80310988 0030C5E8 38 60 00 0F */ li r3, 0xf
/* 8031098C 0030C5EC 48 00 02 1C */ b lbl_80310BA8
lbl_80310990:
/* 80310990 0030C5F0 7F E3 FB 78 */ mr r3, r31
/* 80310994 0030C5F4 38 A1 00 08 */ addi r5, r1, 8
/* 80310998 0030C5F8 38 80 FF FF */ li r4, -1
/* 8031099C 0030C5FC 4B FF 9C A9 */ bl VFiPFCACHE_AllocateFATPage
/* 803109A0 0030C600 2C 03 00 00 */ cmpwi r3, 0
/* 803109A4 0030C604 41 82 00 08 */ beq lbl_803109AC
/* 803109A8 0030C608 48 00 02 00 */ b lbl_80310BA8
lbl_803109AC:
/* 803109AC 0030C60C 80 61 00 08 */ lwz r3, 8(r1)
/* 803109B0 0030C610 38 80 00 00 */ li r4, 0
/* 803109B4 0030C614 A0 BF 00 00 */ lhz r5, 0(r31)
/* 803109B8 0030C618 80 63 00 08 */ lwz r3, 8(r3)
/* 803109BC 0030C61C 4B FF 46 19 */ bl VFipf_memset
/* 803109C0 0030C620 A3 BF 00 02 */ lhz r29, 2(r31)
/* 803109C4 0030C624 48 00 00 3C */ b lbl_80310A00
lbl_803109C8:
/* 803109C8 0030C628 80 81 00 08 */ lwz r4, 8(r1)
/* 803109CC 0030C62C 7F E3 FB 78 */ mr r3, r31
/* 803109D0 0030C630 7F A5 EB 78 */ mr r5, r29
/* 803109D4 0030C634 80 84 00 08 */ lwz r4, 8(r4)
/* 803109D8 0030C638 4B FF A0 1D */ bl VFiPFCACHE_WriteFATSectorAndFreeIfNeeded
/* 803109DC 0030C63C 2C 03 00 00 */ cmpwi r3, 0
/* 803109E0 0030C640 7C 7E 1B 78 */ mr r30, r3
/* 803109E4 0030C644 41 82 00 18 */ beq lbl_803109FC
/* 803109E8 0030C648 80 81 00 08 */ lwz r4, 8(r1)
/* 803109EC 0030C64C 7F E3 FB 78 */ mr r3, r31
/* 803109F0 0030C650 4B FF 9D 3D */ bl VFiPFCACHE_FreeFATPage
/* 803109F4 0030C654 7F C3 F3 78 */ mr r3, r30
/* 803109F8 0030C658 48 00 01 B0 */ b lbl_80310BA8
lbl_803109FC:
/* 803109FC 0030C65C 3B BD 00 01 */ addi r29, r29, 1
lbl_80310A00:
/* 80310A00 0030C660 80 1F 00 2C */ lwz r0, 0x2c(r31)
/* 80310A04 0030C664 7C 1D 00 40 */ cmplw r29, r0
/* 80310A08 0030C668 41 80 FF C0 */ blt lbl_803109C8
/* 80310A0C 0030C66C 80 81 00 08 */ lwz r4, 8(r1)
/* 80310A10 0030C670 7F E3 FB 78 */ mr r3, r31
/* 80310A14 0030C674 4B FF 9D 19 */ bl VFiPFCACHE_FreeFATPage
/* 80310A18 0030C678 80 DF 00 1C */ lwz r6, 0x1c(r31)
/* 80310A1C 0030C67C 3C 60 80 40 */ lis r3, lbl_803FE280@ha
/* 80310A20 0030C680 38 63 E2 80 */ addi r3, r3, lbl_803FE280@l
/* 80310A24 0030C684 88 9F 00 1A */ lbz r4, 0x1a(r31)
/* 80310A28 0030C688 1C 06 00 14 */ mulli r0, r6, 0x14
/* 80310A2C 0030C68C 2C 06 00 01 */ cmpwi r6, 1
/* 80310A30 0030C690 7C 63 02 14 */ add r3, r3, r0
/* 80310A34 0030C694 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80310A38 0030C698 7C 85 03 78 */ or r5, r4, r0
/* 80310A3C 0030C69C 41 82 00 44 */ beq lbl_80310A80
/* 80310A40 0030C6A0 40 80 00 10 */ bge lbl_80310A50
/* 80310A44 0030C6A4 2C 06 00 00 */ cmpwi r6, 0
/* 80310A48 0030C6A8 40 80 00 14 */ bge lbl_80310A5C
/* 80310A4C 0030C6AC 48 00 00 7C */ b lbl_80310AC8
lbl_80310A50:
/* 80310A50 0030C6B0 2C 06 00 03 */ cmpwi r6, 3
/* 80310A54 0030C6B4 40 80 00 74 */ bge lbl_80310AC8
/* 80310A58 0030C6B8 48 00 00 48 */ b lbl_80310AA0
lbl_80310A5C:
/* 80310A5C 0030C6BC 28 05 0F FF */ cmplwi r5, 0xfff
/* 80310A60 0030C6C0 40 81 00 0C */ ble lbl_80310A6C
/* 80310A64 0030C6C4 38 60 00 10 */ li r3, 0x10
/* 80310A68 0030C6C8 48 00 00 64 */ b lbl_80310ACC
lbl_80310A6C:
/* 80310A6C 0030C6CC 7F E3 FB 78 */ mr r3, r31
/* 80310A70 0030C6D0 54 A5 04 3E */ clrlwi r5, r5, 0x10
/* 80310A74 0030C6D4 38 80 00 00 */ li r4, 0
/* 80310A78 0030C6D8 48 00 0B B1 */ bl VFiPFFAT12_WriteFATEntry
/* 80310A7C 0030C6DC 48 00 00 50 */ b lbl_80310ACC
lbl_80310A80:
/* 80310A80 0030C6E0 28 05 FF FF */ cmplwi r5, 0xffff
/* 80310A84 0030C6E4 40 81 00 0C */ ble lbl_80310A90
/* 80310A88 0030C6E8 38 60 00 10 */ li r3, 0x10
/* 80310A8C 0030C6EC 48 00 00 40 */ b lbl_80310ACC
lbl_80310A90:
/* 80310A90 0030C6F0 7F E3 FB 78 */ mr r3, r31
/* 80310A94 0030C6F4 38 80 00 00 */ li r4, 0
/* 80310A98 0030C6F8 48 00 14 E1 */ bl VFiPFFAT16_WriteFATEntry
/* 80310A9C 0030C6FC 48 00 00 30 */ b lbl_80310ACC
lbl_80310AA0:
/* 80310AA0 0030C700 3C 60 10 00 */ lis r3, 0x0FFFFFFF@ha
/* 80310AA4 0030C704 38 03 FF FF */ addi r0, r3, 0x0FFFFFFF@l
/* 80310AA8 0030C708 7C 05 00 40 */ cmplw r5, r0
/* 80310AAC 0030C70C 40 81 00 0C */ ble lbl_80310AB8
/* 80310AB0 0030C710 38 60 00 10 */ li r3, 0x10
/* 80310AB4 0030C714 48 00 00 18 */ b lbl_80310ACC
lbl_80310AB8:
/* 80310AB8 0030C718 7F E3 FB 78 */ mr r3, r31
/* 80310ABC 0030C71C 38 80 00 00 */ li r4, 0
/* 80310AC0 0030C720 48 00 1A 51 */ bl VFiPFFAT32_WriteFATEntry
/* 80310AC4 0030C724 48 00 00 08 */ b lbl_80310ACC
lbl_80310AC8:
/* 80310AC8 0030C728 38 60 00 0F */ li r3, 0xf
lbl_80310ACC:
/* 80310ACC 0030C72C 2C 03 00 00 */ cmpwi r3, 0
/* 80310AD0 0030C730 41 82 00 08 */ beq lbl_80310AD8
/* 80310AD4 0030C734 48 00 00 D4 */ b lbl_80310BA8
lbl_80310AD8:
/* 80310AD8 0030C738 80 9F 00 1C */ lwz r4, 0x1c(r31)
/* 80310ADC 0030C73C 3C 60 80 40 */ lis r3, lbl_803FE280@ha
/* 80310AE0 0030C740 38 63 E2 80 */ addi r3, r3, lbl_803FE280@l
/* 80310AE4 0030C744 1C 04 00 14 */ mulli r0, r4, 0x14
/* 80310AE8 0030C748 2C 04 00 01 */ cmpwi r4, 1
/* 80310AEC 0030C74C 7C 63 02 14 */ add r3, r3, r0
/* 80310AF0 0030C750 80 A3 00 10 */ lwz r5, 0x10(r3)
/* 80310AF4 0030C754 41 82 00 44 */ beq lbl_80310B38
/* 80310AF8 0030C758 40 80 00 10 */ bge lbl_80310B08
/* 80310AFC 0030C75C 2C 04 00 00 */ cmpwi r4, 0
/* 80310B00 0030C760 40 80 00 14 */ bge lbl_80310B14
/* 80310B04 0030C764 48 00 00 7C */ b lbl_80310B80
lbl_80310B08:
/* 80310B08 0030C768 2C 04 00 03 */ cmpwi r4, 3
/* 80310B0C 0030C76C 40 80 00 74 */ bge lbl_80310B80
/* 80310B10 0030C770 48 00 00 48 */ b lbl_80310B58
lbl_80310B14:
/* 80310B14 0030C774 28 05 0F FF */ cmplwi r5, 0xfff
/* 80310B18 0030C778 40 81 00 0C */ ble lbl_80310B24
/* 80310B1C 0030C77C 38 60 00 10 */ li r3, 0x10
/* 80310B20 0030C780 48 00 00 64 */ b lbl_80310B84
lbl_80310B24:
/* 80310B24 0030C784 7F E3 FB 78 */ mr r3, r31
/* 80310B28 0030C788 54 A5 04 3E */ clrlwi r5, r5, 0x10
/* 80310B2C 0030C78C 38 80 00 01 */ li r4, 1
/* 80310B30 0030C790 48 00 0A F9 */ bl VFiPFFAT12_WriteFATEntry
/* 80310B34 0030C794 48 00 00 50 */ b lbl_80310B84
lbl_80310B38:
/* 80310B38 0030C798 28 05 FF FF */ cmplwi r5, 0xffff
/* 80310B3C 0030C79C 40 81 00 0C */ ble lbl_80310B48
/* 80310B40 0030C7A0 38 60 00 10 */ li r3, 0x10
/* 80310B44 0030C7A4 48 00 00 40 */ b lbl_80310B84
lbl_80310B48:
/* 80310B48 0030C7A8 7F E3 FB 78 */ mr r3, r31
/* 80310B4C 0030C7AC 38 80 00 01 */ li r4, 1
/* 80310B50 0030C7B0 48 00 14 29 */ bl VFiPFFAT16_WriteFATEntry
/* 80310B54 0030C7B4 48 00 00 30 */ b lbl_80310B84
lbl_80310B58:
/* 80310B58 0030C7B8 3C 60 10 00 */ lis r3, 0x0FFFFFFF@ha
/* 80310B5C 0030C7BC 38 03 FF FF */ addi r0, r3, 0x0FFFFFFF@l
/* 80310B60 0030C7C0 7C 05 00 40 */ cmplw r5, r0
/* 80310B64 0030C7C4 40 81 00 0C */ ble lbl_80310B70
/* 80310B68 0030C7C8 38 60 00 10 */ li r3, 0x10
/* 80310B6C 0030C7CC 48 00 00 18 */ b lbl_80310B84
lbl_80310B70:
/* 80310B70 0030C7D0 7F E3 FB 78 */ mr r3, r31
/* 80310B74 0030C7D4 38 80 00 01 */ li r4, 1
/* 80310B78 0030C7D8 48 00 19 99 */ bl VFiPFFAT32_WriteFATEntry
/* 80310B7C 0030C7DC 48 00 00 08 */ b lbl_80310B84
lbl_80310B80:
/* 80310B80 0030C7E0 38 60 00 0F */ li r3, 0xf
lbl_80310B84:
/* 80310B84 0030C7E4 2C 03 00 00 */ cmpwi r3, 0
/* 80310B88 0030C7E8 41 82 00 08 */ beq lbl_80310B90
/* 80310B8C 0030C7EC 48 00 00 1C */ b lbl_80310BA8
lbl_80310B90:
/* 80310B90 0030C7F0 7F E3 FB 78 */ mr r3, r31
/* 80310B94 0030C7F4 4B FF 9F 1D */ bl VFiPFCACHE_FlushFATCache
/* 80310B98 0030C7F8 7C 03 00 D0 */ neg r0, r3
/* 80310B9C 0030C7FC 7C 00 1B 78 */ or r0, r0, r3
/* 80310BA0 0030C800 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 80310BA4 0030C804 7C 63 00 38 */ and r3, r3, r0
lbl_80310BA8:
/* 80310BA8 0030C808 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80310BAC 0030C80C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80310BB0 0030C810 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80310BB4 0030C814 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80310BB8 0030C818 7C 08 03 A6 */ mtlr r0
/* 80310BBC 0030C81C 38 21 00 20 */ addi r1, r1, 0x20
/* 80310BC0 0030C820 4E 80 00 20 */ blr
.global VFiPFFAT_MakeRootDir
VFiPFFAT_MakeRootDir:
/* 80310BC4 0030C824 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80310BC8 0030C828 7C 08 02 A6 */ mflr r0
/* 80310BCC 0030C82C 3C A0 80 40 */ lis r5, lbl_803FE280@ha
/* 80310BD0 0030C830 90 01 00 24 */ stw r0, 0x24(r1)
/* 80310BD4 0030C834 38 A5 E2 80 */ addi r5, r5, lbl_803FE280@l
/* 80310BD8 0030C838 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80310BDC 0030C83C 7C 7F 1B 78 */ mr r31, r3
/* 80310BE0 0030C840 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80310BE4 0030C844 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80310BE8 0030C848 93 81 00 10 */ stw r28, 0x10(r1)
/* 80310BEC 0030C84C 80 C3 00 1C */ lwz r6, 0x1c(r3)
/* 80310BF0 0030C850 80 83 00 10 */ lwz r4, 0x10(r3)
/* 80310BF4 0030C854 1C 06 00 14 */ mulli r0, r6, 0x14
/* 80310BF8 0030C858 2C 06 00 01 */ cmpwi r6, 1
/* 80310BFC 0030C85C 7C A5 02 14 */ add r5, r5, r0
/* 80310C00 0030C860 80 A5 00 08 */ lwz r5, 8(r5)
/* 80310C04 0030C864 41 82 00 40 */ beq lbl_80310C44
/* 80310C08 0030C868 40 80 00 10 */ bge lbl_80310C18
/* 80310C0C 0030C86C 2C 06 00 00 */ cmpwi r6, 0
/* 80310C10 0030C870 40 80 00 14 */ bge lbl_80310C24
/* 80310C14 0030C874 48 00 00 68 */ b lbl_80310C7C
lbl_80310C18:
/* 80310C18 0030C878 2C 06 00 03 */ cmpwi r6, 3
/* 80310C1C 0030C87C 40 80 00 60 */ bge lbl_80310C7C
/* 80310C20 0030C880 48 00 00 3C */ b lbl_80310C5C
lbl_80310C24:
/* 80310C24 0030C884 28 05 0F FF */ cmplwi r5, 0xfff
/* 80310C28 0030C888 40 81 00 0C */ ble lbl_80310C34
/* 80310C2C 0030C88C 38 60 00 10 */ li r3, 0x10
/* 80310C30 0030C890 48 00 00 50 */ b lbl_80310C80
lbl_80310C34:
/* 80310C34 0030C894 54 84 04 3E */ clrlwi r4, r4, 0x10
/* 80310C38 0030C898 54 A5 04 3E */ clrlwi r5, r5, 0x10
/* 80310C3C 0030C89C 48 00 09 ED */ bl VFiPFFAT12_WriteFATEntry
/* 80310C40 0030C8A0 48 00 00 40 */ b lbl_80310C80
lbl_80310C44:
/* 80310C44 0030C8A4 28 05 FF FF */ cmplwi r5, 0xffff
/* 80310C48 0030C8A8 40 81 00 0C */ ble lbl_80310C54
/* 80310C4C 0030C8AC 38 60 00 10 */ li r3, 0x10
/* 80310C50 0030C8B0 48 00 00 30 */ b lbl_80310C80
lbl_80310C54:
/* 80310C54 0030C8B4 48 00 13 25 */ bl VFiPFFAT16_WriteFATEntry
/* 80310C58 0030C8B8 48 00 00 28 */ b lbl_80310C80
lbl_80310C5C:
/* 80310C5C 0030C8BC 3C C0 10 00 */ lis r6, 0x0FFFFFFF@ha
/* 80310C60 0030C8C0 38 06 FF FF */ addi r0, r6, 0x0FFFFFFF@l
/* 80310C64 0030C8C4 7C 05 00 40 */ cmplw r5, r0
/* 80310C68 0030C8C8 40 81 00 0C */ ble lbl_80310C74
/* 80310C6C 0030C8CC 38 60 00 10 */ li r3, 0x10
/* 80310C70 0030C8D0 48 00 00 10 */ b lbl_80310C80
lbl_80310C74:
/* 80310C74 0030C8D4 48 00 18 9D */ bl VFiPFFAT32_WriteFATEntry
/* 80310C78 0030C8D8 48 00 00 08 */ b lbl_80310C80
lbl_80310C7C:
/* 80310C7C 0030C8DC 38 60 00 0F */ li r3, 0xf
lbl_80310C80:
/* 80310C80 0030C8E0 2C 03 00 00 */ cmpwi r3, 0
/* 80310C84 0030C8E4 41 82 00 08 */ beq lbl_80310C8C
/* 80310C88 0030C8E8 48 00 00 F0 */ b lbl_80310D78
lbl_80310C8C:
/* 80310C8C 0030C8EC 7F E3 FB 78 */ mr r3, r31
/* 80310C90 0030C8F0 4B FF 9E 21 */ bl VFiPFCACHE_FlushFATCache
/* 80310C94 0030C8F4 2C 03 00 00 */ cmpwi r3, 0
/* 80310C98 0030C8F8 41 82 00 08 */ beq lbl_80310CA0
/* 80310C9C 0030C8FC 48 00 00 DC */ b lbl_80310D78
lbl_80310CA0:
/* 80310CA0 0030C900 7F E3 FB 78 */ mr r3, r31
/* 80310CA4 0030C904 38 A1 00 08 */ addi r5, r1, 8
/* 80310CA8 0030C908 38 80 FF FF */ li r4, -1
/* 80310CAC 0030C90C 4B FF 9A 0D */ bl VFiPFCACHE_AllocateDataPage
/* 80310CB0 0030C910 2C 03 00 00 */ cmpwi r3, 0
/* 80310CB4 0030C914 41 82 00 08 */ beq lbl_80310CBC
/* 80310CB8 0030C918 48 00 00 C0 */ b lbl_80310D78
lbl_80310CBC:
/* 80310CBC 0030C91C 80 61 00 08 */ lwz r3, 8(r1)
/* 80310CC0 0030C920 38 80 00 00 */ li r4, 0
/* 80310CC4 0030C924 A0 BF 00 00 */ lhz r5, 0(r31)
/* 80310CC8 0030C928 80 63 00 08 */ lwz r3, 8(r3)
/* 80310CCC 0030C92C 4B FF 43 09 */ bl VFipf_memset
/* 80310CD0 0030C930 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 80310CD4 0030C934 3B 80 00 00 */ li r28, 0
/* 80310CD8 0030C938 88 1F 00 21 */ lbz r0, 0x21(r31)
/* 80310CDC 0030C93C 38 63 FF FE */ addi r3, r3, -2
/* 80310CE0 0030C940 80 9F 00 30 */ lwz r4, 0x30(r31)
/* 80310CE4 0030C944 7C 60 00 30 */ slw r0, r3, r0
/* 80310CE8 0030C948 7F A4 02 14 */ add r29, r4, r0
/* 80310CEC 0030C94C 48 00 00 70 */ b lbl_80310D5C
lbl_80310CF0:
/* 80310CF0 0030C950 80 81 00 08 */ lwz r4, 8(r1)
/* 80310CF4 0030C954 7F E3 FB 78 */ mr r3, r31
/* 80310CF8 0030C958 A0 FF 00 00 */ lhz r7, 0(r31)
/* 80310CFC 0030C95C 7C BD E2 14 */ add r5, r29, r28
/* 80310D00 0030C960 80 84 00 08 */ lwz r4, 8(r4)
/* 80310D04 0030C964 39 01 00 0C */ addi r8, r1, 0xc
/* 80310D08 0030C968 38 C0 00 00 */ li r6, 0
/* 80310D0C 0030C96C 39 20 00 00 */ li r9, 0
/* 80310D10 0030C970 48 00 80 D9 */ bl VFiPFSEC_WriteData
/* 80310D14 0030C974 2C 03 00 00 */ cmpwi r3, 0
/* 80310D18 0030C978 7C 7E 1B 78 */ mr r30, r3
/* 80310D1C 0030C97C 41 82 00 18 */ beq lbl_80310D34
/* 80310D20 0030C980 80 81 00 08 */ lwz r4, 8(r1)
/* 80310D24 0030C984 7F E3 FB 78 */ mr r3, r31
/* 80310D28 0030C988 4B FF 9A 95 */ bl VFiPFCACHE_FreeDataPage
/* 80310D2C 0030C98C 7F C3 F3 78 */ mr r3, r30
/* 80310D30 0030C990 48 00 00 48 */ b lbl_80310D78
lbl_80310D34:
/* 80310D34 0030C994 80 61 00 0C */ lwz r3, 0xc(r1)
/* 80310D38 0030C998 A0 1F 00 00 */ lhz r0, 0(r31)
/* 80310D3C 0030C99C 7C 03 00 40 */ cmplw r3, r0
/* 80310D40 0030C9A0 41 82 00 18 */ beq lbl_80310D58
/* 80310D44 0030C9A4 80 81 00 08 */ lwz r4, 8(r1)
/* 80310D48 0030C9A8 7F E3 FB 78 */ mr r3, r31
/* 80310D4C 0030C9AC 4B FF 9A 71 */ bl VFiPFCACHE_FreeDataPage
/* 80310D50 0030C9B0 38 60 00 11 */ li r3, 0x11
/* 80310D54 0030C9B4 48 00 00 24 */ b lbl_80310D78
lbl_80310D58:
/* 80310D58 0030C9B8 3B 9C 00 01 */ addi r28, r28, 1
lbl_80310D5C:
/* 80310D5C 0030C9BC 88 1F 00 06 */ lbz r0, 6(r31)
/* 80310D60 0030C9C0 7C 1C 00 40 */ cmplw r28, r0
/* 80310D64 0030C9C4 41 80 FF 8C */ blt lbl_80310CF0
/* 80310D68 0030C9C8 80 81 00 08 */ lwz r4, 8(r1)
/* 80310D6C 0030C9CC 7F E3 FB 78 */ mr r3, r31
/* 80310D70 0030C9D0 4B FF 9A 4D */ bl VFiPFCACHE_FreeDataPage
/* 80310D74 0030C9D4 38 60 00 00 */ li r3, 0
lbl_80310D78:
/* 80310D78 0030C9D8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80310D7C 0030C9DC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80310D80 0030C9E0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80310D84 0030C9E4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80310D88 0030C9E8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80310D8C 0030C9EC 7C 08 03 A6 */ mtlr r0
/* 80310D90 0030C9F0 38 21 00 20 */ addi r1, r1, 0x20
/* 80310D94 0030C9F4 4E 80 00 20 */ blr
.global VFiPFFAT_InitHint
VFiPFFAT_InitHint:
/* 80310D98 0030C9F8 38 00 00 00 */ li r0, 0
/* 80310D9C 0030C9FC 90 03 00 00 */ stw r0, 0(r3)
/* 80310DA0 0030CA00 90 03 00 04 */ stw r0, 4(r3)
/* 80310DA4 0030CA04 90 03 00 08 */ stw r0, 8(r3)
/* 80310DA8 0030CA08 4E 80 00 20 */ blr
.global VFiPFFAT_TraceClustersChain
VFiPFFAT_TraceClustersChain:
/* 80310DAC 0030CA0C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80310DB0 0030CA10 7C 08 02 A6 */ mflr r0
/* 80310DB4 0030CA14 90 01 00 44 */ stw r0, 0x44(r1)
/* 80310DB8 0030CA18 39 61 00 40 */ addi r11, r1, 0x40
/* 80310DBC 0030CA1C 4B EB 63 59 */ bl _savegpr_22
/* 80310DC0 0030CA20 38 00 00 00 */ li r0, 0
/* 80310DC4 0030CA24 7C 99 23 78 */ mr r25, r4
/* 80310DC8 0030CA28 90 06 00 00 */ stw r0, 0(r6)
/* 80310DCC 0030CA2C 2C 03 00 00 */ cmpwi r3, 0
/* 80310DD0 0030CA30 7C 78 1B 78 */ mr r24, r3
/* 80310DD4 0030CA34 7C DA 33 78 */ mr r26, r6
/* 80310DD8 0030CA38 90 07 00 00 */ stw r0, 0(r7)
/* 80310DDC 0030CA3C 7C FB 3B 78 */ mr r27, r7
/* 80310DE0 0030CA40 7F 3E CB 78 */ mr r30, r25
/* 80310DE4 0030CA44 40 82 00 0C */ bne lbl_80310DF0
/* 80310DE8 0030CA48 38 60 00 0A */ li r3, 0xa
/* 80310DEC 0030CA4C 48 00 01 E8 */ b lbl_80310FD4
lbl_80310DF0:
/* 80310DF0 0030CA50 81 23 00 30 */ lwz r9, 0x30(r3)
/* 80310DF4 0030CA54 2C 09 00 00 */ cmpwi r9, 0
/* 80310DF8 0030CA58 40 82 00 0C */ bne lbl_80310E04
/* 80310DFC 0030CA5C 38 60 00 0A */ li r3, 0xa
/* 80310E00 0030CA60 48 00 01 D4 */ b lbl_80310FD4
lbl_80310E04:
/* 80310E04 0030CA64 81 03 00 00 */ lwz r8, 0(r3)
/* 80310E08 0030CA68 2C 08 00 00 */ cmpwi r8, 0
/* 80310E0C 0030CA6C 40 82 00 0C */ bne lbl_80310E18
/* 80310E10 0030CA70 38 60 00 0A */ li r3, 0xa
/* 80310E14 0030CA74 48 00 01 C0 */ b lbl_80310FD4
lbl_80310E18:
/* 80310E18 0030CA78 80 09 00 08 */ lwz r0, 8(r9)
/* 80310E1C 0030CA7C 7C 00 40 40 */ cmplw r0, r8
/* 80310E20 0030CA80 40 81 00 0C */ ble lbl_80310E2C
/* 80310E24 0030CA84 38 60 00 0A */ li r3, 0xa
/* 80310E28 0030CA88 48 00 01 AC */ b lbl_80310FD4
lbl_80310E2C:
/* 80310E2C 0030CA8C 83 E3 00 34 */ lwz r31, 0x34(r3)
/* 80310E30 0030CA90 88 1F 18 7A */ lbz r0, 0x187a(r31)
/* 80310E34 0030CA94 7C 00 07 74 */ extsb r0, r0
/* 80310E38 0030CA98 2C 00 00 41 */ cmpwi r0, 0x41
/* 80310E3C 0030CA9C 41 80 00 0C */ blt lbl_80310E48
/* 80310E40 0030CAA0 2C 00 00 5A */ cmpwi r0, 0x5a
/* 80310E44 0030CAA4 40 81 00 0C */ ble lbl_80310E50
lbl_80310E48:
/* 80310E48 0030CAA8 38 60 00 23 */ li r3, 0x23
/* 80310E4C 0030CAAC 48 00 01 88 */ b lbl_80310FD4
lbl_80310E50:
/* 80310E50 0030CAB0 2C 1F 00 00 */ cmpwi r31, 0
/* 80310E54 0030CAB4 40 82 00 0C */ bne lbl_80310E60
/* 80310E58 0030CAB8 38 60 00 0A */ li r3, 0xa
/* 80310E5C 0030CABC 48 00 01 78 */ b lbl_80310FD4
lbl_80310E60:
/* 80310E60 0030CAC0 81 03 00 08 */ lwz r8, 8(r3)
/* 80310E64 0030CAC4 81 08 00 00 */ lwz r8, 0(r8)
/* 80310E68 0030CAC8 28 08 00 02 */ cmplwi r8, 2
/* 80310E6C 0030CACC 40 80 00 0C */ bge lbl_80310E78
/* 80310E70 0030CAD0 38 60 00 00 */ li r3, 0
/* 80310E74 0030CAD4 48 00 01 60 */ b lbl_80310FD4
lbl_80310E78:
/* 80310E78 0030CAD8 28 04 00 02 */ cmplwi r4, 2
/* 80310E7C 0030CADC 40 80 00 0C */ bge lbl_80310E88
/* 80310E80 0030CAE0 38 60 00 00 */ li r3, 0
/* 80310E84 0030CAE4 48 00 01 50 */ b lbl_80310FD4
lbl_80310E88:
/* 80310E88 0030CAE8 2C 05 00 00 */ cmpwi r5, 0
/* 80310E8C 0030CAEC 40 82 00 0C */ bne lbl_80310E98
/* 80310E90 0030CAF0 38 60 00 00 */ li r3, 0
/* 80310E94 0030CAF4 48 00 01 40 */ b lbl_80310FD4
lbl_80310E98:
/* 80310E98 0030CAF8 3C 05 00 01 */ addis r0, r5, 1
/* 80310E9C 0030CAFC 28 00 FF FF */ cmplwi r0, 0xffff
/* 80310EA0 0030CB00 40 82 00 38 */ bne lbl_80310ED8
/* 80310EA4 0030CB04 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80310EA8 0030CB08 2C 00 00 00 */ cmpwi r0, 0
/* 80310EAC 0030CB0C 41 82 00 2C */ beq lbl_80310ED8
/* 80310EB0 0030CB10 90 06 00 00 */ stw r0, 0(r6)
/* 80310EB4 0030CB14 3C 80 80 40 */ lis r4, lbl_803FE280@ha
/* 80310EB8 0030CB18 38 84 E2 80 */ addi r4, r4, lbl_803FE280@l
/* 80310EBC 0030CB1C 38 60 00 00 */ li r3, 0
/* 80310EC0 0030CB20 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 80310EC4 0030CB24 1C 00 00 14 */ mulli r0, r0, 0x14
/* 80310EC8 0030CB28 7C 84 02 14 */ add r4, r4, r0
/* 80310ECC 0030CB2C 80 04 00 08 */ lwz r0, 8(r4)
/* 80310ED0 0030CB30 90 07 00 00 */ stw r0, 0(r7)
/* 80310ED4 0030CB34 48 00 01 00 */ b lbl_80310FD4
lbl_80310ED8:
/* 80310ED8 0030CB38 A0 7F 00 00 */ lhz r3, 0(r31)
/* 80310EDC 0030CB3C 88 1F 00 21 */ lbz r0, 0x21(r31)
/* 80310EE0 0030CB40 7C 60 00 30 */ slw r0, r3, r0
/* 80310EE4 0030CB44 7F 85 03 96 */ divwu r28, r5, r0
/* 80310EE8 0030CB48 7C 1C 01 D6 */ mullw r0, r28, r0
/* 80310EEC 0030CB4C 7C 00 28 51 */ subf. r0, r0, r5
/* 80310EF0 0030CB50 41 82 00 08 */ beq lbl_80310EF8
/* 80310EF4 0030CB54 3B 9C 00 01 */ addi r28, r28, 1
lbl_80310EF8:
/* 80310EF8 0030CB58 7C 08 20 40 */ cmplw r8, r4
/* 80310EFC 0030CB5C 40 82 00 0C */ bne lbl_80310F08
/* 80310F00 0030CB60 3B A0 00 01 */ li r29, 1
/* 80310F04 0030CB64 48 00 00 0C */ b lbl_80310F10
lbl_80310F08:
/* 80310F08 0030CB68 80 69 00 00 */ lwz r3, 0(r9)
/* 80310F0C 0030CB6C 3B A3 00 01 */ addi r29, r3, 1
lbl_80310F10:
/* 80310F10 0030CB70 38 60 FF FF */ li r3, -1
/* 80310F14 0030CB74 38 00 00 01 */ li r0, 1
/* 80310F18 0030CB78 90 61 00 10 */ stw r3, 0x10(r1)
/* 80310F1C 0030CB7C 7F E3 FB 78 */ mr r3, r31
/* 80310F20 0030CB80 7F 25 CB 78 */ mr r5, r25
/* 80310F24 0030CB84 38 81 00 08 */ addi r4, r1, 8
/* 80310F28 0030CB88 90 01 00 0C */ stw r0, 0xc(r1)
/* 80310F2C 0030CB8C 4B FF D6 0D */ bl VFiPFFAT_ReadFATSector
/* 80310F30 0030CB90 2C 03 00 00 */ cmpwi r3, 0
/* 80310F34 0030CB94 41 82 00 08 */ beq lbl_80310F3C
/* 80310F38 0030CB98 48 00 00 9C */ b lbl_80310FD4
lbl_80310F3C:
/* 80310F3C 0030CB9C 3E E0 80 40 */ lis r23, lbl_803FE280@ha
/* 80310F40 0030CBA0 3A C0 00 00 */ li r22, 0
/* 80310F44 0030CBA4 3A F7 E2 80 */ addi r23, r23, lbl_803FE280@l
/* 80310F48 0030CBA8 48 00 00 68 */ b lbl_80310FB0
lbl_80310F4C:
/* 80310F4C 0030CBAC 7F 03 C3 78 */ mr r3, r24
/* 80310F50 0030CBB0 7F 24 CB 78 */ mr r4, r25
/* 80310F54 0030CBB4 7F A5 EB 78 */ mr r5, r29
/* 80310F58 0030CBB8 38 C1 00 10 */ addi r6, r1, 0x10
/* 80310F5C 0030CBBC 38 E1 00 0C */ addi r7, r1, 0xc
/* 80310F60 0030CBC0 39 01 00 08 */ addi r8, r1, 8
/* 80310F64 0030CBC4 4B FF DC 71 */ bl VFiPFFAT_ReadClusterPage
/* 80310F68 0030CBC8 2C 03 00 00 */ cmpwi r3, 0
/* 80310F6C 0030CBCC 41 82 00 08 */ beq lbl_80310F74
/* 80310F70 0030CBD0 48 00 00 64 */ b lbl_80310FD4
lbl_80310F74:
/* 80310F74 0030CBD4 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 80310F78 0030CBD8 7F 3E CB 78 */ mr r30, r25
/* 80310F7C 0030CBDC 80 81 00 10 */ lwz r4, 0x10(r1)
/* 80310F80 0030CBE0 1C 00 00 14 */ mulli r0, r0, 0x14
/* 80310F84 0030CBE4 7C 77 02 14 */ add r3, r23, r0
/* 80310F88 0030CBE8 80 03 00 08 */ lwz r0, 8(r3)
/* 80310F8C 0030CBEC 7C 04 00 40 */ cmplw r4, r0
/* 80310F90 0030CBF0 40 82 00 14 */ bne lbl_80310FA4
/* 80310F94 0030CBF4 38 1D FF FF */ addi r0, r29, -1
/* 80310F98 0030CBF8 93 38 00 0C */ stw r25, 0xc(r24)
/* 80310F9C 0030CBFC 90 18 00 10 */ stw r0, 0x10(r24)
/* 80310FA0 0030CC00 48 00 00 18 */ b lbl_80310FB8
lbl_80310FA4:
/* 80310FA4 0030CC04 7C 99 23 78 */ mr r25, r4
/* 80310FA8 0030CC08 3B BD 00 01 */ addi r29, r29, 1
/* 80310FAC 0030CC0C 3A D6 00 01 */ addi r22, r22, 1
lbl_80310FB0:
/* 80310FB0 0030CC10 7C 16 E0 40 */ cmplw r22, r28
/* 80310FB4 0030CC14 41 80 FF 98 */ blt lbl_80310F4C
lbl_80310FB8:
/* 80310FB8 0030CC18 80 98 00 30 */ lwz r4, 0x30(r24)
/* 80310FBC 0030CC1C 38 1D FF FF */ addi r0, r29, -1
/* 80310FC0 0030CC20 38 60 00 00 */ li r3, 0
/* 80310FC4 0030CC24 90 04 00 00 */ stw r0, 0(r4)
/* 80310FC8 0030CC28 93 DA 00 00 */ stw r30, 0(r26)
/* 80310FCC 0030CC2C 80 01 00 10 */ lwz r0, 0x10(r1)
/* 80310FD0 0030CC30 90 1B 00 00 */ stw r0, 0(r27)
lbl_80310FD4:
/* 80310FD4 0030CC34 39 61 00 40 */ addi r11, r1, 0x40
/* 80310FD8 0030CC38 4B EB 61 89 */ bl _restgpr_22
/* 80310FDC 0030CC3C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80310FE0 0030CC40 7C 08 03 A6 */ mtlr r0
/* 80310FE4 0030CC44 38 21 00 40 */ addi r1, r1, 0x40
/* 80310FE8 0030CC48 4E 80 00 20 */ blr
.global VFiPFFAT_ReadValueToSpecifiedCluster
VFiPFFAT_ReadValueToSpecifiedCluster:
/* 80310FEC 0030CC4C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80310FF0 0030CC50 7C 08 02 A6 */ mflr r0
/* 80310FF4 0030CC54 90 01 00 14 */ stw r0, 0x14(r1)
/* 80310FF8 0030CC58 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80310FFC 0030CC5C 2C 00 00 01 */ cmpwi r0, 1
/* 80311000 0030CC60 41 82 00 2C */ beq lbl_8031102C
/* 80311004 0030CC64 40 80 00 10 */ bge lbl_80311014
/* 80311008 0030CC68 2C 00 00 00 */ cmpwi r0, 0
/* 8031100C 0030CC6C 40 80 00 14 */ bge lbl_80311020
/* 80311010 0030CC70 48 00 00 2C */ b lbl_8031103C
lbl_80311014:
/* 80311014 0030CC74 2C 00 00 03 */ cmpwi r0, 3
/* 80311018 0030CC78 40 80 00 24 */ bge lbl_8031103C
/* 8031101C 0030CC7C 48 00 00 18 */ b lbl_80311034
lbl_80311020:
/* 80311020 0030CC80 54 84 04 3E */ clrlwi r4, r4, 0x10
/* 80311024 0030CC84 48 00 01 4D */ bl VFiPFFAT12_ReadFATEntry
/* 80311028 0030CC88 48 00 00 20 */ b lbl_80311048
lbl_8031102C:
/* 8031102C 0030CC8C 48 00 0C 2D */ bl VFiPFFAT16_ReadFATEntry
/* 80311030 0030CC90 48 00 00 18 */ b lbl_80311048
lbl_80311034:
/* 80311034 0030CC94 48 00 11 9D */ bl VFiPFFAT32_ReadFATEntry
/* 80311038 0030CC98 48 00 00 10 */ b lbl_80311048
lbl_8031103C:
/* 8031103C 0030CC9C 38 00 FF FF */ li r0, -1
/* 80311040 0030CCA0 38 60 00 0F */ li r3, 0xf
/* 80311044 0030CCA4 90 05 00 00 */ stw r0, 0(r5)
lbl_80311048:
/* 80311048 0030CCA8 7C 03 00 D0 */ neg r0, r3
/* 8031104C 0030CCAC 7C 00 1B 78 */ or r0, r0, r3
/* 80311050 0030CCB0 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 80311054 0030CCB4 7C 63 00 38 */ and r3, r3, r0
/* 80311058 0030CCB8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8031105C 0030CCBC 7C 08 03 A6 */ mtlr r0
/* 80311060 0030CCC0 38 21 00 10 */ addi r1, r1, 0x10
/* 80311064 0030CCC4 4E 80 00 20 */ blr
.global VFiPFFAT_ResetFFD
VFiPFFAT_ResetFFD:
/* 80311068 0030CCC8 2C 03 00 00 */ cmpwi r3, 0
/* 8031106C 0030CCCC 40 82 00 0C */ bne lbl_80311078
/* 80311070 0030CCD0 38 60 00 0A */ li r3, 0xa
/* 80311074 0030CCD4 4E 80 00 20 */ blr
lbl_80311078:
/* 80311078 0030CCD8 2C 04 00 00 */ cmpwi r4, 0
/* 8031107C 0030CCDC 40 82 00 0C */ bne lbl_80311088
/* 80311080 0030CCE0 38 60 00 0A */ li r3, 0xa
/* 80311084 0030CCE4 4E 80 00 20 */ blr
lbl_80311088:
/* 80311088 0030CCE8 80 A3 00 30 */ lwz r5, 0x30(r3)
/* 8031108C 0030CCEC 38 00 00 01 */ li r0, 1
/* 80311090 0030CCF0 90 83 00 08 */ stw r4, 8(r3)
/* 80311094 0030CCF4 2C 05 00 00 */ cmpwi r5, 0
/* 80311098 0030CCF8 90 03 00 00 */ stw r0, 0(r3)
/* 8031109C 0030CCFC 41 82 00 0C */ beq lbl_803110A8
/* 803110A0 0030CD00 38 00 00 00 */ li r0, 0
/* 803110A4 0030CD04 90 05 00 08 */ stw r0, 8(r5)
lbl_803110A8:
/* 803110A8 0030CD08 38 00 00 00 */ li r0, 0
/* 803110AC 0030CD0C 90 03 00 18 */ stw r0, 0x18(r3)
/* 803110B0 0030CD10 90 03 00 14 */ stw r0, 0x14(r3)
/* 803110B4 0030CD14 90 03 00 0C */ stw r0, 0xc(r3)
/* 803110B8 0030CD18 90 03 00 10 */ stw r0, 0x10(r3)
/* 803110BC 0030CD1C 90 03 00 1C */ stw r0, 0x1c(r3)
/* 803110C0 0030CD20 38 60 00 00 */ li r3, 0
/* 803110C4 0030CD24 4E 80 00 20 */ blr
.global VFiPFFAT_InitFFD
VFiPFFAT_InitFFD:
/* 803110C8 0030CD28 2C 83 00 00 */ cmpwi cr1, r3, 0
/* 803110CC 0030CD2C 40 86 00 0C */ bne cr1, lbl_803110D8
/* 803110D0 0030CD30 38 60 00 0A */ li r3, 0xa
/* 803110D4 0030CD34 4E 80 00 20 */ blr
lbl_803110D8:
/* 803110D8 0030CD38 2C 06 00 00 */ cmpwi r6, 0
/* 803110DC 0030CD3C 40 82 00 0C */ bne lbl_803110E8
/* 803110E0 0030CD40 38 60 00 0A */ li r3, 0xa
/* 803110E4 0030CD44 4E 80 00 20 */ blr
lbl_803110E8:
/* 803110E8 0030CD48 90 83 00 30 */ stw r4, 0x30(r3)
/* 803110EC 0030CD4C 90 A3 00 34 */ stw r5, 0x34(r3)
/* 803110F0 0030CD50 41 86 00 3C */ beq cr1, lbl_8031112C
/* 803110F4 0030CD54 41 82 00 38 */ beq lbl_8031112C
/* 803110F8 0030CD58 38 00 00 01 */ li r0, 1
/* 803110FC 0030CD5C 2C 04 00 00 */ cmpwi r4, 0
/* 80311100 0030CD60 90 C3 00 08 */ stw r6, 8(r3)
/* 80311104 0030CD64 90 03 00 00 */ stw r0, 0(r3)
/* 80311108 0030CD68 41 82 00 0C */ beq lbl_80311114
/* 8031110C 0030CD6C 38 00 00 00 */ li r0, 0
/* 80311110 0030CD70 90 04 00 08 */ stw r0, 8(r4)
lbl_80311114:
/* 80311114 0030CD74 38 00 00 00 */ li r0, 0
/* 80311118 0030CD78 90 03 00 18 */ stw r0, 0x18(r3)
/* 8031111C 0030CD7C 90 03 00 14 */ stw r0, 0x14(r3)
/* 80311120 0030CD80 90 03 00 0C */ stw r0, 0xc(r3)
/* 80311124 0030CD84 90 03 00 10 */ stw r0, 0x10(r3)
/* 80311128 0030CD88 90 03 00 1C */ stw r0, 0x1c(r3)
lbl_8031112C:
/* 8031112C 0030CD8C 38 60 00 00 */ li r3, 0
/* 80311130 0030CD90 4E 80 00 20 */ blr
.global VFiPFFAT_FinalizeFFD
VFiPFFAT_FinalizeFFD:
/* 80311134 0030CD94 2C 03 00 00 */ cmpwi r3, 0
/* 80311138 0030CD98 40 82 00 0C */ bne lbl_80311144
/* 8031113C 0030CD9C 38 60 00 0A */ li r3, 0xa
/* 80311140 0030CDA0 4E 80 00 20 */ blr
lbl_80311144:
/* 80311144 0030CDA4 38 00 00 00 */ li r0, 0
/* 80311148 0030CDA8 90 03 00 1C */ stw r0, 0x1c(r3)
/* 8031114C 0030CDAC 38 60 00 00 */ li r3, 0
/* 80311150 0030CDB0 4E 80 00 20 */ blr
.global VFiPFFAT_GetValueOfEOC2
VFiPFFAT_GetValueOfEOC2:
/* 80311154 0030CDB4 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80311158 0030CDB8 3C 60 80 40 */ lis r3, lbl_803FE280@ha
/* 8031115C 0030CDBC 38 63 E2 80 */ addi r3, r3, lbl_803FE280@l
/* 80311160 0030CDC0 1C 00 00 14 */ mulli r0, r0, 0x14
/* 80311164 0030CDC4 7C 63 02 14 */ add r3, r3, r0
/* 80311168 0030CDC8 80 63 00 08 */ lwz r3, 8(r3)
/* 8031116C 0030CDCC 4E 80 00 20 */ blr
|