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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global VFiPFCACHE_InitPageList
VFiPFCACHE_InitPageList:
/* 80308ED8 00304B38 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80308EDC 00304B3C 7C 08 02 A6 */ mflr r0
/* 80308EE0 00304B40 90 01 00 34 */ stw r0, 0x34(r1)
/* 80308EE4 00304B44 39 61 00 30 */ addi r11, r1, 0x30
/* 80308EE8 00304B48 4B EB E2 39 */ bl _savegpr_25
/* 80308EEC 00304B4C 90 A4 00 00 */ stw r5, 0(r4)
/* 80308EF0 00304B50 28 09 00 01 */ cmplwi r9, 1
/* 80308EF4 00304B54 A0 03 00 00 */ lhz r0, 0(r3)
/* 80308EF8 00304B58 7C 00 4E 70 */ srawi r0, r0, 9
/* 80308EFC 00304B5C 7D 80 41 D6 */ mullw r12, r0, r8
/* 80308F00 00304B60 40 82 00 10 */ bne lbl_80308F10
/* 80308F04 00304B64 7C 07 63 96 */ divwu r0, r7, r12
/* 80308F08 00304B68 28 00 00 01 */ cmplwi r0, 1
/* 80308F0C 00304B6C 41 80 00 18 */ blt lbl_80308F24
lbl_80308F10:
/* 80308F10 00304B70 2C 09 00 00 */ cmpwi r9, 0
/* 80308F14 00304B74 40 82 00 18 */ bne lbl_80308F2C
/* 80308F18 00304B78 7C 07 63 96 */ divwu r0, r7, r12
/* 80308F1C 00304B7C 28 00 00 02 */ cmplwi r0, 2
/* 80308F20 00304B80 40 80 00 0C */ bge lbl_80308F2C
lbl_80308F24:
/* 80308F24 00304B84 38 60 00 1E */ li r3, 0x1e
/* 80308F28 00304B88 48 00 02 18 */ b lbl_80309140
lbl_80308F2C:
/* 80308F2C 00304B8C 7C 07 63 96 */ divwu r0, r7, r12
/* 80308F30 00304B90 28 00 00 01 */ cmplwi r0, 1
/* 80308F34 00304B94 40 82 00 64 */ bne lbl_80308F98
/* 80308F38 00304B98 A0 05 00 00 */ lhz r0, 0(r5)
/* 80308F3C 00304B9C 38 80 00 00 */ li r4, 0
/* 80308F40 00304BA0 38 60 FF FF */ li r3, -1
/* 80308F44 00304BA4 2C 09 00 00 */ cmpwi r9, 0
/* 80308F48 00304BA8 54 00 04 3A */ rlwinm r0, r0, 0, 0x10, 0x1d
/* 80308F4C 00304BAC 90 A5 00 24 */ stw r5, 0x24(r5)
/* 80308F50 00304BB0 90 A5 00 20 */ stw r5, 0x20(r5)
/* 80308F54 00304BB4 90 C5 00 04 */ stw r6, 4(r5)
/* 80308F58 00304BB8 90 C5 00 08 */ stw r6, 8(r5)
/* 80308F5C 00304BBC 90 85 00 0C */ stw r4, 0xc(r5)
/* 80308F60 00304BC0 90 85 00 10 */ stw r4, 0x10(r5)
/* 80308F64 00304BC4 91 05 00 14 */ stw r8, 0x14(r5)
/* 80308F68 00304BC8 90 65 00 18 */ stw r3, 0x18(r5)
/* 80308F6C 00304BCC B0 85 00 02 */ sth r4, 2(r5)
/* 80308F70 00304BD0 90 85 00 1C */ stw r4, 0x1c(r5)
/* 80308F74 00304BD4 B0 05 00 00 */ sth r0, 0(r5)
/* 80308F78 00304BD8 41 82 00 10 */ beq lbl_80308F88
/* 80308F7C 00304BDC 60 00 00 04 */ ori r0, r0, 4
/* 80308F80 00304BE0 B0 05 00 00 */ sth r0, 0(r5)
/* 80308F84 00304BE4 48 00 00 0C */ b lbl_80308F90
lbl_80308F88:
/* 80308F88 00304BE8 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
/* 80308F8C 00304BEC B0 05 00 00 */ sth r0, 0(r5)
lbl_80308F90:
/* 80308F90 00304BF0 38 60 00 00 */ li r3, 0
/* 80308F94 00304BF4 48 00 01 AC */ b lbl_80309140
lbl_80308F98:
/* 80308F98 00304BF8 7C 60 61 D6 */ mullw r3, r0, r12
/* 80308F9C 00304BFC 3B C0 00 00 */ li r30, 0
/* 80308FA0 00304C00 A0 05 00 00 */ lhz r0, 0(r5)
/* 80308FA4 00304C04 3B A0 FF FF */ li r29, -1
/* 80308FA8 00304C08 2C 09 00 00 */ cmpwi r9, 0
/* 80308FAC 00304C0C 90 C5 00 04 */ stw r6, 4(r5)
/* 80308FB0 00304C10 54 1C 04 3A */ rlwinm r28, r0, 0, 0x10, 0x1d
/* 80308FB4 00304C14 7D 63 38 50 */ subf r11, r3, r7
/* 80308FB8 00304C18 7C 0B 38 50 */ subf r0, r11, r7
/* 80308FBC 00304C1C 90 C5 00 08 */ stw r6, 8(r5)
/* 80308FC0 00304C20 7D 4C 00 50 */ subf r10, r12, r0
/* 80308FC4 00304C24 1C 6A 00 28 */ mulli r3, r10, 0x28
/* 80308FC8 00304C28 93 C5 00 0C */ stw r30, 0xc(r5)
/* 80308FCC 00304C2C 93 C5 00 10 */ stw r30, 0x10(r5)
/* 80308FD0 00304C30 7C 85 1A 14 */ add r4, r5, r3
/* 80308FD4 00304C34 1C 0C 00 28 */ mulli r0, r12, 0x28
/* 80308FD8 00304C38 91 05 00 14 */ stw r8, 0x14(r5)
/* 80308FDC 00304C3C 90 85 00 24 */ stw r4, 0x24(r5)
/* 80308FE0 00304C40 7C 65 02 14 */ add r3, r5, r0
/* 80308FE4 00304C44 90 65 00 20 */ stw r3, 0x20(r5)
/* 80308FE8 00304C48 93 A5 00 18 */ stw r29, 0x18(r5)
/* 80308FEC 00304C4C B3 C5 00 02 */ sth r30, 2(r5)
/* 80308FF0 00304C50 93 C5 00 1C */ stw r30, 0x1c(r5)
/* 80308FF4 00304C54 B3 85 00 00 */ sth r28, 0(r5)
/* 80308FF8 00304C58 41 82 00 10 */ beq lbl_80309008
/* 80308FFC 00304C5C 63 9C 00 04 */ ori r28, r28, 4
/* 80309000 00304C60 B3 85 00 00 */ sth r28, 0(r5)
/* 80309004 00304C64 48 00 00 0C */ b lbl_80309010
lbl_80309008:
/* 80309008 00304C68 57 9C 07 B8 */ rlwinm r28, r28, 0, 0x1e, 0x1c
/* 8030900C 00304C6C B3 85 00 00 */ sth r28, 0(r5)
lbl_80309010:
/* 80309010 00304C70 55 9A 48 2C */ slwi r26, r12, 9
/* 80309014 00304C74 7D 99 63 78 */ mr r25, r12
/* 80309018 00304C78 3B A0 00 00 */ li r29, 0
/* 8030901C 00304C7C 3B C0 FF FF */ li r30, -1
/* 80309020 00304C80 7F 66 D2 14 */ add r27, r6, r26
/* 80309024 00304C84 48 00 00 80 */ b lbl_803090A4
lbl_80309028:
/* 80309028 00304C88 7F 8C C8 50 */ subf r28, r12, r25
/* 8030902C 00304C8C 7F F9 62 14 */ add r31, r25, r12
/* 80309030 00304C90 1F 9C 00 28 */ mulli r28, r28, 0x28
/* 80309034 00304C94 2C 09 00 00 */ cmpwi r9, 0
/* 80309038 00304C98 1F FF 00 28 */ mulli r31, r31, 0x28
/* 8030903C 00304C9C 7F 85 E2 14 */ add r28, r5, r28
/* 80309040 00304CA0 93 83 00 24 */ stw r28, 0x24(r3)
/* 80309044 00304CA4 7F E5 FA 14 */ add r31, r5, r31
/* 80309048 00304CA8 93 E3 00 20 */ stw r31, 0x20(r3)
/* 8030904C 00304CAC 93 63 00 04 */ stw r27, 4(r3)
/* 80309050 00304CB0 93 63 00 08 */ stw r27, 8(r3)
/* 80309054 00304CB4 93 A3 00 0C */ stw r29, 0xc(r3)
/* 80309058 00304CB8 93 A3 00 10 */ stw r29, 0x10(r3)
/* 8030905C 00304CBC 91 03 00 14 */ stw r8, 0x14(r3)
/* 80309060 00304CC0 93 C3 00 18 */ stw r30, 0x18(r3)
/* 80309064 00304CC4 B3 A3 00 02 */ sth r29, 2(r3)
/* 80309068 00304CC8 93 A3 00 1C */ stw r29, 0x1c(r3)
/* 8030906C 00304CCC A3 E3 00 00 */ lhz r31, 0(r3)
/* 80309070 00304CD0 57 FF 04 3A */ rlwinm r31, r31, 0, 0x10, 0x1d
/* 80309074 00304CD4 B3 E3 00 00 */ sth r31, 0(r3)
/* 80309078 00304CD8 41 82 00 14 */ beq lbl_8030908C
/* 8030907C 00304CDC A3 E3 00 00 */ lhz r31, 0(r3)
/* 80309080 00304CE0 63 FF 00 04 */ ori r31, r31, 4
/* 80309084 00304CE4 B3 E3 00 00 */ sth r31, 0(r3)
/* 80309088 00304CE8 48 00 00 10 */ b lbl_80309098
lbl_8030908C:
/* 8030908C 00304CEC A3 E3 00 00 */ lhz r31, 0(r3)
/* 80309090 00304CF0 57 FF 07 B8 */ rlwinm r31, r31, 0, 0x1e, 0x1c
/* 80309094 00304CF4 B3 E3 00 00 */ sth r31, 0(r3)
lbl_80309098:
/* 80309098 00304CF8 7C 63 02 14 */ add r3, r3, r0
/* 8030909C 00304CFC 7F 7B D2 14 */ add r27, r27, r26
/* 803090A0 00304D00 7F 39 62 14 */ add r25, r25, r12
lbl_803090A4:
/* 803090A4 00304D04 7C 19 50 40 */ cmplw r25, r10
/* 803090A8 00304D08 41 80 FF 80 */ blt lbl_80309028
/* 803090AC 00304D0C 55 80 08 3C */ slwi r0, r12, 1
/* 803090B0 00304D10 7D 4B 38 50 */ subf r10, r11, r7
/* 803090B4 00304D14 7C 00 00 D0 */ neg r0, r0
/* 803090B8 00304D18 2C 09 00 00 */ cmpwi r9, 0
/* 803090BC 00304D1C 7C 0B 00 50 */ subf r0, r11, r0
/* 803090C0 00304D20 7D 6C 50 50 */ subf r11, r12, r10
/* 803090C4 00304D24 7D 40 3A 14 */ add r10, r0, r7
/* 803090C8 00304D28 38 60 00 00 */ li r3, 0
/* 803090CC 00304D2C 55 67 48 2C */ slwi r7, r11, 9
/* 803090D0 00304D30 38 00 FF FF */ li r0, -1
/* 803090D4 00304D34 7D 26 3A 14 */ add r9, r6, r7
/* 803090D8 00304D38 1D 8B 00 28 */ mulli r12, r11, 0x28
/* 803090DC 00304D3C 1C EA 00 28 */ mulli r7, r10, 0x28
/* 803090E0 00304D40 7C C5 62 14 */ add r6, r5, r12
/* 803090E4 00304D44 7C E5 3A 14 */ add r7, r5, r7
/* 803090E8 00304D48 90 E6 00 24 */ stw r7, 0x24(r6)
/* 803090EC 00304D4C 90 A6 00 20 */ stw r5, 0x20(r6)
/* 803090F0 00304D50 91 26 00 04 */ stw r9, 4(r6)
/* 803090F4 00304D54 91 26 00 08 */ stw r9, 8(r6)
/* 803090F8 00304D58 90 66 00 0C */ stw r3, 0xc(r6)
/* 803090FC 00304D5C 90 66 00 10 */ stw r3, 0x10(r6)
/* 80309100 00304D60 91 06 00 14 */ stw r8, 0x14(r6)
/* 80309104 00304D64 90 06 00 18 */ stw r0, 0x18(r6)
/* 80309108 00304D68 B0 66 00 02 */ sth r3, 2(r6)
/* 8030910C 00304D6C 90 66 00 1C */ stw r3, 0x1c(r6)
/* 80309110 00304D70 A0 04 00 00 */ lhz r0, 0(r4)
/* 80309114 00304D74 54 00 04 3A */ rlwinm r0, r0, 0, 0x10, 0x1d
/* 80309118 00304D78 B0 04 00 00 */ sth r0, 0(r4)
/* 8030911C 00304D7C 41 82 00 14 */ beq lbl_80309130
/* 80309120 00304D80 A0 04 00 00 */ lhz r0, 0(r4)
/* 80309124 00304D84 60 00 00 04 */ ori r0, r0, 4
/* 80309128 00304D88 B0 04 00 00 */ sth r0, 0(r4)
/* 8030912C 00304D8C 48 00 00 10 */ b lbl_8030913C
lbl_80309130:
/* 80309130 00304D90 A0 04 00 00 */ lhz r0, 0(r4)
/* 80309134 00304D94 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
/* 80309138 00304D98 B0 04 00 00 */ sth r0, 0(r4)
lbl_8030913C:
/* 8030913C 00304D9C 38 60 00 00 */ li r3, 0
lbl_80309140:
/* 80309140 00304DA0 39 61 00 30 */ addi r11, r1, 0x30
/* 80309144 00304DA4 4B EB E0 29 */ bl _restgpr_25
/* 80309148 00304DA8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8030914C 00304DAC 7C 08 03 A6 */ mtlr r0
/* 80309150 00304DB0 38 21 00 30 */ addi r1, r1, 0x30
/* 80309154 00304DB4 4E 80 00 20 */ blr
.global VFiPFCACHE_SearchForPage
VFiPFCACHE_SearchForPage:
/* 80309158 00304DB8 3C 05 00 01 */ addis r0, r5, 1
/* 8030915C 00304DBC 28 00 FF FF */ cmplwi r0, 0xffff
/* 80309160 00304DC0 40 82 00 0C */ bne lbl_8030916C
/* 80309164 00304DC4 38 60 00 00 */ li r3, 0
/* 80309168 00304DC8 4E 80 00 20 */ blr
lbl_8030916C:
/* 8030916C 00304DCC A0 04 00 00 */ lhz r0, 0(r4)
/* 80309170 00304DD0 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80309174 00304DD4 40 82 00 0C */ bne lbl_80309180
/* 80309178 00304DD8 38 60 00 00 */ li r3, 0
/* 8030917C 00304DDC 4E 80 00 20 */ blr
lbl_80309180:
/* 80309180 00304DE0 80 E4 00 18 */ lwz r7, 0x18(r4)
/* 80309184 00304DE4 7C 07 28 40 */ cmplw r7, r5
/* 80309188 00304DE8 41 81 00 38 */ bgt lbl_803091C0
/* 8030918C 00304DEC 80 04 00 14 */ lwz r0, 0x14(r4)
/* 80309190 00304DF0 7C C7 02 14 */ add r6, r7, r0
/* 80309194 00304DF4 38 06 FF FF */ addi r0, r6, -1
/* 80309198 00304DF8 7C 00 28 40 */ cmplw r0, r5
/* 8030919C 00304DFC 41 80 00 24 */ blt lbl_803091C0
/* 803091A0 00304E00 88 03 00 20 */ lbz r0, 0x20(r3)
/* 803091A4 00304E04 7C A7 28 50 */ subf r5, r7, r5
/* 803091A8 00304E08 80 C4 00 04 */ lwz r6, 4(r4)
/* 803091AC 00304E0C 7C 83 23 78 */ mr r3, r4
/* 803091B0 00304E10 7C A0 00 30 */ slw r0, r5, r0
/* 803091B4 00304E14 7C 06 02 14 */ add r0, r6, r0
/* 803091B8 00304E18 90 04 00 08 */ stw r0, 8(r4)
/* 803091BC 00304E1C 4E 80 00 20 */ blr
lbl_803091C0:
/* 803091C0 00304E20 81 04 00 20 */ lwz r8, 0x20(r4)
/* 803091C4 00304E24 48 00 00 5C */ b lbl_80309220
lbl_803091C8:
/* 803091C8 00304E28 A0 08 00 00 */ lhz r0, 0(r8)
/* 803091CC 00304E2C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 803091D0 00304E30 40 82 00 0C */ bne lbl_803091DC
/* 803091D4 00304E34 38 60 00 00 */ li r3, 0
/* 803091D8 00304E38 4E 80 00 20 */ blr
lbl_803091DC:
/* 803091DC 00304E3C 80 E8 00 18 */ lwz r7, 0x18(r8)
/* 803091E0 00304E40 7C 07 28 40 */ cmplw r7, r5
/* 803091E4 00304E44 41 81 00 38 */ bgt lbl_8030921C
/* 803091E8 00304E48 80 08 00 14 */ lwz r0, 0x14(r8)
/* 803091EC 00304E4C 7C C7 02 14 */ add r6, r7, r0
/* 803091F0 00304E50 38 06 FF FF */ addi r0, r6, -1
/* 803091F4 00304E54 7C 00 28 40 */ cmplw r0, r5
/* 803091F8 00304E58 41 80 00 24 */ blt lbl_8030921C
/* 803091FC 00304E5C 88 03 00 20 */ lbz r0, 0x20(r3)
/* 80309200 00304E60 7C 87 28 50 */ subf r4, r7, r5
/* 80309204 00304E64 80 A8 00 04 */ lwz r5, 4(r8)
/* 80309208 00304E68 7D 03 43 78 */ mr r3, r8
/* 8030920C 00304E6C 7C 80 00 30 */ slw r0, r4, r0
/* 80309210 00304E70 7C 05 02 14 */ add r0, r5, r0
/* 80309214 00304E74 90 08 00 08 */ stw r0, 8(r8)
/* 80309218 00304E78 4E 80 00 20 */ blr
lbl_8030921C:
/* 8030921C 00304E7C 81 08 00 20 */ lwz r8, 0x20(r8)
lbl_80309220:
/* 80309220 00304E80 7C 08 20 40 */ cmplw r8, r4
/* 80309224 00304E84 40 82 FF A4 */ bne lbl_803091C8
/* 80309228 00304E88 38 60 00 00 */ li r3, 0
/* 8030922C 00304E8C 4E 80 00 20 */ blr
.global VFiPFCACHE_SearchForFreePage
VFiPFCACHE_SearchForFreePage:
/* 80309230 00304E90 80 C3 00 24 */ lwz r6, 0x24(r3)
/* 80309234 00304E94 48 00 00 3C */ b lbl_80309270
lbl_80309238:
/* 80309238 00304E98 A0 06 00 00 */ lhz r0, 0(r6)
/* 8030923C 00304E9C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80309240 00304EA0 40 82 00 10 */ bne lbl_80309250
/* 80309244 00304EA4 90 C4 00 00 */ stw r6, 0(r4)
/* 80309248 00304EA8 38 60 00 01 */ li r3, 1
/* 8030924C 00304EAC 4E 80 00 20 */ blr
lbl_80309250:
/* 80309250 00304EB0 80 A6 00 18 */ lwz r5, 0x18(r6)
/* 80309254 00304EB4 3C 05 00 01 */ addis r0, r5, 1
/* 80309258 00304EB8 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030925C 00304EBC 41 82 00 10 */ beq lbl_8030926C
/* 80309260 00304EC0 90 C4 00 00 */ stw r6, 0(r4)
/* 80309264 00304EC4 38 60 00 00 */ li r3, 0
/* 80309268 00304EC8 4E 80 00 20 */ blr
lbl_8030926C:
/* 8030926C 00304ECC 80 C6 00 24 */ lwz r6, 0x24(r6)
lbl_80309270:
/* 80309270 00304ED0 7C 06 18 40 */ cmplw r6, r3
/* 80309274 00304ED4 40 82 FF C4 */ bne lbl_80309238
/* 80309278 00304ED8 A0 06 00 00 */ lhz r0, 0(r6)
/* 8030927C 00304EDC 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80309280 00304EE0 40 82 00 10 */ bne lbl_80309290
/* 80309284 00304EE4 90 C4 00 00 */ stw r6, 0(r4)
/* 80309288 00304EE8 38 60 00 01 */ li r3, 1
/* 8030928C 00304EEC 4E 80 00 20 */ blr
lbl_80309290:
/* 80309290 00304EF0 80 66 00 18 */ lwz r3, 0x18(r6)
/* 80309294 00304EF4 3C 03 00 01 */ addis r0, r3, 1
/* 80309298 00304EF8 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030929C 00304EFC 41 82 00 10 */ beq lbl_803092AC
/* 803092A0 00304F00 90 C4 00 00 */ stw r6, 0(r4)
/* 803092A4 00304F04 38 60 00 00 */ li r3, 0
/* 803092A8 00304F08 4E 80 00 20 */ blr
lbl_803092AC:
/* 803092AC 00304F0C 38 00 00 00 */ li r0, 0
/* 803092B0 00304F10 38 60 00 00 */ li r3, 0
/* 803092B4 00304F14 90 04 00 00 */ stw r0, 0(r4)
/* 803092B8 00304F18 4E 80 00 20 */ blr
.global VFiPFCACHE_FlushPageIfNeeded
VFiPFCACHE_FlushPageIfNeeded:
/* 803092BC 00304F1C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803092C0 00304F20 7C 08 02 A6 */ mflr r0
/* 803092C4 00304F24 90 01 00 34 */ stw r0, 0x34(r1)
/* 803092C8 00304F28 39 61 00 30 */ addi r11, r1, 0x30
/* 803092CC 00304F2C 4B EB DE 5D */ bl _savegpr_27
/* 803092D0 00304F30 2C 04 00 00 */ cmpwi r4, 0
/* 803092D4 00304F34 7C 7E 1B 78 */ mr r30, r3
/* 803092D8 00304F38 7C 9F 23 78 */ mr r31, r4
/* 803092DC 00304F3C 41 82 00 C4 */ beq lbl_803093A0
/* 803092E0 00304F40 A0 04 00 00 */ lhz r0, 0(r4)
/* 803092E4 00304F44 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 803092E8 00304F48 41 82 00 B8 */ beq lbl_803093A0
/* 803092EC 00304F4C 81 04 00 18 */ lwz r8, 0x18(r4)
/* 803092F0 00304F50 3C 08 00 01 */ addis r0, r8, 1
/* 803092F4 00304F54 28 00 FF FF */ cmplwi r0, 0xffff
/* 803092F8 00304F58 41 82 00 A8 */ beq lbl_803093A0
/* 803092FC 00304F5C 83 A4 00 0C */ lwz r29, 0xc(r4)
/* 80309300 00304F60 38 E1 00 08 */ addi r7, r1, 8
/* 80309304 00304F64 89 23 00 20 */ lbz r9, 0x20(r3)
/* 80309308 00304F68 80 C4 00 04 */ lwz r6, 4(r4)
/* 8030930C 00304F6C 80 04 00 10 */ lwz r0, 0x10(r4)
/* 80309310 00304F70 7F A5 4C 30 */ srw r5, r29, r9
/* 80309314 00304F74 7C C6 E8 50 */ subf r6, r6, r29
/* 80309318 00304F78 7F A4 EB 78 */ mr r4, r29
/* 8030931C 00304F7C 7C 00 4C 30 */ srw r0, r0, r9
/* 80309320 00304F80 7C C6 4C 30 */ srw r6, r6, r9
/* 80309324 00304F84 7C A5 00 50 */ subf r5, r5, r0
/* 80309328 00304F88 7F 68 32 14 */ add r27, r8, r6
/* 8030932C 00304F8C 3B 85 00 01 */ addi r28, r5, 1
/* 80309330 00304F90 7F 65 DB 78 */ mr r5, r27
/* 80309334 00304F94 7F 86 E3 78 */ mr r6, r28
/* 80309338 00304F98 4B FF CF 09 */ bl VFiPFDRV_lwrite
/* 8030933C 00304F9C 2C 03 00 00 */ cmpwi r3, 0
/* 80309340 00304FA0 41 82 00 08 */ beq lbl_80309348
/* 80309344 00304FA4 48 00 00 60 */ b lbl_803093A4
lbl_80309348:
/* 80309348 00304FA8 80 01 00 08 */ lwz r0, 8(r1)
/* 8030934C 00304FAC 7C 00 E0 40 */ cmplw r0, r28
/* 80309350 00304FB0 41 82 00 0C */ beq lbl_8030935C
/* 80309354 00304FB4 38 60 00 11 */ li r3, 0x11
/* 80309358 00304FB8 48 00 00 4C */ b lbl_803093A4
lbl_8030935C:
/* 8030935C 00304FBC A0 1F 00 00 */ lhz r0, 0(r31)
/* 80309360 00304FC0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 80309364 00304FC4 41 82 00 24 */ beq lbl_80309388
/* 80309368 00304FC8 7F C3 F3 78 */ mr r3, r30
/* 8030936C 00304FCC 7F A4 EB 78 */ mr r4, r29
/* 80309370 00304FD0 7F 65 DB 78 */ mr r5, r27
/* 80309374 00304FD4 7F 86 E3 78 */ mr r6, r28
/* 80309378 00304FD8 48 00 6B 2D */ bl VFiPFFAT_UpdateAlternateFATEntry
/* 8030937C 00304FDC 2C 03 00 00 */ cmpwi r3, 0
/* 80309380 00304FE0 41 82 00 08 */ beq lbl_80309388
/* 80309384 00304FE4 48 00 00 20 */ b lbl_803093A4
lbl_80309388:
/* 80309388 00304FE8 A0 1F 00 00 */ lhz r0, 0(r31)
/* 8030938C 00304FEC 38 60 00 00 */ li r3, 0
/* 80309390 00304FF0 90 7F 00 0C */ stw r3, 0xc(r31)
/* 80309394 00304FF4 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80309398 00304FF8 90 7F 00 10 */ stw r3, 0x10(r31)
/* 8030939C 00304FFC B0 1F 00 00 */ sth r0, 0(r31)
lbl_803093A0:
/* 803093A0 00305000 38 60 00 00 */ li r3, 0
lbl_803093A4:
/* 803093A4 00305004 39 61 00 30 */ addi r11, r1, 0x30
/* 803093A8 00305008 4B EB DD CD */ bl _restgpr_27
/* 803093AC 0030500C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803093B0 00305010 7C 08 03 A6 */ mtlr r0
/* 803093B4 00305014 38 21 00 30 */ addi r1, r1, 0x30
/* 803093B8 00305018 4E 80 00 20 */ blr
.global VFiPFCACHE_DoAllocatePage
VFiPFCACHE_DoAllocatePage:
/* 803093BC 0030501C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803093C0 00305020 7C 08 02 A6 */ mflr r0
/* 803093C4 00305024 90 01 00 34 */ stw r0, 0x34(r1)
/* 803093C8 00305028 39 61 00 30 */ addi r11, r1, 0x30
/* 803093CC 0030502C 4B EB DD 55 */ bl _savegpr_25
/* 803093D0 00305030 7C 9D 23 78 */ mr r29, r4
/* 803093D4 00305034 80 84 00 00 */ lwz r4, 0(r4)
/* 803093D8 00305038 7C 7C 1B 78 */ mr r28, r3
/* 803093DC 0030503C 7C BE 2B 78 */ mr r30, r5
/* 803093E0 00305040 7C DF 33 78 */ mr r31, r6
/* 803093E4 00305044 7C F9 3B 78 */ mr r25, r7
/* 803093E8 00305048 3B 40 00 00 */ li r26, 0
/* 803093EC 0030504C 4B FF FD 6D */ bl VFiPFCACHE_SearchForPage
/* 803093F0 00305050 2C 03 00 00 */ cmpwi r3, 0
/* 803093F4 00305054 90 7F 00 00 */ stw r3, 0(r31)
/* 803093F8 00305058 41 82 00 10 */ beq lbl_80309408
/* 803093FC 0030505C 38 00 00 01 */ li r0, 1
/* 80309400 00305060 90 19 00 00 */ stw r0, 0(r25)
/* 80309404 00305064 48 00 01 B4 */ b lbl_803095B8
lbl_80309408:
/* 80309408 00305068 3B 60 00 00 */ li r27, 0
/* 8030940C 0030506C 7F E4 FB 78 */ mr r4, r31
/* 80309410 00305070 93 79 00 00 */ stw r27, 0(r25)
/* 80309414 00305074 80 7D 00 00 */ lwz r3, 0(r29)
/* 80309418 00305078 4B FF FE 19 */ bl VFiPFCACHE_SearchForFreePage
/* 8030941C 0030507C 2C 03 00 00 */ cmpwi r3, 0
/* 80309420 00305080 40 82 00 94 */ bne lbl_803094B4
/* 80309424 00305084 80 9F 00 00 */ lwz r4, 0(r31)
/* 80309428 00305088 2C 04 00 00 */ cmpwi r4, 0
/* 8030942C 0030508C 40 82 00 10 */ bne lbl_8030943C
/* 80309430 00305090 93 7F 00 00 */ stw r27, 0(r31)
/* 80309434 00305094 38 60 00 1E */ li r3, 0x1e
/* 80309438 00305098 48 00 01 E4 */ b lbl_8030961C
lbl_8030943C:
/* 8030943C 0030509C 41 82 00 24 */ beq lbl_80309460
/* 80309440 003050A0 A0 04 00 00 */ lhz r0, 0(r4)
/* 80309444 003050A4 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80309448 003050A8 41 82 00 18 */ beq lbl_80309460
/* 8030944C 003050AC 80 64 00 18 */ lwz r3, 0x18(r4)
/* 80309450 003050B0 3C 03 00 01 */ addis r0, r3, 1
/* 80309454 003050B4 28 00 FF FF */ cmplwi r0, 0xffff
/* 80309458 003050B8 41 82 00 08 */ beq lbl_80309460
/* 8030945C 003050BC 3B 40 00 01 */ li r26, 1
lbl_80309460:
/* 80309460 003050C0 7F 83 E3 78 */ mr r3, r28
/* 80309464 003050C4 4B FF FE 59 */ bl VFiPFCACHE_FlushPageIfNeeded
/* 80309468 003050C8 2C 03 00 00 */ cmpwi r3, 0
/* 8030946C 003050CC 41 82 00 10 */ beq lbl_8030947C
/* 80309470 003050D0 38 00 00 00 */ li r0, 0
/* 80309474 003050D4 90 1F 00 00 */ stw r0, 0(r31)
/* 80309478 003050D8 48 00 01 A4 */ b lbl_8030961C
lbl_8030947C:
/* 8030947C 003050DC 80 7F 00 00 */ lwz r3, 0(r31)
/* 80309480 003050E0 38 00 00 00 */ li r0, 0
/* 80309484 003050E4 2C 1A 00 00 */ cmpwi r26, 0
/* 80309488 003050E8 90 03 00 0C */ stw r0, 0xc(r3)
/* 8030948C 003050EC 80 7F 00 00 */ lwz r3, 0(r31)
/* 80309490 003050F0 90 03 00 10 */ stw r0, 0x10(r3)
/* 80309494 003050F4 41 82 00 20 */ beq lbl_803094B4
/* 80309498 003050F8 7F 83 E3 78 */ mr r3, r28
/* 8030949C 003050FC 38 80 00 01 */ li r4, 1
/* 803094A0 00305100 48 01 29 01 */ bl dCommon_FlushFromVol
/* 803094A4 00305104 2C 03 00 00 */ cmpwi r3, 0
/* 803094A8 00305108 41 82 00 0C */ beq lbl_803094B4
/* 803094AC 0030510C 38 60 00 11 */ li r3, 0x11
/* 803094B0 00305110 48 00 01 6C */ b lbl_8030961C
lbl_803094B4:
/* 803094B4 00305114 3C 1E 00 01 */ addis r0, r30, 1
/* 803094B8 00305118 28 00 FF FF */ cmplwi r0, 0xffff
/* 803094BC 0030511C 41 82 00 D8 */ beq lbl_80309594
/* 803094C0 00305120 80 9F 00 00 */ lwz r4, 0(r31)
/* 803094C4 00305124 A0 04 00 00 */ lhz r0, 0(r4)
/* 803094C8 00305128 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 803094CC 0030512C 41 82 00 48 */ beq lbl_80309514
/* 803094D0 00305130 80 64 00 14 */ lwz r3, 0x14(r4)
/* 803094D4 00305134 7C 1E 1B 96 */ divwu r0, r30, r3
/* 803094D8 00305138 7C 00 19 D6 */ mullw r0, r0, r3
/* 803094DC 0030513C 7C 00 F0 50 */ subf r0, r0, r30
/* 803094E0 00305140 7C 00 F0 50 */ subf r0, r0, r30
/* 803094E4 00305144 90 04 00 18 */ stw r0, 0x18(r4)
/* 803094E8 00305148 80 DF 00 00 */ lwz r6, 0(r31)
/* 803094EC 0030514C 88 1C 00 20 */ lbz r0, 0x20(r28)
/* 803094F0 00305150 80 86 00 14 */ lwz r4, 0x14(r6)
/* 803094F4 00305154 80 A6 00 04 */ lwz r5, 4(r6)
/* 803094F8 00305158 7C 7E 23 96 */ divwu r3, r30, r4
/* 803094FC 0030515C 7C 63 21 D6 */ mullw r3, r3, r4
/* 80309500 00305160 7C 63 F0 50 */ subf r3, r3, r30
/* 80309504 00305164 7C 60 00 30 */ slw r0, r3, r0
/* 80309508 00305168 7C 05 02 14 */ add r0, r5, r0
/* 8030950C 0030516C 90 06 00 08 */ stw r0, 8(r6)
/* 80309510 00305170 48 00 00 98 */ b lbl_803095A8
lbl_80309514:
/* 80309514 00305174 80 1C 00 1C */ lwz r0, 0x1c(r28)
/* 80309518 00305178 2C 00 00 02 */ cmpwi r0, 2
/* 8030951C 0030517C 40 82 00 30 */ bne lbl_8030954C
/* 80309520 00305180 80 1C 00 30 */ lwz r0, 0x30(r28)
/* 80309524 00305184 7C 1E 00 40 */ cmplw r30, r0
/* 80309528 00305188 41 80 00 10 */ blt lbl_80309538
/* 8030952C 0030518C 80 1C 00 08 */ lwz r0, 8(r28)
/* 80309530 00305190 7C 1E 00 40 */ cmplw r30, r0
/* 80309534 00305194 41 80 00 18 */ blt lbl_8030954C
lbl_80309538:
/* 80309538 00305198 A0 1C 00 14 */ lhz r0, 0x14(r28)
/* 8030953C 0030519C 7C 1E 00 40 */ cmplw r30, r0
/* 80309540 003051A0 40 82 00 0C */ bne lbl_8030954C
/* 80309544 003051A4 38 00 00 01 */ li r0, 1
/* 80309548 003051A8 90 04 00 14 */ stw r0, 0x14(r4)
lbl_8030954C:
/* 8030954C 003051AC 80 9F 00 00 */ lwz r4, 0(r31)
/* 80309550 003051B0 80 64 00 14 */ lwz r3, 0x14(r4)
/* 80309554 003051B4 7C 1E 1B 96 */ divwu r0, r30, r3
/* 80309558 003051B8 7C 00 19 D6 */ mullw r0, r0, r3
/* 8030955C 003051BC 7C 00 F0 50 */ subf r0, r0, r30
/* 80309560 003051C0 7C 00 F0 50 */ subf r0, r0, r30
/* 80309564 003051C4 90 04 00 18 */ stw r0, 0x18(r4)
/* 80309568 003051C8 80 DF 00 00 */ lwz r6, 0(r31)
/* 8030956C 003051CC 88 1C 00 20 */ lbz r0, 0x20(r28)
/* 80309570 003051D0 80 86 00 14 */ lwz r4, 0x14(r6)
/* 80309574 003051D4 80 A6 00 04 */ lwz r5, 4(r6)
/* 80309578 003051D8 7C 7E 23 96 */ divwu r3, r30, r4
/* 8030957C 003051DC 7C 63 21 D6 */ mullw r3, r3, r4
/* 80309580 003051E0 7C 63 F0 50 */ subf r3, r3, r30
/* 80309584 003051E4 7C 60 00 30 */ slw r0, r3, r0
/* 80309588 003051E8 7C 05 02 14 */ add r0, r5, r0
/* 8030958C 003051EC 90 06 00 08 */ stw r0, 8(r6)
/* 80309590 003051F0 48 00 00 18 */ b lbl_803095A8
lbl_80309594:
/* 80309594 003051F4 80 7F 00 00 */ lwz r3, 0(r31)
/* 80309598 003051F8 93 C3 00 18 */ stw r30, 0x18(r3)
/* 8030959C 003051FC 80 7F 00 00 */ lwz r3, 0(r31)
/* 803095A0 00305200 80 03 00 04 */ lwz r0, 4(r3)
/* 803095A4 00305204 90 03 00 08 */ stw r0, 8(r3)
lbl_803095A8:
/* 803095A8 00305208 80 7F 00 00 */ lwz r3, 0(r31)
/* 803095AC 0030520C A0 03 00 00 */ lhz r0, 0(r3)
/* 803095B0 00305210 60 00 00 01 */ ori r0, r0, 1
/* 803095B4 00305214 B0 03 00 00 */ sth r0, 0(r3)
lbl_803095B8:
/* 803095B8 00305218 80 BF 00 00 */ lwz r5, 0(r31)
/* 803095BC 0030521C 80 7D 00 00 */ lwz r3, 0(r29)
/* 803095C0 00305220 7C 05 18 40 */ cmplw r5, r3
/* 803095C4 00305224 41 82 00 54 */ beq lbl_80309618
/* 803095C8 00305228 80 03 00 24 */ lwz r0, 0x24(r3)
/* 803095CC 0030522C 7C 05 00 40 */ cmplw r5, r0
/* 803095D0 00305230 40 82 00 0C */ bne lbl_803095DC
/* 803095D4 00305234 90 BD 00 00 */ stw r5, 0(r29)
/* 803095D8 00305238 48 00 00 40 */ b lbl_80309618
lbl_803095DC:
/* 803095DC 0030523C 80 05 00 20 */ lwz r0, 0x20(r5)
/* 803095E0 00305240 80 65 00 24 */ lwz r3, 0x24(r5)
/* 803095E4 00305244 90 03 00 20 */ stw r0, 0x20(r3)
/* 803095E8 00305248 80 05 00 24 */ lwz r0, 0x24(r5)
/* 803095EC 0030524C 80 65 00 20 */ lwz r3, 0x20(r5)
/* 803095F0 00305250 90 03 00 24 */ stw r0, 0x24(r3)
/* 803095F4 00305254 80 9D 00 00 */ lwz r4, 0(r29)
/* 803095F8 00305258 90 85 00 20 */ stw r4, 0x20(r5)
/* 803095FC 0030525C 80 7D 00 00 */ lwz r3, 0(r29)
/* 80309600 00305260 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80309604 00305264 90 05 00 24 */ stw r0, 0x24(r5)
/* 80309608 00305268 90 A4 00 24 */ stw r5, 0x24(r4)
/* 8030960C 0030526C 80 65 00 24 */ lwz r3, 0x24(r5)
/* 80309610 00305270 90 A3 00 20 */ stw r5, 0x20(r3)
/* 80309614 00305274 90 BD 00 00 */ stw r5, 0(r29)
lbl_80309618:
/* 80309618 00305278 38 60 00 00 */ li r3, 0
lbl_8030961C:
/* 8030961C 0030527C 39 61 00 30 */ addi r11, r1, 0x30
/* 80309620 00305280 4B EB DB 4D */ bl _restgpr_25
/* 80309624 00305284 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80309628 00305288 7C 08 03 A6 */ mtlr r0
/* 8030962C 0030528C 38 21 00 30 */ addi r1, r1, 0x30
/* 80309630 00305290 4E 80 00 20 */ blr
.global VFiPFCACHE_DoReadPage
VFiPFCACHE_DoReadPage:
/* 80309634 00305294 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80309638 00305298 7C 08 02 A6 */ mflr r0
/* 8030963C 0030529C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80309640 003052A0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80309644 003052A4 7C 9F 23 78 */ mr r31, r4
/* 80309648 003052A8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8030964C 003052AC 7C FE 3B 78 */ mr r30, r7
/* 80309650 003052B0 38 E1 00 08 */ addi r7, r1, 8
/* 80309654 003052B4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80309658 003052B8 7C DD 33 78 */ mr r29, r6
/* 8030965C 003052BC 93 81 00 10 */ stw r28, 0x10(r1)
/* 80309660 003052C0 7C 7C 1B 78 */ mr r28, r3
/* 80309664 003052C4 4B FF FD 59 */ bl VFiPFCACHE_DoAllocatePage
/* 80309668 003052C8 2C 03 00 00 */ cmpwi r3, 0
/* 8030966C 003052CC 41 82 00 08 */ beq lbl_80309674
/* 80309670 003052D0 48 00 01 B0 */ b lbl_80309820
lbl_80309674:
/* 80309674 003052D4 80 01 00 08 */ lwz r0, 8(r1)
/* 80309678 003052D8 2C 00 00 00 */ cmpwi r0, 0
/* 8030967C 003052DC 40 82 01 A0 */ bne lbl_8030981C
/* 80309680 003052E0 80 DD 00 00 */ lwz r6, 0(r29)
/* 80309684 003052E4 7F 83 E3 78 */ mr r3, r28
/* 80309688 003052E8 38 E1 00 0C */ addi r7, r1, 0xc
/* 8030968C 003052EC 80 86 00 04 */ lwz r4, 4(r6)
/* 80309690 003052F0 80 A6 00 18 */ lwz r5, 0x18(r6)
/* 80309694 003052F4 80 C6 00 14 */ lwz r6, 0x14(r6)
/* 80309698 003052F8 4B FF CB 25 */ bl VFiPFDRV_lread
/* 8030969C 003052FC 2C 03 00 00 */ cmpwi r3, 0
/* 803096A0 00305300 41 82 00 8C */ beq lbl_8030972C
/* 803096A4 00305304 80 DD 00 00 */ lwz r6, 0(r29)
/* 803096A8 00305308 38 80 00 00 */ li r4, 0
/* 803096AC 0030530C 38 00 FF FF */ li r0, -1
/* 803096B0 00305310 A0 A6 00 00 */ lhz r5, 0(r6)
/* 803096B4 00305314 54 A5 04 3A */ rlwinm r5, r5, 0, 0x10, 0x1d
/* 803096B8 00305318 B0 A6 00 00 */ sth r5, 0(r6)
/* 803096BC 0030531C 90 86 00 0C */ stw r4, 0xc(r6)
/* 803096C0 00305320 90 86 00 10 */ stw r4, 0x10(r6)
/* 803096C4 00305324 90 06 00 18 */ stw r0, 0x18(r6)
/* 803096C8 00305328 90 86 00 1C */ stw r4, 0x1c(r6)
/* 803096CC 0030532C 80 9F 00 00 */ lwz r4, 0(r31)
/* 803096D0 00305330 7C 06 20 40 */ cmplw r6, r4
/* 803096D4 00305334 40 82 00 10 */ bne lbl_803096E4
/* 803096D8 00305338 80 06 00 20 */ lwz r0, 0x20(r6)
/* 803096DC 0030533C 90 1F 00 00 */ stw r0, 0(r31)
/* 803096E0 00305340 48 00 01 40 */ b lbl_80309820
lbl_803096E4:
/* 803096E4 00305344 80 04 00 24 */ lwz r0, 0x24(r4)
/* 803096E8 00305348 7C 06 00 40 */ cmplw r6, r0
/* 803096EC 0030534C 41 82 01 34 */ beq lbl_80309820
/* 803096F0 00305350 80 06 00 20 */ lwz r0, 0x20(r6)
/* 803096F4 00305354 80 86 00 24 */ lwz r4, 0x24(r6)
/* 803096F8 00305358 90 04 00 20 */ stw r0, 0x20(r4)
/* 803096FC 0030535C 80 06 00 24 */ lwz r0, 0x24(r6)
/* 80309700 00305360 80 86 00 20 */ lwz r4, 0x20(r6)
/* 80309704 00305364 90 04 00 24 */ stw r0, 0x24(r4)
/* 80309708 00305368 80 BF 00 00 */ lwz r5, 0(r31)
/* 8030970C 0030536C 90 A6 00 20 */ stw r5, 0x20(r6)
/* 80309710 00305370 80 9F 00 00 */ lwz r4, 0(r31)
/* 80309714 00305374 80 04 00 24 */ lwz r0, 0x24(r4)
/* 80309718 00305378 90 06 00 24 */ stw r0, 0x24(r6)
/* 8030971C 0030537C 90 C5 00 24 */ stw r6, 0x24(r5)
/* 80309720 00305380 80 86 00 24 */ lwz r4, 0x24(r6)
/* 80309724 00305384 90 C4 00 20 */ stw r6, 0x20(r4)
/* 80309728 00305388 48 00 00 F8 */ b lbl_80309820
lbl_8030972C:
/* 8030972C 0030538C 80 BD 00 00 */ lwz r5, 0(r29)
/* 80309730 00305390 80 81 00 0C */ lwz r4, 0xc(r1)
/* 80309734 00305394 80 05 00 14 */ lwz r0, 0x14(r5)
/* 80309738 00305398 7C 04 00 40 */ cmplw r4, r0
/* 8030973C 0030539C 41 82 00 A0 */ beq lbl_803097DC
/* 80309740 003053A0 80 05 00 18 */ lwz r0, 0x18(r5)
/* 80309744 003053A4 80 7C 00 08 */ lwz r3, 8(r28)
/* 80309748 003053A8 7C 00 22 14 */ add r0, r0, r4
/* 8030974C 003053AC 7C 03 00 40 */ cmplw r3, r0
/* 80309750 003053B0 41 82 00 8C */ beq lbl_803097DC
/* 80309754 003053B4 A0 85 00 00 */ lhz r4, 0(r5)
/* 80309758 003053B8 38 60 00 00 */ li r3, 0
/* 8030975C 003053BC 38 00 FF FF */ li r0, -1
/* 80309760 003053C0 54 84 04 3A */ rlwinm r4, r4, 0, 0x10, 0x1d
/* 80309764 003053C4 B0 85 00 00 */ sth r4, 0(r5)
/* 80309768 003053C8 90 65 00 0C */ stw r3, 0xc(r5)
/* 8030976C 003053CC 90 65 00 10 */ stw r3, 0x10(r5)
/* 80309770 003053D0 90 05 00 18 */ stw r0, 0x18(r5)
/* 80309774 003053D4 90 65 00 1C */ stw r3, 0x1c(r5)
/* 80309778 003053D8 80 7F 00 00 */ lwz r3, 0(r31)
/* 8030977C 003053DC 7C 05 18 40 */ cmplw r5, r3
/* 80309780 003053E0 40 82 00 10 */ bne lbl_80309790
/* 80309784 003053E4 80 05 00 20 */ lwz r0, 0x20(r5)
/* 80309788 003053E8 90 1F 00 00 */ stw r0, 0(r31)
/* 8030978C 003053EC 48 00 00 48 */ b lbl_803097D4
lbl_80309790:
/* 80309790 003053F0 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80309794 003053F4 7C 05 00 40 */ cmplw r5, r0
/* 80309798 003053F8 41 82 00 3C */ beq lbl_803097D4
/* 8030979C 003053FC 80 05 00 20 */ lwz r0, 0x20(r5)
/* 803097A0 00305400 80 65 00 24 */ lwz r3, 0x24(r5)
/* 803097A4 00305404 90 03 00 20 */ stw r0, 0x20(r3)
/* 803097A8 00305408 80 05 00 24 */ lwz r0, 0x24(r5)
/* 803097AC 0030540C 80 65 00 20 */ lwz r3, 0x20(r5)
/* 803097B0 00305410 90 03 00 24 */ stw r0, 0x24(r3)
/* 803097B4 00305414 80 9F 00 00 */ lwz r4, 0(r31)
/* 803097B8 00305418 90 85 00 20 */ stw r4, 0x20(r5)
/* 803097BC 0030541C 80 7F 00 00 */ lwz r3, 0(r31)
/* 803097C0 00305420 80 03 00 24 */ lwz r0, 0x24(r3)
/* 803097C4 00305424 90 05 00 24 */ stw r0, 0x24(r5)
/* 803097C8 00305428 90 A4 00 24 */ stw r5, 0x24(r4)
/* 803097CC 0030542C 80 65 00 24 */ lwz r3, 0x24(r5)
/* 803097D0 00305430 90 A3 00 20 */ stw r5, 0x20(r3)
lbl_803097D4:
/* 803097D4 00305434 38 60 00 11 */ li r3, 0x11
/* 803097D8 00305438 48 00 00 48 */ b lbl_80309820
lbl_803097DC:
/* 803097DC 0030543C A0 65 00 00 */ lhz r3, 0(r5)
/* 803097E0 00305440 38 00 00 00 */ li r0, 0
/* 803097E4 00305444 2C 1E 00 00 */ cmpwi r30, 0
/* 803097E8 00305448 54 63 07 FA */ rlwinm r3, r3, 0, 0x1f, 0x1d
/* 803097EC 0030544C B0 65 00 00 */ sth r3, 0(r5)
/* 803097F0 00305450 80 7D 00 00 */ lwz r3, 0(r29)
/* 803097F4 00305454 90 03 00 0C */ stw r0, 0xc(r3)
/* 803097F8 00305458 80 7D 00 00 */ lwz r3, 0(r29)
/* 803097FC 0030545C 90 03 00 10 */ stw r0, 0x10(r3)
/* 80309800 00305460 41 82 00 14 */ beq lbl_80309814
/* 80309804 00305464 80 1C 16 08 */ lwz r0, 0x1608(r28)
/* 80309808 00305468 80 7D 00 00 */ lwz r3, 0(r29)
/* 8030980C 0030546C 90 03 00 1C */ stw r0, 0x1c(r3)
/* 80309810 00305470 48 00 00 0C */ b lbl_8030981C
lbl_80309814:
/* 80309814 00305474 80 7D 00 00 */ lwz r3, 0(r29)
/* 80309818 00305478 90 03 00 1C */ stw r0, 0x1c(r3)
lbl_8030981C:
/* 8030981C 0030547C 38 60 00 00 */ li r3, 0
lbl_80309820:
/* 80309820 00305480 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80309824 00305484 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80309828 00305488 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8030982C 0030548C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80309830 00305490 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80309834 00305494 7C 08 03 A6 */ mtlr r0
/* 80309838 00305498 38 21 00 20 */ addi r1, r1, 0x20
/* 8030983C 0030549C 4E 80 00 20 */ blr
.global VFiPFCACHE_DoReadPageAndFlushIfNeeded
VFiPFCACHE_DoReadPageAndFlushIfNeeded:
/* 80309840 003054A0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80309844 003054A4 7C 08 02 A6 */ mflr r0
/* 80309848 003054A8 90 01 00 34 */ stw r0, 0x34(r1)
/* 8030984C 003054AC 39 61 00 30 */ addi r11, r1, 0x30
/* 80309850 003054B0 4B EB D8 D9 */ bl _savegpr_27
/* 80309854 003054B4 7C FB 3B 78 */ mr r27, r7
/* 80309858 003054B8 7C 7D 1B 78 */ mr r29, r3
/* 8030985C 003054BC 7C 9E 23 78 */ mr r30, r4
/* 80309860 003054C0 7C DF 33 78 */ mr r31, r6
/* 80309864 003054C4 38 E1 00 08 */ addi r7, r1, 8
/* 80309868 003054C8 3B 80 00 01 */ li r28, 1
/* 8030986C 003054CC 4B FF FB 51 */ bl VFiPFCACHE_DoAllocatePage
/* 80309870 003054D0 2C 03 00 00 */ cmpwi r3, 0
/* 80309874 003054D4 41 82 00 08 */ beq lbl_8030987C
/* 80309878 003054D8 48 00 02 4C */ b lbl_80309AC4
lbl_8030987C:
/* 8030987C 003054DC 80 01 00 08 */ lwz r0, 8(r1)
/* 80309880 003054E0 2C 00 00 00 */ cmpwi r0, 0
/* 80309884 003054E4 40 82 01 A4 */ bne lbl_80309A28
/* 80309888 003054E8 80 DF 00 00 */ lwz r6, 0(r31)
/* 8030988C 003054EC 7F A3 EB 78 */ mr r3, r29
/* 80309890 003054F0 38 E1 00 0C */ addi r7, r1, 0xc
/* 80309894 003054F4 80 86 00 04 */ lwz r4, 4(r6)
/* 80309898 003054F8 80 A6 00 18 */ lwz r5, 0x18(r6)
/* 8030989C 003054FC 80 C6 00 14 */ lwz r6, 0x14(r6)
/* 803098A0 00305500 4B FF C9 1D */ bl VFiPFDRV_lread
/* 803098A4 00305504 2C 03 00 00 */ cmpwi r3, 0
/* 803098A8 00305508 41 82 00 8C */ beq lbl_80309934
/* 803098AC 0030550C 80 DF 00 00 */ lwz r6, 0(r31)
/* 803098B0 00305510 38 80 00 00 */ li r4, 0
/* 803098B4 00305514 38 00 FF FF */ li r0, -1
/* 803098B8 00305518 A0 A6 00 00 */ lhz r5, 0(r6)
/* 803098BC 0030551C 54 A5 04 3A */ rlwinm r5, r5, 0, 0x10, 0x1d
/* 803098C0 00305520 B0 A6 00 00 */ sth r5, 0(r6)
/* 803098C4 00305524 90 86 00 0C */ stw r4, 0xc(r6)
/* 803098C8 00305528 90 86 00 10 */ stw r4, 0x10(r6)
/* 803098CC 0030552C 90 06 00 18 */ stw r0, 0x18(r6)
/* 803098D0 00305530 90 86 00 1C */ stw r4, 0x1c(r6)
/* 803098D4 00305534 80 9E 00 00 */ lwz r4, 0(r30)
/* 803098D8 00305538 7C 06 20 40 */ cmplw r6, r4
/* 803098DC 0030553C 40 82 00 10 */ bne lbl_803098EC
/* 803098E0 00305540 80 06 00 20 */ lwz r0, 0x20(r6)
/* 803098E4 00305544 90 1E 00 00 */ stw r0, 0(r30)
/* 803098E8 00305548 48 00 01 DC */ b lbl_80309AC4
lbl_803098EC:
/* 803098EC 0030554C 80 04 00 24 */ lwz r0, 0x24(r4)
/* 803098F0 00305550 7C 06 00 40 */ cmplw r6, r0
/* 803098F4 00305554 41 82 01 D0 */ beq lbl_80309AC4
/* 803098F8 00305558 80 06 00 20 */ lwz r0, 0x20(r6)
/* 803098FC 0030555C 80 86 00 24 */ lwz r4, 0x24(r6)
/* 80309900 00305560 90 04 00 20 */ stw r0, 0x20(r4)
/* 80309904 00305564 80 06 00 24 */ lwz r0, 0x24(r6)
/* 80309908 00305568 80 86 00 20 */ lwz r4, 0x20(r6)
/* 8030990C 0030556C 90 04 00 24 */ stw r0, 0x24(r4)
/* 80309910 00305570 80 BE 00 00 */ lwz r5, 0(r30)
/* 80309914 00305574 90 A6 00 20 */ stw r5, 0x20(r6)
/* 80309918 00305578 80 9E 00 00 */ lwz r4, 0(r30)
/* 8030991C 0030557C 80 04 00 24 */ lwz r0, 0x24(r4)
/* 80309920 00305580 90 06 00 24 */ stw r0, 0x24(r6)
/* 80309924 00305584 90 C5 00 24 */ stw r6, 0x24(r5)
/* 80309928 00305588 80 86 00 24 */ lwz r4, 0x24(r6)
/* 8030992C 0030558C 90 C4 00 20 */ stw r6, 0x20(r4)
/* 80309930 00305590 48 00 01 94 */ b lbl_80309AC4
lbl_80309934:
/* 80309934 00305594 80 BF 00 00 */ lwz r5, 0(r31)
/* 80309938 00305598 80 81 00 0C */ lwz r4, 0xc(r1)
/* 8030993C 0030559C 80 05 00 14 */ lwz r0, 0x14(r5)
/* 80309940 003055A0 7C 04 00 40 */ cmplw r4, r0
/* 80309944 003055A4 41 82 00 A0 */ beq lbl_803099E4
/* 80309948 003055A8 80 05 00 18 */ lwz r0, 0x18(r5)
/* 8030994C 003055AC 80 7D 00 08 */ lwz r3, 8(r29)
/* 80309950 003055B0 7C 00 22 14 */ add r0, r0, r4
/* 80309954 003055B4 7C 03 00 40 */ cmplw r3, r0
/* 80309958 003055B8 41 82 00 8C */ beq lbl_803099E4
/* 8030995C 003055BC A0 85 00 00 */ lhz r4, 0(r5)
/* 80309960 003055C0 38 60 00 00 */ li r3, 0
/* 80309964 003055C4 38 00 FF FF */ li r0, -1
/* 80309968 003055C8 54 84 04 3A */ rlwinm r4, r4, 0, 0x10, 0x1d
/* 8030996C 003055CC B0 85 00 00 */ sth r4, 0(r5)
/* 80309970 003055D0 90 65 00 0C */ stw r3, 0xc(r5)
/* 80309974 003055D4 90 65 00 10 */ stw r3, 0x10(r5)
/* 80309978 003055D8 90 05 00 18 */ stw r0, 0x18(r5)
/* 8030997C 003055DC 90 65 00 1C */ stw r3, 0x1c(r5)
/* 80309980 003055E0 80 7E 00 00 */ lwz r3, 0(r30)
/* 80309984 003055E4 7C 05 18 40 */ cmplw r5, r3
/* 80309988 003055E8 40 82 00 10 */ bne lbl_80309998
/* 8030998C 003055EC 80 05 00 20 */ lwz r0, 0x20(r5)
/* 80309990 003055F0 90 1E 00 00 */ stw r0, 0(r30)
/* 80309994 003055F4 48 00 00 48 */ b lbl_803099DC
lbl_80309998:
/* 80309998 003055F8 80 03 00 24 */ lwz r0, 0x24(r3)
/* 8030999C 003055FC 7C 05 00 40 */ cmplw r5, r0
/* 803099A0 00305600 41 82 00 3C */ beq lbl_803099DC
/* 803099A4 00305604 80 05 00 20 */ lwz r0, 0x20(r5)
/* 803099A8 00305608 80 65 00 24 */ lwz r3, 0x24(r5)
/* 803099AC 0030560C 90 03 00 20 */ stw r0, 0x20(r3)
/* 803099B0 00305610 80 05 00 24 */ lwz r0, 0x24(r5)
/* 803099B4 00305614 80 65 00 20 */ lwz r3, 0x20(r5)
/* 803099B8 00305618 90 03 00 24 */ stw r0, 0x24(r3)
/* 803099BC 0030561C 80 9E 00 00 */ lwz r4, 0(r30)
/* 803099C0 00305620 90 85 00 20 */ stw r4, 0x20(r5)
/* 803099C4 00305624 80 7E 00 00 */ lwz r3, 0(r30)
/* 803099C8 00305628 80 03 00 24 */ lwz r0, 0x24(r3)
/* 803099CC 0030562C 90 05 00 24 */ stw r0, 0x24(r5)
/* 803099D0 00305630 90 A4 00 24 */ stw r5, 0x24(r4)
/* 803099D4 00305634 80 65 00 24 */ lwz r3, 0x24(r5)
/* 803099D8 00305638 90 A3 00 20 */ stw r5, 0x20(r3)
lbl_803099DC:
/* 803099DC 0030563C 38 60 00 11 */ li r3, 0x11
/* 803099E0 00305640 48 00 00 E4 */ b lbl_80309AC4
lbl_803099E4:
/* 803099E4 00305644 A0 65 00 00 */ lhz r3, 0(r5)
/* 803099E8 00305648 38 00 00 00 */ li r0, 0
/* 803099EC 0030564C 2C 1B 00 00 */ cmpwi r27, 0
/* 803099F0 00305650 54 63 07 FA */ rlwinm r3, r3, 0, 0x1f, 0x1d
/* 803099F4 00305654 B0 65 00 00 */ sth r3, 0(r5)
/* 803099F8 00305658 80 7F 00 00 */ lwz r3, 0(r31)
/* 803099FC 0030565C 90 03 00 0C */ stw r0, 0xc(r3)
/* 80309A00 00305660 80 7F 00 00 */ lwz r3, 0(r31)
/* 80309A04 00305664 90 03 00 10 */ stw r0, 0x10(r3)
/* 80309A08 00305668 41 82 00 14 */ beq lbl_80309A1C
/* 80309A0C 0030566C 80 1D 16 08 */ lwz r0, 0x1608(r29)
/* 80309A10 00305670 80 7F 00 00 */ lwz r3, 0(r31)
/* 80309A14 00305674 90 03 00 1C */ stw r0, 0x1c(r3)
/* 80309A18 00305678 48 00 00 A8 */ b lbl_80309AC0
lbl_80309A1C:
/* 80309A1C 0030567C 80 7F 00 00 */ lwz r3, 0(r31)
/* 80309A20 00305680 90 03 00 1C */ stw r0, 0x1c(r3)
/* 80309A24 00305684 48 00 00 9C */ b lbl_80309AC0
lbl_80309A28:
/* 80309A28 00305688 2C 1B 00 00 */ cmpwi r27, 0
/* 80309A2C 0030568C 41 82 00 94 */ beq lbl_80309AC0
/* 80309A30 00305690 80 9F 00 00 */ lwz r4, 0(r31)
/* 80309A34 00305694 A0 04 00 00 */ lhz r0, 0(r4)
/* 80309A38 00305698 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
/* 80309A3C 0030569C 2C 80 00 00 */ cmpwi cr1, r0, 0
/* 80309A40 003056A0 41 86 00 80 */ beq cr1, lbl_80309AC0
/* 80309A44 003056A4 80 1D 15 E8 */ lwz r0, 0x15e8(r29)
/* 80309A48 003056A8 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80309A4C 003056AC 41 82 00 74 */ beq lbl_80309AC0
/* 80309A50 003056B0 80 64 00 1C */ lwz r3, 0x1c(r4)
/* 80309A54 003056B4 80 1D 16 08 */ lwz r0, 0x1608(r29)
/* 80309A58 003056B8 7C 03 00 40 */ cmplw r3, r0
/* 80309A5C 003056BC 41 82 00 64 */ beq lbl_80309AC0
/* 80309A60 003056C0 2C 04 00 00 */ cmpwi r4, 0
/* 80309A64 003056C4 41 82 00 1C */ beq lbl_80309A80
/* 80309A68 003056C8 41 86 00 18 */ beq cr1, lbl_80309A80
/* 80309A6C 003056CC 80 64 00 18 */ lwz r3, 0x18(r4)
/* 80309A70 003056D0 3C 03 00 01 */ addis r0, r3, 1
/* 80309A74 003056D4 28 00 FF FF */ cmplwi r0, 0xffff
/* 80309A78 003056D8 41 82 00 08 */ beq lbl_80309A80
/* 80309A7C 003056DC 3B 80 00 01 */ li r28, 1
lbl_80309A80:
/* 80309A80 003056E0 7F A3 EB 78 */ mr r3, r29
/* 80309A84 003056E4 4B FF F8 39 */ bl VFiPFCACHE_FlushPageIfNeeded
/* 80309A88 003056E8 2C 03 00 00 */ cmpwi r3, 0
/* 80309A8C 003056EC 41 82 00 10 */ beq lbl_80309A9C
/* 80309A90 003056F0 38 00 00 00 */ li r0, 0
/* 80309A94 003056F4 90 1F 00 00 */ stw r0, 0(r31)
/* 80309A98 003056F8 48 00 00 2C */ b lbl_80309AC4
lbl_80309A9C:
/* 80309A9C 003056FC 2C 1C 00 00 */ cmpwi r28, 0
/* 80309AA0 00305700 41 82 00 20 */ beq lbl_80309AC0
/* 80309AA4 00305704 7F A3 EB 78 */ mr r3, r29
/* 80309AA8 00305708 38 80 00 01 */ li r4, 1
/* 80309AAC 0030570C 48 01 22 F5 */ bl dCommon_FlushFromVol
/* 80309AB0 00305710 2C 03 00 00 */ cmpwi r3, 0
/* 80309AB4 00305714 41 82 00 0C */ beq lbl_80309AC0
/* 80309AB8 00305718 38 60 00 11 */ li r3, 0x11
/* 80309ABC 0030571C 48 00 00 08 */ b lbl_80309AC4
lbl_80309AC0:
/* 80309AC0 00305720 38 60 00 00 */ li r3, 0
lbl_80309AC4:
/* 80309AC4 00305724 39 61 00 30 */ addi r11, r1, 0x30
/* 80309AC8 00305728 4B EB D6 AD */ bl _restgpr_27
/* 80309ACC 0030572C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80309AD0 00305730 7C 08 03 A6 */ mtlr r0
/* 80309AD4 00305734 38 21 00 30 */ addi r1, r1, 0x30
/* 80309AD8 00305738 4E 80 00 20 */ blr
.global VFiPFCACHE_DoReadNumSector
VFiPFCACHE_DoReadNumSector:
/* 80309ADC 0030573C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80309AE0 00305740 7C 08 02 A6 */ mflr r0
/* 80309AE4 00305744 90 01 00 44 */ stw r0, 0x44(r1)
/* 80309AE8 00305748 39 61 00 40 */ addi r11, r1, 0x40
/* 80309AEC 0030574C 4B EB D6 25 */ bl _savegpr_21
/* 80309AF0 00305750 38 00 00 00 */ li r0, 0
/* 80309AF4 00305754 7C B8 2B 78 */ mr r24, r5
/* 80309AF8 00305758 7C D9 33 78 */ mr r25, r6
/* 80309AFC 0030575C 7C FA 3B 78 */ mr r26, r7
/* 80309B00 00305760 7D 1B 43 78 */ mr r27, r8
/* 80309B04 00305764 7C 97 23 78 */ mr r23, r4
/* 80309B08 00305768 90 08 00 00 */ stw r0, 0(r8)
/* 80309B0C 0030576C 7C 76 1B 78 */ mr r22, r3
/* 80309B10 00305770 7F 04 C3 78 */ mr r4, r24
/* 80309B14 00305774 7F 25 CB 78 */ mr r5, r25
/* 80309B18 00305778 7F 46 D3 78 */ mr r6, r26
/* 80309B1C 0030577C 7F 67 DB 78 */ mr r7, r27
/* 80309B20 00305780 4B FF C6 9D */ bl VFiPFDRV_lread
/* 80309B24 00305784 2C 03 00 00 */ cmpwi r3, 0
/* 80309B28 00305788 41 82 00 08 */ beq lbl_80309B30
/* 80309B2C 0030578C 48 00 01 EC */ b lbl_80309D18
lbl_80309B30:
/* 80309B30 00305790 83 FB 00 00 */ lwz r31, 0(r27)
/* 80309B34 00305794 3B A0 00 00 */ li r29, 0
/* 80309B38 00305798 7F FC FB 78 */ mr r28, r31
/* 80309B3C 0030579C 7F D9 FA 14 */ add r30, r25, r31
lbl_80309B40:
/* 80309B40 003057A0 2C 1D 00 00 */ cmpwi r29, 0
/* 80309B44 003057A4 40 82 00 0C */ bne lbl_80309B50
/* 80309B48 003057A8 83 B7 00 00 */ lwz r29, 0(r23)
/* 80309B4C 003057AC 48 00 00 40 */ b lbl_80309B8C
lbl_80309B50:
/* 80309B50 003057B0 83 BD 00 20 */ lwz r29, 0x20(r29)
/* 80309B54 003057B4 80 17 00 00 */ lwz r0, 0(r23)
/* 80309B58 003057B8 7C 1D 00 40 */ cmplw r29, r0
/* 80309B5C 003057BC 40 82 00 30 */ bne lbl_80309B8C
/* 80309B60 003057C0 3B A0 00 00 */ li r29, 0
/* 80309B64 003057C4 48 00 00 38 */ b lbl_80309B9C
/* 80309B68 003057C8 48 00 00 24 */ b lbl_80309B8C
lbl_80309B6C:
/* 80309B6C 003057CC 80 7D 00 18 */ lwz r3, 0x18(r29)
/* 80309B70 003057D0 3C 03 00 01 */ addis r0, r3, 1
/* 80309B74 003057D4 28 00 FF FF */ cmplwi r0, 0xffff
/* 80309B78 003057D8 41 82 00 10 */ beq lbl_80309B88
/* 80309B7C 003057DC 80 1D 00 04 */ lwz r0, 4(r29)
/* 80309B80 003057E0 90 1D 00 08 */ stw r0, 8(r29)
/* 80309B84 003057E4 48 00 00 18 */ b lbl_80309B9C
lbl_80309B88:
/* 80309B88 003057E8 83 BD 00 20 */ lwz r29, 0x20(r29)
lbl_80309B8C:
/* 80309B8C 003057EC A0 1D 00 00 */ lhz r0, 0(r29)
/* 80309B90 003057F0 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80309B94 003057F4 40 82 FF D8 */ bne lbl_80309B6C
/* 80309B98 003057F8 3B A0 00 00 */ li r29, 0
lbl_80309B9C:
/* 80309B9C 003057FC 2C 1D 00 00 */ cmpwi r29, 0
/* 80309BA0 00305800 41 82 01 40 */ beq lbl_80309CE0
/* 80309BA4 00305804 80 FD 00 18 */ lwz r7, 0x18(r29)
/* 80309BA8 00305808 3C 07 00 01 */ addis r0, r7, 1
/* 80309BAC 0030580C 28 00 FF FF */ cmplwi r0, 0xffff
/* 80309BB0 00305810 41 82 01 30 */ beq lbl_80309CE0
/* 80309BB4 00305814 7C 07 C8 40 */ cmplw r7, r25
/* 80309BB8 00305818 41 81 00 3C */ bgt lbl_80309BF4
/* 80309BBC 0030581C 80 1D 00 14 */ lwz r0, 0x14(r29)
/* 80309BC0 00305820 7C 07 02 14 */ add r0, r7, r0
/* 80309BC4 00305824 7C 00 F0 40 */ cmplw r0, r30
/* 80309BC8 00305828 41 80 00 2C */ blt lbl_80309BF4
/* 80309BCC 0030582C 88 B6 00 20 */ lbz r5, 0x20(r22)
/* 80309BD0 00305830 7C 07 C8 50 */ subf r0, r7, r25
/* 80309BD4 00305834 80 9D 00 04 */ lwz r4, 4(r29)
/* 80309BD8 00305838 7F 03 C3 78 */ mr r3, r24
/* 80309BDC 0030583C 7C 00 28 30 */ slw r0, r0, r5
/* 80309BE0 00305840 7F E5 28 30 */ slw r5, r31, r5
/* 80309BE4 00305844 7C 84 02 14 */ add r4, r4, r0
/* 80309BE8 00305848 4B FF B2 C5 */ bl VFipf_memcpy
/* 80309BEC 0030584C 7F 9F E0 50 */ subf r28, r31, r28
/* 80309BF0 00305850 48 00 00 F0 */ b lbl_80309CE0
lbl_80309BF4:
/* 80309BF4 00305854 7C 07 C8 40 */ cmplw r7, r25
/* 80309BF8 00305858 41 80 00 3C */ blt lbl_80309C34
/* 80309BFC 0030585C 80 7D 00 14 */ lwz r3, 0x14(r29)
/* 80309C00 00305860 7C 07 1A 14 */ add r0, r7, r3
/* 80309C04 00305864 7C 00 F0 40 */ cmplw r0, r30
/* 80309C08 00305868 41 81 00 2C */ bgt lbl_80309C34
/* 80309C0C 0030586C 88 B6 00 20 */ lbz r5, 0x20(r22)
/* 80309C10 00305870 7C 19 38 50 */ subf r0, r25, r7
/* 80309C14 00305874 80 9D 00 04 */ lwz r4, 4(r29)
/* 80309C18 00305878 7C 00 28 30 */ slw r0, r0, r5
/* 80309C1C 0030587C 7C 65 28 30 */ slw r5, r3, r5
/* 80309C20 00305880 7C 78 02 14 */ add r3, r24, r0
/* 80309C24 00305884 4B FF B2 89 */ bl VFipf_memcpy
/* 80309C28 00305888 80 1D 00 14 */ lwz r0, 0x14(r29)
/* 80309C2C 0030588C 7F 80 E0 50 */ subf r28, r0, r28
/* 80309C30 00305890 48 00 00 B0 */ b lbl_80309CE0
lbl_80309C34:
/* 80309C34 00305894 7C 07 C8 40 */ cmplw r7, r25
/* 80309C38 00305898 40 81 00 50 */ ble lbl_80309C88
/* 80309C3C 0030589C 7C 07 F0 40 */ cmplw r7, r30
/* 80309C40 003058A0 40 80 00 48 */ bge lbl_80309C88
/* 80309C44 003058A4 80 1D 00 14 */ lwz r0, 0x14(r29)
/* 80309C48 003058A8 7C 07 02 14 */ add r0, r7, r0
/* 80309C4C 003058AC 7C 00 F0 40 */ cmplw r0, r30
/* 80309C50 003058B0 41 80 00 38 */ blt lbl_80309C88
/* 80309C54 003058B4 88 B6 00 20 */ lbz r5, 0x20(r22)
/* 80309C58 003058B8 7C 19 38 50 */ subf r0, r25, r7
/* 80309C5C 003058BC 7E BF CA 14 */ add r21, r31, r25
/* 80309C60 003058C0 80 9D 00 04 */ lwz r4, 4(r29)
/* 80309C64 003058C4 7C 03 28 30 */ slw r3, r0, r5
/* 80309C68 003058C8 7C 07 A8 50 */ subf r0, r7, r21
/* 80309C6C 003058CC 7C 78 1A 14 */ add r3, r24, r3
/* 80309C70 003058D0 7C 05 28 30 */ slw r5, r0, r5
/* 80309C74 003058D4 4B FF B2 39 */ bl VFipf_memcpy
/* 80309C78 003058D8 80 1D 00 18 */ lwz r0, 0x18(r29)
/* 80309C7C 003058DC 7C 00 A8 50 */ subf r0, r0, r21
/* 80309C80 003058E0 7F 80 E0 50 */ subf r28, r0, r28
/* 80309C84 003058E4 48 00 00 5C */ b lbl_80309CE0
lbl_80309C88:
/* 80309C88 003058E8 7C 07 C8 40 */ cmplw r7, r25
/* 80309C8C 003058EC 40 80 00 54 */ bge lbl_80309CE0
/* 80309C90 003058F0 80 1D 00 14 */ lwz r0, 0x14(r29)
/* 80309C94 003058F4 7C 67 02 14 */ add r3, r7, r0
/* 80309C98 003058F8 7C 03 C8 40 */ cmplw r3, r25
/* 80309C9C 003058FC 40 81 00 44 */ ble lbl_80309CE0
/* 80309CA0 00305900 7C 03 F0 40 */ cmplw r3, r30
/* 80309CA4 00305904 41 81 00 3C */ bgt lbl_80309CE0
/* 80309CA8 00305908 88 D6 00 20 */ lbz r6, 0x20(r22)
/* 80309CAC 0030590C 7C 67 C8 50 */ subf r3, r7, r25
/* 80309CB0 00305910 80 BD 00 04 */ lwz r5, 4(r29)
/* 80309CB4 00305914 7C 03 00 50 */ subf r0, r3, r0
/* 80309CB8 00305918 7C 64 30 30 */ slw r4, r3, r6
/* 80309CBC 0030591C 7F 03 C3 78 */ mr r3, r24
/* 80309CC0 00305920 7C 85 22 14 */ add r4, r5, r4
/* 80309CC4 00305924 7C 05 30 30 */ slw r5, r0, r6
/* 80309CC8 00305928 4B FF B1 E5 */ bl VFipf_memcpy
/* 80309CCC 0030592C 80 7D 00 18 */ lwz r3, 0x18(r29)
/* 80309CD0 00305930 80 1D 00 14 */ lwz r0, 0x14(r29)
/* 80309CD4 00305934 7C 63 C8 50 */ subf r3, r3, r25
/* 80309CD8 00305938 7C 03 00 50 */ subf r0, r3, r0
/* 80309CDC 0030593C 7F 80 E0 50 */ subf r28, r0, r28
lbl_80309CE0:
/* 80309CE0 00305940 2C 1D 00 00 */ cmpwi r29, 0
/* 80309CE4 00305944 41 82 00 0C */ beq lbl_80309CF0
/* 80309CE8 00305948 2C 1C 00 00 */ cmpwi r28, 0
/* 80309CEC 0030594C 40 82 FE 54 */ bne lbl_80309B40
lbl_80309CF0:
/* 80309CF0 00305950 80 1B 00 00 */ lwz r0, 0(r27)
/* 80309CF4 00305954 7C 00 D0 40 */ cmplw r0, r26
/* 80309CF8 00305958 41 82 00 1C */ beq lbl_80309D14
/* 80309CFC 0030595C 80 76 00 08 */ lwz r3, 8(r22)
/* 80309D00 00305960 7C 19 02 14 */ add r0, r25, r0
/* 80309D04 00305964 7C 03 00 40 */ cmplw r3, r0
/* 80309D08 00305968 41 82 00 0C */ beq lbl_80309D14
/* 80309D0C 0030596C 38 60 00 11 */ li r3, 0x11
/* 80309D10 00305970 48 00 00 08 */ b lbl_80309D18
lbl_80309D14:
/* 80309D14 00305974 38 60 00 00 */ li r3, 0
lbl_80309D18:
/* 80309D18 00305978 39 61 00 40 */ addi r11, r1, 0x40
/* 80309D1C 0030597C 4B EB D4 41 */ bl _restgpr_21
/* 80309D20 00305980 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80309D24 00305984 7C 08 03 A6 */ mtlr r0
/* 80309D28 00305988 38 21 00 40 */ addi r1, r1, 0x40
/* 80309D2C 0030598C 4E 80 00 20 */ blr
.global VFiPFCACHE_DoWritePage
VFiPFCACHE_DoWritePage:
/* 80309D30 00305990 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80309D34 00305994 7C 08 02 A6 */ mflr r0
/* 80309D38 00305998 90 01 00 14 */ stw r0, 0x14(r1)
/* 80309D3C 0030599C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80309D40 003059A0 3B E0 00 00 */ li r31, 0
/* 80309D44 003059A4 93 C1 00 08 */ stw r30, 8(r1)
/* 80309D48 003059A8 7C 7E 1B 78 */ mr r30, r3
/* 80309D4C 003059AC 80 E4 00 00 */ lwz r7, 0(r4)
/* 80309D50 003059B0 7C 05 38 40 */ cmplw r5, r7
/* 80309D54 003059B4 41 82 00 54 */ beq lbl_80309DA8
/* 80309D58 003059B8 80 07 00 24 */ lwz r0, 0x24(r7)
/* 80309D5C 003059BC 7C 05 00 40 */ cmplw r5, r0
/* 80309D60 003059C0 40 82 00 0C */ bne lbl_80309D6C
/* 80309D64 003059C4 90 A4 00 00 */ stw r5, 0(r4)
/* 80309D68 003059C8 48 00 00 40 */ b lbl_80309DA8
lbl_80309D6C:
/* 80309D6C 003059CC 80 05 00 20 */ lwz r0, 0x20(r5)
/* 80309D70 003059D0 80 E5 00 24 */ lwz r7, 0x24(r5)
/* 80309D74 003059D4 90 07 00 20 */ stw r0, 0x20(r7)
/* 80309D78 003059D8 80 05 00 24 */ lwz r0, 0x24(r5)
/* 80309D7C 003059DC 80 E5 00 20 */ lwz r7, 0x20(r5)
/* 80309D80 003059E0 90 07 00 24 */ stw r0, 0x24(r7)
/* 80309D84 003059E4 81 04 00 00 */ lwz r8, 0(r4)
/* 80309D88 003059E8 91 05 00 20 */ stw r8, 0x20(r5)
/* 80309D8C 003059EC 80 E4 00 00 */ lwz r7, 0(r4)
/* 80309D90 003059F0 80 07 00 24 */ lwz r0, 0x24(r7)
/* 80309D94 003059F4 90 05 00 24 */ stw r0, 0x24(r5)
/* 80309D98 003059F8 90 A8 00 24 */ stw r5, 0x24(r8)
/* 80309D9C 003059FC 80 E5 00 24 */ lwz r7, 0x24(r5)
/* 80309DA0 00305A00 90 A7 00 20 */ stw r5, 0x20(r7)
/* 80309DA4 00305A04 90 A4 00 00 */ stw r5, 0(r4)
lbl_80309DA8:
/* 80309DA8 00305A08 80 05 00 0C */ lwz r0, 0xc(r5)
/* 80309DAC 00305A0C 2C 00 00 00 */ cmpwi r0, 0
/* 80309DB0 00305A10 40 82 00 20 */ bne lbl_80309DD0
/* 80309DB4 00305A14 A0 85 00 00 */ lhz r4, 0(r5)
/* 80309DB8 00305A18 80 05 00 08 */ lwz r0, 8(r5)
/* 80309DBC 00305A1C 60 84 00 02 */ ori r4, r4, 2
/* 80309DC0 00305A20 B0 85 00 00 */ sth r4, 0(r5)
/* 80309DC4 00305A24 90 05 00 0C */ stw r0, 0xc(r5)
/* 80309DC8 00305A28 90 05 00 10 */ stw r0, 0x10(r5)
/* 80309DCC 00305A2C 48 00 00 28 */ b lbl_80309DF4
lbl_80309DD0:
/* 80309DD0 00305A30 80 85 00 08 */ lwz r4, 8(r5)
/* 80309DD4 00305A34 7C 04 00 40 */ cmplw r4, r0
/* 80309DD8 00305A38 40 80 00 0C */ bge lbl_80309DE4
/* 80309DDC 00305A3C 90 85 00 0C */ stw r4, 0xc(r5)
/* 80309DE0 00305A40 48 00 00 14 */ b lbl_80309DF4
lbl_80309DE4:
/* 80309DE4 00305A44 80 05 00 10 */ lwz r0, 0x10(r5)
/* 80309DE8 00305A48 7C 04 00 40 */ cmplw r4, r0
/* 80309DEC 00305A4C 40 81 00 08 */ ble lbl_80309DF4
/* 80309DF0 00305A50 90 85 00 10 */ stw r4, 0x10(r5)
lbl_80309DF4:
/* 80309DF4 00305A54 2C 06 00 00 */ cmpwi r6, 0
/* 80309DF8 00305A58 41 82 00 10 */ beq lbl_80309E08
/* 80309DFC 00305A5C 80 03 16 08 */ lwz r0, 0x1608(r3)
/* 80309E00 00305A60 90 05 00 1C */ stw r0, 0x1c(r5)
/* 80309E04 00305A64 48 00 00 0C */ b lbl_80309E10
lbl_80309E08:
/* 80309E08 00305A68 38 00 00 00 */ li r0, 0
/* 80309E0C 00305A6C 90 05 00 1C */ stw r0, 0x1c(r5)
lbl_80309E10:
/* 80309E10 00305A70 80 63 15 E8 */ lwz r3, 0x15e8(r3)
/* 80309E14 00305A74 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 80309E18 00305A78 40 82 00 18 */ bne lbl_80309E30
/* 80309E1C 00305A7C 54 60 07 7B */ rlwinm. r0, r3, 0, 0x1d, 0x1d
/* 80309E20 00305A80 41 82 00 74 */ beq lbl_80309E94
/* 80309E24 00305A84 A0 05 00 00 */ lhz r0, 0(r5)
/* 80309E28 00305A88 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 80309E2C 00305A8C 41 82 00 68 */ beq lbl_80309E94
lbl_80309E30:
/* 80309E30 00305A90 2C 05 00 00 */ cmpwi r5, 0
/* 80309E34 00305A94 41 82 00 24 */ beq lbl_80309E58
/* 80309E38 00305A98 A0 05 00 00 */ lhz r0, 0(r5)
/* 80309E3C 00305A9C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80309E40 00305AA0 41 82 00 18 */ beq lbl_80309E58
/* 80309E44 00305AA4 80 65 00 18 */ lwz r3, 0x18(r5)
/* 80309E48 00305AA8 3C 03 00 01 */ addis r0, r3, 1
/* 80309E4C 00305AAC 28 00 FF FF */ cmplwi r0, 0xffff
/* 80309E50 00305AB0 41 82 00 08 */ beq lbl_80309E58
/* 80309E54 00305AB4 3B E0 00 01 */ li r31, 1
lbl_80309E58:
/* 80309E58 00305AB8 7F C3 F3 78 */ mr r3, r30
/* 80309E5C 00305ABC 7C A4 2B 78 */ mr r4, r5
/* 80309E60 00305AC0 4B FF F4 5D */ bl VFiPFCACHE_FlushPageIfNeeded
/* 80309E64 00305AC4 2C 03 00 00 */ cmpwi r3, 0
/* 80309E68 00305AC8 41 82 00 08 */ beq lbl_80309E70
/* 80309E6C 00305ACC 48 00 00 2C */ b lbl_80309E98
lbl_80309E70:
/* 80309E70 00305AD0 2C 1F 00 00 */ cmpwi r31, 0
/* 80309E74 00305AD4 41 82 00 20 */ beq lbl_80309E94
/* 80309E78 00305AD8 7F C3 F3 78 */ mr r3, r30
/* 80309E7C 00305ADC 38 80 00 01 */ li r4, 1
/* 80309E80 00305AE0 48 01 1F 21 */ bl dCommon_FlushFromVol
/* 80309E84 00305AE4 2C 03 00 00 */ cmpwi r3, 0
/* 80309E88 00305AE8 41 82 00 0C */ beq lbl_80309E94
/* 80309E8C 00305AEC 38 60 00 11 */ li r3, 0x11
/* 80309E90 00305AF0 48 00 00 08 */ b lbl_80309E98
lbl_80309E94:
/* 80309E94 00305AF4 38 60 00 00 */ li r3, 0
lbl_80309E98:
/* 80309E98 00305AF8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80309E9C 00305AFC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80309EA0 00305B00 83 C1 00 08 */ lwz r30, 8(r1)
/* 80309EA4 00305B04 7C 08 03 A6 */ mtlr r0
/* 80309EA8 00305B08 38 21 00 10 */ addi r1, r1, 0x10
/* 80309EAC 00305B0C 4E 80 00 20 */ blr
.global VFiPFCACHE_DoWriteSector
VFiPFCACHE_DoWriteSector:
/* 80309EB0 00305B10 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80309EB4 00305B14 7C 08 02 A6 */ mflr r0
/* 80309EB8 00305B18 90 01 00 34 */ stw r0, 0x34(r1)
/* 80309EBC 00305B1C 39 61 00 30 */ addi r11, r1, 0x30
/* 80309EC0 00305B20 4B EB D2 69 */ bl _savegpr_27
/* 80309EC4 00305B24 7C DD 33 78 */ mr r29, r6
/* 80309EC8 00305B28 80 84 00 00 */ lwz r4, 0(r4)
/* 80309ECC 00305B2C 7C BC 2B 78 */ mr r28, r5
/* 80309ED0 00305B30 7C 7B 1B 78 */ mr r27, r3
/* 80309ED4 00305B34 7F A5 EB 78 */ mr r5, r29
/* 80309ED8 00305B38 3B C0 00 00 */ li r30, 0
/* 80309EDC 00305B3C 4B FF F2 7D */ bl VFiPFCACHE_SearchForPage
/* 80309EE0 00305B40 2C 03 00 00 */ cmpwi r3, 0
/* 80309EE4 00305B44 7C 7F 1B 78 */ mr r31, r3
/* 80309EE8 00305B48 41 82 00 C8 */ beq lbl_80309FB0
/* 80309EEC 00305B4C 80 63 00 08 */ lwz r3, 8(r3)
/* 80309EF0 00305B50 7F 84 E3 78 */ mr r4, r28
/* 80309EF4 00305B54 A0 BB 00 00 */ lhz r5, 0(r27)
/* 80309EF8 00305B58 4B FF AF B5 */ bl VFipf_memcpy
/* 80309EFC 00305B5C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80309F00 00305B60 2C 00 00 00 */ cmpwi r0, 0
/* 80309F04 00305B64 40 82 00 24 */ bne lbl_80309F28
/* 80309F08 00305B68 A0 1F 00 00 */ lhz r0, 0(r31)
/* 80309F0C 00305B6C 60 00 00 02 */ ori r0, r0, 2
/* 80309F10 00305B70 B0 1F 00 00 */ sth r0, 0(r31)
/* 80309F14 00305B74 80 1F 00 08 */ lwz r0, 8(r31)
/* 80309F18 00305B78 90 1F 00 0C */ stw r0, 0xc(r31)
/* 80309F1C 00305B7C 80 1F 00 08 */ lwz r0, 8(r31)
/* 80309F20 00305B80 90 1F 00 10 */ stw r0, 0x10(r31)
/* 80309F24 00305B84 48 00 00 28 */ b lbl_80309F4C
lbl_80309F28:
/* 80309F28 00305B88 80 7F 00 08 */ lwz r3, 8(r31)
/* 80309F2C 00305B8C 7C 03 00 40 */ cmplw r3, r0
/* 80309F30 00305B90 40 80 00 0C */ bge lbl_80309F3C
/* 80309F34 00305B94 90 7F 00 0C */ stw r3, 0xc(r31)
/* 80309F38 00305B98 48 00 00 14 */ b lbl_80309F4C
lbl_80309F3C:
/* 80309F3C 00305B9C 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 80309F40 00305BA0 7C 03 00 40 */ cmplw r3, r0
/* 80309F44 00305BA4 40 81 00 08 */ ble lbl_80309F4C
/* 80309F48 00305BA8 90 7F 00 10 */ stw r3, 0x10(r31)
lbl_80309F4C:
/* 80309F4C 00305BAC 2C 1F 00 00 */ cmpwi r31, 0
/* 80309F50 00305BB0 41 82 00 24 */ beq lbl_80309F74
/* 80309F54 00305BB4 A0 1F 00 00 */ lhz r0, 0(r31)
/* 80309F58 00305BB8 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80309F5C 00305BBC 41 82 00 18 */ beq lbl_80309F74
/* 80309F60 00305BC0 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 80309F64 00305BC4 3C 03 00 01 */ addis r0, r3, 1
/* 80309F68 00305BC8 28 00 FF FF */ cmplwi r0, 0xffff
/* 80309F6C 00305BCC 41 82 00 08 */ beq lbl_80309F74
/* 80309F70 00305BD0 3B C0 00 01 */ li r30, 1
lbl_80309F74:
/* 80309F74 00305BD4 7F 63 DB 78 */ mr r3, r27
/* 80309F78 00305BD8 7F E4 FB 78 */ mr r4, r31
/* 80309F7C 00305BDC 4B FF F3 41 */ bl VFiPFCACHE_FlushPageIfNeeded
/* 80309F80 00305BE0 2C 03 00 00 */ cmpwi r3, 0
/* 80309F84 00305BE4 41 82 00 08 */ beq lbl_80309F8C
/* 80309F88 00305BE8 48 00 00 80 */ b lbl_8030A008
lbl_80309F8C:
/* 80309F8C 00305BEC 2C 1E 00 00 */ cmpwi r30, 0
/* 80309F90 00305BF0 41 82 00 74 */ beq lbl_8030A004
/* 80309F94 00305BF4 7F 63 DB 78 */ mr r3, r27
/* 80309F98 00305BF8 38 80 00 01 */ li r4, 1
/* 80309F9C 00305BFC 48 01 1E 05 */ bl dCommon_FlushFromVol
/* 80309FA0 00305C00 2C 03 00 00 */ cmpwi r3, 0
/* 80309FA4 00305C04 41 82 00 60 */ beq lbl_8030A004
/* 80309FA8 00305C08 38 60 00 11 */ li r3, 0x11
/* 80309FAC 00305C0C 48 00 00 5C */ b lbl_8030A008
lbl_80309FB0:
/* 80309FB0 00305C10 7F 63 DB 78 */ mr r3, r27
/* 80309FB4 00305C14 7F 84 E3 78 */ mr r4, r28
/* 80309FB8 00305C18 7F A5 EB 78 */ mr r5, r29
/* 80309FBC 00305C1C 38 E1 00 08 */ addi r7, r1, 8
/* 80309FC0 00305C20 38 C0 00 01 */ li r6, 1
/* 80309FC4 00305C24 4B FF C2 7D */ bl VFiPFDRV_lwrite
/* 80309FC8 00305C28 2C 03 00 00 */ cmpwi r3, 0
/* 80309FCC 00305C2C 41 82 00 08 */ beq lbl_80309FD4
/* 80309FD0 00305C30 48 00 00 38 */ b lbl_8030A008
lbl_80309FD4:
/* 80309FD4 00305C34 80 01 00 08 */ lwz r0, 8(r1)
/* 80309FD8 00305C38 28 00 00 01 */ cmplwi r0, 1
/* 80309FDC 00305C3C 41 82 00 0C */ beq lbl_80309FE8
/* 80309FE0 00305C40 38 60 00 11 */ li r3, 0x11
/* 80309FE4 00305C44 48 00 00 24 */ b lbl_8030A008
lbl_80309FE8:
/* 80309FE8 00305C48 7F 63 DB 78 */ mr r3, r27
/* 80309FEC 00305C4C 38 80 00 01 */ li r4, 1
/* 80309FF0 00305C50 48 01 1D B1 */ bl dCommon_FlushFromVol
/* 80309FF4 00305C54 2C 03 00 00 */ cmpwi r3, 0
/* 80309FF8 00305C58 41 82 00 0C */ beq lbl_8030A004
/* 80309FFC 00305C5C 38 60 00 11 */ li r3, 0x11
/* 8030A000 00305C60 48 00 00 08 */ b lbl_8030A008
lbl_8030A004:
/* 8030A004 00305C64 38 60 00 00 */ li r3, 0
lbl_8030A008:
/* 8030A008 00305C68 39 61 00 30 */ addi r11, r1, 0x30
/* 8030A00C 00305C6C 4B EB D1 69 */ bl _restgpr_27
/* 8030A010 00305C70 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8030A014 00305C74 7C 08 03 A6 */ mtlr r0
/* 8030A018 00305C78 38 21 00 30 */ addi r1, r1, 0x30
/* 8030A01C 00305C7C 4E 80 00 20 */ blr
.global VFiPFCACHE_DoWriteNumSectorAndFreeIfNeeded
VFiPFCACHE_DoWriteNumSectorAndFreeIfNeeded:
/* 8030A020 00305C80 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8030A024 00305C84 7C 08 02 A6 */ mflr r0
/* 8030A028 00305C88 90 01 00 34 */ stw r0, 0x34(r1)
/* 8030A02C 00305C8C 39 61 00 30 */ addi r11, r1, 0x30
/* 8030A030 00305C90 4B EB D0 E9 */ bl _savegpr_23
/* 8030A034 00305C94 3B C0 00 00 */ li r30, 0
/* 8030A038 00305C98 7C FB 3B 78 */ mr r27, r7
/* 8030A03C 00305C9C 93 C8 00 00 */ stw r30, 0(r8)
/* 8030A040 00305CA0 7C 77 1B 78 */ mr r23, r3
/* 8030A044 00305CA4 7C 98 23 78 */ mr r24, r4
/* 8030A048 00305CA8 7C B9 2B 78 */ mr r25, r5
/* 8030A04C 00305CAC 7C DA 33 78 */ mr r26, r6
/* 8030A050 00305CB0 7D 1C 43 78 */ mr r28, r8
/* 8030A054 00305CB4 7F 7D DB 78 */ mr r29, r27
/* 8030A058 00305CB8 7F E6 3A 14 */ add r31, r6, r7
lbl_8030A05C:
/* 8030A05C 00305CBC 2C 1E 00 00 */ cmpwi r30, 0
/* 8030A060 00305CC0 40 82 00 0C */ bne lbl_8030A06C
/* 8030A064 00305CC4 83 D8 00 00 */ lwz r30, 0(r24)
/* 8030A068 00305CC8 48 00 00 40 */ b lbl_8030A0A8
lbl_8030A06C:
/* 8030A06C 00305CCC 83 DE 00 20 */ lwz r30, 0x20(r30)
/* 8030A070 00305CD0 80 18 00 00 */ lwz r0, 0(r24)
/* 8030A074 00305CD4 7C 1E 00 40 */ cmplw r30, r0
/* 8030A078 00305CD8 40 82 00 30 */ bne lbl_8030A0A8
/* 8030A07C 00305CDC 3B C0 00 00 */ li r30, 0
/* 8030A080 00305CE0 48 00 00 38 */ b lbl_8030A0B8
/* 8030A084 00305CE4 48 00 00 24 */ b lbl_8030A0A8
lbl_8030A088:
/* 8030A088 00305CE8 80 7E 00 18 */ lwz r3, 0x18(r30)
/* 8030A08C 00305CEC 3C 03 00 01 */ addis r0, r3, 1
/* 8030A090 00305CF0 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030A094 00305CF4 41 82 00 10 */ beq lbl_8030A0A4
/* 8030A098 00305CF8 80 1E 00 04 */ lwz r0, 4(r30)
/* 8030A09C 00305CFC 90 1E 00 08 */ stw r0, 8(r30)
/* 8030A0A0 00305D00 48 00 00 18 */ b lbl_8030A0B8
lbl_8030A0A4:
/* 8030A0A4 00305D04 83 DE 00 20 */ lwz r30, 0x20(r30)
lbl_8030A0A8:
/* 8030A0A8 00305D08 A0 1E 00 00 */ lhz r0, 0(r30)
/* 8030A0AC 00305D0C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8030A0B0 00305D10 40 82 FF D8 */ bne lbl_8030A088
/* 8030A0B4 00305D14 3B C0 00 00 */ li r30, 0
lbl_8030A0B8:
/* 8030A0B8 00305D18 2C 1E 00 00 */ cmpwi r30, 0
/* 8030A0BC 00305D1C 41 82 02 B0 */ beq lbl_8030A36C
/* 8030A0C0 00305D20 80 FE 00 18 */ lwz r7, 0x18(r30)
/* 8030A0C4 00305D24 3C 07 00 01 */ addis r0, r7, 1
/* 8030A0C8 00305D28 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030A0CC 00305D2C 41 82 02 A0 */ beq lbl_8030A36C
/* 8030A0D0 00305D30 7C 07 D0 40 */ cmplw r7, r26
/* 8030A0D4 00305D34 41 81 00 B0 */ bgt lbl_8030A184
/* 8030A0D8 00305D38 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 8030A0DC 00305D3C 7C 07 02 14 */ add r0, r7, r0
/* 8030A0E0 00305D40 7C 00 F8 40 */ cmplw r0, r31
/* 8030A0E4 00305D44 41 80 00 A0 */ blt lbl_8030A184
/* 8030A0E8 00305D48 88 B7 00 20 */ lbz r5, 0x20(r23)
/* 8030A0EC 00305D4C 7C 07 D0 50 */ subf r0, r7, r26
/* 8030A0F0 00305D50 80 7E 00 04 */ lwz r3, 4(r30)
/* 8030A0F4 00305D54 7F 24 CB 78 */ mr r4, r25
/* 8030A0F8 00305D58 7C 00 28 30 */ slw r0, r0, r5
/* 8030A0FC 00305D5C 7F 65 28 30 */ slw r5, r27, r5
/* 8030A100 00305D60 7C 63 02 14 */ add r3, r3, r0
/* 8030A104 00305D64 4B FF AD A9 */ bl VFipf_memcpy
/* 8030A108 00305D68 80 7C 00 00 */ lwz r3, 0(r28)
/* 8030A10C 00305D6C 38 1B FF FF */ addi r0, r27, -1
/* 8030A110 00305D70 7C 63 EA 14 */ add r3, r3, r29
/* 8030A114 00305D74 3B A0 00 00 */ li r29, 0
/* 8030A118 00305D78 90 7C 00 00 */ stw r3, 0(r28)
/* 8030A11C 00305D7C A0 7E 00 00 */ lhz r3, 0(r30)
/* 8030A120 00305D80 60 63 00 02 */ ori r3, r3, 2
/* 8030A124 00305D84 B0 7E 00 00 */ sth r3, 0(r30)
/* 8030A128 00305D88 80 7E 00 18 */ lwz r3, 0x18(r30)
/* 8030A12C 00305D8C 88 B7 00 20 */ lbz r5, 0x20(r23)
/* 8030A130 00305D90 80 DE 00 0C */ lwz r6, 0xc(r30)
/* 8030A134 00305D94 7C 63 D0 50 */ subf r3, r3, r26
/* 8030A138 00305D98 80 9E 00 04 */ lwz r4, 4(r30)
/* 8030A13C 00305D9C 7C 63 28 30 */ slw r3, r3, r5
/* 8030A140 00305DA0 2C 06 00 00 */ cmpwi r6, 0
/* 8030A144 00305DA4 7C 00 28 30 */ slw r0, r0, r5
/* 8030A148 00305DA8 7C 64 1A 14 */ add r3, r4, r3
/* 8030A14C 00305DAC 7C 83 02 14 */ add r4, r3, r0
/* 8030A150 00305DB0 40 82 00 10 */ bne lbl_8030A160
/* 8030A154 00305DB4 90 7E 00 0C */ stw r3, 0xc(r30)
/* 8030A158 00305DB8 90 9E 00 10 */ stw r4, 0x10(r30)
/* 8030A15C 00305DBC 48 00 02 10 */ b lbl_8030A36C
lbl_8030A160:
/* 8030A160 00305DC0 7C 03 30 40 */ cmplw r3, r6
/* 8030A164 00305DC4 40 80 00 0C */ bge lbl_8030A170
/* 8030A168 00305DC8 90 7E 00 0C */ stw r3, 0xc(r30)
/* 8030A16C 00305DCC 48 00 02 00 */ b lbl_8030A36C
lbl_8030A170:
/* 8030A170 00305DD0 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 8030A174 00305DD4 7C 00 20 40 */ cmplw r0, r4
/* 8030A178 00305DD8 40 80 01 F4 */ bge lbl_8030A36C
/* 8030A17C 00305DDC 90 9E 00 10 */ stw r4, 0x10(r30)
/* 8030A180 00305DE0 48 00 01 EC */ b lbl_8030A36C
lbl_8030A184:
/* 8030A184 00305DE4 7C 07 D0 40 */ cmplw r7, r26
/* 8030A188 00305DE8 41 80 00 78 */ blt lbl_8030A200
/* 8030A18C 00305DEC 80 9E 00 14 */ lwz r4, 0x14(r30)
/* 8030A190 00305DF0 7C 07 22 14 */ add r0, r7, r4
/* 8030A194 00305DF4 7C 00 F8 40 */ cmplw r0, r31
/* 8030A198 00305DF8 41 81 00 68 */ bgt lbl_8030A200
/* 8030A19C 00305DFC 88 B7 00 20 */ lbz r5, 0x20(r23)
/* 8030A1A0 00305E00 7C 1A 38 50 */ subf r0, r26, r7
/* 8030A1A4 00305E04 80 7E 00 04 */ lwz r3, 4(r30)
/* 8030A1A8 00305E08 7C 00 28 30 */ slw r0, r0, r5
/* 8030A1AC 00305E0C 7C 85 28 30 */ slw r5, r4, r5
/* 8030A1B0 00305E10 7C 99 02 14 */ add r4, r25, r0
/* 8030A1B4 00305E14 4B FF AC F9 */ bl VFipf_memcpy
/* 8030A1B8 00305E18 80 7E 00 14 */ lwz r3, 0x14(r30)
/* 8030A1BC 00305E1C 80 1C 00 00 */ lwz r0, 0(r28)
/* 8030A1C0 00305E20 7F A3 E8 50 */ subf r29, r3, r29
/* 8030A1C4 00305E24 7C 00 1A 14 */ add r0, r0, r3
/* 8030A1C8 00305E28 90 1C 00 00 */ stw r0, 0(r28)
/* 8030A1CC 00305E2C A0 1E 00 00 */ lhz r0, 0(r30)
/* 8030A1D0 00305E30 60 00 00 02 */ ori r0, r0, 2
/* 8030A1D4 00305E34 B0 1E 00 00 */ sth r0, 0(r30)
/* 8030A1D8 00305E38 80 1E 00 04 */ lwz r0, 4(r30)
/* 8030A1DC 00305E3C 90 1E 00 0C */ stw r0, 0xc(r30)
/* 8030A1E0 00305E40 80 7E 00 14 */ lwz r3, 0x14(r30)
/* 8030A1E4 00305E44 88 17 00 20 */ lbz r0, 0x20(r23)
/* 8030A1E8 00305E48 38 63 FF FF */ addi r3, r3, -1
/* 8030A1EC 00305E4C 80 9E 00 04 */ lwz r4, 4(r30)
/* 8030A1F0 00305E50 7C 60 00 30 */ slw r0, r3, r0
/* 8030A1F4 00305E54 7C 04 02 14 */ add r0, r4, r0
/* 8030A1F8 00305E58 90 1E 00 10 */ stw r0, 0x10(r30)
/* 8030A1FC 00305E5C 48 00 01 70 */ b lbl_8030A36C
lbl_8030A200:
/* 8030A200 00305E60 7C 07 D0 40 */ cmplw r7, r26
/* 8030A204 00305E64 40 81 00 A0 */ ble lbl_8030A2A4
/* 8030A208 00305E68 7C 07 F8 40 */ cmplw r7, r31
/* 8030A20C 00305E6C 40 80 00 98 */ bge lbl_8030A2A4
/* 8030A210 00305E70 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 8030A214 00305E74 7C 07 02 14 */ add r0, r7, r0
/* 8030A218 00305E78 7C 00 F8 40 */ cmplw r0, r31
/* 8030A21C 00305E7C 41 80 00 88 */ blt lbl_8030A2A4
/* 8030A220 00305E80 88 B7 00 20 */ lbz r5, 0x20(r23)
/* 8030A224 00305E84 7C 9A 38 50 */ subf r4, r26, r7
/* 8030A228 00305E88 7C 07 F8 50 */ subf r0, r7, r31
/* 8030A22C 00305E8C 80 7E 00 04 */ lwz r3, 4(r30)
/* 8030A230 00305E90 7C 84 28 30 */ slw r4, r4, r5
/* 8030A234 00305E94 7C 99 22 14 */ add r4, r25, r4
/* 8030A238 00305E98 7C 05 28 30 */ slw r5, r0, r5
/* 8030A23C 00305E9C 4B FF AC 71 */ bl VFipf_memcpy
/* 8030A240 00305EA0 80 BE 00 18 */ lwz r5, 0x18(r30)
/* 8030A244 00305EA4 7C 9B D2 14 */ add r4, r27, r26
/* 8030A248 00305EA8 80 1C 00 00 */ lwz r0, 0(r28)
/* 8030A24C 00305EAC 38 64 FF FF */ addi r3, r4, -1
/* 8030A250 00305EB0 7C 85 20 50 */ subf r4, r5, r4
/* 8030A254 00305EB4 7C 00 22 14 */ add r0, r0, r4
/* 8030A258 00305EB8 90 1C 00 00 */ stw r0, 0(r28)
/* 8030A25C 00305EBC 7F A4 E8 50 */ subf r29, r4, r29
/* 8030A260 00305EC0 A0 1E 00 00 */ lhz r0, 0(r30)
/* 8030A264 00305EC4 60 00 00 02 */ ori r0, r0, 2
/* 8030A268 00305EC8 B0 1E 00 00 */ sth r0, 0(r30)
/* 8030A26C 00305ECC 80 9E 00 18 */ lwz r4, 0x18(r30)
/* 8030A270 00305ED0 80 BE 00 04 */ lwz r5, 4(r30)
/* 8030A274 00305ED4 88 17 00 20 */ lbz r0, 0x20(r23)
/* 8030A278 00305ED8 7C 64 18 50 */ subf r3, r4, r3
/* 8030A27C 00305EDC 7C 60 00 30 */ slw r0, r3, r0
/* 8030A280 00305EE0 90 BE 00 0C */ stw r5, 0xc(r30)
/* 8030A284 00305EE4 7C 65 02 14 */ add r3, r5, r0
/* 8030A288 00305EE8 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 8030A28C 00305EEC 2C 00 00 00 */ cmpwi r0, 0
/* 8030A290 00305EF0 41 82 00 0C */ beq lbl_8030A29C
/* 8030A294 00305EF4 7C 00 18 40 */ cmplw r0, r3
/* 8030A298 00305EF8 40 80 00 D4 */ bge lbl_8030A36C
lbl_8030A29C:
/* 8030A29C 00305EFC 90 7E 00 10 */ stw r3, 0x10(r30)
/* 8030A2A0 00305F00 48 00 00 CC */ b lbl_8030A36C
lbl_8030A2A4:
/* 8030A2A4 00305F04 7C 07 D0 40 */ cmplw r7, r26
/* 8030A2A8 00305F08 40 80 00 C4 */ bge lbl_8030A36C
/* 8030A2AC 00305F0C 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 8030A2B0 00305F10 7C 67 02 14 */ add r3, r7, r0
/* 8030A2B4 00305F14 7C 03 D0 40 */ cmplw r3, r26
/* 8030A2B8 00305F18 40 81 00 B4 */ ble lbl_8030A36C
/* 8030A2BC 00305F1C 7C 03 F8 40 */ cmplw r3, r31
/* 8030A2C0 00305F20 41 81 00 AC */ bgt lbl_8030A36C
/* 8030A2C4 00305F24 88 D7 00 20 */ lbz r6, 0x20(r23)
/* 8030A2C8 00305F28 7C 67 D0 50 */ subf r3, r7, r26
/* 8030A2CC 00305F2C 80 BE 00 04 */ lwz r5, 4(r30)
/* 8030A2D0 00305F30 7C 03 00 50 */ subf r0, r3, r0
/* 8030A2D4 00305F34 7C 63 30 30 */ slw r3, r3, r6
/* 8030A2D8 00305F38 7F 24 CB 78 */ mr r4, r25
/* 8030A2DC 00305F3C 7C 65 1A 14 */ add r3, r5, r3
/* 8030A2E0 00305F40 7C 05 30 30 */ slw r5, r0, r6
/* 8030A2E4 00305F44 4B FF AB C9 */ bl VFipf_memcpy
/* 8030A2E8 00305F48 80 1E 00 18 */ lwz r0, 0x18(r30)
/* 8030A2EC 00305F4C 80 7E 00 14 */ lwz r3, 0x14(r30)
/* 8030A2F0 00305F50 7C 80 D0 50 */ subf r4, r0, r26
/* 8030A2F4 00305F54 80 1C 00 00 */ lwz r0, 0(r28)
/* 8030A2F8 00305F58 7C 64 18 50 */ subf r3, r4, r3
/* 8030A2FC 00305F5C 7C 00 1A 14 */ add r0, r0, r3
/* 8030A300 00305F60 90 1C 00 00 */ stw r0, 0(r28)
/* 8030A304 00305F64 7F A3 E8 50 */ subf r29, r3, r29
/* 8030A308 00305F68 A0 1E 00 00 */ lhz r0, 0(r30)
/* 8030A30C 00305F6C 60 00 00 02 */ ori r0, r0, 2
/* 8030A310 00305F70 B0 1E 00 00 */ sth r0, 0(r30)
/* 8030A314 00305F74 80 7E 00 18 */ lwz r3, 0x18(r30)
/* 8030A318 00305F78 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 8030A31C 00305F7C 7C 63 D0 50 */ subf r3, r3, r26
/* 8030A320 00305F80 80 BE 00 0C */ lwz r5, 0xc(r30)
/* 8030A324 00305F84 7C 63 00 50 */ subf r3, r3, r0
/* 8030A328 00305F88 88 17 00 20 */ lbz r0, 0x20(r23)
/* 8030A32C 00305F8C 38 63 FF FF */ addi r3, r3, -1
/* 8030A330 00305F90 2C 05 00 00 */ cmpwi r5, 0
/* 8030A334 00305F94 80 9E 00 04 */ lwz r4, 4(r30)
/* 8030A338 00305F98 7C 60 00 30 */ slw r0, r3, r0
/* 8030A33C 00305F9C 7C 04 02 14 */ add r0, r4, r0
/* 8030A340 00305FA0 41 82 00 0C */ beq lbl_8030A34C
/* 8030A344 00305FA4 7C 00 28 40 */ cmplw r0, r5
/* 8030A348 00305FA8 40 80 00 08 */ bge lbl_8030A350
lbl_8030A34C:
/* 8030A34C 00305FAC 90 1E 00 0C */ stw r0, 0xc(r30)
lbl_8030A350:
/* 8030A350 00305FB0 80 7E 00 14 */ lwz r3, 0x14(r30)
/* 8030A354 00305FB4 88 17 00 20 */ lbz r0, 0x20(r23)
/* 8030A358 00305FB8 38 63 FF FF */ addi r3, r3, -1
/* 8030A35C 00305FBC 80 9E 00 04 */ lwz r4, 4(r30)
/* 8030A360 00305FC0 7C 60 00 30 */ slw r0, r3, r0
/* 8030A364 00305FC4 7C 04 02 14 */ add r0, r4, r0
/* 8030A368 00305FC8 90 1E 00 10 */ stw r0, 0x10(r30)
lbl_8030A36C:
/* 8030A36C 00305FCC 2C 1E 00 00 */ cmpwi r30, 0
/* 8030A370 00305FD0 41 82 00 0C */ beq lbl_8030A37C
/* 8030A374 00305FD4 2C 1D 00 00 */ cmpwi r29, 0
/* 8030A378 00305FD8 40 82 FC E4 */ bne lbl_8030A05C
lbl_8030A37C:
/* 8030A37C 00305FDC 2C 1D 00 00 */ cmpwi r29, 0
/* 8030A380 00305FE0 40 82 00 10 */ bne lbl_8030A390
/* 8030A384 00305FE4 80 17 15 E8 */ lwz r0, 0x15e8(r23)
/* 8030A388 00305FE8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8030A38C 00305FEC 41 82 00 44 */ beq lbl_8030A3D0
lbl_8030A390:
/* 8030A390 00305FF0 7E E3 BB 78 */ mr r3, r23
/* 8030A394 00305FF4 7F 24 CB 78 */ mr r4, r25
/* 8030A398 00305FF8 7F 45 D3 78 */ mr r5, r26
/* 8030A39C 00305FFC 7F 66 DB 78 */ mr r6, r27
/* 8030A3A0 00306000 7F 87 E3 78 */ mr r7, r28
/* 8030A3A4 00306004 4B FF BE 9D */ bl VFiPFDRV_lwrite
/* 8030A3A8 00306008 2C 03 00 00 */ cmpwi r3, 0
/* 8030A3AC 0030600C 41 82 00 08 */ beq lbl_8030A3B4
/* 8030A3B0 00306010 48 00 00 60 */ b lbl_8030A410
lbl_8030A3B4:
/* 8030A3B4 00306014 7E E3 BB 78 */ mr r3, r23
/* 8030A3B8 00306018 38 80 00 01 */ li r4, 1
/* 8030A3BC 0030601C 48 01 19 E5 */ bl dCommon_FlushFromVol
/* 8030A3C0 00306020 2C 03 00 00 */ cmpwi r3, 0
/* 8030A3C4 00306024 41 82 00 0C */ beq lbl_8030A3D0
/* 8030A3C8 00306028 38 60 00 11 */ li r3, 0x11
/* 8030A3CC 0030602C 48 00 00 44 */ b lbl_8030A410
lbl_8030A3D0:
/* 8030A3D0 00306030 80 17 15 E8 */ lwz r0, 0x15e8(r23)
/* 8030A3D4 00306034 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8030A3D8 00306038 41 82 00 34 */ beq lbl_8030A40C
/* 8030A3DC 0030603C 7C 1B E8 40 */ cmplw r27, r29
/* 8030A3E0 00306040 41 82 00 2C */ beq lbl_8030A40C
/* 8030A3E4 00306044 80 97 15 F8 */ lwz r4, 0x15f8(r23)
/* 8030A3E8 00306048 7C 85 23 78 */ mr r5, r4
lbl_8030A3EC:
/* 8030A3EC 0030604C A0 65 00 00 */ lhz r3, 0(r5)
/* 8030A3F0 00306050 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 8030A3F4 00306054 41 82 00 18 */ beq lbl_8030A40C
/* 8030A3F8 00306058 54 60 07 FA */ rlwinm r0, r3, 0, 0x1f, 0x1d
/* 8030A3FC 0030605C B0 05 00 00 */ sth r0, 0(r5)
/* 8030A400 00306060 80 A5 00 20 */ lwz r5, 0x20(r5)
/* 8030A404 00306064 7C 05 20 40 */ cmplw r5, r4
/* 8030A408 00306068 40 82 FF E4 */ bne lbl_8030A3EC
lbl_8030A40C:
/* 8030A40C 0030606C 38 60 00 00 */ li r3, 0
lbl_8030A410:
/* 8030A410 00306070 39 61 00 30 */ addi r11, r1, 0x30
/* 8030A414 00306074 4B EB CD 51 */ bl _restgpr_23
/* 8030A418 00306078 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8030A41C 0030607C 7C 08 03 A6 */ mtlr r0
/* 8030A420 00306080 38 21 00 30 */ addi r1, r1, 0x30
/* 8030A424 00306084 4E 80 00 20 */ blr
.global VFiPFCACHE_DoFlushCache
VFiPFCACHE_DoFlushCache:
/* 8030A428 00306088 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8030A42C 0030608C 7C 08 02 A6 */ mflr r0
/* 8030A430 00306090 90 01 00 24 */ stw r0, 0x24(r1)
/* 8030A434 00306094 39 61 00 20 */ addi r11, r1, 0x20
/* 8030A438 00306098 4B EB CC ED */ bl _savegpr_26
/* 8030A43C 0030609C A0 04 00 00 */ lhz r0, 0(r4)
/* 8030A440 003060A0 7C 9B 23 78 */ mr r27, r4
/* 8030A444 003060A4 7C 7A 1B 78 */ mr r26, r3
/* 8030A448 003060A8 3B 80 00 00 */ li r28, 0
/* 8030A44C 003060AC 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8030A450 003060B0 7F 7F DB 78 */ mr r31, r27
/* 8030A454 003060B4 3B C0 00 00 */ li r30, 0
/* 8030A458 003060B8 40 82 00 0C */ bne lbl_8030A464
/* 8030A45C 003060BC 38 60 00 00 */ li r3, 0
/* 8030A460 003060C0 48 00 00 B0 */ b lbl_8030A510
lbl_8030A464:
/* 8030A464 003060C4 A0 7F 00 00 */ lhz r3, 0(r31)
/* 8030A468 003060C8 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 8030A46C 003060CC 41 82 00 6C */ beq lbl_8030A4D8
/* 8030A470 003060D0 2C 1F 00 00 */ cmpwi r31, 0
/* 8030A474 003060D4 3B A0 00 00 */ li r29, 0
/* 8030A478 003060D8 41 82 00 20 */ beq lbl_8030A498
/* 8030A47C 003060DC 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e
/* 8030A480 003060E0 41 82 00 18 */ beq lbl_8030A498
/* 8030A484 003060E4 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 8030A488 003060E8 3C 03 00 01 */ addis r0, r3, 1
/* 8030A48C 003060EC 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030A490 003060F0 41 82 00 08 */ beq lbl_8030A498
/* 8030A494 003060F4 3B A0 00 01 */ li r29, 1
lbl_8030A498:
/* 8030A498 003060F8 7F 43 D3 78 */ mr r3, r26
/* 8030A49C 003060FC 7F E4 FB 78 */ mr r4, r31
/* 8030A4A0 00306100 4B FF EE 1D */ bl VFiPFCACHE_FlushPageIfNeeded
/* 8030A4A4 00306104 2C 1D 00 00 */ cmpwi r29, 0
/* 8030A4A8 00306108 41 82 00 10 */ beq lbl_8030A4B8
/* 8030A4AC 0030610C 2C 03 00 00 */ cmpwi r3, 0
/* 8030A4B0 00306110 40 82 00 08 */ bne lbl_8030A4B8
/* 8030A4B4 00306114 3B 80 00 01 */ li r28, 1
lbl_8030A4B8:
/* 8030A4B8 00306118 2C 03 00 00 */ cmpwi r3, 0
/* 8030A4BC 0030611C 41 82 00 10 */ beq lbl_8030A4CC
/* 8030A4C0 00306120 2C 1E 00 00 */ cmpwi r30, 0
/* 8030A4C4 00306124 40 82 00 08 */ bne lbl_8030A4CC
/* 8030A4C8 00306128 7C 7E 1B 78 */ mr r30, r3
lbl_8030A4CC:
/* 8030A4CC 0030612C 83 FF 00 20 */ lwz r31, 0x20(r31)
/* 8030A4D0 00306130 7C 1F D8 40 */ cmplw r31, r27
/* 8030A4D4 00306134 40 82 FF 90 */ bne lbl_8030A464
lbl_8030A4D8:
/* 8030A4D8 00306138 2C 1C 00 00 */ cmpwi r28, 0
/* 8030A4DC 0030613C 41 82 00 30 */ beq lbl_8030A50C
/* 8030A4E0 00306140 7F C0 00 34 */ cntlzw r0, r30
/* 8030A4E4 00306144 7F 43 D3 78 */ mr r3, r26
/* 8030A4E8 00306148 54 1C D9 7E */ srwi r28, r0, 5
/* 8030A4EC 0030614C 7F 84 E3 78 */ mr r4, r28
/* 8030A4F0 00306150 48 01 18 B1 */ bl dCommon_FlushFromVol
/* 8030A4F4 00306154 2C 03 00 00 */ cmpwi r3, 0
/* 8030A4F8 00306158 41 82 00 14 */ beq lbl_8030A50C
/* 8030A4FC 0030615C 2C 1C 00 01 */ cmpwi r28, 1
/* 8030A500 00306160 40 82 00 0C */ bne lbl_8030A50C
/* 8030A504 00306164 38 60 00 11 */ li r3, 0x11
/* 8030A508 00306168 48 00 00 08 */ b lbl_8030A510
lbl_8030A50C:
/* 8030A50C 0030616C 7F C3 F3 78 */ mr r3, r30
lbl_8030A510:
/* 8030A510 00306170 39 61 00 20 */ addi r11, r1, 0x20
/* 8030A514 00306174 4B EB CC 5D */ bl _restgpr_26
/* 8030A518 00306178 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8030A51C 0030617C 7C 08 03 A6 */ mtlr r0
/* 8030A520 00306180 38 21 00 20 */ addi r1, r1, 0x20
/* 8030A524 00306184 4E 80 00 20 */ blr
.global VFiPFCACHE_InitCaches
VFiPFCACHE_InitCaches:
/* 8030A528 00306188 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8030A52C 0030618C 7C 08 02 A6 */ mflr r0
/* 8030A530 00306190 38 80 00 00 */ li r4, 0
/* 8030A534 00306194 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030A538 00306198 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8030A53C 0030619C 7C 7F 1B 78 */ mr r31, r3
/* 8030A540 003061A0 80 03 15 E8 */ lwz r0, 0x15e8(r3)
/* 8030A544 003061A4 A0 A3 15 EC */ lhz r5, 0x15ec(r3)
/* 8030A548 003061A8 54 06 00 3C */ rlwinm r6, r0, 0, 0, 0x1e
/* 8030A54C 003061AC A0 03 15 EE */ lhz r0, 0x15ee(r3)
/* 8030A550 003061B0 60 C6 00 02 */ ori r6, r6, 2
/* 8030A554 003061B4 54 C6 07 B8 */ rlwinm r6, r6, 0, 0x1e, 0x1c
/* 8030A558 003061B8 7C 05 02 14 */ add r0, r5, r0
/* 8030A55C 003061BC 90 C3 15 E8 */ stw r6, 0x15e8(r3)
/* 8030A560 003061C0 54 05 48 2C */ slwi r5, r0, 9
/* 8030A564 003061C4 80 63 15 FC */ lwz r3, 0x15fc(r3)
/* 8030A568 003061C8 4B FF AA 6D */ bl VFipf_memset
/* 8030A56C 003061CC 80 BF 15 F0 */ lwz r5, 0x15f0(r31)
/* 8030A570 003061D0 7F E3 FB 78 */ mr r3, r31
/* 8030A574 003061D4 80 DF 15 FC */ lwz r6, 0x15fc(r31)
/* 8030A578 003061D8 38 9F 15 F4 */ addi r4, r31, 0x15f4
/* 8030A57C 003061DC A0 FF 15 EC */ lhz r7, 0x15ec(r31)
/* 8030A580 003061E0 39 20 00 01 */ li r9, 1
/* 8030A584 003061E4 81 1F 16 00 */ lwz r8, 0x1600(r31)
/* 8030A588 003061E8 4B FF E9 51 */ bl VFiPFCACHE_InitPageList
/* 8030A58C 003061EC 2C 03 00 00 */ cmpwi r3, 0
/* 8030A590 003061F0 41 82 00 08 */ beq lbl_8030A598
/* 8030A594 003061F4 48 00 00 48 */ b lbl_8030A5DC
lbl_8030A598:
/* 8030A598 003061F8 A0 1F 15 EC */ lhz r0, 0x15ec(r31)
/* 8030A59C 003061FC 7F E3 FB 78 */ mr r3, r31
/* 8030A5A0 00306200 81 5F 15 F0 */ lwz r10, 0x15f0(r31)
/* 8030A5A4 00306204 38 9F 15 F8 */ addi r4, r31, 0x15f8
/* 8030A5A8 00306208 1C A0 00 28 */ mulli r5, r0, 0x28
/* 8030A5AC 0030620C 80 DF 15 FC */ lwz r6, 0x15fc(r31)
/* 8030A5B0 00306210 54 00 48 2C */ slwi r0, r0, 9
/* 8030A5B4 00306214 A0 FF 15 EE */ lhz r7, 0x15ee(r31)
/* 8030A5B8 00306218 81 1F 16 04 */ lwz r8, 0x1604(r31)
/* 8030A5BC 0030621C 39 20 00 00 */ li r9, 0
/* 8030A5C0 00306220 7C AA 2A 14 */ add r5, r10, r5
/* 8030A5C4 00306224 7C C6 02 14 */ add r6, r6, r0
/* 8030A5C8 00306228 4B FF E9 11 */ bl VFiPFCACHE_InitPageList
/* 8030A5CC 0030622C 7C 03 00 D0 */ neg r0, r3
/* 8030A5D0 00306230 7C 00 1B 78 */ or r0, r0, r3
/* 8030A5D4 00306234 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 8030A5D8 00306238 7C 63 00 38 */ and r3, r3, r0
lbl_8030A5DC:
/* 8030A5DC 0030623C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030A5E0 00306240 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8030A5E4 00306244 7C 08 03 A6 */ mtlr r0
/* 8030A5E8 00306248 38 21 00 10 */ addi r1, r1, 0x10
/* 8030A5EC 0030624C 4E 80 00 20 */ blr
.global VFiPFCACHE_UpdateModifiedSector
VFiPFCACHE_UpdateModifiedSector:
/* 8030A5F0 00306250 80 03 00 0C */ lwz r0, 0xc(r3)
/* 8030A5F4 00306254 2C 00 00 00 */ cmpwi r0, 0
/* 8030A5F8 00306258 40 82 00 20 */ bne lbl_8030A618
/* 8030A5FC 0030625C A0 83 00 00 */ lhz r4, 0(r3)
/* 8030A600 00306260 80 03 00 08 */ lwz r0, 8(r3)
/* 8030A604 00306264 60 84 00 02 */ ori r4, r4, 2
/* 8030A608 00306268 B0 83 00 00 */ sth r4, 0(r3)
/* 8030A60C 0030626C 90 03 00 0C */ stw r0, 0xc(r3)
/* 8030A610 00306270 90 03 00 10 */ stw r0, 0x10(r3)
/* 8030A614 00306274 48 00 00 28 */ b lbl_8030A63C
lbl_8030A618:
/* 8030A618 00306278 80 83 00 08 */ lwz r4, 8(r3)
/* 8030A61C 0030627C 7C 04 00 40 */ cmplw r4, r0
/* 8030A620 00306280 40 80 00 0C */ bge lbl_8030A62C
/* 8030A624 00306284 90 83 00 0C */ stw r4, 0xc(r3)
/* 8030A628 00306288 48 00 00 14 */ b lbl_8030A63C
lbl_8030A62C:
/* 8030A62C 0030628C 80 03 00 10 */ lwz r0, 0x10(r3)
/* 8030A630 00306290 7C 04 00 40 */ cmplw r4, r0
/* 8030A634 00306294 40 81 00 08 */ ble lbl_8030A63C
/* 8030A638 00306298 90 83 00 10 */ stw r4, 0x10(r3)
lbl_8030A63C:
/* 8030A63C 0030629C 38 60 00 00 */ li r3, 0
/* 8030A640 003062A0 4E 80 00 20 */ blr
.global VFiPFCACHE_AllocateFATPage
VFiPFCACHE_AllocateFATPage:
/* 8030A644 003062A4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8030A648 003062A8 7C 08 02 A6 */ mflr r0
/* 8030A64C 003062AC 7C A6 2B 78 */ mr r6, r5
/* 8030A650 003062B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030A654 003062B4 80 03 15 F4 */ lwz r0, 0x15f4(r3)
/* 8030A658 003062B8 2C 00 00 00 */ cmpwi r0, 0
/* 8030A65C 003062BC 40 82 00 2C */ bne lbl_8030A688
/* 8030A660 003062C0 80 03 15 FC */ lwz r0, 0x15fc(r3)
/* 8030A664 003062C4 80 83 15 F0 */ lwz r4, 0x15f0(r3)
/* 8030A668 003062C8 90 04 00 04 */ stw r0, 4(r4)
/* 8030A66C 003062CC 80 03 15 FC */ lwz r0, 0x15fc(r3)
/* 8030A670 003062D0 80 83 15 F0 */ lwz r4, 0x15f0(r3)
/* 8030A674 003062D4 90 04 00 08 */ stw r0, 8(r4)
/* 8030A678 003062D8 80 03 15 F0 */ lwz r0, 0x15f0(r3)
/* 8030A67C 003062DC 38 60 00 00 */ li r3, 0
/* 8030A680 003062E0 90 05 00 00 */ stw r0, 0(r5)
/* 8030A684 003062E4 48 00 00 24 */ b lbl_8030A6A8
lbl_8030A688:
/* 8030A688 003062E8 7C 85 23 78 */ mr r5, r4
/* 8030A68C 003062EC 38 83 15 F4 */ addi r4, r3, 0x15f4
/* 8030A690 003062F0 38 E1 00 08 */ addi r7, r1, 8
/* 8030A694 003062F4 4B FF ED 29 */ bl VFiPFCACHE_DoAllocatePage
/* 8030A698 003062F8 7C 03 00 D0 */ neg r0, r3
/* 8030A69C 003062FC 7C 00 1B 78 */ or r0, r0, r3
/* 8030A6A0 00306300 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 8030A6A4 00306304 7C 63 00 38 */ and r3, r3, r0
lbl_8030A6A8:
/* 8030A6A8 00306308 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030A6AC 0030630C 7C 08 03 A6 */ mtlr r0
/* 8030A6B0 00306310 38 21 00 10 */ addi r1, r1, 0x10
/* 8030A6B4 00306314 4E 80 00 20 */ blr
.global VFiPFCACHE_AllocateDataPage
VFiPFCACHE_AllocateDataPage:
/* 8030A6B8 00306318 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8030A6BC 0030631C 7C 08 02 A6 */ mflr r0
/* 8030A6C0 00306320 7C A6 2B 78 */ mr r6, r5
/* 8030A6C4 00306324 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030A6C8 00306328 80 03 15 F8 */ lwz r0, 0x15f8(r3)
/* 8030A6CC 0030632C 2C 00 00 00 */ cmpwi r0, 0
/* 8030A6D0 00306330 40 82 00 2C */ bne lbl_8030A6FC
/* 8030A6D4 00306334 80 03 15 FC */ lwz r0, 0x15fc(r3)
/* 8030A6D8 00306338 80 83 15 F0 */ lwz r4, 0x15f0(r3)
/* 8030A6DC 0030633C 90 04 00 04 */ stw r0, 4(r4)
/* 8030A6E0 00306340 80 03 15 FC */ lwz r0, 0x15fc(r3)
/* 8030A6E4 00306344 80 83 15 F0 */ lwz r4, 0x15f0(r3)
/* 8030A6E8 00306348 90 04 00 08 */ stw r0, 8(r4)
/* 8030A6EC 0030634C 80 03 15 F0 */ lwz r0, 0x15f0(r3)
/* 8030A6F0 00306350 38 60 00 00 */ li r3, 0
/* 8030A6F4 00306354 90 05 00 00 */ stw r0, 0(r5)
/* 8030A6F8 00306358 48 00 00 24 */ b lbl_8030A71C
lbl_8030A6FC:
/* 8030A6FC 0030635C 7C 85 23 78 */ mr r5, r4
/* 8030A700 00306360 38 83 15 F8 */ addi r4, r3, 0x15f8
/* 8030A704 00306364 38 E1 00 08 */ addi r7, r1, 8
/* 8030A708 00306368 4B FF EC B5 */ bl VFiPFCACHE_DoAllocatePage
/* 8030A70C 0030636C 7C 03 00 D0 */ neg r0, r3
/* 8030A710 00306370 7C 00 1B 78 */ or r0, r0, r3
/* 8030A714 00306374 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 8030A718 00306378 7C 63 00 38 */ and r3, r3, r0
lbl_8030A71C:
/* 8030A71C 0030637C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030A720 00306380 7C 08 03 A6 */ mtlr r0
/* 8030A724 00306384 38 21 00 10 */ addi r1, r1, 0x10
/* 8030A728 00306388 4E 80 00 20 */ blr
.global VFiPFCACHE_FreeFATPage
VFiPFCACHE_FreeFATPage:
/* 8030A72C 0030638C 80 03 15 F4 */ lwz r0, 0x15f4(r3)
/* 8030A730 00306390 2C 00 00 00 */ cmpwi r0, 0
/* 8030A734 00306394 4D 82 00 20 */ beqlr
/* 8030A738 00306398 A0 A4 00 00 */ lhz r5, 0(r4)
/* 8030A73C 0030639C 38 C0 00 00 */ li r6, 0
/* 8030A740 003063A0 38 00 FF FF */ li r0, -1
/* 8030A744 003063A4 90 C4 00 0C */ stw r6, 0xc(r4)
/* 8030A748 003063A8 54 A5 04 3A */ rlwinm r5, r5, 0, 0x10, 0x1d
/* 8030A74C 003063AC B0 A4 00 00 */ sth r5, 0(r4)
/* 8030A750 003063B0 90 C4 00 10 */ stw r6, 0x10(r4)
/* 8030A754 003063B4 90 04 00 18 */ stw r0, 0x18(r4)
/* 8030A758 003063B8 90 C4 00 1C */ stw r6, 0x1c(r4)
/* 8030A75C 003063BC 80 A3 15 F4 */ lwz r5, 0x15f4(r3)
/* 8030A760 003063C0 7C 04 28 40 */ cmplw r4, r5
/* 8030A764 003063C4 40 82 00 10 */ bne lbl_8030A774
/* 8030A768 003063C8 80 04 00 20 */ lwz r0, 0x20(r4)
/* 8030A76C 003063CC 90 03 15 F4 */ stw r0, 0x15f4(r3)
/* 8030A770 003063D0 4E 80 00 20 */ blr
lbl_8030A774:
/* 8030A774 003063D4 80 05 00 24 */ lwz r0, 0x24(r5)
/* 8030A778 003063D8 7C 04 00 40 */ cmplw r4, r0
/* 8030A77C 003063DC 4D 82 00 20 */ beqlr
/* 8030A780 003063E0 80 04 00 20 */ lwz r0, 0x20(r4)
/* 8030A784 003063E4 80 A4 00 24 */ lwz r5, 0x24(r4)
/* 8030A788 003063E8 90 05 00 20 */ stw r0, 0x20(r5)
/* 8030A78C 003063EC 80 04 00 24 */ lwz r0, 0x24(r4)
/* 8030A790 003063F0 80 A4 00 20 */ lwz r5, 0x20(r4)
/* 8030A794 003063F4 90 05 00 24 */ stw r0, 0x24(r5)
/* 8030A798 003063F8 80 A3 15 F4 */ lwz r5, 0x15f4(r3)
/* 8030A79C 003063FC 90 A4 00 20 */ stw r5, 0x20(r4)
/* 8030A7A0 00306400 80 63 15 F4 */ lwz r3, 0x15f4(r3)
/* 8030A7A4 00306404 80 03 00 24 */ lwz r0, 0x24(r3)
/* 8030A7A8 00306408 90 04 00 24 */ stw r0, 0x24(r4)
/* 8030A7AC 0030640C 90 85 00 24 */ stw r4, 0x24(r5)
/* 8030A7B0 00306410 80 64 00 24 */ lwz r3, 0x24(r4)
/* 8030A7B4 00306414 90 83 00 20 */ stw r4, 0x20(r3)
/* 8030A7B8 00306418 4E 80 00 20 */ blr
.global VFiPFCACHE_FreeDataPage
VFiPFCACHE_FreeDataPage:
/* 8030A7BC 0030641C 80 03 15 F8 */ lwz r0, 0x15f8(r3)
/* 8030A7C0 00306420 2C 00 00 00 */ cmpwi r0, 0
/* 8030A7C4 00306424 4D 82 00 20 */ beqlr
/* 8030A7C8 00306428 A0 A4 00 00 */ lhz r5, 0(r4)
/* 8030A7CC 0030642C 38 C0 00 00 */ li r6, 0
/* 8030A7D0 00306430 38 00 FF FF */ li r0, -1
/* 8030A7D4 00306434 90 C4 00 0C */ stw r6, 0xc(r4)
/* 8030A7D8 00306438 54 A5 04 3A */ rlwinm r5, r5, 0, 0x10, 0x1d
/* 8030A7DC 0030643C B0 A4 00 00 */ sth r5, 0(r4)
/* 8030A7E0 00306440 90 C4 00 10 */ stw r6, 0x10(r4)
/* 8030A7E4 00306444 90 04 00 18 */ stw r0, 0x18(r4)
/* 8030A7E8 00306448 90 C4 00 1C */ stw r6, 0x1c(r4)
/* 8030A7EC 0030644C 80 A3 15 F8 */ lwz r5, 0x15f8(r3)
/* 8030A7F0 00306450 7C 04 28 40 */ cmplw r4, r5
/* 8030A7F4 00306454 40 82 00 10 */ bne lbl_8030A804
/* 8030A7F8 00306458 80 04 00 20 */ lwz r0, 0x20(r4)
/* 8030A7FC 0030645C 90 03 15 F8 */ stw r0, 0x15f8(r3)
/* 8030A800 00306460 4E 80 00 20 */ blr
lbl_8030A804:
/* 8030A804 00306464 80 05 00 24 */ lwz r0, 0x24(r5)
/* 8030A808 00306468 7C 04 00 40 */ cmplw r4, r0
/* 8030A80C 0030646C 4D 82 00 20 */ beqlr
/* 8030A810 00306470 80 04 00 20 */ lwz r0, 0x20(r4)
/* 8030A814 00306474 80 A4 00 24 */ lwz r5, 0x24(r4)
/* 8030A818 00306478 90 05 00 20 */ stw r0, 0x20(r5)
/* 8030A81C 0030647C 80 04 00 24 */ lwz r0, 0x24(r4)
/* 8030A820 00306480 80 A4 00 20 */ lwz r5, 0x20(r4)
/* 8030A824 00306484 90 05 00 24 */ stw r0, 0x24(r5)
/* 8030A828 00306488 80 A3 15 F8 */ lwz r5, 0x15f8(r3)
/* 8030A82C 0030648C 90 A4 00 20 */ stw r5, 0x20(r4)
/* 8030A830 00306490 80 63 15 F8 */ lwz r3, 0x15f8(r3)
/* 8030A834 00306494 80 03 00 24 */ lwz r0, 0x24(r3)
/* 8030A838 00306498 90 04 00 24 */ stw r0, 0x24(r4)
/* 8030A83C 0030649C 90 85 00 24 */ stw r4, 0x24(r5)
/* 8030A840 003064A0 80 64 00 24 */ lwz r3, 0x24(r4)
/* 8030A844 003064A4 90 83 00 20 */ stw r4, 0x20(r3)
/* 8030A848 003064A8 4E 80 00 20 */ blr
.global VFiPFCACHE_ReadFATPage
VFiPFCACHE_ReadFATPage:
/* 8030A84C 003064AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8030A850 003064B0 7C 08 02 A6 */ mflr r0
/* 8030A854 003064B4 7C A6 2B 78 */ mr r6, r5
/* 8030A858 003064B8 7C 85 23 78 */ mr r5, r4
/* 8030A85C 003064BC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030A860 003064C0 38 83 15 F4 */ addi r4, r3, 0x15f4
/* 8030A864 003064C4 38 E0 00 00 */ li r7, 0
/* 8030A868 003064C8 4B FF ED CD */ bl VFiPFCACHE_DoReadPage
/* 8030A86C 003064CC 7C 03 00 D0 */ neg r0, r3
/* 8030A870 003064D0 7C 00 1B 78 */ or r0, r0, r3
/* 8030A874 003064D4 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 8030A878 003064D8 7C 63 00 38 */ and r3, r3, r0
/* 8030A87C 003064DC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030A880 003064E0 7C 08 03 A6 */ mtlr r0
/* 8030A884 003064E4 38 21 00 10 */ addi r1, r1, 0x10
/* 8030A888 003064E8 4E 80 00 20 */ blr
.global VFiPFCACHE_ReadDataPage
VFiPFCACHE_ReadDataPage:
/* 8030A88C 003064EC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8030A890 003064F0 7C 08 02 A6 */ mflr r0
/* 8030A894 003064F4 7C 88 23 78 */ mr r8, r4
/* 8030A898 003064F8 7C C7 33 78 */ mr r7, r6
/* 8030A89C 003064FC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030A8A0 00306500 7C A0 2B 78 */ mr r0, r5
/* 8030A8A4 00306504 38 83 15 F8 */ addi r4, r3, 0x15f8
/* 8030A8A8 00306508 7D 05 43 78 */ mr r5, r8
/* 8030A8AC 0030650C 7C 06 03 78 */ mr r6, r0
/* 8030A8B0 00306510 4B FF ED 85 */ bl VFiPFCACHE_DoReadPage
/* 8030A8B4 00306514 7C 03 00 D0 */ neg r0, r3
/* 8030A8B8 00306518 7C 00 1B 78 */ or r0, r0, r3
/* 8030A8BC 0030651C 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 8030A8C0 00306520 7C 63 00 38 */ and r3, r3, r0
/* 8030A8C4 00306524 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030A8C8 00306528 7C 08 03 A6 */ mtlr r0
/* 8030A8CC 0030652C 38 21 00 10 */ addi r1, r1, 0x10
/* 8030A8D0 00306530 4E 80 00 20 */ blr
.global VFiPFCACHE_ReadDataPageAndFlushIfNeeded
VFiPFCACHE_ReadDataPageAndFlushIfNeeded:
/* 8030A8D4 00306534 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8030A8D8 00306538 7C 08 02 A6 */ mflr r0
/* 8030A8DC 0030653C 7C 88 23 78 */ mr r8, r4
/* 8030A8E0 00306540 7C C7 33 78 */ mr r7, r6
/* 8030A8E4 00306544 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030A8E8 00306548 7C A0 2B 78 */ mr r0, r5
/* 8030A8EC 0030654C 38 83 15 F8 */ addi r4, r3, 0x15f8
/* 8030A8F0 00306550 7D 05 43 78 */ mr r5, r8
/* 8030A8F4 00306554 7C 06 03 78 */ mr r6, r0
/* 8030A8F8 00306558 4B FF EF 49 */ bl VFiPFCACHE_DoReadPageAndFlushIfNeeded
/* 8030A8FC 0030655C 7C 03 00 D0 */ neg r0, r3
/* 8030A900 00306560 7C 00 1B 78 */ or r0, r0, r3
/* 8030A904 00306564 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 8030A908 00306568 7C 63 00 38 */ and r3, r3, r0
/* 8030A90C 0030656C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030A910 00306570 7C 08 03 A6 */ mtlr r0
/* 8030A914 00306574 38 21 00 10 */ addi r1, r1, 0x10
/* 8030A918 00306578 4E 80 00 20 */ blr
.global VFiPFCACHE_ReadDataNumSector
VFiPFCACHE_ReadDataNumSector:
/* 8030A91C 0030657C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8030A920 00306580 7C 08 02 A6 */ mflr r0
/* 8030A924 00306584 7C AA 2B 78 */ mr r10, r5
/* 8030A928 00306588 7C C9 33 78 */ mr r9, r6
/* 8030A92C 0030658C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030A930 00306590 7C E8 3B 78 */ mr r8, r7
/* 8030A934 00306594 80 03 00 08 */ lwz r0, 8(r3)
/* 8030A938 00306598 7C 05 00 40 */ cmplw r5, r0
/* 8030A93C 0030659C 41 80 00 0C */ blt lbl_8030A948
/* 8030A940 003065A0 38 60 00 10 */ li r3, 0x10
/* 8030A944 003065A4 48 00 00 28 */ b lbl_8030A96C
lbl_8030A948:
/* 8030A948 003065A8 7C 85 23 78 */ mr r5, r4
/* 8030A94C 003065AC 7D 46 53 78 */ mr r6, r10
/* 8030A950 003065B0 7D 27 4B 78 */ mr r7, r9
/* 8030A954 003065B4 38 83 15 F8 */ addi r4, r3, 0x15f8
/* 8030A958 003065B8 4B FF F1 85 */ bl VFiPFCACHE_DoReadNumSector
/* 8030A95C 003065BC 7C 03 00 D0 */ neg r0, r3
/* 8030A960 003065C0 7C 00 1B 78 */ or r0, r0, r3
/* 8030A964 003065C4 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 8030A968 003065C8 7C 63 00 38 */ and r3, r3, r0
lbl_8030A96C:
/* 8030A96C 003065CC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030A970 003065D0 7C 08 03 A6 */ mtlr r0
/* 8030A974 003065D4 38 21 00 10 */ addi r1, r1, 0x10
/* 8030A978 003065D8 4E 80 00 20 */ blr
.global VFiPFCACHE_WriteFATPage
VFiPFCACHE_WriteFATPage:
/* 8030A97C 003065DC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8030A980 003065E0 7C 08 02 A6 */ mflr r0
/* 8030A984 003065E4 7C 85 23 78 */ mr r5, r4
/* 8030A988 003065E8 38 83 15 F4 */ addi r4, r3, 0x15f4
/* 8030A98C 003065EC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030A990 003065F0 38 C0 00 00 */ li r6, 0
/* 8030A994 003065F4 4B FF F3 9D */ bl VFiPFCACHE_DoWritePage
/* 8030A998 003065F8 7C 03 00 D0 */ neg r0, r3
/* 8030A99C 003065FC 7C 00 1B 78 */ or r0, r0, r3
/* 8030A9A0 00306600 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 8030A9A4 00306604 7C 63 00 38 */ and r3, r3, r0
/* 8030A9A8 00306608 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030A9AC 0030660C 7C 08 03 A6 */ mtlr r0
/* 8030A9B0 00306610 38 21 00 10 */ addi r1, r1, 0x10
/* 8030A9B4 00306614 4E 80 00 20 */ blr
.global VFiPFCACHE_WriteDataPage
VFiPFCACHE_WriteDataPage:
/* 8030A9B8 00306618 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8030A9BC 0030661C 7C 08 02 A6 */ mflr r0
/* 8030A9C0 00306620 7C A6 2B 78 */ mr r6, r5
/* 8030A9C4 00306624 7C 85 23 78 */ mr r5, r4
/* 8030A9C8 00306628 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030A9CC 0030662C 38 83 15 F8 */ addi r4, r3, 0x15f8
/* 8030A9D0 00306630 4B FF F3 61 */ bl VFiPFCACHE_DoWritePage
/* 8030A9D4 00306634 7C 03 00 D0 */ neg r0, r3
/* 8030A9D8 00306638 7C 00 1B 78 */ or r0, r0, r3
/* 8030A9DC 0030663C 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 8030A9E0 00306640 7C 63 00 38 */ and r3, r3, r0
/* 8030A9E4 00306644 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030A9E8 00306648 7C 08 03 A6 */ mtlr r0
/* 8030A9EC 0030664C 38 21 00 10 */ addi r1, r1, 0x10
/* 8030A9F0 00306650 4E 80 00 20 */ blr
.global VFiPFCACHE_WriteFATSectorAndFreeIfNeeded
VFiPFCACHE_WriteFATSectorAndFreeIfNeeded:
/* 8030A9F4 00306654 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8030A9F8 00306658 7C 08 02 A6 */ mflr r0
/* 8030A9FC 0030665C 7C A6 2B 78 */ mr r6, r5
/* 8030AA00 00306660 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030AA04 00306664 80 03 00 08 */ lwz r0, 8(r3)
/* 8030AA08 00306668 7C 05 00 40 */ cmplw r5, r0
/* 8030AA0C 0030666C 41 80 00 0C */ blt lbl_8030AA18
/* 8030AA10 00306670 38 60 00 10 */ li r3, 0x10
/* 8030AA14 00306674 48 00 00 20 */ b lbl_8030AA34
lbl_8030AA18:
/* 8030AA18 00306678 7C 85 23 78 */ mr r5, r4
/* 8030AA1C 0030667C 38 83 15 F4 */ addi r4, r3, 0x15f4
/* 8030AA20 00306680 4B FF F4 91 */ bl VFiPFCACHE_DoWriteSector
/* 8030AA24 00306684 7C 03 00 D0 */ neg r0, r3
/* 8030AA28 00306688 7C 00 1B 78 */ or r0, r0, r3
/* 8030AA2C 0030668C 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 8030AA30 00306690 7C 63 00 38 */ and r3, r3, r0
lbl_8030AA34:
/* 8030AA34 00306694 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030AA38 00306698 7C 08 03 A6 */ mtlr r0
/* 8030AA3C 0030669C 38 21 00 10 */ addi r1, r1, 0x10
/* 8030AA40 003066A0 4E 80 00 20 */ blr
.global VFiPFCACHE_WriteDataNumSectorAndFreeIfNeeded
VFiPFCACHE_WriteDataNumSectorAndFreeIfNeeded:
/* 8030AA44 003066A4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8030AA48 003066A8 7C 08 02 A6 */ mflr r0
/* 8030AA4C 003066AC 7C AA 2B 78 */ mr r10, r5
/* 8030AA50 003066B0 7C C9 33 78 */ mr r9, r6
/* 8030AA54 003066B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030AA58 003066B8 7C E8 3B 78 */ mr r8, r7
/* 8030AA5C 003066BC 80 03 00 08 */ lwz r0, 8(r3)
/* 8030AA60 003066C0 7C 05 00 40 */ cmplw r5, r0
/* 8030AA64 003066C4 41 80 00 0C */ blt lbl_8030AA70
/* 8030AA68 003066C8 38 60 00 10 */ li r3, 0x10
/* 8030AA6C 003066CC 48 00 00 28 */ b lbl_8030AA94
lbl_8030AA70:
/* 8030AA70 003066D0 7C 85 23 78 */ mr r5, r4
/* 8030AA74 003066D4 7D 46 53 78 */ mr r6, r10
/* 8030AA78 003066D8 7D 27 4B 78 */ mr r7, r9
/* 8030AA7C 003066DC 38 83 15 F8 */ addi r4, r3, 0x15f8
/* 8030AA80 003066E0 4B FF F5 A1 */ bl VFiPFCACHE_DoWriteNumSectorAndFreeIfNeeded
/* 8030AA84 003066E4 7C 03 00 D0 */ neg r0, r3
/* 8030AA88 003066E8 7C 00 1B 78 */ or r0, r0, r3
/* 8030AA8C 003066EC 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 8030AA90 003066F0 7C 63 00 38 */ and r3, r3, r0
lbl_8030AA94:
/* 8030AA94 003066F4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030AA98 003066F8 7C 08 03 A6 */ mtlr r0
/* 8030AA9C 003066FC 38 21 00 10 */ addi r1, r1, 0x10
/* 8030AAA0 00306700 4E 80 00 20 */ blr
.global VFiPFCACHE_SearchDataCache
VFiPFCACHE_SearchDataCache:
/* 8030AAA4 00306704 7C 85 23 78 */ mr r5, r4
/* 8030AAA8 00306708 80 83 15 F8 */ lwz r4, 0x15f8(r3)
/* 8030AAAC 0030670C 4B FF E6 AC */ b VFiPFCACHE_SearchForPage
.global VFiPFCACHE_FlushFATCache
VFiPFCACHE_FlushFATCache:
/* 8030AAB0 00306710 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8030AAB4 00306714 7C 08 02 A6 */ mflr r0
/* 8030AAB8 00306718 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030AABC 0030671C 80 83 15 F4 */ lwz r4, 0x15f4(r3)
/* 8030AAC0 00306720 4B FF F9 69 */ bl VFiPFCACHE_DoFlushCache
/* 8030AAC4 00306724 7C 03 00 D0 */ neg r0, r3
/* 8030AAC8 00306728 7C 00 1B 78 */ or r0, r0, r3
/* 8030AACC 0030672C 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 8030AAD0 00306730 7C 63 00 38 */ and r3, r3, r0
/* 8030AAD4 00306734 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030AAD8 00306738 7C 08 03 A6 */ mtlr r0
/* 8030AADC 0030673C 38 21 00 10 */ addi r1, r1, 0x10
/* 8030AAE0 00306740 4E 80 00 20 */ blr
.global VFiPFCACHE_FlushDataCacheSpecific
VFiPFCACHE_FlushDataCacheSpecific:
/* 8030AAE4 00306744 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8030AAE8 00306748 7C 08 02 A6 */ mflr r0
/* 8030AAEC 0030674C 90 01 00 34 */ stw r0, 0x34(r1)
/* 8030AAF0 00306750 39 61 00 30 */ addi r11, r1, 0x30
/* 8030AAF4 00306754 4B EB C6 2D */ bl _savegpr_25
/* 8030AAF8 00306758 80 03 15 E8 */ lwz r0, 0x15e8(r3)
/* 8030AAFC 0030675C 7C 7E 1B 78 */ mr r30, r3
/* 8030AB00 00306760 7C 9F 23 78 */ mr r31, r4
/* 8030AB04 00306764 3B A0 00 00 */ li r29, 0
/* 8030AB08 00306768 54 00 07 7F */ clrlwi. r0, r0, 0x1d
/* 8030AB0C 0030676C 3B 20 00 00 */ li r25, 0
/* 8030AB10 00306770 41 82 01 18 */ beq lbl_8030AC28
/* 8030AB14 00306774 83 83 15 F8 */ lwz r28, 0x15f8(r3)
/* 8030AB18 00306778 80 1C 00 1C */ lwz r0, 0x1c(r28)
/* 8030AB1C 0030677C 2C 00 00 00 */ cmpwi r0, 0
/* 8030AB20 00306780 41 82 00 0C */ beq lbl_8030AB2C
/* 8030AB24 00306784 7C 00 20 40 */ cmplw r0, r4
/* 8030AB28 00306788 40 82 00 48 */ bne lbl_8030AB70
lbl_8030AB2C:
/* 8030AB2C 0030678C 2C 1C 00 00 */ cmpwi r28, 0
/* 8030AB30 00306790 41 82 00 24 */ beq lbl_8030AB54
/* 8030AB34 00306794 A0 1C 00 00 */ lhz r0, 0(r28)
/* 8030AB38 00306798 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 8030AB3C 0030679C 41 82 00 18 */ beq lbl_8030AB54
/* 8030AB40 003067A0 80 7C 00 18 */ lwz r3, 0x18(r28)
/* 8030AB44 003067A4 3C 03 00 01 */ addis r0, r3, 1
/* 8030AB48 003067A8 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030AB4C 003067AC 41 82 00 08 */ beq lbl_8030AB54
/* 8030AB50 003067B0 3B 20 00 01 */ li r25, 1
lbl_8030AB54:
/* 8030AB54 003067B4 7F C3 F3 78 */ mr r3, r30
/* 8030AB58 003067B8 7F 84 E3 78 */ mr r4, r28
/* 8030AB5C 003067BC 4B FF E7 61 */ bl VFiPFCACHE_FlushPageIfNeeded
/* 8030AB60 003067C0 2C 03 00 00 */ cmpwi r3, 0
/* 8030AB64 003067C4 7C 7D 1B 78 */ mr r29, r3
/* 8030AB68 003067C8 41 82 00 08 */ beq lbl_8030AB70
/* 8030AB6C 003067CC 48 00 00 C0 */ b lbl_8030AC2C
lbl_8030AB70:
/* 8030AB70 003067D0 83 7C 00 20 */ lwz r27, 0x20(r28)
/* 8030AB74 003067D4 48 00 00 88 */ b lbl_8030ABFC
lbl_8030AB78:
/* 8030AB78 003067D8 80 1B 00 1C */ lwz r0, 0x1c(r27)
/* 8030AB7C 003067DC 2C 00 00 00 */ cmpwi r0, 0
/* 8030AB80 003067E0 41 82 00 0C */ beq lbl_8030AB8C
/* 8030AB84 003067E4 7C 00 F8 40 */ cmplw r0, r31
/* 8030AB88 003067E8 40 82 00 70 */ bne lbl_8030ABF8
lbl_8030AB8C:
/* 8030AB8C 003067EC 2C 1B 00 00 */ cmpwi r27, 0
/* 8030AB90 003067F0 3B 40 00 00 */ li r26, 0
/* 8030AB94 003067F4 41 82 00 24 */ beq lbl_8030ABB8
/* 8030AB98 003067F8 A0 1B 00 00 */ lhz r0, 0(r27)
/* 8030AB9C 003067FC 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 8030ABA0 00306800 41 82 00 18 */ beq lbl_8030ABB8
/* 8030ABA4 00306804 80 7B 00 18 */ lwz r3, 0x18(r27)
/* 8030ABA8 00306808 3C 03 00 01 */ addis r0, r3, 1
/* 8030ABAC 0030680C 28 00 FF FF */ cmplwi r0, 0xffff
/* 8030ABB0 00306810 41 82 00 08 */ beq lbl_8030ABB8
/* 8030ABB4 00306814 3B 40 00 01 */ li r26, 1
lbl_8030ABB8:
/* 8030ABB8 00306818 7F C3 F3 78 */ mr r3, r30
/* 8030ABBC 0030681C 7F 64 DB 78 */ mr r4, r27
/* 8030ABC0 00306820 4B FF E6 FD */ bl VFiPFCACHE_FlushPageIfNeeded
/* 8030ABC4 00306824 2C 03 00 00 */ cmpwi r3, 0
/* 8030ABC8 00306828 7C 7D 1B 78 */ mr r29, r3
/* 8030ABCC 0030682C 41 82 00 20 */ beq lbl_8030ABEC
/* 8030ABD0 00306830 2C 19 00 00 */ cmpwi r25, 0
/* 8030ABD4 00306834 41 82 00 10 */ beq lbl_8030ABE4
/* 8030ABD8 00306838 7F C3 F3 78 */ mr r3, r30
/* 8030ABDC 0030683C 38 80 00 00 */ li r4, 0
/* 8030ABE0 00306840 48 01 11 C1 */ bl dCommon_FlushFromVol
lbl_8030ABE4:
/* 8030ABE4 00306844 7F A3 EB 78 */ mr r3, r29
/* 8030ABE8 00306848 48 00 00 44 */ b lbl_8030AC2C
lbl_8030ABEC:
/* 8030ABEC 0030684C 2C 1A 00 00 */ cmpwi r26, 0
/* 8030ABF0 00306850 41 82 00 08 */ beq lbl_8030ABF8
/* 8030ABF4 00306854 3B 20 00 01 */ li r25, 1
lbl_8030ABF8:
/* 8030ABF8 00306858 83 7B 00 20 */ lwz r27, 0x20(r27)
lbl_8030ABFC:
/* 8030ABFC 0030685C 7C 1B E0 40 */ cmplw r27, r28
/* 8030AC00 00306860 40 82 FF 78 */ bne lbl_8030AB78
/* 8030AC04 00306864 2C 19 00 00 */ cmpwi r25, 0
/* 8030AC08 00306868 41 82 00 20 */ beq lbl_8030AC28
/* 8030AC0C 0030686C 7F C3 F3 78 */ mr r3, r30
/* 8030AC10 00306870 38 80 00 01 */ li r4, 1
/* 8030AC14 00306874 48 01 11 8D */ bl dCommon_FlushFromVol
/* 8030AC18 00306878 2C 03 00 00 */ cmpwi r3, 0
/* 8030AC1C 0030687C 41 82 00 0C */ beq lbl_8030AC28
/* 8030AC20 00306880 38 60 00 11 */ li r3, 0x11
/* 8030AC24 00306884 48 00 00 08 */ b lbl_8030AC2C
lbl_8030AC28:
/* 8030AC28 00306888 7F A3 EB 78 */ mr r3, r29
lbl_8030AC2C:
/* 8030AC2C 0030688C 39 61 00 30 */ addi r11, r1, 0x30
/* 8030AC30 00306890 4B EB C5 3D */ bl _restgpr_25
/* 8030AC34 00306894 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8030AC38 00306898 7C 08 03 A6 */ mtlr r0
/* 8030AC3C 0030689C 38 21 00 30 */ addi r1, r1, 0x30
/* 8030AC40 003068A0 4E 80 00 20 */ blr
.global VFiPFCACHE_FreeAllCaches
VFiPFCACHE_FreeAllCaches:
/* 8030AC44 003068A4 38 E0 00 00 */ li r7, 0
/* 8030AC48 003068A8 38 C0 FF FF */ li r6, -1
/* 8030AC4C 003068AC 48 00 00 84 */ b lbl_8030ACD0
lbl_8030AC50:
/* 8030AC50 003068B0 2C 08 00 00 */ cmpwi r8, 0
/* 8030AC54 003068B4 41 82 00 7C */ beq lbl_8030ACD0
/* 8030AC58 003068B8 A0 08 00 00 */ lhz r0, 0(r8)
/* 8030AC5C 003068BC 54 00 04 3A */ rlwinm r0, r0, 0, 0x10, 0x1d
/* 8030AC60 003068C0 B0 08 00 00 */ sth r0, 0(r8)
/* 8030AC64 003068C4 90 E8 00 0C */ stw r7, 0xc(r8)
/* 8030AC68 003068C8 90 E8 00 10 */ stw r7, 0x10(r8)
/* 8030AC6C 003068CC 90 C8 00 18 */ stw r6, 0x18(r8)
/* 8030AC70 003068D0 90 E8 00 1C */ stw r7, 0x1c(r8)
/* 8030AC74 003068D4 80 83 15 F4 */ lwz r4, 0x15f4(r3)
/* 8030AC78 003068D8 7C 08 20 40 */ cmplw r8, r4
/* 8030AC7C 003068DC 40 82 00 10 */ bne lbl_8030AC8C
/* 8030AC80 003068E0 80 08 00 20 */ lwz r0, 0x20(r8)
/* 8030AC84 003068E4 90 03 15 F4 */ stw r0, 0x15f4(r3)
/* 8030AC88 003068E8 48 00 00 48 */ b lbl_8030ACD0
lbl_8030AC8C:
/* 8030AC8C 003068EC 80 04 00 24 */ lwz r0, 0x24(r4)
/* 8030AC90 003068F0 7C 08 00 40 */ cmplw r8, r0
/* 8030AC94 003068F4 41 82 00 3C */ beq lbl_8030ACD0
/* 8030AC98 003068F8 80 08 00 20 */ lwz r0, 0x20(r8)
/* 8030AC9C 003068FC 80 88 00 24 */ lwz r4, 0x24(r8)
/* 8030ACA0 00306900 90 04 00 20 */ stw r0, 0x20(r4)
/* 8030ACA4 00306904 80 08 00 24 */ lwz r0, 0x24(r8)
/* 8030ACA8 00306908 80 88 00 20 */ lwz r4, 0x20(r8)
/* 8030ACAC 0030690C 90 04 00 24 */ stw r0, 0x24(r4)
/* 8030ACB0 00306910 80 A3 15 F4 */ lwz r5, 0x15f4(r3)
/* 8030ACB4 00306914 90 A8 00 20 */ stw r5, 0x20(r8)
/* 8030ACB8 00306918 80 83 15 F4 */ lwz r4, 0x15f4(r3)
/* 8030ACBC 0030691C 80 04 00 24 */ lwz r0, 0x24(r4)
/* 8030ACC0 00306920 90 08 00 24 */ stw r0, 0x24(r8)
/* 8030ACC4 00306924 91 05 00 24 */ stw r8, 0x24(r5)
/* 8030ACC8 00306928 80 88 00 24 */ lwz r4, 0x24(r8)
/* 8030ACCC 0030692C 91 04 00 20 */ stw r8, 0x20(r4)
lbl_8030ACD0:
/* 8030ACD0 00306930 81 03 15 F4 */ lwz r8, 0x15f4(r3)
/* 8030ACD4 00306934 A0 08 00 00 */ lhz r0, 0(r8)
/* 8030ACD8 00306938 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8030ACDC 0030693C 40 82 FF 74 */ bne lbl_8030AC50
/* 8030ACE0 00306940 38 E0 00 00 */ li r7, 0
/* 8030ACE4 00306944 38 C0 FF FF */ li r6, -1
/* 8030ACE8 00306948 48 00 00 84 */ b lbl_8030AD6C
lbl_8030ACEC:
/* 8030ACEC 0030694C 2C 08 00 00 */ cmpwi r8, 0
/* 8030ACF0 00306950 41 82 00 7C */ beq lbl_8030AD6C
/* 8030ACF4 00306954 A0 08 00 00 */ lhz r0, 0(r8)
/* 8030ACF8 00306958 54 00 04 3A */ rlwinm r0, r0, 0, 0x10, 0x1d
/* 8030ACFC 0030695C B0 08 00 00 */ sth r0, 0(r8)
/* 8030AD00 00306960 90 E8 00 0C */ stw r7, 0xc(r8)
/* 8030AD04 00306964 90 E8 00 10 */ stw r7, 0x10(r8)
/* 8030AD08 00306968 90 C8 00 18 */ stw r6, 0x18(r8)
/* 8030AD0C 0030696C 90 E8 00 1C */ stw r7, 0x1c(r8)
/* 8030AD10 00306970 80 83 15 F8 */ lwz r4, 0x15f8(r3)
/* 8030AD14 00306974 7C 08 20 40 */ cmplw r8, r4
/* 8030AD18 00306978 40 82 00 10 */ bne lbl_8030AD28
/* 8030AD1C 0030697C 80 08 00 20 */ lwz r0, 0x20(r8)
/* 8030AD20 00306980 90 03 15 F8 */ stw r0, 0x15f8(r3)
/* 8030AD24 00306984 48 00 00 48 */ b lbl_8030AD6C
lbl_8030AD28:
/* 8030AD28 00306988 80 04 00 24 */ lwz r0, 0x24(r4)
/* 8030AD2C 0030698C 7C 08 00 40 */ cmplw r8, r0
/* 8030AD30 00306990 41 82 00 3C */ beq lbl_8030AD6C
/* 8030AD34 00306994 80 08 00 20 */ lwz r0, 0x20(r8)
/* 8030AD38 00306998 80 88 00 24 */ lwz r4, 0x24(r8)
/* 8030AD3C 0030699C 90 04 00 20 */ stw r0, 0x20(r4)
/* 8030AD40 003069A0 80 08 00 24 */ lwz r0, 0x24(r8)
/* 8030AD44 003069A4 80 88 00 20 */ lwz r4, 0x20(r8)
/* 8030AD48 003069A8 90 04 00 24 */ stw r0, 0x24(r4)
/* 8030AD4C 003069AC 80 A3 15 F8 */ lwz r5, 0x15f8(r3)
/* 8030AD50 003069B0 90 A8 00 20 */ stw r5, 0x20(r8)
/* 8030AD54 003069B4 80 83 15 F8 */ lwz r4, 0x15f8(r3)
/* 8030AD58 003069B8 80 04 00 24 */ lwz r0, 0x24(r4)
/* 8030AD5C 003069BC 90 08 00 24 */ stw r0, 0x24(r8)
/* 8030AD60 003069C0 91 05 00 24 */ stw r8, 0x24(r5)
/* 8030AD64 003069C4 80 88 00 24 */ lwz r4, 0x24(r8)
/* 8030AD68 003069C8 91 04 00 20 */ stw r8, 0x20(r4)
lbl_8030AD6C:
/* 8030AD6C 003069CC 81 03 15 F8 */ lwz r8, 0x15f8(r3)
/* 8030AD70 003069D0 A0 08 00 00 */ lhz r0, 0(r8)
/* 8030AD74 003069D4 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8030AD78 003069D8 40 82 FF 74 */ bne lbl_8030ACEC
/* 8030AD7C 003069DC 4E 80 00 20 */ blr
|