summaryrefslogtreecommitdiff
path: root/asm/SDK
diff options
context:
space:
mode:
Diffstat (limited to 'asm/SDK')
-rw-r--r--asm/SDK/VF/pf_cluster.s2
-rw-r--r--asm/SDK/VF/pf_entry.s40
-rw-r--r--asm/SDK/VF/pf_entry_iterator.s58
-rw-r--r--asm/SDK/VF/pf_fat.s2
-rw-r--r--asm/SDK/VF/pf_fat12.s16
-rw-r--r--asm/SDK/VF/pf_fat16.s4
-rw-r--r--asm/SDK/VF/pf_fat32.s6
-rw-r--r--asm/SDK/VF/pf_fatfs.s2
-rw-r--r--asm/SDK/VF/pf_file.s3785
-rw-r--r--asm/SDK/VF/pf_path.s3324
-rw-r--r--asm/SDK/VF/pf_sector.s507
-rw-r--r--asm/SDK/VF/pf_volume.s877
12 files changed, 8558 insertions, 65 deletions
diff --git a/asm/SDK/VF/pf_cluster.s b/asm/SDK/VF/pf_cluster.s
index ed95fd7..8719855 100644
--- a/asm/SDK/VF/pf_cluster.s
+++ b/asm/SDK/VF/pf_cluster.s
@@ -156,7 +156,7 @@ lbl_8030AF8C:
/* 8030AF90 00306BF0 7F 63 DB 78 */ mr r3, r27
/* 8030AF94 00306BF4 80 05 02 64 */ lwz r0, 0x264(r5)
/* 8030AF98 00306BF8 7C 80 22 14 */ add r4, r0, r4
-/* 8030AF9C 00306BFC 48 00 8C CD */ bl func_80313C68
+/* 8030AF9C 00306BFC 48 00 8C CD */ bl VFiPFFILE_Cursor_MoveToClusterEnd
/* 8030AFA0 00306C00 80 7B 00 1C */ lwz r3, 0x1c(r27)
/* 8030AFA4 00306C04 3C 03 00 01 */ addis r0, r3, 1
/* 8030AFA8 00306C08 28 00 FF FF */ cmplwi r0, 0xffff
diff --git a/asm/SDK/VF/pf_entry.s b/asm/SDK/VF/pf_entry.s
index eb1c299..eb2c835 100644
--- a/asm/SDK/VF/pf_entry.s
+++ b/asm/SDK/VF/pf_entry.s
@@ -63,7 +63,7 @@ VFiPFENT_compareEntryName:
/* 8030B384 00306FE4 38 61 00 08 */ addi r3, r1, 8
/* 8030B388 00306FE8 38 9C 02 0E */ addi r4, r28, 0x20e
/* 8030B38C 00306FEC 38 A0 00 00 */ li r5, 0
-/* 8030B390 00306FF0 48 00 BE B9 */ bl func_80317248
+/* 8030B390 00306FF0 48 00 BE B9 */ bl VFiPFPATH_putShortName
/* 8030B394 00306FF4 38 00 00 0B */ li r0, 0xb
/* 8030B398 00306FF8 38 C1 00 08 */ addi r6, r1, 8
/* 8030B39C 00306FFC 38 80 00 00 */ li r4, 0
@@ -86,7 +86,7 @@ lbl_8030B3A8:
/* 8030B3DC 0030703C 40 82 00 1C */ bne lbl_8030B3F8
/* 8030B3E0 00307040 7F 83 E3 78 */ mr r3, r28
/* 8030B3E4 00307044 7F A4 EB 78 */ mr r4, r29
-/* 8030B3E8 00307048 48 00 B5 5D */ bl func_80316944
+/* 8030B3E8 00307048 48 00 B5 5D */ bl VFiPFPATH_cmpNameUni
/* 8030B3EC 0030704C 7C 03 00 D0 */ neg r0, r3
/* 8030B3F0 00307050 7C 00 1B 78 */ or r0, r0, r3
/* 8030B3F4 00307054 54 1F 0F FE */ srwi r31, r0, 0x1f
@@ -104,7 +104,7 @@ lbl_8030B3F8:
/* 8030B420 00307080 7F A4 EB 78 */ mr r4, r29
/* 8030B424 00307084 38 7C 02 0E */ addi r3, r28, 0x20e
/* 8030B428 00307088 38 A0 00 00 */ li r5, 0
-/* 8030B42C 0030708C 48 00 B5 45 */ bl func_80316970
+/* 8030B42C 0030708C 48 00 B5 45 */ bl VFiPFPATH_cmpName
/* 8030B430 00307090 2C 03 00 00 */ cmpwi r3, 0
/* 8030B434 00307094 40 82 00 28 */ bne lbl_8030B45C
/* 8030B438 00307098 3B E0 00 00 */ li r31, 0
@@ -113,7 +113,7 @@ lbl_8030B440:
/* 8030B440 003070A0 7F A4 EB 78 */ mr r4, r29
/* 8030B444 003070A4 38 7C 02 0E */ addi r3, r28, 0x20e
/* 8030B448 003070A8 38 A0 00 01 */ li r5, 1
-/* 8030B44C 003070AC 48 00 B5 25 */ bl func_80316970
+/* 8030B44C 003070AC 48 00 B5 25 */ bl VFiPFPATH_cmpName
/* 8030B450 003070B0 2C 03 00 00 */ cmpwi r3, 0
/* 8030B454 003070B4 40 82 00 08 */ bne lbl_8030B45C
/* 8030B458 003070B8 3B E0 00 00 */ li r31, 0
@@ -164,7 +164,7 @@ lbl_8030B4F0:
/* 8030B4F0 00307150 88 BF 00 57 */ lbz r5, 0x57(r31)
/* 8030B4F4 00307154 38 7E 02 0E */ addi r3, r30, 0x20e
/* 8030B4F8 00307158 38 9F 00 4C */ addi r4, r31, 0x4c
-/* 8030B4FC 0030715C 48 00 BE D5 */ bl func_803173D0
+/* 8030B4FC 0030715C 48 00 BE D5 */ bl VFiPFPATH_getShortName
/* 8030B500 00307160 88 1E 02 0E */ lbz r0, 0x20e(r30)
/* 8030B504 00307164 2C 00 00 05 */ cmpwi r0, 5
/* 8030B508 00307168 40 82 00 0C */ bne lbl_8030B514
@@ -210,10 +210,10 @@ lbl_8030B580:
/* 8030B594 003071F4 41 82 00 B8 */ beq lbl_8030B64C
/* 8030B598 003071F8 38 7E 02 0E */ addi r3, r30, 0x20e
/* 8030B59C 003071FC 38 81 00 18 */ addi r4, r1, 0x18
-/* 8030B5A0 00307200 48 00 C0 8D */ bl func_8031762C
+/* 8030B5A0 00307200 48 00 C0 8D */ bl VFiPFPATH_getLongNameformShortName
/* 8030B5A4 00307204 7F C3 F3 78 */ mr r3, r30
/* 8030B5A8 00307208 38 81 00 18 */ addi r4, r1, 0x18
-/* 8030B5AC 0030720C 48 00 C4 61 */ bl func_80317A0C
+/* 8030B5AC 0030720C 48 00 C4 61 */ bl VFiPFPATH_transformInUnicode
/* 8030B5B0 00307210 3C A0 4E C5 */ lis r5, 0x4EC4EC4F@ha
/* 8030B5B4 00307214 38 9E 02 0E */ addi r4, r30, 0x20e
/* 8030B5B8 00307218 38 05 EC 4F */ addi r0, r5, 0x4EC4EC4F@l
@@ -233,7 +233,7 @@ lbl_8030B580:
/* 8030B5F0 00307250 54 00 0F FE */ srwi r0, r0, 0x1f
/* 8030B5F4 00307254 7C 07 02 14 */ add r0, r7, r0
/* 8030B5F8 00307258 98 1E 02 0A */ stb r0, 0x20a(r30)
-/* 8030B5FC 0030725C 48 00 BC 4D */ bl func_80317248
+/* 8030B5FC 0030725C 48 00 BC 4D */ bl VFiPFPATH_putShortName
/* 8030B600 00307260 38 00 00 0B */ li r0, 0xb
/* 8030B604 00307264 38 C1 00 08 */ addi r6, r1, 8
/* 8030B608 00307268 38 80 00 00 */ li r4, 0
@@ -383,7 +383,7 @@ lbl_8030B7F8:
/* 8030B824 00307484 38 61 00 18 */ addi r3, r1, 0x18
/* 8030B828 00307488 38 81 00 74 */ addi r4, r1, 0x74
/* 8030B82C 0030748C 38 A0 00 00 */ li r5, 0
-/* 8030B830 00307490 48 00 BB A1 */ bl func_803173D0
+/* 8030B830 00307490 48 00 BB A1 */ bl VFiPFPATH_getShortName
/* 8030B834 00307494 38 61 00 19 */ addi r3, r1, 0x19
/* 8030B838 00307498 38 80 00 01 */ li r4, 1
/* 8030B83C 0030749C 48 00 00 0C */ b lbl_8030B848
@@ -512,10 +512,10 @@ lbl_8030B9F4:
/* 8030B9FC 0030765C 4B FF 96 F1 */ bl VFipf_strcpy
/* 8030BA00 00307660 7F C4 F3 78 */ mr r4, r30
/* 8030BA04 00307664 38 61 00 08 */ addi r3, r1, 8
-/* 8030BA08 00307668 48 00 C7 E5 */ bl func_803181EC
+/* 8030BA08 00307668 48 00 C7 E5 */ bl VFiPFPATH_parseShortNameNumeric
/* 8030BA0C 0030766C 38 61 00 18 */ addi r3, r1, 0x18
/* 8030BA10 00307670 38 81 00 08 */ addi r4, r1, 8
-/* 8030BA14 00307674 48 00 B0 B9 */ bl func_80316ACC
+/* 8030BA14 00307674 48 00 B0 B9 */ bl VFiPFPATH_cmpTailSFN
/* 8030BA18 00307678 2C 03 00 00 */ cmpwi r3, 0
/* 8030BA1C 0030767C 40 82 00 38 */ bne lbl_8030BA54
/* 8030BA20 00307680 7C 1E D0 40 */ cmplw r30, r26
@@ -643,7 +643,7 @@ VFiPFENT_CalcCheckSum:
/* 8030BBB8 00307818 90 01 00 24 */ stw r0, 0x24(r1)
/* 8030BBBC 0030781C 38 61 00 08 */ addi r3, r1, 8
/* 8030BBC0 00307820 38 84 02 0E */ addi r4, r4, 0x20e
-/* 8030BBC4 00307824 48 00 B6 85 */ bl func_80317248
+/* 8030BBC4 00307824 48 00 B6 85 */ bl VFiPFPATH_putShortName
/* 8030BBC8 00307828 38 00 00 0B */ li r0, 0xb
/* 8030BBCC 0030782C 38 C1 00 08 */ addi r6, r1, 8
/* 8030BBD0 00307830 38 60 00 00 */ li r3, 0
@@ -675,7 +675,7 @@ VFiPFENT_LoadShortNameFromBuf:
/* 8030BC28 00307888 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8030BC2C 0030788C 7C 7F 1B 78 */ mr r31, r3
/* 8030BC30 00307890 38 63 02 0E */ addi r3, r3, 0x20e
-/* 8030BC34 00307894 48 00 B7 9D */ bl func_803173D0
+/* 8030BC34 00307894 48 00 B7 9D */ bl VFiPFPATH_getShortName
/* 8030BC38 00307898 88 1F 02 0E */ lbz r0, 0x20e(r31)
/* 8030BC3C 0030789C 2C 00 00 05 */ cmpwi r0, 5
/* 8030BC40 003078A0 40 82 00 0C */ bne lbl_8030BC4C
@@ -1043,7 +1043,7 @@ lbl_8030C118:
/* 8030C14C 00307DAC 40 82 00 10 */ bne lbl_8030C15C
/* 8030C150 00307DB0 7F 63 DB 78 */ mr r3, r27
/* 8030C154 00307DB4 38 81 00 08 */ addi r4, r1, 8
-/* 8030C158 00307DB8 48 00 C6 01 */ bl func_80318758
+/* 8030C158 00307DB8 48 00 C6 01 */ bl VFiPFPATH_GetExtShortNameIndex
lbl_8030C15C:
/* 8030C15C 00307DBC 80 99 00 00 */ lwz r4, 0(r25)
/* 8030C160 00307DC0 28 03 00 01 */ cmplwi r3, 1
@@ -1255,7 +1255,7 @@ lbl_8030C434:
/* 8030C444 003080A4 28 00 00 02 */ cmplwi r0, 2
/* 8030C448 003080A8 40 82 00 1C */ bne lbl_8030C464
/* 8030C44C 003080AC 7E A3 AB 78 */ mr r3, r21
-/* 8030C450 003080B0 48 00 BF 79 */ bl func_803183C8
+/* 8030C450 003080B0 48 00 BF 79 */ bl VFiPFPATH_CheckExtShortNameSignature
/* 8030C454 003080B4 28 03 00 01 */ cmplwi r3, 1
/* 8030C458 003080B8 40 82 00 0C */ bne lbl_8030C464
/* 8030C45C 003080BC 38 60 00 01 */ li r3, 1
@@ -1547,7 +1547,7 @@ lbl_8030C830:
/* 8030C844 003084A4 39 01 00 08 */ addi r8, r1, 8
/* 8030C848 003084A8 38 C0 00 00 */ li r6, 0
/* 8030C84C 003084AC 39 20 00 00 */ li r9, 0
-/* 8030C850 003084B0 48 00 C5 99 */ bl func_80318DE8
+/* 8030C850 003084B0 48 00 C5 99 */ bl VFiPFSEC_WriteData
/* 8030C854 003084B4 2C 03 00 00 */ cmpwi r3, 0
/* 8030C858 003084B8 7C 7F 1B 78 */ mr r31, r3
/* 8030C85C 003084BC 41 82 00 18 */ beq lbl_8030C874
@@ -1583,7 +1583,7 @@ lbl_8030C8C0:
/* 8030C8C0 00308520 3C 60 80 44 */ lis r3, lbl_804465D8@ha
/* 8030C8C4 00308524 7F A4 EB 78 */ mr r4, r29
/* 8030C8C8 00308528 38 63 65 D8 */ addi r3, r3, lbl_804465D8@l
-/* 8030C8CC 0030852C 48 00 D2 E1 */ bl func_80319BAC
+/* 8030C8CC 0030852C 48 00 D2 E1 */ bl VFiPFVOL_LoadVolumeLabelFromBuf
/* 8030C8D0 00308530 38 60 00 00 */ li r3, 0
lbl_8030C8D4:
/* 8030C8D4 00308534 80 01 00 24 */ lwz r0, 0x24(r1)
@@ -1644,7 +1644,7 @@ lbl_8030C98C:
/* 8030C98C 003085EC 88 BE 02 1C */ lbz r5, 0x21c(r30)
/* 8030C990 003085F0 38 61 00 10 */ addi r3, r1, 0x10
/* 8030C994 003085F4 38 9E 02 0E */ addi r4, r30, 0x20e
-/* 8030C998 003085F8 48 00 A8 B1 */ bl func_80317248
+/* 8030C998 003085F8 48 00 A8 B1 */ bl VFiPFPATH_putShortName
/* 8030C99C 003085FC 88 01 00 10 */ lbz r0, 0x10(r1)
/* 8030C9A0 00308600 28 00 00 E5 */ cmplwi r0, 0xe5
/* 8030C9A4 00308604 40 82 00 0C */ bne lbl_8030C9B0
@@ -1693,7 +1693,7 @@ lbl_8030C9B0:
/* 8030CA4C 003086AC 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8030CA50 003086B0 80 BE 02 38 */ lwz r5, 0x238(r30)
/* 8030CA54 003086B4 A0 DE 02 3C */ lhz r6, 0x23c(r30)
-/* 8030CA58 003086B8 48 00 C3 91 */ bl func_80318DE8
+/* 8030CA58 003086B8 48 00 C3 91 */ bl VFiPFSEC_WriteData
/* 8030CA5C 003086BC 2C 03 00 00 */ cmpwi r3, 0
/* 8030CA60 003086C0 41 82 00 08 */ beq lbl_8030CA68
/* 8030CA64 003086C4 48 00 00 1C */ b lbl_8030CA80
@@ -1771,7 +1771,7 @@ lbl_8030CB4C:
/* 8030CB50 003087B0 28 04 00 01 */ cmplwi r4, 1
/* 8030CB54 003087B4 41 82 00 0C */ beq lbl_8030CB60
/* 8030CB58 003087B8 7F E3 FB 78 */ mr r3, r31
-/* 8030CB5C 003087BC 48 00 B6 91 */ bl func_803181EC
+/* 8030CB5C 003087BC 48 00 B6 91 */ bl VFiPFPATH_parseShortNameNumeric
lbl_8030CB60:
/* 8030CB60 003087C0 38 60 00 00 */ li r3, 0
lbl_8030CB64:
diff --git a/asm/SDK/VF/pf_entry_iterator.s b/asm/SDK/VF/pf_entry_iterator.s
index 5e10cda..09cb677 100644
--- a/asm/SDK/VF/pf_entry_iterator.s
+++ b/asm/SDK/VF/pf_entry_iterator.s
@@ -76,7 +76,7 @@ lbl_8030CCEC:
/* 8030CD00 00308960 39 20 00 00 */ li r9, 0
/* 8030CD04 00308964 A0 E3 00 00 */ lhz r7, 0(r3)
/* 8030CD08 00308968 7C A0 EA 14 */ add r5, r0, r29
-/* 8030CD0C 0030896C 48 00 C0 DD */ bl func_80318DE8
+/* 8030CD0C 0030896C 48 00 C0 DD */ bl VFiPFSEC_WriteData
/* 8030CD10 00308970 2C 03 00 00 */ cmpwi r3, 0
/* 8030CD14 00308974 7C 7E 1B 78 */ mr r30, r3
/* 8030CD18 00308978 41 82 00 18 */ beq lbl_8030CD30
@@ -247,10 +247,10 @@ lbl_8030CF58:
/* 8030CF60 00308BC0 41 82 00 70 */ beq lbl_8030CFD0
/* 8030CF64 00308BC4 38 7B 02 0E */ addi r3, r27, 0x20e
/* 8030CF68 00308BC8 38 81 00 0C */ addi r4, r1, 0xc
-/* 8030CF6C 00308BCC 48 00 A6 C1 */ bl func_8031762C
+/* 8030CF6C 00308BCC 48 00 A6 C1 */ bl VFiPFPATH_getLongNameformShortName
/* 8030CF70 00308BD0 7F 63 DB 78 */ mr r3, r27
/* 8030CF74 00308BD4 38 81 00 0C */ addi r4, r1, 0xc
-/* 8030CF78 00308BD8 48 00 AA 95 */ bl func_80317A0C
+/* 8030CF78 00308BD8 48 00 AA 95 */ bl VFiPFPATH_transformInUnicode
/* 8030CF7C 00308BDC 3C 80 4E C5 */ lis r4, 0x4EC4EC4F@ha
/* 8030CF80 00308BE0 38 04 EC 4F */ addi r0, r4, 0x4EC4EC4F@l
/* 8030CF84 00308BE4 7C 00 18 96 */ mulhw r0, r0, r3
@@ -313,7 +313,7 @@ lbl_8030D04C:
/* 8030D058 00308CB8 39 01 00 08 */ addi r8, r1, 8
/* 8030D05C 00308CBC 38 E0 00 20 */ li r7, 0x20
/* 8030D060 00308CC0 39 20 00 00 */ li r9, 0
-/* 8030D064 00308CC4 48 00 B9 C5 */ bl func_80318A28
+/* 8030D064 00308CC4 48 00 B9 C5 */ bl VFiPFSEC_ReadData
/* 8030D068 00308CC8 80 01 00 08 */ lwz r0, 8(r1)
/* 8030D06C 00308CCC 38 80 00 11 */ li r4, 0x11
/* 8030D070 00308CD0 28 00 00 20 */ cmplwi r0, 0x20
@@ -447,7 +447,7 @@ lbl_8030D210:
/* 8030D238 00308E98 40 82 00 14 */ bne lbl_8030D24C
/* 8030D23C 00308E9C 7F 43 D3 78 */ mr r3, r26
/* 8030D240 00308EA0 38 81 00 14 */ addi r4, r1, 0x14
-/* 8030D244 00308EA4 48 00 B5 15 */ bl func_80318758
+/* 8030D244 00308EA4 48 00 B5 15 */ bl VFiPFPATH_GetExtShortNameIndex
/* 8030D248 00308EA8 7C 7F 1B 78 */ mr r31, r3
lbl_8030D24C:
/* 8030D24C 00308EAC 28 1F 00 01 */ cmplwi r31, 1
@@ -498,7 +498,7 @@ lbl_8030D2E8:
/* 8030D2F4 00308F54 39 01 00 10 */ addi r8, r1, 0x10
/* 8030D2F8 00308F58 38 E0 00 20 */ li r7, 0x20
/* 8030D2FC 00308F5C 39 20 00 00 */ li r9, 0
-/* 8030D300 00308F60 48 00 B7 29 */ bl func_80318A28
+/* 8030D300 00308F60 48 00 B7 29 */ bl VFiPFSEC_ReadData
/* 8030D304 00308F64 80 01 00 10 */ lwz r0, 0x10(r1)
/* 8030D308 00308F68 38 80 00 11 */ li r4, 0x11
/* 8030D30C 00308F6C 28 00 00 20 */ cmplwi r0, 0x20
@@ -583,7 +583,7 @@ lbl_8030D414:
/* 8030D420 00309080 39 01 00 0C */ addi r8, r1, 0xc
/* 8030D424 00309084 38 E0 00 20 */ li r7, 0x20
/* 8030D428 00309088 39 20 00 00 */ li r9, 0
-/* 8030D42C 0030908C 48 00 B5 FD */ bl func_80318A28
+/* 8030D42C 0030908C 48 00 B5 FD */ bl VFiPFSEC_ReadData
/* 8030D430 00309090 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8030D434 00309094 38 80 00 11 */ li r4, 0x11
/* 8030D438 00309098 28 00 00 20 */ cmplwi r0, 0x20
@@ -650,7 +650,7 @@ lbl_8030D4F4:
/* 8030D500 00309160 7F 44 D3 78 */ mr r4, r26
/* 8030D504 00309164 38 79 02 0E */ addi r3, r25, 0x20e
/* 8030D508 00309168 38 A0 00 00 */ li r5, 0
-/* 8030D50C 0030916C 48 00 9A 21 */ bl func_80316F2C
+/* 8030D50C 0030916C 48 00 9A 21 */ bl VFiPFPATH_MatchFileNameWithPattern
/* 8030D510 00309170 2C 03 00 00 */ cmpwi r3, 0
/* 8030D514 00309174 41 82 03 B0 */ beq lbl_8030D8C4
/* 8030D518 00309178 7F 23 CB 78 */ mr r3, r25
@@ -776,7 +776,7 @@ lbl_8030D680:
/* 8030D6BC 0030931C 7F 23 CB 78 */ mr r3, r25
/* 8030D6C0 00309320 7F 44 D3 78 */ mr r4, r26
/* 8030D6C4 00309324 38 A0 00 01 */ li r5, 1
-/* 8030D6C8 00309328 48 00 98 65 */ bl func_80316F2C
+/* 8030D6C8 00309328 48 00 98 65 */ bl VFiPFPATH_MatchFileNameWithPattern
/* 8030D6CC 0030932C 2C 03 00 00 */ cmpwi r3, 0
/* 8030D6D0 00309330 41 82 00 58 */ beq lbl_8030D728
/* 8030D6D4 00309334 7F 23 CB 78 */ mr r3, r25
@@ -805,7 +805,7 @@ lbl_8030D728:
/* 8030D728 00309388 7F 44 D3 78 */ mr r4, r26
/* 8030D72C 0030938C 38 79 02 0E */ addi r3, r25, 0x20e
/* 8030D730 00309390 38 A0 00 00 */ li r5, 0
-/* 8030D734 00309394 48 00 97 F9 */ bl func_80316F2C
+/* 8030D734 00309394 48 00 97 F9 */ bl VFiPFPATH_MatchFileNameWithPattern
/* 8030D738 00309398 2C 03 00 00 */ cmpwi r3, 0
/* 8030D73C 0030939C 41 82 00 D0 */ beq lbl_8030D80C
/* 8030D740 003093A0 88 B8 00 58 */ lbz r5, 0x58(r24)
@@ -813,10 +813,10 @@ lbl_8030D728:
/* 8030D748 003093A8 41 82 00 70 */ beq lbl_8030D7B8
/* 8030D74C 003093AC 38 79 02 0E */ addi r3, r25, 0x20e
/* 8030D750 003093B0 38 81 00 18 */ addi r4, r1, 0x18
-/* 8030D754 003093B4 48 00 9E D9 */ bl func_8031762C
+/* 8030D754 003093B4 48 00 9E D9 */ bl VFiPFPATH_getLongNameformShortName
/* 8030D758 003093B8 7F 23 CB 78 */ mr r3, r25
/* 8030D75C 003093BC 38 81 00 18 */ addi r4, r1, 0x18
-/* 8030D760 003093C0 48 00 A2 AD */ bl func_80317A0C
+/* 8030D760 003093C0 48 00 A2 AD */ bl VFiPFPATH_transformInUnicode
/* 8030D764 003093C4 3C 80 4E C5 */ lis r4, 0x4EC4EC4F@ha
/* 8030D768 003093C8 38 04 EC 4F */ addi r0, r4, 0x4EC4EC4F@l
/* 8030D76C 003093CC 7C 00 18 96 */ mulhw r0, r0, r3
@@ -893,7 +893,7 @@ lbl_8030D864:
/* 8030D870 003094D0 39 01 00 08 */ addi r8, r1, 8
/* 8030D874 003094D4 38 E0 00 20 */ li r7, 0x20
/* 8030D878 003094D8 39 20 00 00 */ li r9, 0
-/* 8030D87C 003094DC 48 00 B1 AD */ bl func_80318A28
+/* 8030D87C 003094DC 48 00 B1 AD */ bl VFiPFSEC_ReadData
/* 8030D880 003094E0 80 01 00 08 */ lwz r0, 8(r1)
/* 8030D884 003094E4 38 80 00 11 */ li r4, 0x11
/* 8030D888 003094E8 28 00 00 20 */ cmplwi r0, 0x20
@@ -991,7 +991,7 @@ lbl_8030D990:
lbl_8030D9D0:
/* 8030D9D0 00309630 7F 63 DB 78 */ mr r3, r27
/* 8030D9D4 00309634 7F 04 C3 78 */ mr r4, r24
-/* 8030D9D8 00309638 48 00 BD 25 */ bl func_803196FC
+/* 8030D9D8 00309638 48 00 BD 25 */ bl VFiPFVOL_GetCurrentDir
/* 8030D9DC 0030963C 2C 03 00 00 */ cmpwi r3, 0
/* 8030D9E0 00309640 41 82 00 08 */ beq lbl_8030D9E8
/* 8030D9E4 00309644 48 00 04 FC */ b lbl_8030DEE0
@@ -1012,10 +1012,10 @@ lbl_8030D9E8:
/* 8030DA1C 0030967C 7C 65 1B 78 */ mr r5, r3
/* 8030DA20 00309680 7E A4 AB 78 */ mr r4, r21
/* 8030DA24 00309684 38 61 00 20 */ addi r3, r1, 0x20
-/* 8030DA28 00309688 48 00 90 D1 */ bl func_80316AF8
+/* 8030DA28 00309688 48 00 90 D1 */ bl VFiPFPATH_InitTokenOfPath
/* 8030DA2C 0030968C 7F 24 CB 78 */ mr r4, r25
/* 8030DA30 00309690 38 61 00 20 */ addi r3, r1, 0x20
-/* 8030DA34 00309694 48 00 90 D5 */ bl func_80316B08
+/* 8030DA34 00309694 48 00 90 D5 */ bl VFiPFPATH_GetNextTokenOfPath
/* 8030DA38 00309698 3B 80 00 00 */ li r28, 0
/* 8030DA3C 0030969C 3B A0 00 01 */ li r29, 1
/* 8030DA40 003096A0 3B C0 FF FF */ li r30, -1
@@ -1097,7 +1097,7 @@ lbl_8030DB44:
/* 8030DB50 003097B0 39 01 00 0C */ addi r8, r1, 0xc
/* 8030DB54 003097B4 38 E0 00 20 */ li r7, 0x20
/* 8030DB58 003097B8 39 20 00 00 */ li r9, 0
-/* 8030DB5C 003097BC 48 00 AE CD */ bl func_80318A28
+/* 8030DB5C 003097BC 48 00 AE CD */ bl VFiPFSEC_ReadData
/* 8030DB60 003097C0 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8030DB64 003097C4 38 80 00 11 */ li r4, 0x11
/* 8030DB68 003097C8 28 00 00 20 */ cmplwi r0, 0x20
@@ -1148,12 +1148,12 @@ lbl_8030DBF4:
/* 8030DC0C 0030986C 2C 00 00 00 */ cmpwi r0, 0
/* 8030DC10 00309870 41 82 00 14 */ beq lbl_8030DC24
/* 8030DC14 00309874 7F 03 C3 78 */ mr r3, r24
-/* 8030DC18 00309878 48 00 9C 2D */ bl func_80317844
+/* 8030DC18 00309878 48 00 9C 2D */ bl VFiPFPATH_GetLengthFromUnicode
/* 8030DC1C 0030987C 3A A3 00 01 */ addi r21, r3, 1
/* 8030DC20 00309880 48 00 00 10 */ b lbl_8030DC30
lbl_8030DC24:
/* 8030DC24 00309884 38 78 02 0E */ addi r3, r24, 0x20e
-/* 8030DC28 00309888 48 00 9B B5 */ bl func_803177DC
+/* 8030DC28 00309888 48 00 9B B5 */ bl VFiPFPATH_GetLengthFromShortname
/* 8030DC2C 0030988C 3A A3 00 01 */ addi r21, r3, 1
lbl_8030DC30:
/* 8030DC30 00309890 7E E3 BB 78 */ mr r3, r23
@@ -1173,7 +1173,7 @@ lbl_8030DC5C:
/* 8030DC64 003098C4 40 82 00 30 */ bne lbl_8030DC94
/* 8030DC68 003098C8 7F 24 CB 78 */ mr r4, r25
/* 8030DC6C 003098CC 38 61 00 20 */ addi r3, r1, 0x20
-/* 8030DC70 003098D0 48 00 8E 99 */ bl func_80316B08
+/* 8030DC70 003098D0 48 00 8E 99 */ bl VFiPFPATH_GetNextTokenOfPath
/* 8030DC74 003098D4 2C 03 00 00 */ cmpwi r3, 0
/* 8030DC78 003098D8 41 82 00 08 */ beq lbl_8030DC80
/* 8030DC7C 003098DC 48 00 02 64 */ b lbl_8030DEE0
@@ -1256,7 +1256,7 @@ lbl_8030DD88:
/* 8030DD94 003099F4 39 01 00 08 */ addi r8, r1, 8
/* 8030DD98 003099F8 38 E0 00 20 */ li r7, 0x20
/* 8030DD9C 003099FC 39 20 00 00 */ li r9, 0
-/* 8030DDA0 00309A00 48 00 AC 89 */ bl func_80318A28
+/* 8030DDA0 00309A00 48 00 AC 89 */ bl VFiPFSEC_ReadData
/* 8030DDA4 00309A04 80 01 00 08 */ lwz r0, 8(r1)
/* 8030DDA8 00309A08 38 80 00 11 */ li r4, 0x11
/* 8030DDAC 00309A0C 28 00 00 20 */ cmplwi r0, 0x20
@@ -1292,7 +1292,7 @@ lbl_8030DE0C:
/* 8030DE10 00309A70 2C 00 00 00 */ cmpwi r0, 0
/* 8030DE14 00309A74 41 82 00 20 */ beq lbl_8030DE34
/* 8030DE18 00309A78 38 61 00 30 */ addi r3, r1, 0x30
-/* 8030DE1C 00309A7C 48 00 9A 29 */ bl func_80317844
+/* 8030DE1C 00309A7C 48 00 9A 29 */ bl VFiPFPATH_GetLengthFromUnicode
/* 8030DE20 00309A80 80 18 02 30 */ lwz r0, 0x230(r24)
/* 8030DE24 00309A84 38 63 00 01 */ addi r3, r3, 1
/* 8030DE28 00309A88 7C 03 00 50 */ subf r0, r3, r0
@@ -1300,7 +1300,7 @@ lbl_8030DE0C:
/* 8030DE30 00309A90 48 00 00 94 */ b lbl_8030DEC4
lbl_8030DE34:
/* 8030DE34 00309A94 38 61 02 3E */ addi r3, r1, 0x23e
-/* 8030DE38 00309A98 48 00 99 A5 */ bl func_803177DC
+/* 8030DE38 00309A98 48 00 99 A5 */ bl VFiPFPATH_GetLengthFromShortname
/* 8030DE3C 00309A9C 80 18 02 30 */ lwz r0, 0x230(r24)
/* 8030DE40 00309AA0 38 63 00 01 */ addi r3, r3, 1
/* 8030DE44 00309AA4 7C 03 00 50 */ subf r0, r3, r0
@@ -1340,7 +1340,7 @@ lbl_8030DE68:
lbl_8030DEC4:
/* 8030DEC4 00309B24 7F 24 CB 78 */ mr r4, r25
/* 8030DEC8 00309B28 38 61 00 20 */ addi r3, r1, 0x20
-/* 8030DECC 00309B2C 48 00 8C 3D */ bl func_80316B08
+/* 8030DECC 00309B2C 48 00 8C 3D */ bl VFiPFPATH_GetNextTokenOfPath
lbl_8030DED0:
/* 8030DED0 00309B30 80 01 00 20 */ lwz r0, 0x20(r1)
/* 8030DED4 00309B34 2C 00 00 00 */ cmpwi r0, 0
@@ -1407,7 +1407,7 @@ lbl_8030DF9C:
/* 8030DFA8 00309C08 39 01 00 08 */ addi r8, r1, 8
/* 8030DFAC 00309C0C 38 E0 00 20 */ li r7, 0x20
/* 8030DFB0 00309C10 39 20 00 00 */ li r9, 0
-/* 8030DFB4 00309C14 48 00 AA 75 */ bl func_80318A28
+/* 8030DFB4 00309C14 48 00 AA 75 */ bl VFiPFSEC_ReadData
/* 8030DFB8 00309C18 80 01 00 08 */ lwz r0, 8(r1)
/* 8030DFBC 00309C1C 38 80 00 11 */ li r4, 0x11
/* 8030DFC0 00309C20 28 00 00 20 */ cmplwi r0, 0x20
@@ -1481,7 +1481,7 @@ lbl_8030E0A0:
/* 8030E0AC 00309D0C 39 01 00 08 */ addi r8, r1, 8
/* 8030E0B0 00309D10 38 E0 00 20 */ li r7, 0x20
/* 8030E0B4 00309D14 39 20 00 00 */ li r9, 0
-/* 8030E0B8 00309D18 48 00 A9 71 */ bl func_80318A28
+/* 8030E0B8 00309D18 48 00 A9 71 */ bl VFiPFSEC_ReadData
/* 8030E0BC 00309D1C 80 01 00 08 */ lwz r0, 8(r1)
/* 8030E0C0 00309D20 38 80 00 11 */ li r4, 0x11
/* 8030E0C4 00309D24 28 00 00 20 */ cmplwi r0, 0x20
@@ -1551,7 +1551,7 @@ lbl_8030E190:
/* 8030E19C 00309DFC 39 01 00 08 */ addi r8, r1, 8
/* 8030E1A0 00309E00 38 E0 00 20 */ li r7, 0x20
/* 8030E1A4 00309E04 39 20 00 00 */ li r9, 0
-/* 8030E1A8 00309E08 48 00 A8 81 */ bl func_80318A28
+/* 8030E1A8 00309E08 48 00 A8 81 */ bl VFiPFSEC_ReadData
/* 8030E1AC 00309E0C 80 01 00 08 */ lwz r0, 8(r1)
/* 8030E1B0 00309E10 38 80 00 11 */ li r4, 0x11
/* 8030E1B4 00309E14 28 00 00 20 */ cmplwi r0, 0x20
@@ -1726,7 +1726,7 @@ lbl_8030E3F8:
/* 8030E404 0030A064 39 01 00 0C */ addi r8, r1, 0xc
/* 8030E408 0030A068 38 E0 00 20 */ li r7, 0x20
/* 8030E40C 0030A06C 39 20 00 00 */ li r9, 0
-/* 8030E410 0030A070 48 00 A6 19 */ bl func_80318A28
+/* 8030E410 0030A070 48 00 A6 19 */ bl VFiPFSEC_ReadData
/* 8030E414 0030A074 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8030E418 0030A078 38 80 00 11 */ li r4, 0x11
/* 8030E41C 0030A07C 28 00 00 20 */ cmplwi r0, 0x20
@@ -1782,7 +1782,7 @@ lbl_8030E4B8:
/* 8030E4C4 0030A124 39 01 00 08 */ addi r8, r1, 8
/* 8030E4C8 0030A128 38 E0 00 20 */ li r7, 0x20
/* 8030E4CC 0030A12C 39 20 00 00 */ li r9, 0
-/* 8030E4D0 0030A130 48 00 A5 59 */ bl func_80318A28
+/* 8030E4D0 0030A130 48 00 A5 59 */ bl VFiPFSEC_ReadData
/* 8030E4D4 0030A134 80 01 00 08 */ lwz r0, 8(r1)
/* 8030E4D8 0030A138 38 80 00 11 */ li r4, 0x11
/* 8030E4DC 0030A13C 28 00 00 20 */ cmplwi r0, 0x20
diff --git a/asm/SDK/VF/pf_fat.s b/asm/SDK/VF/pf_fat.s
index daf2f1b..8845e52 100644
--- a/asm/SDK/VF/pf_fat.s
+++ b/asm/SDK/VF/pf_fat.s
@@ -2971,7 +2971,7 @@ lbl_80310CF0:
/* 80310D04 0030C964 39 01 00 0C */ addi r8, r1, 0xc
/* 80310D08 0030C968 38 C0 00 00 */ li r6, 0
/* 80310D0C 0030C96C 39 20 00 00 */ li r9, 0
-/* 80310D10 0030C970 48 00 80 D9 */ bl func_80318DE8
+/* 80310D10 0030C970 48 00 80 D9 */ bl VFiPFSEC_WriteData
/* 80310D14 0030C974 2C 03 00 00 */ cmpwi r3, 0
/* 80310D18 0030C978 7C 7E 1B 78 */ mr r30, r3
/* 80310D1C 0030C97C 41 82 00 18 */ beq lbl_80310D34
diff --git a/asm/SDK/VF/pf_fat12.s b/asm/SDK/VF/pf_fat12.s
index a83c59c..15b9eaa 100644
--- a/asm/SDK/VF/pf_fat12.s
+++ b/asm/SDK/VF/pf_fat12.s
@@ -63,7 +63,7 @@ lbl_80311224:
/* 8031123C 0030CE9C 38 81 00 08 */ addi r4, r1, 8
/* 80311240 0030CEA0 57 25 04 3E */ clrlwi r5, r25, 0x10
/* 80311244 0030CEA4 38 E0 00 02 */ li r7, 2
-/* 80311248 0030CEA8 48 00 77 29 */ bl func_80318970
+/* 80311248 0030CEA8 48 00 77 29 */ bl VFiPFSEC_ReadFAT
/* 8031124C 0030CEAC 7C 7A 1B 78 */ mr r26, r3
/* 80311250 0030CEB0 48 00 00 48 */ b lbl_80311298
lbl_80311254:
@@ -72,7 +72,7 @@ lbl_80311254:
/* 8031125C 0030CEBC 38 81 00 08 */ addi r4, r1, 8
/* 80311260 0030CEC0 57 25 04 3E */ clrlwi r5, r25, 0x10
/* 80311264 0030CEC4 38 E0 00 01 */ li r7, 1
-/* 80311268 0030CEC8 48 00 77 09 */ bl func_80318970
+/* 80311268 0030CEC8 48 00 77 09 */ bl VFiPFSEC_ReadFAT
/* 8031126C 0030CECC 2C 03 00 00 */ cmpwi r3, 0
/* 80311270 0030CED0 7C 7A 1B 78 */ mr r26, r3
/* 80311274 0030CED4 40 82 00 24 */ bne lbl_80311298
@@ -82,7 +82,7 @@ lbl_80311254:
/* 80311284 0030CEE4 38 C0 00 00 */ li r6, 0
/* 80311288 0030CEE8 38 A5 00 01 */ addi r5, r5, 1
/* 8031128C 0030CEEC 38 E0 00 01 */ li r7, 1
-/* 80311290 0030CEF0 48 00 76 E1 */ bl func_80318970
+/* 80311290 0030CEF0 48 00 76 E1 */ bl VFiPFSEC_ReadFAT
/* 80311294 0030CEF4 7C 7A 1B 78 */ mr r26, r3
lbl_80311298:
/* 80311298 0030CEF8 2C 1A 10 00 */ cmpwi r26, 0x1000
@@ -391,7 +391,7 @@ lbl_8031168C:
/* 803116C8 0030D328 38 81 00 08 */ addi r4, r1, 8
/* 803116CC 0030D32C 57 86 04 3E */ clrlwi r6, r28, 0x10
/* 803116D0 0030D330 38 E0 00 01 */ li r7, 1
-/* 803116D4 0030D334 48 00 72 9D */ bl func_80318970
+/* 803116D4 0030D334 48 00 72 9D */ bl VFiPFSEC_ReadFAT
/* 803116D8 0030D338 2C 03 00 00 */ cmpwi r3, 0
/* 803116DC 0030D33C 41 82 00 08 */ beq lbl_803116E4
/* 803116E0 0030D340 48 00 00 CC */ b lbl_803117AC
@@ -412,7 +412,7 @@ lbl_803116FC:
/* 80311714 0030D374 38 E0 00 01 */ li r7, 1
/* 80311718 0030D378 54 A5 04 3E */ clrlwi r5, r5, 0x10
/* 8031171C 0030D37C 54 06 04 3E */ clrlwi r6, r0, 0x10
-/* 80311720 0030D380 48 00 72 51 */ bl func_80318970
+/* 80311720 0030D380 48 00 72 51 */ bl VFiPFSEC_ReadFAT
/* 80311724 0030D384 2C 03 00 00 */ cmpwi r3, 0
/* 80311728 0030D388 41 82 00 08 */ beq lbl_80311730
/* 8031172C 0030D38C 48 00 00 80 */ b lbl_803117AC
@@ -434,14 +434,14 @@ lbl_80311744:
/* 80311764 0030D3C4 7F E5 FB 78 */ mr r5, r31
/* 80311768 0030D3C8 38 81 00 08 */ addi r4, r1, 8
/* 8031176C 0030D3CC 38 E0 00 02 */ li r7, 2
-/* 80311770 0030D3D0 48 00 75 99 */ bl func_80318D08
+/* 80311770 0030D3D0 48 00 75 99 */ bl VFiPFSEC_WriteFAT
/* 80311774 0030D3D4 48 00 00 38 */ b lbl_803117AC
lbl_80311778:
/* 80311778 0030D3D8 7F A3 EB 78 */ mr r3, r29
/* 8031177C 0030D3DC 7F E5 FB 78 */ mr r5, r31
/* 80311780 0030D3E0 38 81 00 08 */ addi r4, r1, 8
/* 80311784 0030D3E4 38 E0 00 01 */ li r7, 1
-/* 80311788 0030D3E8 48 00 75 81 */ bl func_80318D08
+/* 80311788 0030D3E8 48 00 75 81 */ bl VFiPFSEC_WriteFAT
/* 8031178C 0030D3EC 2C 03 00 00 */ cmpwi r3, 0
/* 80311790 0030D3F0 40 82 00 1C */ bne lbl_803117AC
/* 80311794 0030D3F4 7F A3 EB 78 */ mr r3, r29
@@ -449,7 +449,7 @@ lbl_80311778:
/* 8031179C 0030D3FC 38 BF 00 01 */ addi r5, r31, 1
/* 803117A0 0030D400 38 C0 00 00 */ li r6, 0
/* 803117A4 0030D404 38 E0 00 01 */ li r7, 1
-/* 803117A8 0030D408 48 00 75 61 */ bl func_80318D08
+/* 803117A8 0030D408 48 00 75 61 */ bl VFiPFSEC_WriteFAT
lbl_803117AC:
/* 803117AC 0030D40C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803117B0 0030D410 83 E1 00 1C */ lwz r31, 0x1c(r1)
diff --git a/asm/SDK/VF/pf_fat16.s b/asm/SDK/VF/pf_fat16.s
index d5b13d5..b09ed9a 100644
--- a/asm/SDK/VF/pf_fat16.s
+++ b/asm/SDK/VF/pf_fat16.s
@@ -55,7 +55,7 @@ lbl_80311D00:
/* 80311D08 0030D968 7F 66 DB 78 */ mr r6, r27
/* 80311D0C 0030D96C 38 81 00 08 */ addi r4, r1, 8
/* 80311D10 0030D970 38 E0 00 02 */ li r7, 2
-/* 80311D14 0030D974 48 00 6C 5D */ bl func_80318970
+/* 80311D14 0030D974 48 00 6C 5D */ bl VFiPFSEC_ReadFAT
/* 80311D18 0030D978 2C 03 10 00 */ cmpwi r3, 0x1000
/* 80311D1C 0030D97C 7C 7A 1B 78 */ mr r26, r3
/* 80311D20 0030D980 40 82 00 50 */ bne lbl_80311D70
@@ -264,7 +264,7 @@ lbl_80311FC4:
/* 80311FF0 0030DC50 54 C5 04 3E */ clrlwi r5, r6, 0x10
/* 80311FF4 0030DC54 54 86 04 3E */ clrlwi r6, r4, 0x10
/* 80311FF8 0030DC58 38 81 00 08 */ addi r4, r1, 8
-/* 80311FFC 0030DC5C 48 00 6D 0D */ bl func_80318D08
+/* 80311FFC 0030DC5C 48 00 6D 0D */ bl VFiPFSEC_WriteFAT
lbl_80312000:
/* 80312000 0030DC60 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80312004 0030DC64 7C 08 03 A6 */ mtlr r0
diff --git a/asm/SDK/VF/pf_fat32.s b/asm/SDK/VF/pf_fat32.s
index d023801..7b2db22 100644
--- a/asm/SDK/VF/pf_fat32.s
+++ b/asm/SDK/VF/pf_fat32.s
@@ -55,7 +55,7 @@ lbl_80312278:
/* 80312280 0030DEE0 7F 66 DB 78 */ mr r6, r27
/* 80312284 0030DEE4 38 81 00 08 */ addi r4, r1, 8
/* 80312288 0030DEE8 38 E0 00 04 */ li r7, 4
-/* 8031228C 0030DEEC 48 00 66 E5 */ bl func_80318970
+/* 8031228C 0030DEEC 48 00 66 E5 */ bl VFiPFSEC_ReadFAT
/* 80312290 0030DEF0 2C 03 10 00 */ cmpwi r3, 0x1000
/* 80312294 0030DEF4 7C 7A 1B 78 */ mr r26, r3
/* 80312298 0030DEF8 40 82 00 50 */ bne lbl_803122E8
@@ -279,7 +279,7 @@ lbl_80312574:
/* 803125A4 0030E204 54 1D 04 3E */ clrlwi r29, r0, 0x10
/* 803125A8 0030E208 7F C5 F3 78 */ mr r5, r30
/* 803125AC 0030E20C 7F A6 EB 78 */ mr r6, r29
-/* 803125B0 0030E210 48 00 63 C1 */ bl func_80318970
+/* 803125B0 0030E210 48 00 63 C1 */ bl VFiPFSEC_ReadFAT
/* 803125B4 0030E214 2C 03 00 00 */ cmpwi r3, 0
/* 803125B8 0030E218 41 82 00 08 */ beq lbl_803125C0
/* 803125BC 0030E21C 48 00 00 54 */ b lbl_80312610
@@ -303,7 +303,7 @@ lbl_803125C0:
/* 80312600 0030E260 51 20 46 3E */ rlwimi r0, r9, 8, 0x18, 0x1f
/* 80312604 0030E264 7D 00 03 78 */ or r0, r8, r0
/* 80312608 0030E268 90 01 00 08 */ stw r0, 8(r1)
-/* 8031260C 0030E26C 48 00 66 FD */ bl func_80318D08
+/* 8031260C 0030E26C 48 00 66 FD */ bl VFiPFSEC_WriteFAT
lbl_80312610:
/* 80312610 0030E270 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80312614 0030E274 83 E1 00 1C */ lwz r31, 0x1c(r1)
diff --git a/asm/SDK/VF/pf_fatfs.s b/asm/SDK/VF/pf_fatfs.s
index 3c0ce34..db73bc4 100644
--- a/asm/SDK/VF/pf_fatfs.s
+++ b/asm/SDK/VF/pf_fatfs.s
@@ -4,4 +4,4 @@
.global VFiPFFATFS_initializeFATFS
VFiPFFATFS_initializeFATFS:
-/* 80312810 0030E470 48 00 69 D0 */ b lbl_803191E0
+/* 80312810 0030E470 48 00 69 D0 */ b VFiPFVOL_InitModule
diff --git a/asm/SDK/VF/pf_file.s b/asm/SDK/VF/pf_file.s
new file mode 100644
index 0000000..c78f06a
--- /dev/null
+++ b/asm/SDK/VF/pf_file.s
@@ -0,0 +1,3785 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFiPFFILE_Cursor_AdvanceToRead
+VFiPFFILE_Cursor_AdvanceToRead:
+/* 80312814 0030E474 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80312818 0030E478 7C 08 02 A6 */ mflr r0
+/* 8031281C 0030E47C 2C 03 00 00 */ cmpwi r3, 0
+/* 80312820 0030E480 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80312824 0030E484 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80312828 0030E488 3B E0 00 01 */ li r31, 1
+/* 8031282C 0030E48C 40 82 00 0C */ bne lbl_80312838
+/* 80312830 0030E490 39 20 00 00 */ li r9, 0
+/* 80312834 0030E494 48 00 00 0C */ b lbl_80312840
+lbl_80312838:
+/* 80312838 0030E498 80 C3 00 08 */ lwz r6, 8(r3)
+/* 8031283C 0030E49C 81 26 02 68 */ lwz r9, 0x268(r6)
+lbl_80312840:
+/* 80312840 0030E4A0 80 C3 00 08 */ lwz r6, 8(r3)
+/* 80312844 0030E4A4 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80312848 0030E4A8 A1 03 00 28 */ lhz r8, 0x28(r3)
+/* 8031284C 0030E4AC 81 46 02 64 */ lwz r10, 0x264(r6)
+/* 80312850 0030E4B0 7C 00 22 14 */ add r0, r0, r4
+/* 80312854 0030E4B4 88 E9 00 20 */ lbz r7, 0x20(r9)
+/* 80312858 0030E4B8 7D 08 22 14 */ add r8, r8, r4
+/* 8031285C 0030E4BC 7C 00 50 40 */ cmplw r0, r10
+/* 80312860 0030E4C0 7D 00 3C 30 */ srw r0, r8, r7
+/* 80312864 0030E4C4 7C E5 02 14 */ add r7, r5, r0
+/* 80312868 0030E4C8 40 80 00 34 */ bge lbl_8031289C
+/* 8031286C 0030E4CC A0 A9 00 00 */ lhz r5, 0(r9)
+/* 80312870 0030E4D0 38 05 FF FF */ addi r0, r5, -1
+/* 80312874 0030E4D4 7C 00 40 39 */ and. r0, r0, r8
+/* 80312878 0030E4D8 41 82 00 0C */ beq lbl_80312884
+/* 8031287C 0030E4DC 90 E3 00 20 */ stw r7, 0x20(r3)
+/* 80312880 0030E4E0 48 00 00 0C */ b lbl_8031288C
+lbl_80312884:
+/* 80312884 0030E4E4 38 00 FF FF */ li r0, -1
+/* 80312888 0030E4E8 90 03 00 20 */ stw r0, 0x20(r3)
+lbl_8031288C:
+/* 8031288C 0030E4EC 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80312890 0030E4F0 7C 00 22 14 */ add r0, r0, r4
+/* 80312894 0030E4F4 90 03 00 1C */ stw r0, 0x1c(r3)
+/* 80312898 0030E4F8 48 00 00 40 */ b lbl_803128D8
+lbl_8031289C:
+/* 8031289C 0030E4FC 2C 0A 00 00 */ cmpwi r10, 0
+/* 803128A0 0030E500 40 82 00 24 */ bne lbl_803128C4
+/* 803128A4 0030E504 38 A0 FF FF */ li r5, -1
+/* 803128A8 0030E508 38 00 00 00 */ li r0, 0
+/* 803128AC 0030E50C 2C 04 00 00 */ cmpwi r4, 0
+/* 803128B0 0030E510 90 A3 00 20 */ stw r5, 0x20(r3)
+/* 803128B4 0030E514 90 03 00 1C */ stw r0, 0x1c(r3)
+/* 803128B8 0030E518 41 82 00 20 */ beq lbl_803128D8
+/* 803128BC 0030E51C 3B E0 00 00 */ li r31, 0
+/* 803128C0 0030E520 48 00 00 18 */ b lbl_803128D8
+lbl_803128C4:
+/* 803128C4 0030E524 38 00 FF FF */ li r0, -1
+/* 803128C8 0030E528 3B E0 00 00 */ li r31, 0
+/* 803128CC 0030E52C 90 03 00 20 */ stw r0, 0x20(r3)
+/* 803128D0 0030E530 80 06 02 64 */ lwz r0, 0x264(r6)
+/* 803128D4 0030E534 90 03 00 1C */ stw r0, 0x1c(r3)
+lbl_803128D8:
+/* 803128D8 0030E538 2C 03 00 00 */ cmpwi r3, 0
+/* 803128DC 0030E53C 40 82 00 0C */ bne lbl_803128E8
+/* 803128E0 0030E540 38 A0 00 00 */ li r5, 0
+/* 803128E4 0030E544 48 00 00 0C */ b lbl_803128F0
+lbl_803128E8:
+/* 803128E8 0030E548 80 83 00 08 */ lwz r4, 8(r3)
+/* 803128EC 0030E54C 80 A4 02 68 */ lwz r5, 0x268(r4)
+lbl_803128F0:
+/* 803128F0 0030E550 80 C3 00 1C */ lwz r6, 0x1c(r3)
+/* 803128F4 0030E554 7C E4 3B 78 */ mr r4, r7
+/* 803128F8 0030E558 88 05 00 20 */ lbz r0, 0x20(r5)
+/* 803128FC 0030E55C 7C C0 04 30 */ srw r0, r6, r0
+/* 80312900 0030E560 90 03 00 24 */ stw r0, 0x24(r3)
+/* 80312904 0030E564 A0 A5 00 00 */ lhz r5, 0(r5)
+/* 80312908 0030E568 38 05 FF FF */ addi r0, r5, -1
+/* 8031290C 0030E56C 7C C0 00 38 */ and r0, r6, r0
+/* 80312910 0030E570 B0 03 00 28 */ sth r0, 0x28(r3)
+/* 80312914 0030E574 4B FF 84 6D */ bl VFiPFCLUSTER_UpdateLastAccessCluster
+/* 80312918 0030E578 7F E3 FB 78 */ mr r3, r31
+/* 8031291C 0030E57C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80312920 0030E580 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80312924 0030E584 7C 08 03 A6 */ mtlr r0
+/* 80312928 0030E588 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031292C 0030E58C 4E 80 00 20 */ blr
+
+.global VFiPFFILE_Cursor_ReadHeadSector
+VFiPFFILE_Cursor_ReadHeadSector:
+/* 80312930 0030E590 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80312934 0030E594 7C 08 02 A6 */ mflr r0
+/* 80312938 0030E598 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8031293C 0030E59C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80312940 0030E5A0 4B EB 47 E9 */ bl _savegpr_27
+/* 80312944 0030E5A4 38 00 00 00 */ li r0, 0
+/* 80312948 0030E5A8 7C BD 2B 78 */ mr r29, r5
+/* 8031294C 0030E5AC 90 07 00 00 */ stw r0, 0(r7)
+/* 80312950 0030E5B0 7C 7B 1B 78 */ mr r27, r3
+/* 80312954 0030E5B4 7C 9C 23 78 */ mr r28, r4
+/* 80312958 0030E5B8 7C DE 33 78 */ mr r30, r6
+/* 8031295C 0030E5BC A0 A4 00 28 */ lhz r5, 0x28(r4)
+/* 80312960 0030E5C0 7C FF 3B 78 */ mr r31, r7
+/* 80312964 0030E5C4 2C 05 00 00 */ cmpwi r5, 0
+/* 80312968 0030E5C8 40 82 00 0C */ bne lbl_80312974
+/* 8031296C 0030E5CC 38 60 00 00 */ li r3, 0
+/* 80312970 0030E5D0 48 00 02 40 */ b lbl_80312BB0
+lbl_80312974:
+/* 80312974 0030E5D4 A0 03 00 00 */ lhz r0, 0(r3)
+/* 80312978 0030E5D8 7C E5 00 50 */ subf r7, r5, r0
+/* 8031297C 0030E5DC 7C 06 38 40 */ cmplw r6, r7
+/* 80312980 0030E5E0 40 81 00 08 */ ble lbl_80312988
+/* 80312984 0030E5E4 7C FE 3B 78 */ mr r30, r7
+lbl_80312988:
+/* 80312988 0030E5E8 80 C4 00 08 */ lwz r6, 8(r4)
+/* 8031298C 0030E5EC 80 64 00 1C */ lwz r3, 0x1c(r4)
+/* 80312990 0030E5F0 80 A6 02 64 */ lwz r5, 0x264(r6)
+/* 80312994 0030E5F4 7C 03 F2 14 */ add r0, r3, r30
+/* 80312998 0030E5F8 7C 00 28 40 */ cmplw r0, r5
+/* 8031299C 0030E5FC 40 81 00 18 */ ble lbl_803129B4
+/* 803129A0 0030E600 7F C3 28 50 */ subf r30, r3, r5
+/* 803129A4 0030E604 7C 1E 38 40 */ cmplw r30, r7
+/* 803129A8 0030E608 40 80 00 0C */ bge lbl_803129B4
+/* 803129AC 0030E60C 38 60 00 00 */ li r3, 0
+/* 803129B0 0030E610 48 00 02 00 */ b lbl_80312BB0
+lbl_803129B4:
+/* 803129B4 0030E614 80 A4 00 20 */ lwz r5, 0x20(r4)
+/* 803129B8 0030E618 3C 05 00 01 */ addis r0, r5, 1
+/* 803129BC 0030E61C 28 00 FF FF */ cmplwi r0, 0xffff
+/* 803129C0 0030E620 40 82 01 A0 */ bne lbl_80312B60
+/* 803129C4 0030E624 80 84 00 24 */ lwz r4, 0x24(r4)
+/* 803129C8 0030E628 38 66 00 04 */ addi r3, r6, 4
+/* 803129CC 0030E62C 38 DC 00 20 */ addi r6, r28, 0x20
+/* 803129D0 0030E630 38 A0 00 00 */ li r5, 0
+/* 803129D4 0030E634 4B FF D5 95 */ bl VFiPFFAT_GetSectorSpecified
+/* 803129D8 0030E638 2C 03 00 00 */ cmpwi r3, 0
+/* 803129DC 0030E63C 41 82 00 08 */ beq lbl_803129E4
+/* 803129E0 0030E640 48 00 01 D0 */ b lbl_80312BB0
+lbl_803129E4:
+/* 803129E4 0030E644 80 BC 00 20 */ lwz r5, 0x20(r28)
+/* 803129E8 0030E648 3C 05 00 01 */ addis r0, r5, 1
+/* 803129EC 0030E64C 28 00 FF FF */ cmplwi r0, 0xffff
+/* 803129F0 0030E650 40 82 00 B4 */ bne lbl_80312AA4
+/* 803129F4 0030E654 80 7C 00 08 */ lwz r3, 8(r28)
+/* 803129F8 0030E658 2C 1C 00 00 */ cmpwi r28, 0
+/* 803129FC 0030E65C 81 03 02 64 */ lwz r8, 0x264(r3)
+/* 80312A00 0030E660 40 82 00 0C */ bne lbl_80312A0C
+/* 80312A04 0030E664 38 80 00 00 */ li r4, 0
+/* 80312A08 0030E668 48 00 00 08 */ b lbl_80312A10
+lbl_80312A0C:
+/* 80312A0C 0030E66C 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80312A10:
+/* 80312A10 0030E670 A0 64 00 00 */ lhz r3, 0(r4)
+/* 80312A14 0030E674 80 1C 00 1C */ lwz r0, 0x1c(r28)
+/* 80312A18 0030E678 38 63 FF FF */ addi r3, r3, -1
+/* 80312A1C 0030E67C 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 80312A20 0030E680 7C 07 18 38 */ and r7, r0, r3
+/* 80312A24 0030E684 7C 05 24 30 */ srw r5, r0, r4
+/* 80312A28 0030E688 7D 03 18 38 */ and r3, r8, r3
+/* 80312A2C 0030E68C 7C C7 00 D0 */ neg r6, r7
+/* 80312A30 0030E690 7D 04 24 30 */ srw r4, r8, r4
+/* 80312A34 0030E694 7C 03 00 D0 */ neg r0, r3
+/* 80312A38 0030E698 7C 00 1B 78 */ or r0, r0, r3
+/* 80312A3C 0030E69C 7C C6 3B 78 */ or r6, r6, r7
+/* 80312A40 0030E6A0 54 C3 0F FE */ srwi r3, r6, 0x1f
+/* 80312A44 0030E6A4 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 80312A48 0030E6A8 7C 65 1A 14 */ add r3, r5, r3
+/* 80312A4C 0030E6AC 7C 04 02 14 */ add r0, r4, r0
+/* 80312A50 0030E6B0 7C 03 00 40 */ cmplw r3, r0
+/* 80312A54 0030E6B4 41 82 00 0C */ beq lbl_80312A60
+/* 80312A58 0030E6B8 38 00 FF FF */ li r0, -1
+/* 80312A5C 0030E6BC 90 1C 00 20 */ stw r0, 0x20(r28)
+lbl_80312A60:
+/* 80312A60 0030E6C0 2C 1C 00 00 */ cmpwi r28, 0
+/* 80312A64 0030E6C4 91 1C 00 1C */ stw r8, 0x1c(r28)
+/* 80312A68 0030E6C8 40 82 00 0C */ bne lbl_80312A74
+/* 80312A6C 0030E6CC 38 80 00 00 */ li r4, 0
+/* 80312A70 0030E6D0 48 00 00 0C */ b lbl_80312A7C
+lbl_80312A74:
+/* 80312A74 0030E6D4 80 7C 00 08 */ lwz r3, 8(r28)
+/* 80312A78 0030E6D8 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80312A7C:
+/* 80312A7C 0030E6DC 80 BC 00 1C */ lwz r5, 0x1c(r28)
+/* 80312A80 0030E6E0 38 60 00 1C */ li r3, 0x1c
+/* 80312A84 0030E6E4 88 04 00 20 */ lbz r0, 0x20(r4)
+/* 80312A88 0030E6E8 7C A0 04 30 */ srw r0, r5, r0
+/* 80312A8C 0030E6EC 90 1C 00 24 */ stw r0, 0x24(r28)
+/* 80312A90 0030E6F0 A0 84 00 00 */ lhz r4, 0(r4)
+/* 80312A94 0030E6F4 38 04 FF FF */ addi r0, r4, -1
+/* 80312A98 0030E6F8 7C A0 00 38 */ and r0, r5, r0
+/* 80312A9C 0030E6FC B0 1C 00 28 */ sth r0, 0x28(r28)
+/* 80312AA0 0030E700 48 00 01 10 */ b lbl_80312BB0
+lbl_80312AA4:
+/* 80312AA4 0030E704 80 7C 00 08 */ lwz r3, 8(r28)
+/* 80312AA8 0030E708 80 DC 00 1C */ lwz r6, 0x1c(r28)
+/* 80312AAC 0030E70C 81 03 02 64 */ lwz r8, 0x264(r3)
+/* 80312AB0 0030E710 7C 06 F2 14 */ add r0, r6, r30
+/* 80312AB4 0030E714 7C 00 40 40 */ cmplw r0, r8
+/* 80312AB8 0030E718 40 81 00 A8 */ ble lbl_80312B60
+/* 80312ABC 0030E71C 2C 1C 00 00 */ cmpwi r28, 0
+/* 80312AC0 0030E720 40 82 00 0C */ bne lbl_80312ACC
+/* 80312AC4 0030E724 38 80 00 00 */ li r4, 0
+/* 80312AC8 0030E728 48 00 00 08 */ b lbl_80312AD0
+lbl_80312ACC:
+/* 80312ACC 0030E72C 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80312AD0:
+/* 80312AD0 0030E730 A0 64 00 00 */ lhz r3, 0(r4)
+/* 80312AD4 0030E734 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 80312AD8 0030E738 38 03 FF FF */ addi r0, r3, -1
+/* 80312ADC 0030E73C 7C C7 00 38 */ and r7, r6, r0
+/* 80312AE0 0030E740 7C C5 24 30 */ srw r5, r6, r4
+/* 80312AE4 0030E744 7D 03 00 38 */ and r3, r8, r0
+/* 80312AE8 0030E748 7D 04 24 30 */ srw r4, r8, r4
+/* 80312AEC 0030E74C 7C C7 00 D0 */ neg r6, r7
+/* 80312AF0 0030E750 7C 03 00 D0 */ neg r0, r3
+/* 80312AF4 0030E754 7C 00 1B 78 */ or r0, r0, r3
+/* 80312AF8 0030E758 7C C6 3B 78 */ or r6, r6, r7
+/* 80312AFC 0030E75C 54 C3 0F FE */ srwi r3, r6, 0x1f
+/* 80312B00 0030E760 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 80312B04 0030E764 7C 65 1A 14 */ add r3, r5, r3
+/* 80312B08 0030E768 7C 04 02 14 */ add r0, r4, r0
+/* 80312B0C 0030E76C 7C 03 00 40 */ cmplw r3, r0
+/* 80312B10 0030E770 41 82 00 0C */ beq lbl_80312B1C
+/* 80312B14 0030E774 38 00 FF FF */ li r0, -1
+/* 80312B18 0030E778 90 1C 00 20 */ stw r0, 0x20(r28)
+lbl_80312B1C:
+/* 80312B1C 0030E77C 2C 1C 00 00 */ cmpwi r28, 0
+/* 80312B20 0030E780 91 1C 00 1C */ stw r8, 0x1c(r28)
+/* 80312B24 0030E784 40 82 00 0C */ bne lbl_80312B30
+/* 80312B28 0030E788 38 80 00 00 */ li r4, 0
+/* 80312B2C 0030E78C 48 00 00 0C */ b lbl_80312B38
+lbl_80312B30:
+/* 80312B30 0030E790 80 7C 00 08 */ lwz r3, 8(r28)
+/* 80312B34 0030E794 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80312B38:
+/* 80312B38 0030E798 80 BC 00 1C */ lwz r5, 0x1c(r28)
+/* 80312B3C 0030E79C 38 60 00 1B */ li r3, 0x1b
+/* 80312B40 0030E7A0 88 04 00 20 */ lbz r0, 0x20(r4)
+/* 80312B44 0030E7A4 7C A0 04 30 */ srw r0, r5, r0
+/* 80312B48 0030E7A8 90 1C 00 24 */ stw r0, 0x24(r28)
+/* 80312B4C 0030E7AC A0 84 00 00 */ lhz r4, 0(r4)
+/* 80312B50 0030E7B0 38 04 FF FF */ addi r0, r4, -1
+/* 80312B54 0030E7B4 7C A0 00 38 */ and r0, r5, r0
+/* 80312B58 0030E7B8 B0 1C 00 28 */ sth r0, 0x28(r28)
+/* 80312B5C 0030E7BC 48 00 00 54 */ b lbl_80312BB0
+lbl_80312B60:
+/* 80312B60 0030E7C0 A0 DC 00 28 */ lhz r6, 0x28(r28)
+/* 80312B64 0030E7C4 7F 63 DB 78 */ mr r3, r27
+/* 80312B68 0030E7C8 7F A4 EB 78 */ mr r4, r29
+/* 80312B6C 0030E7CC 7F C7 F3 78 */ mr r7, r30
+/* 80312B70 0030E7D0 39 01 00 08 */ addi r8, r1, 8
+/* 80312B74 0030E7D4 39 20 00 01 */ li r9, 1
+/* 80312B78 0030E7D8 48 00 5E B1 */ bl VFiPFSEC_ReadData
+/* 80312B7C 0030E7DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80312B80 0030E7E0 41 82 00 14 */ beq lbl_80312B94
+/* 80312B84 0030E7E4 80 01 00 08 */ lwz r0, 8(r1)
+/* 80312B88 0030E7E8 2C 00 00 00 */ cmpwi r0, 0
+/* 80312B8C 0030E7EC 40 82 00 08 */ bne lbl_80312B94
+/* 80312B90 0030E7F0 48 00 00 20 */ b lbl_80312BB0
+lbl_80312B94:
+/* 80312B94 0030E7F4 80 01 00 08 */ lwz r0, 8(r1)
+/* 80312B98 0030E7F8 7F 83 E3 78 */ mr r3, r28
+/* 80312B9C 0030E7FC 90 1F 00 00 */ stw r0, 0(r31)
+/* 80312BA0 0030E800 80 81 00 08 */ lwz r4, 8(r1)
+/* 80312BA4 0030E804 80 BC 00 20 */ lwz r5, 0x20(r28)
+/* 80312BA8 0030E808 4B FF FC 6D */ bl VFiPFFILE_Cursor_AdvanceToRead
+/* 80312BAC 0030E80C 38 60 00 00 */ li r3, 0
+lbl_80312BB0:
+/* 80312BB0 0030E810 39 61 00 30 */ addi r11, r1, 0x30
+/* 80312BB4 0030E814 4B EB 45 C1 */ bl _restgpr_27
+/* 80312BB8 0030E818 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80312BBC 0030E81C 7C 08 03 A6 */ mtlr r0
+/* 80312BC0 0030E820 38 21 00 30 */ addi r1, r1, 0x30
+/* 80312BC4 0030E824 4E 80 00 20 */ blr
+
+.global VFiPFFILE_Cursor_ReadBodySectors
+VFiPFFILE_Cursor_ReadBodySectors:
+/* 80312BC8 0030E828 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80312BCC 0030E82C 7C 08 02 A6 */ mflr r0
+/* 80312BD0 0030E830 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80312BD4 0030E834 39 61 00 30 */ addi r11, r1, 0x30
+/* 80312BD8 0030E838 4B EB 45 51 */ bl _savegpr_27
+/* 80312BDC 0030E83C 38 00 00 00 */ li r0, 0
+/* 80312BE0 0030E840 7C 7B 1B 78 */ mr r27, r3
+/* 80312BE4 0030E844 90 07 00 00 */ stw r0, 0(r7)
+/* 80312BE8 0030E848 7C FE 3B 78 */ mr r30, r7
+/* 80312BEC 0030E84C 7C 9F 23 78 */ mr r31, r4
+/* 80312BF0 0030E850 7C DD 33 78 */ mr r29, r6
+/* 80312BF4 0030E854 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80312BF8 0030E858 7C BC 2B 78 */ mr r28, r5
+/* 80312BFC 0030E85C 7F A5 EB 78 */ mr r5, r29
+/* 80312C00 0030E860 38 DF 00 20 */ addi r6, r31, 0x20
+/* 80312C04 0030E864 80 64 00 08 */ lwz r3, 8(r4)
+/* 80312C08 0030E868 38 E1 00 0C */ addi r7, r1, 0xc
+/* 80312C0C 0030E86C 80 84 00 24 */ lwz r4, 0x24(r4)
+/* 80312C10 0030E870 38 63 00 04 */ addi r3, r3, 4
+/* 80312C14 0030E874 4B FF D5 01 */ bl VFiPFFAT_GetContinuousSector
+/* 80312C18 0030E878 2C 03 00 00 */ cmpwi r3, 0
+/* 80312C1C 0030E87C 41 82 00 08 */ beq lbl_80312C24
+/* 80312C20 0030E880 48 00 01 68 */ b lbl_80312D88
+lbl_80312C24:
+/* 80312C24 0030E884 80 BF 00 20 */ lwz r5, 0x20(r31)
+/* 80312C28 0030E888 3C 05 00 01 */ addis r0, r5, 1
+/* 80312C2C 0030E88C 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80312C30 0030E890 40 82 00 B4 */ bne lbl_80312CE4
+/* 80312C34 0030E894 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80312C38 0030E898 2C 1F 00 00 */ cmpwi r31, 0
+/* 80312C3C 0030E89C 81 03 02 64 */ lwz r8, 0x264(r3)
+/* 80312C40 0030E8A0 40 82 00 0C */ bne lbl_80312C4C
+/* 80312C44 0030E8A4 38 80 00 00 */ li r4, 0
+/* 80312C48 0030E8A8 48 00 00 08 */ b lbl_80312C50
+lbl_80312C4C:
+/* 80312C4C 0030E8AC 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80312C50:
+/* 80312C50 0030E8B0 A0 64 00 00 */ lhz r3, 0(r4)
+/* 80312C54 0030E8B4 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80312C58 0030E8B8 38 63 FF FF */ addi r3, r3, -1
+/* 80312C5C 0030E8BC 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 80312C60 0030E8C0 7C 07 18 38 */ and r7, r0, r3
+/* 80312C64 0030E8C4 7C 05 24 30 */ srw r5, r0, r4
+/* 80312C68 0030E8C8 7D 03 18 38 */ and r3, r8, r3
+/* 80312C6C 0030E8CC 7C C7 00 D0 */ neg r6, r7
+/* 80312C70 0030E8D0 7D 04 24 30 */ srw r4, r8, r4
+/* 80312C74 0030E8D4 7C 03 00 D0 */ neg r0, r3
+/* 80312C78 0030E8D8 7C 00 1B 78 */ or r0, r0, r3
+/* 80312C7C 0030E8DC 7C C6 3B 78 */ or r6, r6, r7
+/* 80312C80 0030E8E0 54 C3 0F FE */ srwi r3, r6, 0x1f
+/* 80312C84 0030E8E4 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 80312C88 0030E8E8 7C 65 1A 14 */ add r3, r5, r3
+/* 80312C8C 0030E8EC 7C 04 02 14 */ add r0, r4, r0
+/* 80312C90 0030E8F0 7C 03 00 40 */ cmplw r3, r0
+/* 80312C94 0030E8F4 41 82 00 0C */ beq lbl_80312CA0
+/* 80312C98 0030E8F8 38 00 FF FF */ li r0, -1
+/* 80312C9C 0030E8FC 90 1F 00 20 */ stw r0, 0x20(r31)
+lbl_80312CA0:
+/* 80312CA0 0030E900 2C 1F 00 00 */ cmpwi r31, 0
+/* 80312CA4 0030E904 91 1F 00 1C */ stw r8, 0x1c(r31)
+/* 80312CA8 0030E908 40 82 00 0C */ bne lbl_80312CB4
+/* 80312CAC 0030E90C 38 80 00 00 */ li r4, 0
+/* 80312CB0 0030E910 48 00 00 0C */ b lbl_80312CBC
+lbl_80312CB4:
+/* 80312CB4 0030E914 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80312CB8 0030E918 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80312CBC:
+/* 80312CBC 0030E91C 80 BF 00 1C */ lwz r5, 0x1c(r31)
+/* 80312CC0 0030E920 38 60 00 1C */ li r3, 0x1c
+/* 80312CC4 0030E924 88 04 00 20 */ lbz r0, 0x20(r4)
+/* 80312CC8 0030E928 7C A0 04 30 */ srw r0, r5, r0
+/* 80312CCC 0030E92C 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 80312CD0 0030E930 A0 84 00 00 */ lhz r4, 0(r4)
+/* 80312CD4 0030E934 38 04 FF FF */ addi r0, r4, -1
+/* 80312CD8 0030E938 7C A0 00 38 */ and r0, r5, r0
+/* 80312CDC 0030E93C B0 1F 00 28 */ sth r0, 0x28(r31)
+/* 80312CE0 0030E940 48 00 00 A8 */ b lbl_80312D88
+lbl_80312CE4:
+/* 80312CE4 0030E944 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80312CE8 0030E948 88 1B 00 20 */ lbz r0, 0x20(r27)
+/* 80312CEC 0030E94C 7C 60 00 30 */ slw r0, r3, r0
+/* 80312CF0 0030E950 7C 1D 00 40 */ cmplw r29, r0
+/* 80312CF4 0030E954 40 81 00 08 */ ble lbl_80312CFC
+/* 80312CF8 0030E958 7C 1D 03 78 */ mr r29, r0
+lbl_80312CFC:
+/* 80312CFC 0030E95C 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80312D00 0030E960 80 9F 00 1C */ lwz r4, 0x1c(r31)
+/* 80312D04 0030E964 80 63 02 64 */ lwz r3, 0x264(r3)
+/* 80312D08 0030E968 7C 04 EA 14 */ add r0, r4, r29
+/* 80312D0C 0030E96C 7C 00 18 40 */ cmplw r0, r3
+/* 80312D10 0030E970 40 81 00 28 */ ble lbl_80312D38
+/* 80312D14 0030E974 A0 DB 00 00 */ lhz r6, 0(r27)
+/* 80312D18 0030E978 7F A4 18 50 */ subf r29, r4, r3
+/* 80312D1C 0030E97C 38 06 FF FF */ addi r0, r6, -1
+/* 80312D20 0030E980 7F A0 00 38 */ and r0, r29, r0
+/* 80312D24 0030E984 7F A0 E8 50 */ subf r29, r0, r29
+/* 80312D28 0030E988 7C 1D 30 40 */ cmplw r29, r6
+/* 80312D2C 0030E98C 40 80 00 0C */ bge lbl_80312D38
+/* 80312D30 0030E990 38 60 00 00 */ li r3, 0
+/* 80312D34 0030E994 48 00 00 54 */ b lbl_80312D88
+lbl_80312D38:
+/* 80312D38 0030E998 A0 DF 00 28 */ lhz r6, 0x28(r31)
+/* 80312D3C 0030E99C 7F 63 DB 78 */ mr r3, r27
+/* 80312D40 0030E9A0 7F 84 E3 78 */ mr r4, r28
+/* 80312D44 0030E9A4 7F A7 EB 78 */ mr r7, r29
+/* 80312D48 0030E9A8 39 01 00 08 */ addi r8, r1, 8
+/* 80312D4C 0030E9AC 39 20 00 01 */ li r9, 1
+/* 80312D50 0030E9B0 48 00 5C D9 */ bl VFiPFSEC_ReadData
+/* 80312D54 0030E9B4 2C 03 00 00 */ cmpwi r3, 0
+/* 80312D58 0030E9B8 41 82 00 14 */ beq lbl_80312D6C
+/* 80312D5C 0030E9BC 80 01 00 08 */ lwz r0, 8(r1)
+/* 80312D60 0030E9C0 2C 00 00 00 */ cmpwi r0, 0
+/* 80312D64 0030E9C4 40 82 00 08 */ bne lbl_80312D6C
+/* 80312D68 0030E9C8 48 00 00 20 */ b lbl_80312D88
+lbl_80312D6C:
+/* 80312D6C 0030E9CC 80 01 00 08 */ lwz r0, 8(r1)
+/* 80312D70 0030E9D0 7F E3 FB 78 */ mr r3, r31
+/* 80312D74 0030E9D4 90 1E 00 00 */ stw r0, 0(r30)
+/* 80312D78 0030E9D8 80 81 00 08 */ lwz r4, 8(r1)
+/* 80312D7C 0030E9DC 80 BF 00 20 */ lwz r5, 0x20(r31)
+/* 80312D80 0030E9E0 4B FF FA 95 */ bl VFiPFFILE_Cursor_AdvanceToRead
+/* 80312D84 0030E9E4 38 60 00 00 */ li r3, 0
+lbl_80312D88:
+/* 80312D88 0030E9E8 39 61 00 30 */ addi r11, r1, 0x30
+/* 80312D8C 0030E9EC 4B EB 43 E9 */ bl _restgpr_27
+/* 80312D90 0030E9F0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80312D94 0030E9F4 7C 08 03 A6 */ mtlr r0
+/* 80312D98 0030E9F8 38 21 00 30 */ addi r1, r1, 0x30
+/* 80312D9C 0030E9FC 4E 80 00 20 */ blr
+
+.global VFiPFFILE_Cursor_ReadTailSector
+VFiPFFILE_Cursor_ReadTailSector:
+/* 80312DA0 0030EA00 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80312DA4 0030EA04 7C 08 02 A6 */ mflr r0
+/* 80312DA8 0030EA08 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80312DAC 0030EA0C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80312DB0 0030EA10 4B EB 43 79 */ bl _savegpr_27
+/* 80312DB4 0030EA14 38 00 00 00 */ li r0, 0
+/* 80312DB8 0030EA18 2C 06 00 00 */ cmpwi r6, 0
+/* 80312DBC 0030EA1C 90 07 00 00 */ stw r0, 0(r7)
+/* 80312DC0 0030EA20 7C 7B 1B 78 */ mr r27, r3
+/* 80312DC4 0030EA24 7C 9F 23 78 */ mr r31, r4
+/* 80312DC8 0030EA28 7C BC 2B 78 */ mr r28, r5
+/* 80312DCC 0030EA2C 7C DD 33 78 */ mr r29, r6
+/* 80312DD0 0030EA30 7C FE 3B 78 */ mr r30, r7
+/* 80312DD4 0030EA34 40 82 00 0C */ bne lbl_80312DE0
+/* 80312DD8 0030EA38 38 60 00 00 */ li r3, 0
+/* 80312DDC 0030EA3C 48 00 02 28 */ b lbl_80313004
+lbl_80312DE0:
+/* 80312DE0 0030EA40 80 E4 00 08 */ lwz r7, 8(r4)
+/* 80312DE4 0030EA44 80 64 00 1C */ lwz r3, 0x1c(r4)
+/* 80312DE8 0030EA48 80 A7 02 64 */ lwz r5, 0x264(r7)
+/* 80312DEC 0030EA4C 7C 03 32 14 */ add r0, r3, r6
+/* 80312DF0 0030EA50 7C 00 28 40 */ cmplw r0, r5
+/* 80312DF4 0030EA54 40 81 00 14 */ ble lbl_80312E08
+/* 80312DF8 0030EA58 7F A3 28 51 */ subf. r29, r3, r5
+/* 80312DFC 0030EA5C 40 82 00 0C */ bne lbl_80312E08
+/* 80312E00 0030EA60 38 60 00 00 */ li r3, 0
+/* 80312E04 0030EA64 48 00 02 00 */ b lbl_80313004
+lbl_80312E08:
+/* 80312E08 0030EA68 80 A4 00 20 */ lwz r5, 0x20(r4)
+/* 80312E0C 0030EA6C 3C 05 00 01 */ addis r0, r5, 1
+/* 80312E10 0030EA70 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80312E14 0030EA74 40 82 01 A0 */ bne lbl_80312FB4
+/* 80312E18 0030EA78 80 84 00 24 */ lwz r4, 0x24(r4)
+/* 80312E1C 0030EA7C 38 67 00 04 */ addi r3, r7, 4
+/* 80312E20 0030EA80 38 DF 00 20 */ addi r6, r31, 0x20
+/* 80312E24 0030EA84 38 A0 00 00 */ li r5, 0
+/* 80312E28 0030EA88 4B FF D1 41 */ bl VFiPFFAT_GetSectorSpecified
+/* 80312E2C 0030EA8C 2C 03 00 00 */ cmpwi r3, 0
+/* 80312E30 0030EA90 41 82 00 08 */ beq lbl_80312E38
+/* 80312E34 0030EA94 48 00 01 D0 */ b lbl_80313004
+lbl_80312E38:
+/* 80312E38 0030EA98 80 BF 00 20 */ lwz r5, 0x20(r31)
+/* 80312E3C 0030EA9C 3C 05 00 01 */ addis r0, r5, 1
+/* 80312E40 0030EAA0 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80312E44 0030EAA4 40 82 00 B4 */ bne lbl_80312EF8
+/* 80312E48 0030EAA8 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80312E4C 0030EAAC 2C 1F 00 00 */ cmpwi r31, 0
+/* 80312E50 0030EAB0 81 03 02 64 */ lwz r8, 0x264(r3)
+/* 80312E54 0030EAB4 40 82 00 0C */ bne lbl_80312E60
+/* 80312E58 0030EAB8 38 80 00 00 */ li r4, 0
+/* 80312E5C 0030EABC 48 00 00 08 */ b lbl_80312E64
+lbl_80312E60:
+/* 80312E60 0030EAC0 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80312E64:
+/* 80312E64 0030EAC4 A0 64 00 00 */ lhz r3, 0(r4)
+/* 80312E68 0030EAC8 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80312E6C 0030EACC 38 63 FF FF */ addi r3, r3, -1
+/* 80312E70 0030EAD0 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 80312E74 0030EAD4 7C 07 18 38 */ and r7, r0, r3
+/* 80312E78 0030EAD8 7C 05 24 30 */ srw r5, r0, r4
+/* 80312E7C 0030EADC 7D 03 18 38 */ and r3, r8, r3
+/* 80312E80 0030EAE0 7C C7 00 D0 */ neg r6, r7
+/* 80312E84 0030EAE4 7D 04 24 30 */ srw r4, r8, r4
+/* 80312E88 0030EAE8 7C 03 00 D0 */ neg r0, r3
+/* 80312E8C 0030EAEC 7C 00 1B 78 */ or r0, r0, r3
+/* 80312E90 0030EAF0 7C C6 3B 78 */ or r6, r6, r7
+/* 80312E94 0030EAF4 54 C3 0F FE */ srwi r3, r6, 0x1f
+/* 80312E98 0030EAF8 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 80312E9C 0030EAFC 7C 65 1A 14 */ add r3, r5, r3
+/* 80312EA0 0030EB00 7C 04 02 14 */ add r0, r4, r0
+/* 80312EA4 0030EB04 7C 03 00 40 */ cmplw r3, r0
+/* 80312EA8 0030EB08 41 82 00 0C */ beq lbl_80312EB4
+/* 80312EAC 0030EB0C 38 00 FF FF */ li r0, -1
+/* 80312EB0 0030EB10 90 1F 00 20 */ stw r0, 0x20(r31)
+lbl_80312EB4:
+/* 80312EB4 0030EB14 2C 1F 00 00 */ cmpwi r31, 0
+/* 80312EB8 0030EB18 91 1F 00 1C */ stw r8, 0x1c(r31)
+/* 80312EBC 0030EB1C 40 82 00 0C */ bne lbl_80312EC8
+/* 80312EC0 0030EB20 38 80 00 00 */ li r4, 0
+/* 80312EC4 0030EB24 48 00 00 0C */ b lbl_80312ED0
+lbl_80312EC8:
+/* 80312EC8 0030EB28 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80312ECC 0030EB2C 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80312ED0:
+/* 80312ED0 0030EB30 80 BF 00 1C */ lwz r5, 0x1c(r31)
+/* 80312ED4 0030EB34 38 60 00 1C */ li r3, 0x1c
+/* 80312ED8 0030EB38 88 04 00 20 */ lbz r0, 0x20(r4)
+/* 80312EDC 0030EB3C 7C A0 04 30 */ srw r0, r5, r0
+/* 80312EE0 0030EB40 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 80312EE4 0030EB44 A0 84 00 00 */ lhz r4, 0(r4)
+/* 80312EE8 0030EB48 38 04 FF FF */ addi r0, r4, -1
+/* 80312EEC 0030EB4C 7C A0 00 38 */ and r0, r5, r0
+/* 80312EF0 0030EB50 B0 1F 00 28 */ sth r0, 0x28(r31)
+/* 80312EF4 0030EB54 48 00 01 10 */ b lbl_80313004
+lbl_80312EF8:
+/* 80312EF8 0030EB58 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80312EFC 0030EB5C 80 DF 00 1C */ lwz r6, 0x1c(r31)
+/* 80312F00 0030EB60 81 03 02 64 */ lwz r8, 0x264(r3)
+/* 80312F04 0030EB64 7C 06 EA 14 */ add r0, r6, r29
+/* 80312F08 0030EB68 7C 00 40 40 */ cmplw r0, r8
+/* 80312F0C 0030EB6C 40 81 00 A8 */ ble lbl_80312FB4
+/* 80312F10 0030EB70 2C 1F 00 00 */ cmpwi r31, 0
+/* 80312F14 0030EB74 40 82 00 0C */ bne lbl_80312F20
+/* 80312F18 0030EB78 38 80 00 00 */ li r4, 0
+/* 80312F1C 0030EB7C 48 00 00 08 */ b lbl_80312F24
+lbl_80312F20:
+/* 80312F20 0030EB80 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80312F24:
+/* 80312F24 0030EB84 A0 64 00 00 */ lhz r3, 0(r4)
+/* 80312F28 0030EB88 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 80312F2C 0030EB8C 38 03 FF FF */ addi r0, r3, -1
+/* 80312F30 0030EB90 7C C7 00 38 */ and r7, r6, r0
+/* 80312F34 0030EB94 7C C5 24 30 */ srw r5, r6, r4
+/* 80312F38 0030EB98 7D 03 00 38 */ and r3, r8, r0
+/* 80312F3C 0030EB9C 7D 04 24 30 */ srw r4, r8, r4
+/* 80312F40 0030EBA0 7C C7 00 D0 */ neg r6, r7
+/* 80312F44 0030EBA4 7C 03 00 D0 */ neg r0, r3
+/* 80312F48 0030EBA8 7C 00 1B 78 */ or r0, r0, r3
+/* 80312F4C 0030EBAC 7C C6 3B 78 */ or r6, r6, r7
+/* 80312F50 0030EBB0 54 C3 0F FE */ srwi r3, r6, 0x1f
+/* 80312F54 0030EBB4 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 80312F58 0030EBB8 7C 65 1A 14 */ add r3, r5, r3
+/* 80312F5C 0030EBBC 7C 04 02 14 */ add r0, r4, r0
+/* 80312F60 0030EBC0 7C 03 00 40 */ cmplw r3, r0
+/* 80312F64 0030EBC4 41 82 00 0C */ beq lbl_80312F70
+/* 80312F68 0030EBC8 38 00 FF FF */ li r0, -1
+/* 80312F6C 0030EBCC 90 1F 00 20 */ stw r0, 0x20(r31)
+lbl_80312F70:
+/* 80312F70 0030EBD0 2C 1F 00 00 */ cmpwi r31, 0
+/* 80312F74 0030EBD4 91 1F 00 1C */ stw r8, 0x1c(r31)
+/* 80312F78 0030EBD8 40 82 00 0C */ bne lbl_80312F84
+/* 80312F7C 0030EBDC 38 80 00 00 */ li r4, 0
+/* 80312F80 0030EBE0 48 00 00 0C */ b lbl_80312F8C
+lbl_80312F84:
+/* 80312F84 0030EBE4 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80312F88 0030EBE8 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80312F8C:
+/* 80312F8C 0030EBEC 80 BF 00 1C */ lwz r5, 0x1c(r31)
+/* 80312F90 0030EBF0 38 60 00 1B */ li r3, 0x1b
+/* 80312F94 0030EBF4 88 04 00 20 */ lbz r0, 0x20(r4)
+/* 80312F98 0030EBF8 7C A0 04 30 */ srw r0, r5, r0
+/* 80312F9C 0030EBFC 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 80312FA0 0030EC00 A0 84 00 00 */ lhz r4, 0(r4)
+/* 80312FA4 0030EC04 38 04 FF FF */ addi r0, r4, -1
+/* 80312FA8 0030EC08 7C A0 00 38 */ and r0, r5, r0
+/* 80312FAC 0030EC0C B0 1F 00 28 */ sth r0, 0x28(r31)
+/* 80312FB0 0030EC10 48 00 00 54 */ b lbl_80313004
+lbl_80312FB4:
+/* 80312FB4 0030EC14 A0 DF 00 28 */ lhz r6, 0x28(r31)
+/* 80312FB8 0030EC18 7F 63 DB 78 */ mr r3, r27
+/* 80312FBC 0030EC1C 7F 84 E3 78 */ mr r4, r28
+/* 80312FC0 0030EC20 7F A7 EB 78 */ mr r7, r29
+/* 80312FC4 0030EC24 39 01 00 08 */ addi r8, r1, 8
+/* 80312FC8 0030EC28 39 20 00 01 */ li r9, 1
+/* 80312FCC 0030EC2C 48 00 5A 5D */ bl VFiPFSEC_ReadData
+/* 80312FD0 0030EC30 2C 03 00 00 */ cmpwi r3, 0
+/* 80312FD4 0030EC34 41 82 00 14 */ beq lbl_80312FE8
+/* 80312FD8 0030EC38 80 01 00 08 */ lwz r0, 8(r1)
+/* 80312FDC 0030EC3C 2C 00 00 00 */ cmpwi r0, 0
+/* 80312FE0 0030EC40 40 82 00 08 */ bne lbl_80312FE8
+/* 80312FE4 0030EC44 48 00 00 20 */ b lbl_80313004
+lbl_80312FE8:
+/* 80312FE8 0030EC48 80 01 00 08 */ lwz r0, 8(r1)
+/* 80312FEC 0030EC4C 7F E3 FB 78 */ mr r3, r31
+/* 80312FF0 0030EC50 90 1E 00 00 */ stw r0, 0(r30)
+/* 80312FF4 0030EC54 80 81 00 08 */ lwz r4, 8(r1)
+/* 80312FF8 0030EC58 80 BF 00 20 */ lwz r5, 0x20(r31)
+/* 80312FFC 0030EC5C 4B FF F8 19 */ bl VFiPFFILE_Cursor_AdvanceToRead
+/* 80313000 0030EC60 38 60 00 00 */ li r3, 0
+lbl_80313004:
+/* 80313004 0030EC64 39 61 00 30 */ addi r11, r1, 0x30
+/* 80313008 0030EC68 4B EB 41 6D */ bl _restgpr_27
+/* 8031300C 0030EC6C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80313010 0030EC70 7C 08 03 A6 */ mtlr r0
+/* 80313014 0030EC74 38 21 00 30 */ addi r1, r1, 0x30
+/* 80313018 0030EC78 4E 80 00 20 */ blr
+
+.global VFiPFFILE_Cursor_Read
+VFiPFFILE_Cursor_Read:
+/* 8031301C 0030EC7C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80313020 0030EC80 7C 08 02 A6 */ mflr r0
+/* 80313024 0030EC84 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80313028 0030EC88 39 61 00 30 */ addi r11, r1, 0x30
+/* 8031302C 0030EC8C 4B EB 40 FD */ bl _savegpr_27
+/* 80313030 0030EC90 80 E3 00 08 */ lwz r7, 8(r3)
+/* 80313034 0030EC94 39 03 00 0C */ addi r8, r3, 0xc
+/* 80313038 0030EC98 2C 03 00 00 */ cmpwi r3, 0
+/* 8031303C 0030EC9C 38 00 00 00 */ li r0, 0
+/* 80313040 0030ECA0 91 07 00 34 */ stw r8, 0x34(r7)
+/* 80313044 0030ECA4 7C 7C 1B 78 */ mr r28, r3
+/* 80313048 0030ECA8 7C 9D 23 78 */ mr r29, r4
+/* 8031304C 0030ECAC 7C BE 2B 78 */ mr r30, r5
+/* 80313050 0030ECB0 90 06 00 00 */ stw r0, 0(r6)
+/* 80313054 0030ECB4 7C DF 33 78 */ mr r31, r6
+/* 80313058 0030ECB8 40 82 00 0C */ bne lbl_80313064
+/* 8031305C 0030ECBC 3B 60 00 00 */ li r27, 0
+/* 80313060 0030ECC0 48 00 00 0C */ b lbl_8031306C
+lbl_80313064:
+/* 80313064 0030ECC4 80 63 00 08 */ lwz r3, 8(r3)
+/* 80313068 0030ECC8 83 63 02 68 */ lwz r27, 0x268(r3)
+lbl_8031306C:
+/* 8031306C 0030ECCC 7F 63 DB 78 */ mr r3, r27
+/* 80313070 0030ECD0 7F 84 E3 78 */ mr r4, r28
+/* 80313074 0030ECD4 7F A5 EB 78 */ mr r5, r29
+/* 80313078 0030ECD8 7F C6 F3 78 */ mr r6, r30
+/* 8031307C 0030ECDC 38 E1 00 08 */ addi r7, r1, 8
+/* 80313080 0030ECE0 4B FF F8 B1 */ bl VFiPFFILE_Cursor_ReadHeadSector
+/* 80313084 0030ECE4 80 9F 00 00 */ lwz r4, 0(r31)
+/* 80313088 0030ECE8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031308C 0030ECEC 80 01 00 08 */ lwz r0, 8(r1)
+/* 80313090 0030ECF0 7C 04 02 14 */ add r0, r4, r0
+/* 80313094 0030ECF4 90 1F 00 00 */ stw r0, 0(r31)
+/* 80313098 0030ECF8 41 82 00 08 */ beq lbl_803130A0
+/* 8031309C 0030ECFC 48 00 00 B0 */ b lbl_8031314C
+lbl_803130A0:
+/* 803130A0 0030ED00 80 01 00 08 */ lwz r0, 8(r1)
+/* 803130A4 0030ED04 7C 00 F0 40 */ cmplw r0, r30
+/* 803130A8 0030ED08 41 80 00 0C */ blt lbl_803130B4
+/* 803130AC 0030ED0C 38 60 00 00 */ li r3, 0
+/* 803130B0 0030ED10 48 00 00 9C */ b lbl_8031314C
+lbl_803130B4:
+/* 803130B4 0030ED14 7F C0 F0 50 */ subf r30, r0, r30
+/* 803130B8 0030ED18 48 00 00 4C */ b lbl_80313104
+lbl_803130BC:
+/* 803130BC 0030ED1C 80 1F 00 00 */ lwz r0, 0(r31)
+/* 803130C0 0030ED20 7F 63 DB 78 */ mr r3, r27
+/* 803130C4 0030ED24 7F 84 E3 78 */ mr r4, r28
+/* 803130C8 0030ED28 7F C6 F3 78 */ mr r6, r30
+/* 803130CC 0030ED2C 7C BD 02 14 */ add r5, r29, r0
+/* 803130D0 0030ED30 38 E1 00 08 */ addi r7, r1, 8
+/* 803130D4 0030ED34 4B FF FA F5 */ bl VFiPFFILE_Cursor_ReadBodySectors
+/* 803130D8 0030ED38 80 9F 00 00 */ lwz r4, 0(r31)
+/* 803130DC 0030ED3C 2C 03 00 00 */ cmpwi r3, 0
+/* 803130E0 0030ED40 80 01 00 08 */ lwz r0, 8(r1)
+/* 803130E4 0030ED44 7C 04 02 14 */ add r0, r4, r0
+/* 803130E8 0030ED48 90 1F 00 00 */ stw r0, 0(r31)
+/* 803130EC 0030ED4C 41 82 00 08 */ beq lbl_803130F4
+/* 803130F0 0030ED50 48 00 00 5C */ b lbl_8031314C
+lbl_803130F4:
+/* 803130F4 0030ED54 80 01 00 08 */ lwz r0, 8(r1)
+/* 803130F8 0030ED58 2C 00 00 00 */ cmpwi r0, 0
+/* 803130FC 0030ED5C 41 82 00 14 */ beq lbl_80313110
+/* 80313100 0030ED60 7F C0 F0 50 */ subf r30, r0, r30
+lbl_80313104:
+/* 80313104 0030ED64 A0 1B 00 00 */ lhz r0, 0(r27)
+/* 80313108 0030ED68 7C 1E 00 40 */ cmplw r30, r0
+/* 8031310C 0030ED6C 40 80 FF B0 */ bge lbl_803130BC
+lbl_80313110:
+/* 80313110 0030ED70 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80313114 0030ED74 7F 63 DB 78 */ mr r3, r27
+/* 80313118 0030ED78 7F 84 E3 78 */ mr r4, r28
+/* 8031311C 0030ED7C 7F C6 F3 78 */ mr r6, r30
+/* 80313120 0030ED80 7C BD 02 14 */ add r5, r29, r0
+/* 80313124 0030ED84 38 E1 00 08 */ addi r7, r1, 8
+/* 80313128 0030ED88 4B FF FC 79 */ bl VFiPFFILE_Cursor_ReadTailSector
+/* 8031312C 0030ED8C 80 9F 00 00 */ lwz r4, 0(r31)
+/* 80313130 0030ED90 2C 03 00 00 */ cmpwi r3, 0
+/* 80313134 0030ED94 80 01 00 08 */ lwz r0, 8(r1)
+/* 80313138 0030ED98 7C 04 02 14 */ add r0, r4, r0
+/* 8031313C 0030ED9C 90 1F 00 00 */ stw r0, 0(r31)
+/* 80313140 0030EDA0 41 82 00 08 */ beq lbl_80313148
+/* 80313144 0030EDA4 48 00 00 08 */ b lbl_8031314C
+lbl_80313148:
+/* 80313148 0030EDA8 38 60 00 00 */ li r3, 0
+lbl_8031314C:
+/* 8031314C 0030EDAC 39 61 00 30 */ addi r11, r1, 0x30
+/* 80313150 0030EDB0 4B EB 40 25 */ bl _restgpr_27
+/* 80313154 0030EDB4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80313158 0030EDB8 7C 08 03 A6 */ mtlr r0
+/* 8031315C 0030EDBC 38 21 00 30 */ addi r1, r1, 0x30
+/* 80313160 0030EDC0 4E 80 00 20 */ blr
+
+.global VFiPFFILE_Cursor_WriteHeadSector
+VFiPFFILE_Cursor_WriteHeadSector:
+/* 80313164 0030EDC4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80313168 0030EDC8 7C 08 02 A6 */ mflr r0
+/* 8031316C 0030EDCC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80313170 0030EDD0 39 61 00 30 */ addi r11, r1, 0x30
+/* 80313174 0030EDD4 4B EB 3F B5 */ bl _savegpr_27
+/* 80313178 0030EDD8 38 00 00 00 */ li r0, 0
+/* 8031317C 0030EDDC 7C BC 2B 78 */ mr r28, r5
+/* 80313180 0030EDE0 90 07 00 00 */ stw r0, 0(r7)
+/* 80313184 0030EDE4 7C 7B 1B 78 */ mr r27, r3
+/* 80313188 0030EDE8 7C 9F 23 78 */ mr r31, r4
+/* 8031318C 0030EDEC 7C DD 33 78 */ mr r29, r6
+/* 80313190 0030EDF0 A0 A4 00 28 */ lhz r5, 0x28(r4)
+/* 80313194 0030EDF4 7C FE 3B 78 */ mr r30, r7
+/* 80313198 0030EDF8 2C 05 00 00 */ cmpwi r5, 0
+/* 8031319C 0030EDFC 40 82 00 0C */ bne lbl_803131A8
+/* 803131A0 0030EE00 38 60 00 00 */ li r3, 0
+/* 803131A4 0030EE04 48 00 02 00 */ b lbl_803133A4
+lbl_803131A8:
+/* 803131A8 0030EE08 A0 03 00 00 */ lhz r0, 0(r3)
+/* 803131AC 0030EE0C 7C 05 00 50 */ subf r0, r5, r0
+/* 803131B0 0030EE10 7C 06 00 40 */ cmplw r6, r0
+/* 803131B4 0030EE14 40 81 00 08 */ ble lbl_803131BC
+/* 803131B8 0030EE18 7C 1D 03 78 */ mr r29, r0
+lbl_803131BC:
+/* 803131BC 0030EE1C 80 A4 00 20 */ lwz r5, 0x20(r4)
+/* 803131C0 0030EE20 3C 05 00 01 */ addis r0, r5, 1
+/* 803131C4 0030EE24 28 00 FF FF */ cmplwi r0, 0xffff
+/* 803131C8 0030EE28 40 82 00 E8 */ bne lbl_803132B0
+/* 803131CC 0030EE2C 80 64 00 08 */ lwz r3, 8(r4)
+/* 803131D0 0030EE30 38 DF 00 20 */ addi r6, r31, 0x20
+/* 803131D4 0030EE34 80 84 00 24 */ lwz r4, 0x24(r4)
+/* 803131D8 0030EE38 38 A0 00 00 */ li r5, 0
+/* 803131DC 0030EE3C 38 63 00 04 */ addi r3, r3, 4
+/* 803131E0 0030EE40 4B FF CD 89 */ bl VFiPFFAT_GetSectorSpecified
+/* 803131E4 0030EE44 2C 03 00 00 */ cmpwi r3, 0
+/* 803131E8 0030EE48 41 82 00 08 */ beq lbl_803131F0
+/* 803131EC 0030EE4C 48 00 01 B8 */ b lbl_803133A4
+lbl_803131F0:
+/* 803131F0 0030EE50 80 BF 00 20 */ lwz r5, 0x20(r31)
+/* 803131F4 0030EE54 3C 05 00 01 */ addis r0, r5, 1
+/* 803131F8 0030EE58 28 00 FF FF */ cmplwi r0, 0xffff
+/* 803131FC 0030EE5C 40 82 00 B4 */ bne lbl_803132B0
+/* 80313200 0030EE60 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80313204 0030EE64 2C 1F 00 00 */ cmpwi r31, 0
+/* 80313208 0030EE68 81 03 02 64 */ lwz r8, 0x264(r3)
+/* 8031320C 0030EE6C 40 82 00 0C */ bne lbl_80313218
+/* 80313210 0030EE70 38 80 00 00 */ li r4, 0
+/* 80313214 0030EE74 48 00 00 08 */ b lbl_8031321C
+lbl_80313218:
+/* 80313218 0030EE78 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_8031321C:
+/* 8031321C 0030EE7C A0 64 00 00 */ lhz r3, 0(r4)
+/* 80313220 0030EE80 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80313224 0030EE84 38 63 FF FF */ addi r3, r3, -1
+/* 80313228 0030EE88 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 8031322C 0030EE8C 7C 07 18 38 */ and r7, r0, r3
+/* 80313230 0030EE90 7C 05 24 30 */ srw r5, r0, r4
+/* 80313234 0030EE94 7D 03 18 38 */ and r3, r8, r3
+/* 80313238 0030EE98 7C C7 00 D0 */ neg r6, r7
+/* 8031323C 0030EE9C 7D 04 24 30 */ srw r4, r8, r4
+/* 80313240 0030EEA0 7C 03 00 D0 */ neg r0, r3
+/* 80313244 0030EEA4 7C 00 1B 78 */ or r0, r0, r3
+/* 80313248 0030EEA8 7C C6 3B 78 */ or r6, r6, r7
+/* 8031324C 0030EEAC 54 C3 0F FE */ srwi r3, r6, 0x1f
+/* 80313250 0030EEB0 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 80313254 0030EEB4 7C 65 1A 14 */ add r3, r5, r3
+/* 80313258 0030EEB8 7C 04 02 14 */ add r0, r4, r0
+/* 8031325C 0030EEBC 7C 03 00 40 */ cmplw r3, r0
+/* 80313260 0030EEC0 41 82 00 0C */ beq lbl_8031326C
+/* 80313264 0030EEC4 38 00 FF FF */ li r0, -1
+/* 80313268 0030EEC8 90 1F 00 20 */ stw r0, 0x20(r31)
+lbl_8031326C:
+/* 8031326C 0030EECC 2C 1F 00 00 */ cmpwi r31, 0
+/* 80313270 0030EED0 91 1F 00 1C */ stw r8, 0x1c(r31)
+/* 80313274 0030EED4 40 82 00 0C */ bne lbl_80313280
+/* 80313278 0030EED8 38 80 00 00 */ li r4, 0
+/* 8031327C 0030EEDC 48 00 00 0C */ b lbl_80313288
+lbl_80313280:
+/* 80313280 0030EEE0 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80313284 0030EEE4 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80313288:
+/* 80313288 0030EEE8 80 BF 00 1C */ lwz r5, 0x1c(r31)
+/* 8031328C 0030EEEC 38 60 00 1C */ li r3, 0x1c
+/* 80313290 0030EEF0 88 04 00 20 */ lbz r0, 0x20(r4)
+/* 80313294 0030EEF4 7C A0 04 30 */ srw r0, r5, r0
+/* 80313298 0030EEF8 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 8031329C 0030EEFC A0 84 00 00 */ lhz r4, 0(r4)
+/* 803132A0 0030EF00 38 04 FF FF */ addi r0, r4, -1
+/* 803132A4 0030EF04 7C A0 00 38 */ and r0, r5, r0
+/* 803132A8 0030EF08 B0 1F 00 28 */ sth r0, 0x28(r31)
+/* 803132AC 0030EF0C 48 00 00 F8 */ b lbl_803133A4
+lbl_803132B0:
+/* 803132B0 0030EF10 A0 DF 00 28 */ lhz r6, 0x28(r31)
+/* 803132B4 0030EF14 7F 63 DB 78 */ mr r3, r27
+/* 803132B8 0030EF18 7F 84 E3 78 */ mr r4, r28
+/* 803132BC 0030EF1C 7F A7 EB 78 */ mr r7, r29
+/* 803132C0 0030EF20 39 01 00 08 */ addi r8, r1, 8
+/* 803132C4 0030EF24 39 20 00 01 */ li r9, 1
+/* 803132C8 0030EF28 48 00 5B 21 */ bl VFiPFSEC_WriteData
+/* 803132CC 0030EF2C 2C 03 00 00 */ cmpwi r3, 0
+/* 803132D0 0030EF30 41 82 00 14 */ beq lbl_803132E4
+/* 803132D4 0030EF34 80 01 00 08 */ lwz r0, 8(r1)
+/* 803132D8 0030EF38 2C 00 00 00 */ cmpwi r0, 0
+/* 803132DC 0030EF3C 40 82 00 08 */ bne lbl_803132E4
+/* 803132E0 0030EF40 48 00 00 C4 */ b lbl_803133A4
+lbl_803132E4:
+/* 803132E4 0030EF44 80 01 00 08 */ lwz r0, 8(r1)
+/* 803132E8 0030EF48 2C 1F 00 00 */ cmpwi r31, 0
+/* 803132EC 0030EF4C 90 1E 00 00 */ stw r0, 0(r30)
+/* 803132F0 0030EF50 80 DF 00 20 */ lwz r6, 0x20(r31)
+/* 803132F4 0030EF54 80 A1 00 08 */ lwz r5, 8(r1)
+/* 803132F8 0030EF58 40 82 00 0C */ bne lbl_80313304
+/* 803132FC 0030EF5C 38 80 00 00 */ li r4, 0
+/* 80313300 0030EF60 48 00 00 0C */ b lbl_8031330C
+lbl_80313304:
+/* 80313304 0030EF64 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80313308 0030EF68 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_8031330C:
+/* 8031330C 0030EF6C A0 1F 00 28 */ lhz r0, 0x28(r31)
+/* 80313310 0030EF70 A0 64 00 00 */ lhz r3, 0(r4)
+/* 80313314 0030EF74 7C E0 2A 14 */ add r7, r0, r5
+/* 80313318 0030EF78 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 8031331C 0030EF7C 38 03 FF FF */ addi r0, r3, -1
+/* 80313320 0030EF80 7C 00 38 39 */ and. r0, r0, r7
+/* 80313324 0030EF84 7C E0 24 30 */ srw r0, r7, r4
+/* 80313328 0030EF88 7C 86 02 14 */ add r4, r6, r0
+/* 8031332C 0030EF8C 41 82 00 0C */ beq lbl_80313338
+/* 80313330 0030EF90 90 9F 00 20 */ stw r4, 0x20(r31)
+/* 80313334 0030EF94 48 00 00 0C */ b lbl_80313340
+lbl_80313338:
+/* 80313338 0030EF98 38 00 FF FF */ li r0, -1
+/* 8031333C 0030EF9C 90 1F 00 20 */ stw r0, 0x20(r31)
+lbl_80313340:
+/* 80313340 0030EFA0 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80313344 0030EFA4 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80313348 0030EFA8 7C A0 2A 14 */ add r5, r0, r5
+/* 8031334C 0030EFAC 90 BF 00 1C */ stw r5, 0x1c(r31)
+/* 80313350 0030EFB0 80 03 02 64 */ lwz r0, 0x264(r3)
+/* 80313354 0030EFB4 7C 05 00 40 */ cmplw r5, r0
+/* 80313358 0030EFB8 40 81 00 08 */ ble lbl_80313360
+/* 8031335C 0030EFBC 90 A3 02 64 */ stw r5, 0x264(r3)
+lbl_80313360:
+/* 80313360 0030EFC0 2C 1F 00 00 */ cmpwi r31, 0
+/* 80313364 0030EFC4 40 82 00 0C */ bne lbl_80313370
+/* 80313368 0030EFC8 38 A0 00 00 */ li r5, 0
+/* 8031336C 0030EFCC 48 00 00 0C */ b lbl_80313378
+lbl_80313370:
+/* 80313370 0030EFD0 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80313374 0030EFD4 80 A3 02 68 */ lwz r5, 0x268(r3)
+lbl_80313378:
+/* 80313378 0030EFD8 80 DF 00 1C */ lwz r6, 0x1c(r31)
+/* 8031337C 0030EFDC 7F E3 FB 78 */ mr r3, r31
+/* 80313380 0030EFE0 88 05 00 20 */ lbz r0, 0x20(r5)
+/* 80313384 0030EFE4 7C C0 04 30 */ srw r0, r6, r0
+/* 80313388 0030EFE8 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 8031338C 0030EFEC A0 A5 00 00 */ lhz r5, 0(r5)
+/* 80313390 0030EFF0 38 05 FF FF */ addi r0, r5, -1
+/* 80313394 0030EFF4 7C C0 00 38 */ and r0, r6, r0
+/* 80313398 0030EFF8 B0 1F 00 28 */ sth r0, 0x28(r31)
+/* 8031339C 0030EFFC 4B FF 79 E5 */ bl VFiPFCLUSTER_UpdateLastAccessCluster
+/* 803133A0 0030F000 38 60 00 00 */ li r3, 0
+lbl_803133A4:
+/* 803133A4 0030F004 39 61 00 30 */ addi r11, r1, 0x30
+/* 803133A8 0030F008 4B EB 3D CD */ bl _restgpr_27
+/* 803133AC 0030F00C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 803133B0 0030F010 7C 08 03 A6 */ mtlr r0
+/* 803133B4 0030F014 38 21 00 30 */ addi r1, r1, 0x30
+/* 803133B8 0030F018 4E 80 00 20 */ blr
+
+.global VFiPFFILE_Cursor_WriteTailSector
+VFiPFFILE_Cursor_WriteTailSector:
+/* 803133BC 0030F01C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 803133C0 0030F020 7C 08 02 A6 */ mflr r0
+/* 803133C4 0030F024 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803133C8 0030F028 38 00 00 00 */ li r0, 0
+/* 803133CC 0030F02C 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 803133D0 0030F030 7C 9F 23 78 */ mr r31, r4
+/* 803133D4 0030F034 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 803133D8 0030F038 7D 1E 43 78 */ mr r30, r8
+/* 803133DC 0030F03C 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 803133E0 0030F040 7C BD 2B 78 */ mr r29, r5
+/* 803133E4 0030F044 93 81 00 20 */ stw r28, 0x20(r1)
+/* 803133E8 0030F048 7C 7C 1B 78 */ mr r28, r3
+/* 803133EC 0030F04C 90 C1 00 08 */ stw r6, 8(r1)
+/* 803133F0 0030F050 90 08 00 00 */ stw r0, 0(r8)
+/* 803133F4 0030F054 80 A1 00 08 */ lwz r5, 8(r1)
+/* 803133F8 0030F058 2C 05 00 00 */ cmpwi r5, 0
+/* 803133FC 0030F05C 40 82 00 0C */ bne lbl_80313408
+/* 80313400 0030F060 38 60 00 00 */ li r3, 0
+/* 80313404 0030F064 48 00 02 5C */ b lbl_80313660
+lbl_80313408:
+/* 80313408 0030F068 A0 63 00 00 */ lhz r3, 0(r3)
+/* 8031340C 0030F06C A0 04 00 28 */ lhz r0, 0x28(r4)
+/* 80313410 0030F070 7C 00 18 50 */ subf r0, r0, r3
+/* 80313414 0030F074 7C 05 00 40 */ cmplw r5, r0
+/* 80313418 0030F078 41 81 00 0C */ bgt lbl_80313424
+/* 8031341C 0030F07C 7C 05 18 40 */ cmplw r5, r3
+/* 80313420 0030F080 40 81 00 0C */ ble lbl_8031342C
+lbl_80313424:
+/* 80313424 0030F084 38 60 00 1A */ li r3, 0x1a
+/* 80313428 0030F088 48 00 02 38 */ b lbl_80313660
+lbl_8031342C:
+/* 8031342C 0030F08C 2C 07 00 00 */ cmpwi r7, 0
+/* 80313430 0030F090 41 82 00 44 */ beq lbl_80313474
+/* 80313434 0030F094 7F E3 FB 78 */ mr r3, r31
+/* 80313438 0030F098 7C E4 3B 78 */ mr r4, r7
+/* 8031343C 0030F09C 38 A1 00 08 */ addi r5, r1, 8
+/* 80313440 0030F0A0 38 C1 00 10 */ addi r6, r1, 0x10
+/* 80313444 0030F0A4 4B FF 7A 11 */ bl VFiPFCLUSTER_AppendCluster
+/* 80313448 0030F0A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031344C 0030F0AC 41 82 00 08 */ beq lbl_80313454
+/* 80313450 0030F0B0 48 00 02 10 */ b lbl_80313660
+lbl_80313454:
+/* 80313454 0030F0B4 80 01 00 08 */ lwz r0, 8(r1)
+/* 80313458 0030F0B8 2C 00 00 00 */ cmpwi r0, 0
+/* 8031345C 0030F0BC 40 82 00 0C */ bne lbl_80313468
+/* 80313460 0030F0C0 38 60 00 00 */ li r3, 0
+/* 80313464 0030F0C4 48 00 01 FC */ b lbl_80313660
+lbl_80313468:
+/* 80313468 0030F0C8 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 8031346C 0030F0CC 90 1F 00 20 */ stw r0, 0x20(r31)
+/* 80313470 0030F0D0 48 00 00 F8 */ b lbl_80313568
+lbl_80313474:
+/* 80313474 0030F0D4 80 64 00 20 */ lwz r3, 0x20(r4)
+/* 80313478 0030F0D8 3C 03 00 01 */ addis r0, r3, 1
+/* 8031347C 0030F0DC 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80313480 0030F0E0 40 82 00 E8 */ bne lbl_80313568
+/* 80313484 0030F0E4 80 64 00 08 */ lwz r3, 8(r4)
+/* 80313488 0030F0E8 38 DF 00 20 */ addi r6, r31, 0x20
+/* 8031348C 0030F0EC 80 84 00 24 */ lwz r4, 0x24(r4)
+/* 80313490 0030F0F0 38 A0 00 00 */ li r5, 0
+/* 80313494 0030F0F4 38 63 00 04 */ addi r3, r3, 4
+/* 80313498 0030F0F8 4B FF CA D1 */ bl VFiPFFAT_GetSectorSpecified
+/* 8031349C 0030F0FC 2C 03 00 00 */ cmpwi r3, 0
+/* 803134A0 0030F100 41 82 00 08 */ beq lbl_803134A8
+/* 803134A4 0030F104 48 00 01 BC */ b lbl_80313660
+lbl_803134A8:
+/* 803134A8 0030F108 80 7F 00 20 */ lwz r3, 0x20(r31)
+/* 803134AC 0030F10C 3C 03 00 01 */ addis r0, r3, 1
+/* 803134B0 0030F110 28 00 FF FF */ cmplwi r0, 0xffff
+/* 803134B4 0030F114 40 82 00 B4 */ bne lbl_80313568
+/* 803134B8 0030F118 80 7F 00 08 */ lwz r3, 8(r31)
+/* 803134BC 0030F11C 2C 1F 00 00 */ cmpwi r31, 0
+/* 803134C0 0030F120 81 03 02 64 */ lwz r8, 0x264(r3)
+/* 803134C4 0030F124 40 82 00 0C */ bne lbl_803134D0
+/* 803134C8 0030F128 38 80 00 00 */ li r4, 0
+/* 803134CC 0030F12C 48 00 00 08 */ b lbl_803134D4
+lbl_803134D0:
+/* 803134D0 0030F130 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_803134D4:
+/* 803134D4 0030F134 A0 64 00 00 */ lhz r3, 0(r4)
+/* 803134D8 0030F138 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 803134DC 0030F13C 38 63 FF FF */ addi r3, r3, -1
+/* 803134E0 0030F140 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 803134E4 0030F144 7C 07 18 38 */ and r7, r0, r3
+/* 803134E8 0030F148 7C 05 24 30 */ srw r5, r0, r4
+/* 803134EC 0030F14C 7D 03 18 38 */ and r3, r8, r3
+/* 803134F0 0030F150 7C C7 00 D0 */ neg r6, r7
+/* 803134F4 0030F154 7D 04 24 30 */ srw r4, r8, r4
+/* 803134F8 0030F158 7C 03 00 D0 */ neg r0, r3
+/* 803134FC 0030F15C 7C 00 1B 78 */ or r0, r0, r3
+/* 80313500 0030F160 7C C6 3B 78 */ or r6, r6, r7
+/* 80313504 0030F164 54 C3 0F FE */ srwi r3, r6, 0x1f
+/* 80313508 0030F168 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 8031350C 0030F16C 7C 65 1A 14 */ add r3, r5, r3
+/* 80313510 0030F170 7C 04 02 14 */ add r0, r4, r0
+/* 80313514 0030F174 7C 03 00 40 */ cmplw r3, r0
+/* 80313518 0030F178 41 82 00 0C */ beq lbl_80313524
+/* 8031351C 0030F17C 38 00 FF FF */ li r0, -1
+/* 80313520 0030F180 90 1F 00 20 */ stw r0, 0x20(r31)
+lbl_80313524:
+/* 80313524 0030F184 2C 1F 00 00 */ cmpwi r31, 0
+/* 80313528 0030F188 91 1F 00 1C */ stw r8, 0x1c(r31)
+/* 8031352C 0030F18C 40 82 00 0C */ bne lbl_80313538
+/* 80313530 0030F190 38 80 00 00 */ li r4, 0
+/* 80313534 0030F194 48 00 00 0C */ b lbl_80313540
+lbl_80313538:
+/* 80313538 0030F198 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8031353C 0030F19C 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80313540:
+/* 80313540 0030F1A0 80 BF 00 1C */ lwz r5, 0x1c(r31)
+/* 80313544 0030F1A4 38 60 00 1C */ li r3, 0x1c
+/* 80313548 0030F1A8 88 04 00 20 */ lbz r0, 0x20(r4)
+/* 8031354C 0030F1AC 7C A0 04 30 */ srw r0, r5, r0
+/* 80313550 0030F1B0 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 80313554 0030F1B4 A0 84 00 00 */ lhz r4, 0(r4)
+/* 80313558 0030F1B8 38 04 FF FF */ addi r0, r4, -1
+/* 8031355C 0030F1BC 7C A0 00 38 */ and r0, r5, r0
+/* 80313560 0030F1C0 B0 1F 00 28 */ sth r0, 0x28(r31)
+/* 80313564 0030F1C4 48 00 00 FC */ b lbl_80313660
+lbl_80313568:
+/* 80313568 0030F1C8 80 BF 00 20 */ lwz r5, 0x20(r31)
+/* 8031356C 0030F1CC 7F 83 E3 78 */ mr r3, r28
+/* 80313570 0030F1D0 A0 DF 00 28 */ lhz r6, 0x28(r31)
+/* 80313574 0030F1D4 7F A4 EB 78 */ mr r4, r29
+/* 80313578 0030F1D8 80 E1 00 08 */ lwz r7, 8(r1)
+/* 8031357C 0030F1DC 39 01 00 0C */ addi r8, r1, 0xc
+/* 80313580 0030F1E0 39 20 00 01 */ li r9, 1
+/* 80313584 0030F1E4 48 00 58 65 */ bl VFiPFSEC_WriteData
+/* 80313588 0030F1E8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031358C 0030F1EC 41 82 00 14 */ beq lbl_803135A0
+/* 80313590 0030F1F0 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 80313594 0030F1F4 2C 00 00 00 */ cmpwi r0, 0
+/* 80313598 0030F1F8 40 82 00 08 */ bne lbl_803135A0
+/* 8031359C 0030F1FC 48 00 00 C4 */ b lbl_80313660
+lbl_803135A0:
+/* 803135A0 0030F200 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 803135A4 0030F204 2C 1F 00 00 */ cmpwi r31, 0
+/* 803135A8 0030F208 90 1E 00 00 */ stw r0, 0(r30)
+/* 803135AC 0030F20C 80 DF 00 20 */ lwz r6, 0x20(r31)
+/* 803135B0 0030F210 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 803135B4 0030F214 40 82 00 0C */ bne lbl_803135C0
+/* 803135B8 0030F218 38 80 00 00 */ li r4, 0
+/* 803135BC 0030F21C 48 00 00 0C */ b lbl_803135C8
+lbl_803135C0:
+/* 803135C0 0030F220 80 7F 00 08 */ lwz r3, 8(r31)
+/* 803135C4 0030F224 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_803135C8:
+/* 803135C8 0030F228 A0 1F 00 28 */ lhz r0, 0x28(r31)
+/* 803135CC 0030F22C A0 64 00 00 */ lhz r3, 0(r4)
+/* 803135D0 0030F230 7C E0 2A 14 */ add r7, r0, r5
+/* 803135D4 0030F234 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 803135D8 0030F238 38 03 FF FF */ addi r0, r3, -1
+/* 803135DC 0030F23C 7C 00 38 39 */ and. r0, r0, r7
+/* 803135E0 0030F240 7C E0 24 30 */ srw r0, r7, r4
+/* 803135E4 0030F244 7C 86 02 14 */ add r4, r6, r0
+/* 803135E8 0030F248 41 82 00 0C */ beq lbl_803135F4
+/* 803135EC 0030F24C 90 9F 00 20 */ stw r4, 0x20(r31)
+/* 803135F0 0030F250 48 00 00 0C */ b lbl_803135FC
+lbl_803135F4:
+/* 803135F4 0030F254 38 00 FF FF */ li r0, -1
+/* 803135F8 0030F258 90 1F 00 20 */ stw r0, 0x20(r31)
+lbl_803135FC:
+/* 803135FC 0030F25C 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80313600 0030F260 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80313604 0030F264 7C A0 2A 14 */ add r5, r0, r5
+/* 80313608 0030F268 90 BF 00 1C */ stw r5, 0x1c(r31)
+/* 8031360C 0030F26C 80 03 02 64 */ lwz r0, 0x264(r3)
+/* 80313610 0030F270 7C 05 00 40 */ cmplw r5, r0
+/* 80313614 0030F274 40 81 00 08 */ ble lbl_8031361C
+/* 80313618 0030F278 90 A3 02 64 */ stw r5, 0x264(r3)
+lbl_8031361C:
+/* 8031361C 0030F27C 2C 1F 00 00 */ cmpwi r31, 0
+/* 80313620 0030F280 40 82 00 0C */ bne lbl_8031362C
+/* 80313624 0030F284 38 A0 00 00 */ li r5, 0
+/* 80313628 0030F288 48 00 00 0C */ b lbl_80313634
+lbl_8031362C:
+/* 8031362C 0030F28C 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80313630 0030F290 80 A3 02 68 */ lwz r5, 0x268(r3)
+lbl_80313634:
+/* 80313634 0030F294 80 DF 00 1C */ lwz r6, 0x1c(r31)
+/* 80313638 0030F298 7F E3 FB 78 */ mr r3, r31
+/* 8031363C 0030F29C 88 05 00 20 */ lbz r0, 0x20(r5)
+/* 80313640 0030F2A0 7C C0 04 30 */ srw r0, r6, r0
+/* 80313644 0030F2A4 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 80313648 0030F2A8 A0 A5 00 00 */ lhz r5, 0(r5)
+/* 8031364C 0030F2AC 38 05 FF FF */ addi r0, r5, -1
+/* 80313650 0030F2B0 7C C0 00 38 */ and r0, r6, r0
+/* 80313654 0030F2B4 B0 1F 00 28 */ sth r0, 0x28(r31)
+/* 80313658 0030F2B8 4B FF 77 29 */ bl VFiPFCLUSTER_UpdateLastAccessCluster
+/* 8031365C 0030F2BC 38 60 00 00 */ li r3, 0
+lbl_80313660:
+/* 80313660 0030F2C0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80313664 0030F2C4 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80313668 0030F2C8 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8031366C 0030F2CC 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 80313670 0030F2D0 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 80313674 0030F2D4 7C 08 03 A6 */ mtlr r0
+/* 80313678 0030F2D8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8031367C 0030F2DC 4E 80 00 20 */ blr
+
+.global VFiPFFILE_Cursor_Write_Overwrite
+VFiPFFILE_Cursor_Write_Overwrite:
+/* 80313680 0030F2E0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80313684 0030F2E4 7C 08 02 A6 */ mflr r0
+/* 80313688 0030F2E8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8031368C 0030F2EC 39 61 00 30 */ addi r11, r1, 0x30
+/* 80313690 0030F2F0 4B EB 3A 99 */ bl _savegpr_27
+/* 80313694 0030F2F4 38 00 00 00 */ li r0, 0
+/* 80313698 0030F2F8 7C DF 33 78 */ mr r31, r6
+/* 8031369C 0030F2FC 90 07 00 00 */ stw r0, 0(r7)
+/* 803136A0 0030F300 7C BC 2B 78 */ mr r28, r5
+/* 803136A4 0030F304 7C FE 3B 78 */ mr r30, r7
+/* 803136A8 0030F308 7C 9D 23 78 */ mr r29, r4
+/* 803136AC 0030F30C 80 C4 00 08 */ lwz r6, 8(r4)
+/* 803136B0 0030F310 7C 7B 1B 78 */ mr r27, r3
+/* 803136B4 0030F314 80 84 00 24 */ lwz r4, 0x24(r4)
+/* 803136B8 0030F318 7F E5 FB 78 */ mr r5, r31
+/* 803136BC 0030F31C 38 66 00 04 */ addi r3, r6, 4
+/* 803136C0 0030F320 38 DD 00 20 */ addi r6, r29, 0x20
+/* 803136C4 0030F324 38 E1 00 0C */ addi r7, r1, 0xc
+/* 803136C8 0030F328 4B FF CA 4D */ bl VFiPFFAT_GetContinuousSector
+/* 803136CC 0030F32C 2C 03 00 00 */ cmpwi r3, 0
+/* 803136D0 0030F330 41 82 00 08 */ beq lbl_803136D8
+/* 803136D4 0030F334 48 00 01 EC */ b lbl_803138C0
+lbl_803136D8:
+/* 803136D8 0030F338 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 803136DC 0030F33C 2C 03 00 00 */ cmpwi r3, 0
+/* 803136E0 0030F340 41 82 00 14 */ beq lbl_803136F4
+/* 803136E4 0030F344 80 BD 00 20 */ lwz r5, 0x20(r29)
+/* 803136E8 0030F348 3C 05 00 01 */ addis r0, r5, 1
+/* 803136EC 0030F34C 28 00 FF FF */ cmplwi r0, 0xffff
+/* 803136F0 0030F350 40 82 00 B4 */ bne lbl_803137A4
+lbl_803136F4:
+/* 803136F4 0030F354 80 7D 00 08 */ lwz r3, 8(r29)
+/* 803136F8 0030F358 2C 1D 00 00 */ cmpwi r29, 0
+/* 803136FC 0030F35C 81 03 02 64 */ lwz r8, 0x264(r3)
+/* 80313700 0030F360 40 82 00 0C */ bne lbl_8031370C
+/* 80313704 0030F364 38 80 00 00 */ li r4, 0
+/* 80313708 0030F368 48 00 00 08 */ b lbl_80313710
+lbl_8031370C:
+/* 8031370C 0030F36C 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80313710:
+/* 80313710 0030F370 A0 64 00 00 */ lhz r3, 0(r4)
+/* 80313714 0030F374 80 1D 00 1C */ lwz r0, 0x1c(r29)
+/* 80313718 0030F378 38 63 FF FF */ addi r3, r3, -1
+/* 8031371C 0030F37C 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 80313720 0030F380 7C 07 18 38 */ and r7, r0, r3
+/* 80313724 0030F384 7C 05 24 30 */ srw r5, r0, r4
+/* 80313728 0030F388 7D 03 18 38 */ and r3, r8, r3
+/* 8031372C 0030F38C 7C C7 00 D0 */ neg r6, r7
+/* 80313730 0030F390 7D 04 24 30 */ srw r4, r8, r4
+/* 80313734 0030F394 7C 03 00 D0 */ neg r0, r3
+/* 80313738 0030F398 7C 00 1B 78 */ or r0, r0, r3
+/* 8031373C 0030F39C 7C C6 3B 78 */ or r6, r6, r7
+/* 80313740 0030F3A0 54 C3 0F FE */ srwi r3, r6, 0x1f
+/* 80313744 0030F3A4 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 80313748 0030F3A8 7C 65 1A 14 */ add r3, r5, r3
+/* 8031374C 0030F3AC 7C 04 02 14 */ add r0, r4, r0
+/* 80313750 0030F3B0 7C 03 00 40 */ cmplw r3, r0
+/* 80313754 0030F3B4 41 82 00 0C */ beq lbl_80313760
+/* 80313758 0030F3B8 38 00 FF FF */ li r0, -1
+/* 8031375C 0030F3BC 90 1D 00 20 */ stw r0, 0x20(r29)
+lbl_80313760:
+/* 80313760 0030F3C0 2C 1D 00 00 */ cmpwi r29, 0
+/* 80313764 0030F3C4 91 1D 00 1C */ stw r8, 0x1c(r29)
+/* 80313768 0030F3C8 40 82 00 0C */ bne lbl_80313774
+/* 8031376C 0030F3CC 38 80 00 00 */ li r4, 0
+/* 80313770 0030F3D0 48 00 00 0C */ b lbl_8031377C
+lbl_80313774:
+/* 80313774 0030F3D4 80 7D 00 08 */ lwz r3, 8(r29)
+/* 80313778 0030F3D8 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_8031377C:
+/* 8031377C 0030F3DC 80 BD 00 1C */ lwz r5, 0x1c(r29)
+/* 80313780 0030F3E0 38 60 00 1C */ li r3, 0x1c
+/* 80313784 0030F3E4 88 04 00 20 */ lbz r0, 0x20(r4)
+/* 80313788 0030F3E8 7C A0 04 30 */ srw r0, r5, r0
+/* 8031378C 0030F3EC 90 1D 00 24 */ stw r0, 0x24(r29)
+/* 80313790 0030F3F0 A0 84 00 00 */ lhz r4, 0(r4)
+/* 80313794 0030F3F4 38 04 FF FF */ addi r0, r4, -1
+/* 80313798 0030F3F8 7C A0 00 38 */ and r0, r5, r0
+/* 8031379C 0030F3FC B0 1D 00 28 */ sth r0, 0x28(r29)
+/* 803137A0 0030F400 48 00 01 20 */ b lbl_803138C0
+lbl_803137A4:
+/* 803137A4 0030F404 88 1B 00 20 */ lbz r0, 0x20(r27)
+/* 803137A8 0030F408 7C 60 00 30 */ slw r0, r3, r0
+/* 803137AC 0030F40C 7C 1F 00 40 */ cmplw r31, r0
+/* 803137B0 0030F410 40 81 00 08 */ ble lbl_803137B8
+/* 803137B4 0030F414 7C 1F 03 78 */ mr r31, r0
+lbl_803137B8:
+/* 803137B8 0030F418 80 1E 00 00 */ lwz r0, 0(r30)
+/* 803137BC 0030F41C 7F E7 FB 78 */ mr r7, r31
+/* 803137C0 0030F420 A0 DD 00 28 */ lhz r6, 0x28(r29)
+/* 803137C4 0030F424 7F 63 DB 78 */ mr r3, r27
+/* 803137C8 0030F428 7C 9C 02 14 */ add r4, r28, r0
+/* 803137CC 0030F42C 39 01 00 08 */ addi r8, r1, 8
+/* 803137D0 0030F430 3B E0 00 00 */ li r31, 0
+/* 803137D4 0030F434 39 20 00 01 */ li r9, 1
+/* 803137D8 0030F438 48 00 56 11 */ bl VFiPFSEC_WriteData
+/* 803137DC 0030F43C 2C 03 00 00 */ cmpwi r3, 0
+/* 803137E0 0030F440 41 82 00 14 */ beq lbl_803137F4
+/* 803137E4 0030F444 80 01 00 08 */ lwz r0, 8(r1)
+/* 803137E8 0030F448 2C 00 00 00 */ cmpwi r0, 0
+/* 803137EC 0030F44C 40 82 00 08 */ bne lbl_803137F4
+/* 803137F0 0030F450 48 00 00 BC */ b lbl_803138AC
+lbl_803137F4:
+/* 803137F4 0030F454 2C 1D 00 00 */ cmpwi r29, 0
+/* 803137F8 0030F458 83 E1 00 08 */ lwz r31, 8(r1)
+/* 803137FC 0030F45C 80 BD 00 20 */ lwz r5, 0x20(r29)
+/* 80313800 0030F460 40 82 00 0C */ bne lbl_8031380C
+/* 80313804 0030F464 38 80 00 00 */ li r4, 0
+/* 80313808 0030F468 48 00 00 0C */ b lbl_80313814
+lbl_8031380C:
+/* 8031380C 0030F46C 80 7D 00 08 */ lwz r3, 8(r29)
+/* 80313810 0030F470 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80313814:
+/* 80313814 0030F474 A0 1D 00 28 */ lhz r0, 0x28(r29)
+/* 80313818 0030F478 A0 64 00 00 */ lhz r3, 0(r4)
+/* 8031381C 0030F47C 7C C0 FA 14 */ add r6, r0, r31
+/* 80313820 0030F480 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 80313824 0030F484 38 03 FF FF */ addi r0, r3, -1
+/* 80313828 0030F488 7C 00 30 39 */ and. r0, r0, r6
+/* 8031382C 0030F48C 7C C0 24 30 */ srw r0, r6, r4
+/* 80313830 0030F490 7C 85 02 14 */ add r4, r5, r0
+/* 80313834 0030F494 41 82 00 0C */ beq lbl_80313840
+/* 80313838 0030F498 90 9D 00 20 */ stw r4, 0x20(r29)
+/* 8031383C 0030F49C 48 00 00 0C */ b lbl_80313848
+lbl_80313840:
+/* 80313840 0030F4A0 38 00 FF FF */ li r0, -1
+/* 80313844 0030F4A4 90 1D 00 20 */ stw r0, 0x20(r29)
+lbl_80313848:
+/* 80313848 0030F4A8 80 1D 00 1C */ lwz r0, 0x1c(r29)
+/* 8031384C 0030F4AC 80 7D 00 08 */ lwz r3, 8(r29)
+/* 80313850 0030F4B0 7C A0 FA 14 */ add r5, r0, r31
+/* 80313854 0030F4B4 90 BD 00 1C */ stw r5, 0x1c(r29)
+/* 80313858 0030F4B8 80 03 02 64 */ lwz r0, 0x264(r3)
+/* 8031385C 0030F4BC 7C 05 00 40 */ cmplw r5, r0
+/* 80313860 0030F4C0 40 81 00 08 */ ble lbl_80313868
+/* 80313864 0030F4C4 90 A3 02 64 */ stw r5, 0x264(r3)
+lbl_80313868:
+/* 80313868 0030F4C8 2C 1D 00 00 */ cmpwi r29, 0
+/* 8031386C 0030F4CC 40 82 00 0C */ bne lbl_80313878
+/* 80313870 0030F4D0 38 A0 00 00 */ li r5, 0
+/* 80313874 0030F4D4 48 00 00 0C */ b lbl_80313880
+lbl_80313878:
+/* 80313878 0030F4D8 80 7D 00 08 */ lwz r3, 8(r29)
+/* 8031387C 0030F4DC 80 A3 02 68 */ lwz r5, 0x268(r3)
+lbl_80313880:
+/* 80313880 0030F4E0 80 DD 00 1C */ lwz r6, 0x1c(r29)
+/* 80313884 0030F4E4 7F A3 EB 78 */ mr r3, r29
+/* 80313888 0030F4E8 88 05 00 20 */ lbz r0, 0x20(r5)
+/* 8031388C 0030F4EC 7C C0 04 30 */ srw r0, r6, r0
+/* 80313890 0030F4F0 90 1D 00 24 */ stw r0, 0x24(r29)
+/* 80313894 0030F4F4 A0 A5 00 00 */ lhz r5, 0(r5)
+/* 80313898 0030F4F8 38 05 FF FF */ addi r0, r5, -1
+/* 8031389C 0030F4FC 7C C0 00 38 */ and r0, r6, r0
+/* 803138A0 0030F500 B0 1D 00 28 */ sth r0, 0x28(r29)
+/* 803138A4 0030F504 4B FF 74 DD */ bl VFiPFCLUSTER_UpdateLastAccessCluster
+/* 803138A8 0030F508 38 60 00 00 */ li r3, 0
+lbl_803138AC:
+/* 803138AC 0030F50C 2C 03 00 00 */ cmpwi r3, 0
+/* 803138B0 0030F510 93 FE 00 00 */ stw r31, 0(r30)
+/* 803138B4 0030F514 41 82 00 08 */ beq lbl_803138BC
+/* 803138B8 0030F518 48 00 00 08 */ b lbl_803138C0
+lbl_803138BC:
+/* 803138BC 0030F51C 38 60 00 00 */ li r3, 0
+lbl_803138C0:
+/* 803138C0 0030F520 39 61 00 30 */ addi r11, r1, 0x30
+/* 803138C4 0030F524 4B EB 38 B1 */ bl _restgpr_27
+/* 803138C8 0030F528 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 803138CC 0030F52C 7C 08 03 A6 */ mtlr r0
+/* 803138D0 0030F530 38 21 00 30 */ addi r1, r1, 0x30
+/* 803138D4 0030F534 4E 80 00 20 */ blr
+
+.global VFiPFFILE_Cursor_Write
+VFiPFFILE_Cursor_Write:
+/* 803138D8 0030F538 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 803138DC 0030F53C 7C 08 02 A6 */ mflr r0
+/* 803138E0 0030F540 90 01 00 54 */ stw r0, 0x54(r1)
+/* 803138E4 0030F544 39 61 00 50 */ addi r11, r1, 0x50
+/* 803138E8 0030F548 4B EB 38 2D */ bl _savegpr_22
+/* 803138EC 0030F54C 80 E3 00 08 */ lwz r7, 8(r3)
+/* 803138F0 0030F550 39 03 00 0C */ addi r8, r3, 0xc
+/* 803138F4 0030F554 38 00 00 00 */ li r0, 0
+/* 803138F8 0030F558 7C D9 33 78 */ mr r25, r6
+/* 803138FC 0030F55C 91 07 00 34 */ stw r8, 0x34(r7)
+/* 80313900 0030F560 7C 76 1B 78 */ mr r22, r3
+/* 80313904 0030F564 7C 97 23 78 */ mr r23, r4
+/* 80313908 0030F568 7C B8 2B 78 */ mr r24, r5
+/* 8031390C 0030F56C 90 06 00 00 */ stw r0, 0(r6)
+/* 80313910 0030F570 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80313914 0030F574 20 C0 FF FF */ subfic r6, r0, -1
+/* 80313918 0030F578 7C 06 28 40 */ cmplw r6, r5
+/* 8031391C 0030F57C 40 80 00 28 */ bge lbl_80313944
+/* 80313920 0030F580 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80313924 0030F584 38 00 00 25 */ li r0, 0x25
+/* 80313928 0030F588 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 8031392C 0030F58C 7C D8 33 78 */ mr r24, r6
+/* 80313930 0030F590 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80313934 0030F594 80 83 00 08 */ lwz r4, 8(r3)
+/* 80313938 0030F598 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 8031393C 0030F59C 90 04 18 6C */ stw r0, 0x186c(r4)
+/* 80313940 0030F5A0 90 03 00 18 */ stw r0, 0x18(r3)
+lbl_80313944:
+/* 80313944 0030F5A4 2C 03 00 00 */ cmpwi r3, 0
+/* 80313948 0030F5A8 40 82 00 0C */ bne lbl_80313954
+/* 8031394C 0030F5AC 3B A0 00 00 */ li r29, 0
+/* 80313950 0030F5B0 48 00 00 0C */ b lbl_8031395C
+lbl_80313954:
+/* 80313954 0030F5B4 80 63 00 08 */ lwz r3, 8(r3)
+/* 80313958 0030F5B8 83 A3 02 68 */ lwz r29, 0x268(r3)
+lbl_8031395C:
+/* 8031395C 0030F5BC 7F A3 EB 78 */ mr r3, r29
+/* 80313960 0030F5C0 7E C4 B3 78 */ mr r4, r22
+/* 80313964 0030F5C4 7E E5 BB 78 */ mr r5, r23
+/* 80313968 0030F5C8 7F 06 C3 78 */ mr r6, r24
+/* 8031396C 0030F5CC 38 E1 00 18 */ addi r7, r1, 0x18
+/* 80313970 0030F5D0 4B FF F7 F5 */ bl VFiPFFILE_Cursor_WriteHeadSector
+/* 80313974 0030F5D4 80 99 00 00 */ lwz r4, 0(r25)
+/* 80313978 0030F5D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031397C 0030F5DC 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 80313980 0030F5E0 7C 04 02 14 */ add r0, r4, r0
+/* 80313984 0030F5E4 90 19 00 00 */ stw r0, 0(r25)
+/* 80313988 0030F5E8 41 82 00 08 */ beq lbl_80313990
+/* 8031398C 0030F5EC 48 00 02 C4 */ b lbl_80313C50
+lbl_80313990:
+/* 80313990 0030F5F0 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 80313994 0030F5F4 7C 00 C0 40 */ cmplw r0, r24
+/* 80313998 0030F5F8 41 80 00 0C */ blt lbl_803139A4
+/* 8031399C 0030F5FC 38 60 00 00 */ li r3, 0
+/* 803139A0 0030F600 48 00 02 B0 */ b lbl_80313C50
+lbl_803139A4:
+/* 803139A4 0030F604 80 76 00 08 */ lwz r3, 8(r22)
+/* 803139A8 0030F608 7F 00 C0 50 */ subf r24, r0, r24
+/* 803139AC 0030F60C 80 16 00 1C */ lwz r0, 0x1c(r22)
+/* 803139B0 0030F610 38 A1 00 14 */ addi r5, r1, 0x14
+/* 803139B4 0030F614 38 63 00 04 */ addi r3, r3, 4
+/* 803139B8 0030F618 7C 80 C2 14 */ add r4, r0, r24
+/* 803139BC 0030F61C 4B FF C9 15 */ bl VFiPFFAT_CountAllocatedClusters
+/* 803139C0 0030F620 2C 03 00 00 */ cmpwi r3, 0
+/* 803139C4 0030F624 41 82 00 08 */ beq lbl_803139CC
+/* 803139C8 0030F628 48 00 02 88 */ b lbl_80313C50
+lbl_803139CC:
+/* 803139CC 0030F62C 88 9D 00 20 */ lbz r4, 0x20(r29)
+/* 803139D0 0030F630 88 7D 00 21 */ lbz r3, 0x21(r29)
+/* 803139D4 0030F634 80 16 00 1C */ lwz r0, 0x1c(r22)
+/* 803139D8 0030F638 7C 64 1A 14 */ add r3, r4, r3
+/* 803139DC 0030F63C 80 A1 00 14 */ lwz r5, 0x14(r1)
+/* 803139E0 0030F640 7C 80 C2 14 */ add r4, r0, r24
+/* 803139E4 0030F644 7C A0 18 30 */ slw r0, r5, r3
+/* 803139E8 0030F648 7C 04 00 40 */ cmplw r4, r0
+/* 803139EC 0030F64C 40 81 00 10 */ ble lbl_803139FC
+/* 803139F0 0030F650 7F 40 20 50 */ subf r26, r0, r4
+/* 803139F4 0030F654 7F 7A C0 50 */ subf r27, r26, r24
+/* 803139F8 0030F658 48 00 00 54 */ b lbl_80313A4C
+lbl_803139FC:
+/* 803139FC 0030F65C 7F 1B C3 78 */ mr r27, r24
+/* 80313A00 0030F660 3B 40 00 00 */ li r26, 0
+/* 80313A04 0030F664 48 00 00 48 */ b lbl_80313A4C
+lbl_80313A08:
+/* 80313A08 0030F668 80 19 00 00 */ lwz r0, 0(r25)
+/* 80313A0C 0030F66C 7F A3 EB 78 */ mr r3, r29
+/* 80313A10 0030F670 7E C4 B3 78 */ mr r4, r22
+/* 80313A14 0030F674 7F 66 DB 78 */ mr r6, r27
+/* 80313A18 0030F678 7C B7 02 14 */ add r5, r23, r0
+/* 80313A1C 0030F67C 38 E1 00 18 */ addi r7, r1, 0x18
+/* 80313A20 0030F680 4B FF FC 61 */ bl VFiPFFILE_Cursor_Write_Overwrite
+/* 80313A24 0030F684 80 99 00 00 */ lwz r4, 0(r25)
+/* 80313A28 0030F688 2C 03 00 00 */ cmpwi r3, 0
+/* 80313A2C 0030F68C 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 80313A30 0030F690 7C 04 02 14 */ add r0, r4, r0
+/* 80313A34 0030F694 90 19 00 00 */ stw r0, 0(r25)
+/* 80313A38 0030F698 41 82 00 08 */ beq lbl_80313A40
+/* 80313A3C 0030F69C 48 00 02 14 */ b lbl_80313C50
+lbl_80313A40:
+/* 80313A40 0030F6A0 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 80313A44 0030F6A4 7F 60 D8 50 */ subf r27, r0, r27
+/* 80313A48 0030F6A8 7F 00 C0 50 */ subf r24, r0, r24
+lbl_80313A4C:
+/* 80313A4C 0030F6AC 2C 1B 00 00 */ cmpwi r27, 0
+/* 80313A50 0030F6B0 41 82 00 10 */ beq lbl_80313A60
+/* 80313A54 0030F6B4 A0 1D 00 00 */ lhz r0, 0(r29)
+/* 80313A58 0030F6B8 7C 1B 00 40 */ cmplw r27, r0
+/* 80313A5C 0030F6BC 40 80 FF AC */ bge lbl_80313A08
+lbl_80313A60:
+/* 80313A60 0030F6C0 3B C0 00 00 */ li r30, 0
+/* 80313A64 0030F6C4 3B E0 FF FF */ li r31, -1
+/* 80313A68 0030F6C8 48 00 01 94 */ b lbl_80313BFC
+lbl_80313A6C:
+/* 80313A6C 0030F6CC 80 19 00 00 */ lwz r0, 0(r25)
+/* 80313A70 0030F6D0 7E C3 B3 78 */ mr r3, r22
+/* 80313A74 0030F6D4 7F 44 D3 78 */ mr r4, r26
+/* 80313A78 0030F6D8 38 A1 00 0C */ addi r5, r1, 0xc
+/* 80313A7C 0030F6DC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80313A80 0030F6E0 7F 97 02 14 */ add r28, r23, r0
+/* 80313A84 0030F6E4 38 C1 00 08 */ addi r6, r1, 8
+/* 80313A88 0030F6E8 3B 60 00 00 */ li r27, 0
+/* 80313A8C 0030F6EC 4B FF 73 C9 */ bl VFiPFCLUSTER_AppendCluster
+/* 80313A90 0030F6F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80313A94 0030F6F4 41 82 00 08 */ beq lbl_80313A9C
+/* 80313A98 0030F6F8 48 00 01 2C */ b lbl_80313BC4
+lbl_80313A9C:
+/* 80313A9C 0030F6FC 80 A1 00 08 */ lwz r5, 8(r1)
+/* 80313AA0 0030F700 90 B6 00 20 */ stw r5, 0x20(r22)
+/* 80313AA4 0030F704 80 E1 00 0C */ lwz r7, 0xc(r1)
+/* 80313AA8 0030F708 2C 07 00 00 */ cmpwi r7, 0
+/* 80313AAC 0030F70C 40 82 00 0C */ bne lbl_80313AB8
+/* 80313AB0 0030F710 38 60 00 00 */ li r3, 0
+/* 80313AB4 0030F714 48 00 01 10 */ b lbl_80313BC4
+lbl_80313AB8:
+/* 80313AB8 0030F718 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 80313ABC 0030F71C 7C FB 3B 78 */ mr r27, r7
+/* 80313AC0 0030F720 A0 D6 00 28 */ lhz r6, 0x28(r22)
+/* 80313AC4 0030F724 7F A3 EB 78 */ mr r3, r29
+/* 80313AC8 0030F728 7C 9C 02 14 */ add r4, r28, r0
+/* 80313ACC 0030F72C 39 01 00 10 */ addi r8, r1, 0x10
+/* 80313AD0 0030F730 3B 80 00 00 */ li r28, 0
+/* 80313AD4 0030F734 39 20 00 01 */ li r9, 1
+/* 80313AD8 0030F738 48 00 53 11 */ bl VFiPFSEC_WriteData
+/* 80313ADC 0030F73C 2C 03 00 00 */ cmpwi r3, 0
+/* 80313AE0 0030F740 41 82 00 14 */ beq lbl_80313AF4
+/* 80313AE4 0030F744 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 80313AE8 0030F748 2C 00 00 00 */ cmpwi r0, 0
+/* 80313AEC 0030F74C 40 82 00 08 */ bne lbl_80313AF4
+/* 80313AF0 0030F750 48 00 00 B8 */ b lbl_80313BA8
+lbl_80313AF4:
+/* 80313AF4 0030F754 2C 16 00 00 */ cmpwi r22, 0
+/* 80313AF8 0030F758 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80313AFC 0030F75C 80 B6 00 20 */ lwz r5, 0x20(r22)
+/* 80313B00 0030F760 40 82 00 0C */ bne lbl_80313B0C
+/* 80313B04 0030F764 38 80 00 00 */ li r4, 0
+/* 80313B08 0030F768 48 00 00 0C */ b lbl_80313B14
+lbl_80313B0C:
+/* 80313B0C 0030F76C 80 76 00 08 */ lwz r3, 8(r22)
+/* 80313B10 0030F770 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80313B14:
+/* 80313B14 0030F774 A0 16 00 28 */ lhz r0, 0x28(r22)
+/* 80313B18 0030F778 A0 64 00 00 */ lhz r3, 0(r4)
+/* 80313B1C 0030F77C 7C C0 E2 14 */ add r6, r0, r28
+/* 80313B20 0030F780 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 80313B24 0030F784 38 03 FF FF */ addi r0, r3, -1
+/* 80313B28 0030F788 7C 00 30 39 */ and. r0, r0, r6
+/* 80313B2C 0030F78C 7C C0 24 30 */ srw r0, r6, r4
+/* 80313B30 0030F790 7C 85 02 14 */ add r4, r5, r0
+/* 80313B34 0030F794 41 82 00 0C */ beq lbl_80313B40
+/* 80313B38 0030F798 90 96 00 20 */ stw r4, 0x20(r22)
+/* 80313B3C 0030F79C 48 00 00 08 */ b lbl_80313B44
+lbl_80313B40:
+/* 80313B40 0030F7A0 93 F6 00 20 */ stw r31, 0x20(r22)
+lbl_80313B44:
+/* 80313B44 0030F7A4 80 16 00 1C */ lwz r0, 0x1c(r22)
+/* 80313B48 0030F7A8 80 76 00 08 */ lwz r3, 8(r22)
+/* 80313B4C 0030F7AC 7C A0 E2 14 */ add r5, r0, r28
+/* 80313B50 0030F7B0 90 B6 00 1C */ stw r5, 0x1c(r22)
+/* 80313B54 0030F7B4 80 03 02 64 */ lwz r0, 0x264(r3)
+/* 80313B58 0030F7B8 7C 05 00 40 */ cmplw r5, r0
+/* 80313B5C 0030F7BC 40 81 00 08 */ ble lbl_80313B64
+/* 80313B60 0030F7C0 90 A3 02 64 */ stw r5, 0x264(r3)
+lbl_80313B64:
+/* 80313B64 0030F7C4 2C 16 00 00 */ cmpwi r22, 0
+/* 80313B68 0030F7C8 40 82 00 0C */ bne lbl_80313B74
+/* 80313B6C 0030F7CC 38 A0 00 00 */ li r5, 0
+/* 80313B70 0030F7D0 48 00 00 0C */ b lbl_80313B7C
+lbl_80313B74:
+/* 80313B74 0030F7D4 80 76 00 08 */ lwz r3, 8(r22)
+/* 80313B78 0030F7D8 80 A3 02 68 */ lwz r5, 0x268(r3)
+lbl_80313B7C:
+/* 80313B7C 0030F7DC 80 D6 00 1C */ lwz r6, 0x1c(r22)
+/* 80313B80 0030F7E0 7E C3 B3 78 */ mr r3, r22
+/* 80313B84 0030F7E4 88 05 00 20 */ lbz r0, 0x20(r5)
+/* 80313B88 0030F7E8 7C C0 04 30 */ srw r0, r6, r0
+/* 80313B8C 0030F7EC 90 16 00 24 */ stw r0, 0x24(r22)
+/* 80313B90 0030F7F0 A0 A5 00 00 */ lhz r5, 0(r5)
+/* 80313B94 0030F7F4 38 05 FF FF */ addi r0, r5, -1
+/* 80313B98 0030F7F8 7C C0 00 38 */ and r0, r6, r0
+/* 80313B9C 0030F7FC B0 16 00 28 */ sth r0, 0x28(r22)
+/* 80313BA0 0030F800 4B FF 71 E1 */ bl VFiPFCLUSTER_UpdateLastAccessCluster
+/* 80313BA4 0030F804 38 60 00 00 */ li r3, 0
+lbl_80313BA8:
+/* 80313BA8 0030F808 80 81 00 18 */ lwz r4, 0x18(r1)
+/* 80313BAC 0030F80C 7C 03 00 D0 */ neg r0, r3
+/* 80313BB0 0030F810 7C 00 1B 78 */ or r0, r0, r3
+/* 80313BB4 0030F814 7C 84 E2 14 */ add r4, r4, r28
+/* 80313BB8 0030F818 7C 00 FE 70 */ srawi r0, r0, 0x1f
+/* 80313BBC 0030F81C 90 81 00 18 */ stw r4, 0x18(r1)
+/* 80313BC0 0030F820 7C 63 00 38 */ and r3, r3, r0
+lbl_80313BC4:
+/* 80313BC4 0030F824 80 99 00 00 */ lwz r4, 0(r25)
+/* 80313BC8 0030F828 2C 03 00 00 */ cmpwi r3, 0
+/* 80313BCC 0030F82C 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 80313BD0 0030F830 7C 04 02 14 */ add r0, r4, r0
+/* 80313BD4 0030F834 90 19 00 00 */ stw r0, 0(r25)
+/* 80313BD8 0030F838 41 82 00 08 */ beq lbl_80313BE0
+/* 80313BDC 0030F83C 48 00 00 74 */ b lbl_80313C50
+lbl_80313BE0:
+/* 80313BE0 0030F840 2C 1B 00 00 */ cmpwi r27, 0
+/* 80313BE4 0030F844 40 82 00 0C */ bne lbl_80313BF0
+/* 80313BE8 0030F848 38 60 00 00 */ li r3, 0
+/* 80313BEC 0030F84C 48 00 00 64 */ b lbl_80313C50
+lbl_80313BF0:
+/* 80313BF0 0030F850 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 80313BF4 0030F854 7F 5B D0 50 */ subf r26, r27, r26
+/* 80313BF8 0030F858 7F 00 C0 50 */ subf r24, r0, r24
+lbl_80313BFC:
+/* 80313BFC 0030F85C 2C 1A 00 00 */ cmpwi r26, 0
+/* 80313C00 0030F860 41 82 00 10 */ beq lbl_80313C10
+/* 80313C04 0030F864 A0 1D 00 00 */ lhz r0, 0(r29)
+/* 80313C08 0030F868 7C 18 00 40 */ cmplw r24, r0
+/* 80313C0C 0030F86C 40 80 FE 60 */ bge lbl_80313A6C
+lbl_80313C10:
+/* 80313C10 0030F870 80 19 00 00 */ lwz r0, 0(r25)
+/* 80313C14 0030F874 7F A3 EB 78 */ mr r3, r29
+/* 80313C18 0030F878 7E C4 B3 78 */ mr r4, r22
+/* 80313C1C 0030F87C 7F 06 C3 78 */ mr r6, r24
+/* 80313C20 0030F880 7F 47 D3 78 */ mr r7, r26
+/* 80313C24 0030F884 7C B7 02 14 */ add r5, r23, r0
+/* 80313C28 0030F888 39 01 00 18 */ addi r8, r1, 0x18
+/* 80313C2C 0030F88C 4B FF F7 91 */ bl VFiPFFILE_Cursor_WriteTailSector
+/* 80313C30 0030F890 80 99 00 00 */ lwz r4, 0(r25)
+/* 80313C34 0030F894 2C 03 00 00 */ cmpwi r3, 0
+/* 80313C38 0030F898 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 80313C3C 0030F89C 7C 04 02 14 */ add r0, r4, r0
+/* 80313C40 0030F8A0 90 19 00 00 */ stw r0, 0(r25)
+/* 80313C44 0030F8A4 41 82 00 08 */ beq lbl_80313C4C
+/* 80313C48 0030F8A8 48 00 00 08 */ b lbl_80313C50
+lbl_80313C4C:
+/* 80313C4C 0030F8AC 38 60 00 00 */ li r3, 0
+lbl_80313C50:
+/* 80313C50 0030F8B0 39 61 00 50 */ addi r11, r1, 0x50
+/* 80313C54 0030F8B4 4B EB 35 0D */ bl _restgpr_22
+/* 80313C58 0030F8B8 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 80313C5C 0030F8BC 7C 08 03 A6 */ mtlr r0
+/* 80313C60 0030F8C0 38 21 00 50 */ addi r1, r1, 0x50
+/* 80313C64 0030F8C4 4E 80 00 20 */ blr
+
+.global VFiPFFILE_Cursor_MoveToClusterEnd
+VFiPFFILE_Cursor_MoveToClusterEnd:
+/* 80313C68 0030F8C8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80313C6C 0030F8CC 7C 08 02 A6 */ mflr r0
+/* 80313C70 0030F8D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80313C74 0030F8D4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80313C78 0030F8D8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80313C7C 0030F8DC 7C 7F 1B 78 */ mr r31, r3
+/* 80313C80 0030F8E0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80313C84 0030F8E4 40 82 00 0C */ bne lbl_80313C90
+/* 80313C88 0030F8E8 3B C0 00 00 */ li r30, 0
+/* 80313C8C 0030F8EC 48 00 00 0C */ b lbl_80313C98
+lbl_80313C90:
+/* 80313C90 0030F8F0 80 A3 00 08 */ lwz r5, 8(r3)
+/* 80313C94 0030F8F4 83 C5 02 68 */ lwz r30, 0x268(r5)
+lbl_80313C98:
+/* 80313C98 0030F8F8 80 63 00 08 */ lwz r3, 8(r3)
+/* 80313C9C 0030F8FC 38 A1 00 08 */ addi r5, r1, 8
+/* 80313CA0 0030F900 38 63 00 04 */ addi r3, r3, 4
+/* 80313CA4 0030F904 4B FF C6 2D */ bl VFiPFFAT_CountAllocatedClusters
+/* 80313CA8 0030F908 88 9E 00 20 */ lbz r4, 0x20(r30)
+/* 80313CAC 0030F90C 38 00 FF FF */ li r0, -1
+/* 80313CB0 0030F910 88 7E 00 21 */ lbz r3, 0x21(r30)
+/* 80313CB4 0030F914 80 A1 00 08 */ lwz r5, 8(r1)
+/* 80313CB8 0030F918 7C 64 1A 14 */ add r3, r4, r3
+/* 80313CBC 0030F91C 7C 00 1C 30 */ srw r0, r0, r3
+/* 80313CC0 0030F920 7C 05 00 40 */ cmplw r5, r0
+/* 80313CC4 0030F924 40 81 00 AC */ ble lbl_80313D70
+/* 80313CC8 0030F928 2C 1F 00 00 */ cmpwi r31, 0
+/* 80313CCC 0030F92C 40 82 00 0C */ bne lbl_80313CD8
+/* 80313CD0 0030F930 38 A0 00 00 */ li r5, 0
+/* 80313CD4 0030F934 48 00 00 0C */ b lbl_80313CE0
+lbl_80313CD8:
+/* 80313CD8 0030F938 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80313CDC 0030F93C 80 A3 02 68 */ lwz r5, 0x268(r3)
+lbl_80313CE0:
+/* 80313CE0 0030F940 A0 65 00 00 */ lhz r3, 0(r5)
+/* 80313CE4 0030F944 38 80 FF FF */ li r4, -1
+/* 80313CE8 0030F948 80 FF 00 1C */ lwz r7, 0x1c(r31)
+/* 80313CEC 0030F94C 39 03 FF FF */ addi r8, r3, -1
+/* 80313CF0 0030F950 89 25 00 20 */ lbz r9, 0x20(r5)
+/* 80313CF4 0030F954 7C E5 40 38 */ and r5, r7, r8
+/* 80313CF8 0030F958 7C 65 00 D0 */ neg r3, r5
+/* 80313CFC 0030F95C 7C 08 00 D0 */ neg r0, r8
+/* 80313D00 0030F960 7C 66 2B 78 */ or r6, r3, r5
+/* 80313D04 0030F964 7C E5 4C 30 */ srw r5, r7, r9
+/* 80313D08 0030F968 7C 00 43 78 */ or r0, r0, r8
+/* 80313D0C 0030F96C 7C 83 4C 30 */ srw r3, r4, r9
+/* 80313D10 0030F970 54 C6 0F FE */ srwi r6, r6, 0x1f
+/* 80313D14 0030F974 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 80313D18 0030F978 7C A5 32 14 */ add r5, r5, r6
+/* 80313D1C 0030F97C 7C 03 02 14 */ add r0, r3, r0
+/* 80313D20 0030F980 7C 05 00 40 */ cmplw r5, r0
+/* 80313D24 0030F984 41 82 00 08 */ beq lbl_80313D2C
+/* 80313D28 0030F988 90 9F 00 20 */ stw r4, 0x20(r31)
+lbl_80313D2C:
+/* 80313D2C 0030F98C 38 00 FF FF */ li r0, -1
+/* 80313D30 0030F990 2C 1F 00 00 */ cmpwi r31, 0
+/* 80313D34 0030F994 90 1F 00 1C */ stw r0, 0x1c(r31)
+/* 80313D38 0030F998 40 82 00 0C */ bne lbl_80313D44
+/* 80313D3C 0030F99C 38 60 00 00 */ li r3, 0
+/* 80313D40 0030F9A0 48 00 00 0C */ b lbl_80313D4C
+lbl_80313D44:
+/* 80313D44 0030F9A4 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80313D48 0030F9A8 80 63 02 68 */ lwz r3, 0x268(r3)
+lbl_80313D4C:
+/* 80313D4C 0030F9AC 80 9F 00 1C */ lwz r4, 0x1c(r31)
+/* 80313D50 0030F9B0 88 03 00 20 */ lbz r0, 0x20(r3)
+/* 80313D54 0030F9B4 7C 80 04 30 */ srw r0, r4, r0
+/* 80313D58 0030F9B8 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 80313D5C 0030F9BC A0 63 00 00 */ lhz r3, 0(r3)
+/* 80313D60 0030F9C0 38 03 FF FF */ addi r0, r3, -1
+/* 80313D64 0030F9C4 7C 80 00 38 */ and r0, r4, r0
+/* 80313D68 0030F9C8 B0 1F 00 28 */ sth r0, 0x28(r31)
+/* 80313D6C 0030F9CC 48 00 00 AC */ b lbl_80313E18
+lbl_80313D70:
+/* 80313D70 0030F9D0 2C 1F 00 00 */ cmpwi r31, 0
+/* 80313D74 0030F9D4 7C A8 18 30 */ slw r8, r5, r3
+/* 80313D78 0030F9D8 40 82 00 0C */ bne lbl_80313D84
+/* 80313D7C 0030F9DC 38 80 00 00 */ li r4, 0
+/* 80313D80 0030F9E0 48 00 00 0C */ b lbl_80313D8C
+lbl_80313D84:
+/* 80313D84 0030F9E4 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80313D88 0030F9E8 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80313D8C:
+/* 80313D8C 0030F9EC A0 64 00 00 */ lhz r3, 0(r4)
+/* 80313D90 0030F9F0 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80313D94 0030F9F4 38 63 FF FF */ addi r3, r3, -1
+/* 80313D98 0030F9F8 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 80313D9C 0030F9FC 7C 07 18 38 */ and r7, r0, r3
+/* 80313DA0 0030FA00 7C 05 24 30 */ srw r5, r0, r4
+/* 80313DA4 0030FA04 7D 03 18 38 */ and r3, r8, r3
+/* 80313DA8 0030FA08 7C C7 00 D0 */ neg r6, r7
+/* 80313DAC 0030FA0C 7D 04 24 30 */ srw r4, r8, r4
+/* 80313DB0 0030FA10 7C 03 00 D0 */ neg r0, r3
+/* 80313DB4 0030FA14 7C 00 1B 78 */ or r0, r0, r3
+/* 80313DB8 0030FA18 7C C6 3B 78 */ or r6, r6, r7
+/* 80313DBC 0030FA1C 54 C3 0F FE */ srwi r3, r6, 0x1f
+/* 80313DC0 0030FA20 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 80313DC4 0030FA24 7C 65 1A 14 */ add r3, r5, r3
+/* 80313DC8 0030FA28 7C 04 02 14 */ add r0, r4, r0
+/* 80313DCC 0030FA2C 7C 03 00 40 */ cmplw r3, r0
+/* 80313DD0 0030FA30 41 82 00 0C */ beq lbl_80313DDC
+/* 80313DD4 0030FA34 38 00 FF FF */ li r0, -1
+/* 80313DD8 0030FA38 90 1F 00 20 */ stw r0, 0x20(r31)
+lbl_80313DDC:
+/* 80313DDC 0030FA3C 2C 1F 00 00 */ cmpwi r31, 0
+/* 80313DE0 0030FA40 91 1F 00 1C */ stw r8, 0x1c(r31)
+/* 80313DE4 0030FA44 40 82 00 0C */ bne lbl_80313DF0
+/* 80313DE8 0030FA48 38 60 00 00 */ li r3, 0
+/* 80313DEC 0030FA4C 48 00 00 0C */ b lbl_80313DF8
+lbl_80313DF0:
+/* 80313DF0 0030FA50 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80313DF4 0030FA54 80 63 02 68 */ lwz r3, 0x268(r3)
+lbl_80313DF8:
+/* 80313DF8 0030FA58 80 9F 00 1C */ lwz r4, 0x1c(r31)
+/* 80313DFC 0030FA5C 88 03 00 20 */ lbz r0, 0x20(r3)
+/* 80313E00 0030FA60 7C 80 04 30 */ srw r0, r4, r0
+/* 80313E04 0030FA64 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 80313E08 0030FA68 A0 63 00 00 */ lhz r3, 0(r3)
+/* 80313E0C 0030FA6C 38 03 FF FF */ addi r0, r3, -1
+/* 80313E10 0030FA70 7C 80 00 38 */ and r0, r4, r0
+/* 80313E14 0030FA74 B0 1F 00 28 */ sth r0, 0x28(r31)
+lbl_80313E18:
+/* 80313E18 0030FA78 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80313E1C 0030FA7C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80313E20 0030FA80 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80313E24 0030FA84 7C 08 03 A6 */ mtlr r0
+/* 80313E28 0030FA88 38 21 00 20 */ addi r1, r1, 0x20
+/* 80313E2C 0030FA8C 4E 80 00 20 */ blr
+
+.global VFiPFFILE_GetSFD
+VFiPFFILE_GetSFD:
+/* 80313E30 0030FA90 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80313E34 0030FA94 7C 08 02 A6 */ mflr r0
+/* 80313E38 0030FA98 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80313E3C 0030FA9C 39 61 00 20 */ addi r11, r1, 0x20
+/* 80313E40 0030FAA0 4B EB 32 E9 */ bl _savegpr_27
+/* 80313E44 0030FAA4 7C 7C 1B 78 */ mr r28, r3
+/* 80313E48 0030FAA8 38 00 00 05 */ li r0, 5
+/* 80313E4C 0030FAAC 7C 9D 23 78 */ mr r29, r4
+/* 80313E50 0030FAB0 38 E3 00 40 */ addi r7, r3, 0x40
+/* 80313E54 0030FAB4 7F 86 E3 78 */ mr r6, r28
+/* 80313E58 0030FAB8 3B E0 00 00 */ li r31, 0
+/* 80313E5C 0030FABC 3B C0 00 00 */ li r30, 0
+/* 80313E60 0030FAC0 39 00 00 00 */ li r8, 0
+/* 80313E64 0030FAC4 7C 09 03 A6 */ mtctr r0
+lbl_80313E68:
+/* 80313E68 0030FAC8 80 06 00 40 */ lwz r0, 0x40(r6)
+/* 80313E6C 0030FACC 54 05 07 FF */ clrlwi. r5, r0, 0x1f
+/* 80313E70 0030FAD0 41 82 00 14 */ beq lbl_80313E84
+/* 80313E74 0030FAD4 41 82 00 24 */ beq lbl_80313E98
+/* 80313E78 0030FAD8 7C 00 00 34 */ cntlzw r0, r0
+/* 80313E7C 0030FADC 54 00 DF BD */ rlwinm. r0, r0, 0x1b, 0x1e, 0x1e
+/* 80313E80 0030FAE0 41 82 00 18 */ beq lbl_80313E98
+lbl_80313E84:
+/* 80313E84 0030FAE4 2C 1E 00 00 */ cmpwi r30, 0
+/* 80313E88 0030FAE8 40 82 00 5C */ bne lbl_80313EE4
+/* 80313E8C 0030FAEC 7C FE 3B 78 */ mr r30, r7
+/* 80313E90 0030FAF0 7D 1F 43 78 */ mr r31, r8
+/* 80313E94 0030FAF4 48 00 00 50 */ b lbl_80313EE4
+lbl_80313E98:
+/* 80313E98 0030FAF8 80 A4 02 2C */ lwz r5, 0x22c(r4)
+/* 80313E9C 0030FAFC 80 06 02 A8 */ lwz r0, 0x2a8(r6)
+/* 80313EA0 0030FB00 7C 05 00 40 */ cmplw r5, r0
+/* 80313EA4 0030FB04 40 82 00 40 */ bne lbl_80313EE4
+/* 80313EA8 0030FB08 80 A4 02 38 */ lwz r5, 0x238(r4)
+/* 80313EAC 0030FB0C 80 06 02 B4 */ lwz r0, 0x2b4(r6)
+/* 80313EB0 0030FB10 7C 05 00 40 */ cmplw r5, r0
+/* 80313EB4 0030FB14 40 82 00 30 */ bne lbl_80313EE4
+/* 80313EB8 0030FB18 A0 A4 02 3C */ lhz r5, 0x23c(r4)
+/* 80313EBC 0030FB1C A0 06 02 B8 */ lhz r0, 0x2b8(r6)
+/* 80313EC0 0030FB20 7C 05 00 40 */ cmplw r5, r0
+/* 80313EC4 0030FB24 40 82 00 20 */ bne lbl_80313EE4
+/* 80313EC8 0030FB28 1C 08 02 90 */ mulli r0, r8, 0x290
+/* 80313ECC 0030FB2C 7C A3 02 14 */ add r5, r3, r0
+/* 80313ED0 0030FB30 A0 85 02 CC */ lhz r4, 0x2cc(r5)
+/* 80313ED4 0030FB34 38 65 00 40 */ addi r3, r5, 0x40
+/* 80313ED8 0030FB38 38 04 00 01 */ addi r0, r4, 1
+/* 80313EDC 0030FB3C B0 05 02 CC */ sth r0, 0x2cc(r5)
+/* 80313EE0 0030FB40 48 00 01 08 */ b lbl_80313FE8
+lbl_80313EE4:
+/* 80313EE4 0030FB44 38 C6 02 90 */ addi r6, r6, 0x290
+/* 80313EE8 0030FB48 38 E7 02 90 */ addi r7, r7, 0x290
+/* 80313EEC 0030FB4C 39 08 00 01 */ addi r8, r8, 1
+/* 80313EF0 0030FB50 42 00 FF 78 */ bdnz lbl_80313E68
+/* 80313EF4 0030FB54 2C 1E 00 00 */ cmpwi r30, 0
+/* 80313EF8 0030FB58 40 82 00 0C */ bne lbl_80313F04
+/* 80313EFC 0030FB5C 38 60 00 00 */ li r3, 0
+/* 80313F00 0030FB60 48 00 00 E8 */ b lbl_80313FE8
+lbl_80313F04:
+/* 80313F04 0030FB64 38 00 00 03 */ li r0, 3
+/* 80313F08 0030FB68 38 60 00 01 */ li r3, 1
+/* 80313F0C 0030FB6C 90 1E 00 00 */ stw r0, 0(r30)
+/* 80313F10 0030FB70 38 00 00 48 */ li r0, 0x48
+/* 80313F14 0030FB74 38 BE 00 38 */ addi r5, r30, 0x38
+/* 80313F18 0030FB78 38 84 FF FC */ addi r4, r4, -4
+/* 80313F1C 0030FB7C B0 7E 02 8C */ sth r3, 0x28c(r30)
+/* 80313F20 0030FB80 7C 09 03 A6 */ mtctr r0
+lbl_80313F24:
+/* 80313F24 0030FB84 80 64 00 04 */ lwz r3, 4(r4)
+/* 80313F28 0030FB88 84 04 00 08 */ lwzu r0, 8(r4)
+/* 80313F2C 0030FB8C 90 65 00 04 */ stw r3, 4(r5)
+/* 80313F30 0030FB90 94 05 00 08 */ stwu r0, 8(r5)
+/* 80313F34 0030FB94 42 00 FF F0 */ bdnz lbl_80313F24
+/* 80313F38 0030FB98 3B 60 00 00 */ li r27, 0
+/* 80313F3C 0030FB9C 38 7E 00 04 */ addi r3, r30, 4
+/* 80313F40 0030FBA0 B3 7E 02 7C */ sth r27, 0x27c(r30)
+/* 80313F44 0030FBA4 38 DE 02 70 */ addi r6, r30, 0x270
+/* 80313F48 0030FBA8 38 80 00 00 */ li r4, 0
+/* 80313F4C 0030FBAC B3 7E 02 7E */ sth r27, 0x27e(r30)
+/* 80313F50 0030FBB0 93 7E 02 80 */ stw r27, 0x280(r30)
+/* 80313F54 0030FBB4 93 7E 02 84 */ stw r27, 0x284(r30)
+/* 80313F58 0030FBB8 93 7E 02 88 */ stw r27, 0x288(r30)
+/* 80313F5C 0030FBBC 80 BD 02 2C */ lwz r5, 0x22c(r29)
+/* 80313F60 0030FBC0 4B FF D1 69 */ bl VFiPFFAT_InitFFD
+/* 80313F64 0030FBC4 A0 1C 18 80 */ lhz r0, 0x1880(r28)
+/* 80313F68 0030FBC8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80313F6C 0030FBCC 41 82 00 78 */ beq lbl_80313FE4
+/* 80313F70 0030FBD0 80 1C 18 88 */ lwz r0, 0x1888(r28)
+/* 80313F74 0030FBD4 38 80 00 00 */ li r4, 0
+/* 80313F78 0030FBD8 80 7C 18 84 */ lwz r3, 0x1884(r28)
+/* 80313F7C 0030FBDC 7C 1F 01 D6 */ mullw r0, r31, r0
+/* 80313F80 0030FBE0 54 00 10 3A */ slwi r0, r0, 2
+/* 80313F84 0030FBE4 7C 63 02 14 */ add r3, r3, r0
+/* 80313F88 0030FBE8 90 7E 00 20 */ stw r3, 0x20(r30)
+/* 80313F8C 0030FBEC 80 1C 18 88 */ lwz r0, 0x1888(r28)
+/* 80313F90 0030FBF0 54 05 10 3A */ slwi r5, r0, 2
+/* 80313F94 0030FBF4 4B FF 10 41 */ bl VFipf_memset
+/* 80313F98 0030FBF8 80 1C 18 88 */ lwz r0, 0x1888(r28)
+/* 80313F9C 0030FBFC 90 1E 00 2C */ stw r0, 0x2c(r30)
+/* 80313FA0 0030FC00 A0 1C 18 82 */ lhz r0, 0x1882(r28)
+/* 80313FA4 0030FC04 B0 1E 00 24 */ sth r0, 0x24(r30)
+/* 80313FA8 0030FC08 B3 7E 00 26 */ sth r27, 0x26(r30)
+/* 80313FAC 0030FC0C 93 7E 00 28 */ stw r27, 0x28(r30)
+/* 80313FB0 0030FC10 93 7E 00 30 */ stw r27, 0x30(r30)
+/* 80313FB4 0030FC14 80 1D 02 28 */ lwz r0, 0x228(r29)
+/* 80313FB8 0030FC18 2C 00 00 00 */ cmpwi r0, 0
+/* 80313FBC 0030FC1C 41 82 00 28 */ beq lbl_80313FE4
+/* 80313FC0 0030FC20 80 1E 00 2C */ lwz r0, 0x2c(r30)
+/* 80313FC4 0030FC24 2C 00 00 00 */ cmpwi r0, 0
+/* 80313FC8 0030FC28 41 82 00 1C */ beq lbl_80313FE4
+/* 80313FCC 0030FC2C 80 1D 02 34 */ lwz r0, 0x234(r29)
+/* 80313FD0 0030FC30 80 7E 00 20 */ lwz r3, 0x20(r30)
+/* 80313FD4 0030FC34 90 03 00 00 */ stw r0, 0(r3)
+/* 80313FD8 0030FC38 80 7E 00 28 */ lwz r3, 0x28(r30)
+/* 80313FDC 0030FC3C 38 03 00 01 */ addi r0, r3, 1
+/* 80313FE0 0030FC40 90 1E 00 28 */ stw r0, 0x28(r30)
+lbl_80313FE4:
+/* 80313FE4 0030FC44 7F C3 F3 78 */ mr r3, r30
+lbl_80313FE8:
+/* 80313FE8 0030FC48 39 61 00 20 */ addi r11, r1, 0x20
+/* 80313FEC 0030FC4C 4B EB 31 89 */ bl _restgpr_27
+/* 80313FF0 0030FC50 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80313FF4 0030FC54 7C 08 03 A6 */ mtlr r0
+/* 80313FF8 0030FC58 38 21 00 20 */ addi r1, r1, 0x20
+/* 80313FFC 0030FC5C 4E 80 00 20 */ blr
+
+.global VFiPFFILE_createEmptyFile
+VFiPFFILE_createEmptyFile:
+/* 80314000 0030FC60 94 21 FD 20 */ stwu r1, -0x2e0(r1)
+/* 80314004 0030FC64 7C 08 02 A6 */ mflr r0
+/* 80314008 0030FC68 90 01 02 E4 */ stw r0, 0x2e4(r1)
+/* 8031400C 0030FC6C 39 61 02 E0 */ addi r11, r1, 0x2e0
+/* 80314010 0030FC70 4B EB 31 0D */ bl _savegpr_24
+/* 80314014 0030FC74 38 00 00 48 */ li r0, 0x48
+/* 80314018 0030FC78 7C 9D 23 78 */ mr r29, r4
+/* 8031401C 0030FC7C 7C BE 2B 78 */ mr r30, r5
+/* 80314020 0030FC80 7C 7C 1B 78 */ mr r28, r3
+/* 80314024 0030FC84 7C DF 33 78 */ mr r31, r6
+/* 80314028 0030FC88 38 A1 00 7C */ addi r5, r1, 0x7c
+/* 8031402C 0030FC8C 38 84 FF FC */ addi r4, r4, -4
+/* 80314030 0030FC90 7C 09 03 A6 */ mtctr r0
+lbl_80314034:
+/* 80314034 0030FC94 80 64 00 04 */ lwz r3, 4(r4)
+/* 80314038 0030FC98 84 04 00 08 */ lwzu r0, 8(r4)
+/* 8031403C 0030FC9C 90 65 00 04 */ stw r3, 4(r5)
+/* 80314040 0030FCA0 94 05 00 08 */ stwu r0, 8(r5)
+/* 80314044 0030FCA4 42 00 FF F0 */ bdnz lbl_80314034
+/* 80314048 0030FCA8 80 A1 02 AC */ lwz r5, 0x2ac(r1)
+/* 8031404C 0030FCAC 38 61 00 48 */ addi r3, r1, 0x48
+/* 80314050 0030FCB0 38 81 00 18 */ addi r4, r1, 0x18
+/* 80314054 0030FCB4 38 C1 02 B4 */ addi r6, r1, 0x2b4
+/* 80314058 0030FCB8 4B FF D0 71 */ bl VFiPFFAT_InitFFD
+/* 8031405C 0030FCBC 80 1C 15 E0 */ lwz r0, 0x15e0(r28)
+/* 80314060 0030FCC0 2C 00 00 05 */ cmpwi r0, 5
+/* 80314064 0030FCC4 41 80 00 0C */ blt lbl_80314070
+/* 80314068 0030FCC8 38 60 00 15 */ li r3, 0x15
+/* 8031406C 0030FCCC 48 00 02 90 */ b lbl_803142FC
+lbl_80314070:
+/* 80314070 0030FCD0 7F C4 F3 78 */ mr r4, r30
+/* 80314074 0030FCD4 38 7D 02 0E */ addi r3, r29, 0x20e
+/* 80314078 0030FCD8 48 00 3A 2D */ bl VFiPFPATH_parseShortName
+/* 8031407C 0030FCDC 2C 03 00 00 */ cmpwi r3, 0
+/* 80314080 0030FCE0 41 82 00 18 */ beq lbl_80314098
+/* 80314084 0030FCE4 88 1D 02 0E */ lbz r0, 0x20e(r29)
+/* 80314088 0030FCE8 7C 00 07 75 */ extsb. r0, r0
+/* 8031408C 0030FCEC 40 82 00 0C */ bne lbl_80314098
+/* 80314090 0030FCF0 38 60 00 01 */ li r3, 1
+/* 80314094 0030FCF4 48 00 02 68 */ b lbl_803142FC
+lbl_80314098:
+/* 80314098 0030FCF8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031409C 0030FCFC 41 82 00 64 */ beq lbl_80314100
+/* 803140A0 0030FD00 38 61 00 80 */ addi r3, r1, 0x80
+/* 803140A4 0030FD04 38 9D 02 0E */ addi r4, r29, 0x20e
+/* 803140A8 0030FD08 4B FF 89 F5 */ bl VFiPFENT_AdjustSFN
+/* 803140AC 0030FD0C 2C 03 00 00 */ cmpwi r3, 0
+/* 803140B0 0030FD10 41 82 00 08 */ beq lbl_803140B8
+/* 803140B4 0030FD14 48 00 02 48 */ b lbl_803142FC
+lbl_803140B8:
+/* 803140B8 0030FD18 7F C3 F3 78 */ mr r3, r30
+/* 803140BC 0030FD1C 4B FF 12 25 */ bl VFiPFSTR_GetCodeMode
+/* 803140C0 0030FD20 28 03 00 01 */ cmplwi r3, 1
+/* 803140C4 0030FD24 40 82 00 20 */ bne lbl_803140E4
+/* 803140C8 0030FD28 7F C3 F3 78 */ mr r3, r30
+/* 803140CC 0030FD2C 38 80 00 01 */ li r4, 1
+/* 803140D0 0030FD30 4B FF 12 41 */ bl VFiPFSTR_GetStrPos
+/* 803140D4 0030FD34 7C 64 1B 78 */ mr r4, r3
+/* 803140D8 0030FD38 7F A3 EB 78 */ mr r3, r29
+/* 803140DC 0030FD3C 48 00 39 31 */ bl VFiPFPATH_transformInUnicode
+/* 803140E0 0030FD40 48 00 00 28 */ b lbl_80314108
+lbl_803140E4:
+/* 803140E4 0030FD44 7F C3 F3 78 */ mr r3, r30
+/* 803140E8 0030FD48 38 80 00 01 */ li r4, 1
+/* 803140EC 0030FD4C 4B FF 12 25 */ bl VFiPFSTR_GetStrPos
+/* 803140F0 0030FD50 7C 64 1B 78 */ mr r4, r3
+/* 803140F4 0030FD54 7F A3 EB 78 */ mr r3, r29
+/* 803140F8 0030FD58 4B FF 17 8D */ bl VFipf_w_strcpy
+/* 803140FC 0030FD5C 48 00 00 0C */ b lbl_80314108
+lbl_80314100:
+/* 80314100 0030FD60 38 00 00 00 */ li r0, 0
+/* 80314104 0030FD64 B0 1D 00 00 */ sth r0, 0(r29)
+lbl_80314108:
+/* 80314108 0030FD68 80 1C 00 1C */ lwz r0, 0x1c(r28)
+/* 8031410C 0030FD6C 2C 00 00 02 */ cmpwi r0, 2
+/* 80314110 0030FD70 40 82 00 10 */ bne lbl_80314120
+/* 80314114 0030FD74 38 00 00 01 */ li r0, 1
+/* 80314118 0030FD78 90 1D 02 34 */ stw r0, 0x234(r29)
+/* 8031411C 0030FD7C 48 00 00 0C */ b lbl_80314128
+lbl_80314120:
+/* 80314120 0030FD80 38 00 00 00 */ li r0, 0
+/* 80314124 0030FD84 90 1D 02 34 */ stw r0, 0x234(r29)
+lbl_80314128:
+/* 80314128 0030FD88 38 A0 00 00 */ li r5, 0
+/* 8031412C 0030FD8C 38 00 00 20 */ li r0, 0x20
+/* 80314130 0030FD90 90 BD 02 28 */ stw r5, 0x228(r29)
+/* 80314134 0030FD94 38 7D 02 20 */ addi r3, r29, 0x220
+/* 80314138 0030FD98 38 9D 02 1E */ addi r4, r29, 0x21e
+/* 8031413C 0030FD9C 93 9D 02 2C */ stw r28, 0x22c(r29)
+/* 80314140 0030FDA0 98 BD 02 1B */ stb r5, 0x21b(r29)
+/* 80314144 0030FDA4 98 1D 02 1C */ stb r0, 0x21c(r29)
+/* 80314148 0030FDA8 4B FF 8A 31 */ bl VFiPFENT_getcurrentDateTimeForEnt
+/* 8031414C 0030FDAC A0 1D 00 00 */ lhz r0, 0(r29)
+/* 80314150 0030FDB0 A0 BD 02 20 */ lhz r5, 0x220(r29)
+/* 80314154 0030FDB4 A0 9D 02 1E */ lhz r4, 0x21e(r29)
+/* 80314158 0030FDB8 2C 00 00 00 */ cmpwi r0, 0
+/* 8031415C 0030FDBC 98 7D 02 1D */ stb r3, 0x21d(r29)
+/* 80314160 0030FDC0 B0 BD 02 22 */ sth r5, 0x222(r29)
+/* 80314164 0030FDC4 B0 9D 02 24 */ sth r4, 0x224(r29)
+/* 80314168 0030FDC8 B0 BD 02 26 */ sth r5, 0x226(r29)
+/* 8031416C 0030FDCC 41 82 01 4C */ beq lbl_803142B8
+/* 80314170 0030FDD0 88 1D 02 1B */ lbz r0, 0x21b(r29)
+/* 80314174 0030FDD4 54 00 06 F9 */ rlwinm. r0, r0, 0, 0x1b, 0x1c
+/* 80314178 0030FDD8 40 82 01 40 */ bne lbl_803142B8
+/* 8031417C 0030FDDC 3C 80 4E C5 */ lis r4, 0x4EC4EC4F@ha
+/* 80314180 0030FDE0 7F A3 EB 78 */ mr r3, r29
+/* 80314184 0030FDE4 38 04 EC 4F */ addi r0, r4, 0x4EC4EC4F@l
+/* 80314188 0030FDE8 7F C7 F3 78 */ mr r7, r30
+/* 8031418C 0030FDEC 7C 00 F8 16 */ mulhwu r0, r0, r31
+/* 80314190 0030FDF0 38 A1 00 48 */ addi r5, r1, 0x48
+/* 80314194 0030FDF4 38 C1 00 10 */ addi r6, r1, 0x10
+/* 80314198 0030FDF8 39 01 00 08 */ addi r8, r1, 8
+/* 8031419C 0030FDFC 54 09 F0 BE */ srwi r9, r0, 2
+/* 803141A0 0030FE00 1C 09 00 0D */ mulli r0, r9, 0xd
+/* 803141A4 0030FE04 7C 80 F8 50 */ subf r4, r0, r31
+/* 803141A8 0030FE08 7C 04 00 D0 */ neg r0, r4
+/* 803141AC 0030FE0C 7C 00 23 78 */ or r0, r0, r4
+/* 803141B0 0030FE10 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 803141B4 0030FE14 7C 09 02 14 */ add r0, r9, r0
+/* 803141B8 0030FE18 54 1A 06 3E */ clrlwi r26, r0, 0x18
+/* 803141BC 0030FE1C 38 1A 00 01 */ addi r0, r26, 1
+/* 803141C0 0030FE20 54 04 06 3E */ clrlwi r4, r0, 0x18
+/* 803141C4 0030FE24 4B FF 82 01 */ bl VFiPFENT_allocateEntryPos
+/* 803141C8 0030FE28 2C 03 00 00 */ cmpwi r3, 0
+/* 803141CC 0030FE2C 41 82 00 08 */ beq lbl_803141D4
+/* 803141D0 0030FE30 48 00 01 2C */ b lbl_803142FC
+lbl_803141D4:
+/* 803141D4 0030FE34 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 803141D8 0030FE38 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 803141DC 0030FE3C 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 803141E0 0030FE40 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
+/* 803141E4 0030FE44 28 00 00 02 */ cmplwi r0, 2
+/* 803141E8 0030FE48 40 82 00 10 */ bne lbl_803141F8
+/* 803141EC 0030FE4C 80 81 00 08 */ lwz r4, 8(r1)
+/* 803141F0 0030FE50 38 7D 02 0E */ addi r3, r29, 0x20e
+/* 803141F4 0030FE54 48 00 47 09 */ bl VFiPFPATH_AdjustExtShortName
+lbl_803141F8:
+/* 803141F8 0030FE58 9B 5D 02 0A */ stb r26, 0x20a(r29)
+/* 803141FC 0030FE5C 7F A3 EB 78 */ mr r3, r29
+/* 80314200 0030FE60 83 1D 02 38 */ lwz r24, 0x238(r29)
+/* 80314204 0030FE64 4B FF 79 A5 */ bl VFiPFENT_CalcCheckSum
+/* 80314208 0030FE68 7C 7F 1B 78 */ mr r31, r3
+/* 8031420C 0030FE6C 7F 59 D3 78 */ mr r25, r26
+/* 80314210 0030FE70 3B 61 00 10 */ addi r27, r1, 0x10
+/* 80314214 0030FE74 3B C0 00 00 */ li r30, 0
+/* 80314218 0030FE78 48 00 00 90 */ b lbl_803142A8
+lbl_8031421C:
+/* 8031421C 0030FE7C 7C 19 D0 50 */ subf r0, r25, r26
+/* 80314220 0030FE80 7F A4 EB 78 */ mr r4, r29
+/* 80314224 0030FE84 7C 00 00 34 */ cntlzw r0, r0
+/* 80314228 0030FE88 38 61 00 28 */ addi r3, r1, 0x28
+/* 8031422C 0030FE8C 57 25 06 3E */ clrlwi r5, r25, 0x18
+/* 80314230 0030FE90 57 E6 06 3E */ clrlwi r6, r31, 0x18
+/* 80314234 0030FE94 54 07 D9 7E */ srwi r7, r0, 5
+/* 80314238 0030FE98 4B FF 7C AD */ bl VFiPFENT_storeLFNEntryFieldsToBuf
+/* 8031423C 0030FE9C A0 DD 02 3C */ lhz r6, 0x23c(r29)
+/* 80314240 0030FEA0 7F 83 E3 78 */ mr r3, r28
+/* 80314244 0030FEA4 7F 05 C3 78 */ mr r5, r24
+/* 80314248 0030FEA8 38 81 00 28 */ addi r4, r1, 0x28
+/* 8031424C 0030FEAC 39 01 00 0C */ addi r8, r1, 0xc
+/* 80314250 0030FEB0 38 E0 00 20 */ li r7, 0x20
+/* 80314254 0030FEB4 39 20 00 00 */ li r9, 0
+/* 80314258 0030FEB8 48 00 4B 91 */ bl VFiPFSEC_WriteData
+/* 8031425C 0030FEBC 2C 03 00 00 */ cmpwi r3, 0
+/* 80314260 0030FEC0 41 82 00 08 */ beq lbl_80314268
+/* 80314264 0030FEC4 48 00 00 98 */ b lbl_803142FC
+lbl_80314268:
+/* 80314268 0030FEC8 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 8031426C 0030FECC 28 00 00 20 */ cmplwi r0, 0x20
+/* 80314270 0030FED0 41 82 00 0C */ beq lbl_8031427C
+/* 80314274 0030FED4 38 60 00 11 */ li r3, 0x11
+/* 80314278 0030FED8 48 00 00 84 */ b lbl_803142FC
+lbl_8031427C:
+/* 8031427C 0030FEDC A0 7D 02 3C */ lhz r3, 0x23c(r29)
+/* 80314280 0030FEE0 38 03 00 20 */ addi r0, r3, 0x20
+/* 80314284 0030FEE4 B0 1D 02 3C */ sth r0, 0x23c(r29)
+/* 80314288 0030FEE8 54 03 04 3E */ clrlwi r3, r0, 0x10
+/* 8031428C 0030FEEC A0 1C 00 00 */ lhz r0, 0(r28)
+/* 80314290 0030FEF0 7C 03 00 40 */ cmplw r3, r0
+/* 80314294 0030FEF4 41 80 00 10 */ blt lbl_803142A4
+/* 80314298 0030FEF8 B3 DD 02 3C */ sth r30, 0x23c(r29)
+/* 8031429C 0030FEFC 83 1B 00 00 */ lwz r24, 0(r27)
+/* 803142A0 0030FF00 3B 7B 00 04 */ addi r27, r27, 4
+lbl_803142A4:
+/* 803142A4 0030FF04 3B 39 FF FF */ addi r25, r25, -1
+lbl_803142A8:
+/* 803142A8 0030FF08 28 19 00 01 */ cmplwi r25, 1
+/* 803142AC 0030FF0C 40 80 FF 70 */ bge lbl_8031421C
+/* 803142B0 0030FF10 93 1D 02 38 */ stw r24, 0x238(r29)
+/* 803142B4 0030FF14 48 00 00 28 */ b lbl_803142DC
+lbl_803142B8:
+/* 803142B8 0030FF18 7F A3 EB 78 */ mr r3, r29
+/* 803142BC 0030FF1C 7F C7 F3 78 */ mr r7, r30
+/* 803142C0 0030FF20 38 A1 00 48 */ addi r5, r1, 0x48
+/* 803142C4 0030FF24 38 C1 00 10 */ addi r6, r1, 0x10
+/* 803142C8 0030FF28 38 80 00 01 */ li r4, 1
+/* 803142CC 0030FF2C 4B FF 84 15 */ bl VFiPFENT_allocateEntry
+/* 803142D0 0030FF30 2C 03 00 00 */ cmpwi r3, 0
+/* 803142D4 0030FF34 41 82 00 08 */ beq lbl_803142DC
+/* 803142D8 0030FF38 48 00 00 24 */ b lbl_803142FC
+lbl_803142DC:
+/* 803142DC 0030FF3C 80 1D 02 34 */ lwz r0, 0x234(r29)
+/* 803142E0 0030FF40 28 00 00 01 */ cmplwi r0, 1
+/* 803142E4 0030FF44 40 82 00 0C */ bne lbl_803142F0
+/* 803142E8 0030FF48 38 00 00 00 */ li r0, 0
+/* 803142EC 0030FF4C 90 1D 02 34 */ stw r0, 0x234(r29)
+lbl_803142F0:
+/* 803142F0 0030FF50 7F A3 EB 78 */ mr r3, r29
+/* 803142F4 0030FF54 38 80 00 01 */ li r4, 1
+/* 803142F8 0030FF58 4B FF 85 F9 */ bl VFiPFENT_updateEntry
+lbl_803142FC:
+/* 803142FC 0030FF5C 39 61 02 E0 */ addi r11, r1, 0x2e0
+/* 80314300 0030FF60 4B EB 2E 69 */ bl _restgpr_24
+/* 80314304 0030FF64 80 01 02 E4 */ lwz r0, 0x2e4(r1)
+/* 80314308 0030FF68 7C 08 03 A6 */ mtlr r0
+/* 8031430C 0030FF6C 38 21 02 E0 */ addi r1, r1, 0x2e0
+/* 80314310 0030FF70 4E 80 00 20 */ blr
+
+.global VFiPFFILE_p_fopen
+VFiPFFILE_p_fopen:
+/* 80314314 0030FF74 94 21 FA C0 */ stwu r1, -0x540(r1)
+/* 80314318 0030FF78 7C 08 02 A6 */ mflr r0
+/* 8031431C 0030FF7C 38 E0 00 01 */ li r7, 1
+/* 80314320 0030FF80 90 01 05 44 */ stw r0, 0x544(r1)
+/* 80314324 0030FF84 38 00 00 00 */ li r0, 0
+/* 80314328 0030FF88 93 E1 05 3C */ stw r31, 0x53c(r1)
+/* 8031432C 0030FF8C 7C 9F 23 78 */ mr r31, r4
+/* 80314330 0030FF90 38 81 02 E8 */ addi r4, r1, 0x2e8
+/* 80314334 0030FF94 93 C1 05 38 */ stw r30, 0x538(r1)
+/* 80314338 0030FF98 7C DE 33 78 */ mr r30, r6
+/* 8031433C 0030FF9C 93 A1 05 34 */ stw r29, 0x534(r1)
+/* 80314340 0030FFA0 7C BD 2B 78 */ mr r29, r5
+/* 80314344 0030FFA4 93 81 05 30 */ stw r28, 0x530(r1)
+/* 80314348 0030FFA8 7C 7C 1B 78 */ mr r28, r3
+/* 8031434C 0030FFAC 7F 85 E3 78 */ mr r5, r28
+/* 80314350 0030FFB0 38 61 00 78 */ addi r3, r1, 0x78
+/* 80314354 0030FFB4 90 06 00 00 */ stw r0, 0(r6)
+/* 80314358 0030FFB8 7F E6 FB 78 */ mr r6, r31
+/* 8031435C 0030FFBC 4B FF A1 D1 */ bl VFiPFENT_ITER_GetEntryOfPath
+/* 80314360 0030FFC0 2C 03 00 00 */ cmpwi r3, 0
+/* 80314364 0030FFC4 41 82 00 08 */ beq lbl_8031436C
+/* 80314368 0030FFC8 48 00 04 7C */ b lbl_803147E4
+lbl_8031436C:
+/* 8031436C 0030FFCC 88 01 05 04 */ lbz r0, 0x504(r1)
+/* 80314370 0030FFD0 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
+/* 80314374 0030FFD4 40 82 00 0C */ bne lbl_80314380
+/* 80314378 0030FFD8 38 60 00 01 */ li r3, 1
+/* 8031437C 0030FFDC 48 00 04 68 */ b lbl_803147E4
+lbl_80314380:
+/* 80314380 0030FFE0 7F E3 FB 78 */ mr r3, r31
+/* 80314384 0030FFE4 38 81 00 20 */ addi r4, r1, 0x20
+/* 80314388 0030FFE8 38 A1 00 30 */ addi r5, r1, 0x30
+/* 8031438C 0030FFEC 48 00 2B 01 */ bl VFiPFPATH_SplitPath
+/* 80314390 0030FFF0 2C 03 00 00 */ cmpwi r3, 0
+/* 80314394 0030FFF4 41 82 00 0C */ beq lbl_803143A0
+/* 80314398 0030FFF8 38 60 00 01 */ li r3, 1
+/* 8031439C 0030FFFC 48 00 04 48 */ b lbl_803147E4
+lbl_803143A0:
+/* 803143A0 00310000 38 61 00 30 */ addi r3, r1, 0x30
+/* 803143A4 00310004 38 80 00 01 */ li r4, 1
+/* 803143A8 00310008 4B FF 11 35 */ bl VFiPFSTR_StrNumChar
+/* 803143AC 0031000C 54 7F 04 3E */ clrlwi r31, r3, 0x10
+/* 803143B0 00310010 2C 1F 00 FF */ cmpwi r31, 0xff
+/* 803143B4 00310014 40 81 00 0C */ ble lbl_803143C0
+/* 803143B8 00310018 38 60 00 01 */ li r3, 1
+/* 803143BC 0031001C 48 00 04 28 */ b lbl_803147E4
+lbl_803143C0:
+/* 803143C0 00310020 38 61 00 30 */ addi r3, r1, 0x30
+/* 803143C4 00310024 4B FF 0F 1D */ bl VFiPFSTR_GetCodeMode
+/* 803143C8 00310028 28 03 00 02 */ cmplwi r3, 2
+/* 803143CC 0031002C 40 82 00 1C */ bne lbl_803143E8
+/* 803143D0 00310030 38 61 00 30 */ addi r3, r1, 0x30
+/* 803143D4 00310034 38 80 00 01 */ li r4, 1
+/* 803143D8 00310038 4B FF 0F 39 */ bl VFiPFSTR_GetStrPos
+/* 803143DC 0031003C 7C 64 1B 78 */ mr r4, r3
+/* 803143E0 00310040 38 61 00 E8 */ addi r3, r1, 0xe8
+/* 803143E4 00310044 48 00 34 FD */ bl VFiPFPATH_transformFromUnicodeToNormal
+lbl_803143E8:
+/* 803143E8 00310048 38 61 00 30 */ addi r3, r1, 0x30
+/* 803143EC 0031004C 38 81 00 E8 */ addi r4, r1, 0xe8
+/* 803143F0 00310050 4B FF 0E F9 */ bl VFiPFSTR_SetLocalStr
+/* 803143F4 00310054 57 A0 07 BD */ rlwinm. r0, r29, 0, 0x1e, 0x1e
+/* 803143F8 00310058 41 82 00 84 */ beq lbl_8031447C
+/* 803143FC 0031005C 80 A1 05 14 */ lwz r5, 0x514(r1)
+/* 80314400 00310060 38 61 00 40 */ addi r3, r1, 0x40
+/* 80314404 00310064 38 81 00 10 */ addi r4, r1, 0x10
+/* 80314408 00310068 38 C1 05 1C */ addi r6, r1, 0x51c
+/* 8031440C 0031006C 4B FF CC BD */ bl VFiPFFAT_InitFFD
+/* 80314410 00310070 38 61 00 40 */ addi r3, r1, 0x40
+/* 80314414 00310074 38 81 02 E8 */ addi r4, r1, 0x2e8
+/* 80314418 00310078 38 C1 00 30 */ addi r6, r1, 0x30
+/* 8031441C 0031007C 38 A0 00 00 */ li r5, 0
+/* 80314420 00310080 38 E0 00 7F */ li r7, 0x7f
+/* 80314424 00310084 39 00 00 00 */ li r8, 0
+/* 80314428 00310088 4B FF 7F 75 */ bl VFiPFENT_findEntry
+/* 8031442C 0031008C 2C 03 00 00 */ cmpwi r3, 0
+/* 80314430 00310090 41 82 00 0C */ beq lbl_8031443C
+/* 80314434 00310094 38 60 00 03 */ li r3, 3
+/* 80314438 00310098 48 00 03 AC */ b lbl_803147E4
+lbl_8031443C:
+/* 8031443C 0031009C 57 A0 07 39 */ rlwinm. r0, r29, 0, 0x1c, 0x1c
+/* 80314440 003100A0 41 82 00 18 */ beq lbl_80314458
+/* 80314444 003100A4 88 01 05 04 */ lbz r0, 0x504(r1)
+/* 80314448 003100A8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 8031444C 003100AC 41 82 00 0C */ beq lbl_80314458
+/* 80314450 003100B0 38 60 00 0A */ li r3, 0xa
+/* 80314454 003100B4 48 00 03 90 */ b lbl_803147E4
+lbl_80314458:
+/* 80314458 003100B8 88 01 05 04 */ lbz r0, 0x504(r1)
+/* 8031445C 003100BC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
+/* 80314460 003100C0 41 82 00 0C */ beq lbl_8031446C
+/* 80314464 003100C4 38 60 00 17 */ li r3, 0x17
+/* 80314468 003100C8 48 00 03 7C */ b lbl_803147E4
+lbl_8031446C:
+/* 8031446C 003100CC 38 61 05 0A */ addi r3, r1, 0x50a
+/* 80314470 003100D0 38 81 00 08 */ addi r4, r1, 8
+/* 80314474 003100D4 4B FF 87 05 */ bl VFiPFENT_getcurrentDateTimeForEnt
+/* 80314478 003100D8 48 00 01 44 */ b lbl_803145BC
+lbl_8031447C:
+/* 8031447C 003100DC 80 01 05 18 */ lwz r0, 0x518(r1)
+/* 80314480 003100E0 7C 1F 02 14 */ add r0, r31, r0
+/* 80314484 003100E4 28 00 01 03 */ cmplwi r0, 0x103
+/* 80314488 003100E8 40 81 00 0C */ ble lbl_80314494
+/* 8031448C 003100EC 38 60 00 01 */ li r3, 1
+/* 80314490 003100F0 48 00 03 54 */ b lbl_803147E4
+lbl_80314494:
+/* 80314494 003100F4 7F 83 E3 78 */ mr r3, r28
+/* 80314498 003100F8 7F E6 FB 78 */ mr r6, r31
+/* 8031449C 003100FC 38 81 02 E8 */ addi r4, r1, 0x2e8
+/* 803144A0 00310100 38 A1 00 30 */ addi r5, r1, 0x30
+/* 803144A4 00310104 4B FF FB 5D */ bl VFiPFFILE_createEmptyFile
+/* 803144A8 00310108 2C 03 00 08 */ cmpwi r3, 8
+/* 803144AC 0031010C 40 82 01 04 */ bne lbl_803145B0
+/* 803144B0 00310110 57 A0 06 F7 */ rlwinm. r0, r29, 0, 0x1b, 0x1b
+/* 803144B4 00310114 41 82 00 0C */ beq lbl_803144C0
+/* 803144B8 00310118 38 60 00 08 */ li r3, 8
+/* 803144BC 0031011C 48 00 03 28 */ b lbl_803147E4
+lbl_803144C0:
+/* 803144C0 00310120 57 BF 07 FF */ clrlwi. r31, r29, 0x1f
+/* 803144C4 00310124 41 82 00 44 */ beq lbl_80314508
+/* 803144C8 00310128 38 00 00 00 */ li r0, 0
+/* 803144CC 0031012C 34 61 02 E8 */ addic. r3, r1, 0x2e8
+/* 803144D0 00310130 90 01 00 0C */ stw r0, 0xc(r1)
+/* 803144D4 00310134 40 82 00 0C */ bne lbl_803144E0
+/* 803144D8 00310138 38 00 00 00 */ li r0, 0
+/* 803144DC 0031013C 48 00 00 1C */ b lbl_803144F8
+lbl_803144E0:
+/* 803144E0 00310140 38 81 00 0C */ addi r4, r1, 0xc
+/* 803144E4 00310144 48 00 07 61 */ bl VFiPFFILE_GetOpenedFile
+/* 803144E8 00310148 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 803144EC 0031014C 7C 03 00 D0 */ neg r0, r3
+/* 803144F0 00310150 7C 00 1B 78 */ or r0, r0, r3
+/* 803144F4 00310154 54 00 0F FE */ srwi r0, r0, 0x1f
+lbl_803144F8:
+/* 803144F8 00310158 2C 00 00 00 */ cmpwi r0, 0
+/* 803144FC 0031015C 41 82 00 0C */ beq lbl_80314508
+/* 80314500 00310160 38 60 00 08 */ li r3, 8
+/* 80314504 00310164 48 00 02 E0 */ b lbl_803147E4
+lbl_80314508:
+/* 80314508 00310168 88 61 05 04 */ lbz r3, 0x504(r1)
+/* 8031450C 0031016C 54 60 07 FF */ clrlwi. r0, r3, 0x1f
+/* 80314510 00310170 41 82 00 24 */ beq lbl_80314534
+/* 80314514 00310174 2C 1F 00 00 */ cmpwi r31, 0
+/* 80314518 00310178 40 82 00 14 */ bne lbl_8031452C
+/* 8031451C 0031017C 57 A0 07 7B */ rlwinm. r0, r29, 0, 0x1d, 0x1d
+/* 80314520 00310180 40 82 00 0C */ bne lbl_8031452C
+/* 80314524 00310184 57 A0 07 39 */ rlwinm. r0, r29, 0, 0x1c, 0x1c
+/* 80314528 00310188 41 82 00 0C */ beq lbl_80314534
+lbl_8031452C:
+/* 8031452C 0031018C 38 60 00 0A */ li r3, 0xa
+/* 80314530 00310190 48 00 02 B4 */ b lbl_803147E4
+lbl_80314534:
+/* 80314534 00310194 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b
+/* 80314538 00310198 41 82 00 0C */ beq lbl_80314544
+/* 8031453C 0031019C 38 60 00 17 */ li r3, 0x17
+/* 80314540 003101A0 48 00 02 A4 */ b lbl_803147E4
+lbl_80314544:
+/* 80314544 003101A4 2C 1F 00 00 */ cmpwi r31, 0
+/* 80314548 003101A8 41 82 00 58 */ beq lbl_803145A0
+/* 8031454C 003101AC 80 81 05 1C */ lwz r4, 0x51c(r1)
+/* 80314550 003101B0 28 04 00 02 */ cmplwi r4, 2
+/* 80314554 003101B4 41 80 00 28 */ blt lbl_8031457C
+/* 80314558 003101B8 3C 04 00 01 */ addis r0, r4, 1
+/* 8031455C 003101BC 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80314560 003101C0 41 82 00 1C */ beq lbl_8031457C
+/* 80314564 003101C4 80 C1 05 10 */ lwz r6, 0x510(r1)
+/* 80314568 003101C8 2C 06 00 00 */ cmpwi r6, 0
+/* 8031456C 003101CC 41 82 00 10 */ beq lbl_8031457C
+/* 80314570 003101D0 38 61 00 80 */ addi r3, r1, 0x80
+/* 80314574 003101D4 38 A0 FF FF */ li r5, -1
+/* 80314578 003101D8 4B FF BE B1 */ bl VFiPFFAT_FreeChain
+lbl_8031457C:
+/* 8031457C 003101DC 38 00 00 00 */ li r0, 0
+/* 80314580 003101E0 38 61 05 0E */ addi r3, r1, 0x50e
+/* 80314584 003101E4 90 01 05 1C */ stw r0, 0x51c(r1)
+/* 80314588 003101E8 38 81 05 0C */ addi r4, r1, 0x50c
+/* 8031458C 003101EC 90 01 05 10 */ stw r0, 0x510(r1)
+/* 80314590 003101F0 4B FF 85 E9 */ bl VFiPFENT_getcurrentDateTimeForEnt
+/* 80314594 003101F4 A0 01 05 0E */ lhz r0, 0x50e(r1)
+/* 80314598 003101F8 B0 01 05 0A */ sth r0, 0x50a(r1)
+/* 8031459C 003101FC 48 00 00 20 */ b lbl_803145BC
+lbl_803145A0:
+/* 803145A0 00310200 38 61 05 0A */ addi r3, r1, 0x50a
+/* 803145A4 00310204 38 81 00 08 */ addi r4, r1, 8
+/* 803145A8 00310208 4B FF 85 D1 */ bl VFiPFENT_getcurrentDateTimeForEnt
+/* 803145AC 0031020C 48 00 00 10 */ b lbl_803145BC
+lbl_803145B0:
+/* 803145B0 00310210 2C 03 00 00 */ cmpwi r3, 0
+/* 803145B4 00310214 41 82 00 08 */ beq lbl_803145BC
+/* 803145B8 00310218 48 00 02 2C */ b lbl_803147E4
+lbl_803145BC:
+/* 803145BC 0031021C 83 81 05 14 */ lwz r28, 0x514(r1)
+/* 803145C0 00310220 38 81 02 E8 */ addi r4, r1, 0x2e8
+/* 803145C4 00310224 7F 83 E3 78 */ mr r3, r28
+/* 803145C8 00310228 4B FF F8 69 */ bl VFiPFFILE_GetSFD
+/* 803145CC 0031022C 2C 03 00 00 */ cmpwi r3, 0
+/* 803145D0 00310230 40 82 00 0C */ bne lbl_803145DC
+/* 803145D4 00310234 38 60 00 15 */ li r3, 0x15
+/* 803145D8 00310238 48 00 02 0C */ b lbl_803147E4
+lbl_803145DC:
+/* 803145DC 0031023C 38 00 00 05 */ li r0, 5
+/* 803145E0 00310240 7F 85 E3 78 */ mr r5, r28
+/* 803145E4 00310244 38 80 00 00 */ li r4, 0
+/* 803145E8 00310248 7C 09 03 A6 */ mtctr r0
+lbl_803145EC:
+/* 803145EC 0031024C 80 05 0D 10 */ lwz r0, 0xd10(r5)
+/* 803145F0 00310250 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 803145F4 00310254 40 82 00 14 */ bne lbl_80314608
+/* 803145F8 00310258 1C 04 00 30 */ mulli r0, r4, 0x30
+/* 803145FC 0031025C 7C 9C 02 14 */ add r4, r28, r0
+/* 80314600 00310260 3B E4 0D 10 */ addi r31, r4, 0xd10
+/* 80314604 00310264 48 00 00 14 */ b lbl_80314618
+lbl_80314608:
+/* 80314608 00310268 38 A5 00 30 */ addi r5, r5, 0x30
+/* 8031460C 0031026C 38 84 00 01 */ addi r4, r4, 1
+/* 80314610 00310270 42 00 FF DC */ bdnz lbl_803145EC
+/* 80314614 00310274 3B E0 00 00 */ li r31, 0
+lbl_80314618:
+/* 80314618 00310278 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031461C 0031027C 40 82 00 34 */ bne lbl_80314650
+/* 80314620 00310280 A0 83 02 8C */ lhz r4, 0x28c(r3)
+/* 80314624 00310284 38 84 FF FF */ addi r4, r4, -1
+/* 80314628 00310288 54 80 04 3F */ clrlwi. r0, r4, 0x10
+/* 8031462C 0031028C B0 83 02 8C */ sth r4, 0x28c(r3)
+/* 80314630 00310290 40 82 00 18 */ bne lbl_80314648
+/* 80314634 00310294 80 83 00 00 */ lwz r4, 0(r3)
+/* 80314638 00310298 38 00 00 00 */ li r0, 0
+/* 8031463C 0031029C 54 84 00 3C */ rlwinm r4, r4, 0, 0, 0x1e
+/* 80314640 003102A0 90 83 00 00 */ stw r4, 0(r3)
+/* 80314644 003102A4 90 03 00 20 */ stw r0, 0x20(r3)
+lbl_80314648:
+/* 80314648 003102A8 38 60 00 16 */ li r3, 0x16
+/* 8031464C 003102AC 48 00 01 98 */ b lbl_803147E4
+lbl_80314650:
+/* 80314650 003102B0 90 7F 00 08 */ stw r3, 8(r31)
+/* 80314654 003102B4 38 80 00 01 */ li r4, 1
+/* 80314658 003102B8 38 00 00 00 */ li r0, 0
+/* 8031465C 003102BC 38 7F 00 0C */ addi r3, r31, 0xc
+/* 80314660 003102C0 90 9F 00 00 */ stw r4, 0(r31)
+/* 80314664 003102C4 93 BF 00 04 */ stw r29, 4(r31)
+/* 80314668 003102C8 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 8031466C 003102CC B0 1F 00 2C */ sth r0, 0x2c(r31)
+/* 80314670 003102D0 4B FF C7 29 */ bl VFiPFFAT_InitHint
+/* 80314674 003102D4 38 00 FF FF */ li r0, -1
+/* 80314678 003102D8 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031467C 003102DC 90 1F 00 20 */ stw r0, 0x20(r31)
+/* 80314680 003102E0 40 82 00 0C */ bne lbl_8031468C
+/* 80314684 003102E4 38 80 00 00 */ li r4, 0
+/* 80314688 003102E8 48 00 00 0C */ b lbl_80314694
+lbl_8031468C:
+/* 8031468C 003102EC 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80314690 003102F0 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_80314694:
+/* 80314694 003102F4 A0 64 00 00 */ lhz r3, 0(r4)
+/* 80314698 003102F8 80 BF 00 1C */ lwz r5, 0x1c(r31)
+/* 8031469C 003102FC 38 03 FF FF */ addi r0, r3, -1
+/* 803146A0 00310300 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 803146A4 00310304 7C A3 00 38 */ and r3, r5, r0
+/* 803146A8 00310308 7C 03 00 D0 */ neg r0, r3
+/* 803146AC 0031030C 7C A4 24 30 */ srw r4, r5, r4
+/* 803146B0 00310310 7C 00 1B 78 */ or r0, r0, r3
+/* 803146B4 00310314 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 803146B8 00310318 7C 04 02 15 */ add. r0, r4, r0
+/* 803146BC 0031031C 41 82 00 0C */ beq lbl_803146C8
+/* 803146C0 00310320 38 00 FF FF */ li r0, -1
+/* 803146C4 00310324 90 1F 00 20 */ stw r0, 0x20(r31)
+lbl_803146C8:
+/* 803146C8 00310328 38 00 00 00 */ li r0, 0
+/* 803146CC 0031032C 2C 1F 00 00 */ cmpwi r31, 0
+/* 803146D0 00310330 90 1F 00 1C */ stw r0, 0x1c(r31)
+/* 803146D4 00310334 40 82 00 0C */ bne lbl_803146E0
+/* 803146D8 00310338 38 80 00 00 */ li r4, 0
+/* 803146DC 0031033C 48 00 00 0C */ b lbl_803146E8
+lbl_803146E0:
+/* 803146E0 00310340 80 7F 00 08 */ lwz r3, 8(r31)
+/* 803146E4 00310344 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_803146E8:
+/* 803146E8 00310348 57 A0 07 FF */ clrlwi. r0, r29, 0x1f
+/* 803146EC 0031034C 80 7F 00 1C */ lwz r3, 0x1c(r31)
+/* 803146F0 00310350 88 04 00 20 */ lbz r0, 0x20(r4)
+/* 803146F4 00310354 7C 60 04 30 */ srw r0, r3, r0
+/* 803146F8 00310358 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 803146FC 0031035C A0 64 00 00 */ lhz r3, 0(r4)
+/* 80314700 00310360 80 9F 00 1C */ lwz r4, 0x1c(r31)
+/* 80314704 00310364 38 03 FF FF */ addi r0, r3, -1
+/* 80314708 00310368 7C 80 00 38 */ and r0, r4, r0
+/* 8031470C 0031036C B0 1F 00 28 */ sth r0, 0x28(r31)
+/* 80314710 00310370 41 82 00 14 */ beq lbl_80314724
+/* 80314714 00310374 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80314718 00310378 80 03 00 00 */ lwz r0, 0(r3)
+/* 8031471C 0031037C 60 00 00 04 */ ori r0, r0, 4
+/* 80314720 00310380 90 03 00 00 */ stw r0, 0(r3)
+lbl_80314724:
+/* 80314724 00310384 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80314728 00310388 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
+/* 8031472C 0031038C 41 82 00 B0 */ beq lbl_803147DC
+/* 80314730 00310390 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80314734 00310394 2C 1F 00 00 */ cmpwi r31, 0
+/* 80314738 00310398 81 03 02 64 */ lwz r8, 0x264(r3)
+/* 8031473C 0031039C 40 82 00 0C */ bne lbl_80314748
+/* 80314740 003103A0 38 80 00 00 */ li r4, 0
+/* 80314744 003103A4 48 00 00 08 */ b lbl_8031474C
+lbl_80314748:
+/* 80314748 003103A8 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_8031474C:
+/* 8031474C 003103AC A0 64 00 00 */ lhz r3, 0(r4)
+/* 80314750 003103B0 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80314754 003103B4 38 63 FF FF */ addi r3, r3, -1
+/* 80314758 003103B8 88 84 00 20 */ lbz r4, 0x20(r4)
+/* 8031475C 003103BC 7C 07 18 38 */ and r7, r0, r3
+/* 80314760 003103C0 7C 05 24 30 */ srw r5, r0, r4
+/* 80314764 003103C4 7D 03 18 38 */ and r3, r8, r3
+/* 80314768 003103C8 7C C7 00 D0 */ neg r6, r7
+/* 8031476C 003103CC 7D 04 24 30 */ srw r4, r8, r4
+/* 80314770 003103D0 7C 03 00 D0 */ neg r0, r3
+/* 80314774 003103D4 7C 00 1B 78 */ or r0, r0, r3
+/* 80314778 003103D8 7C C6 3B 78 */ or r6, r6, r7
+/* 8031477C 003103DC 54 C3 0F FE */ srwi r3, r6, 0x1f
+/* 80314780 003103E0 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 80314784 003103E4 7C 65 1A 14 */ add r3, r5, r3
+/* 80314788 003103E8 7C 04 02 14 */ add r0, r4, r0
+/* 8031478C 003103EC 7C 03 00 40 */ cmplw r3, r0
+/* 80314790 003103F0 41 82 00 0C */ beq lbl_8031479C
+/* 80314794 003103F4 38 00 FF FF */ li r0, -1
+/* 80314798 003103F8 90 1F 00 20 */ stw r0, 0x20(r31)
+lbl_8031479C:
+/* 8031479C 003103FC 2C 1F 00 00 */ cmpwi r31, 0
+/* 803147A0 00310400 91 1F 00 1C */ stw r8, 0x1c(r31)
+/* 803147A4 00310404 40 82 00 0C */ bne lbl_803147B0
+/* 803147A8 00310408 38 80 00 00 */ li r4, 0
+/* 803147AC 0031040C 48 00 00 0C */ b lbl_803147B8
+lbl_803147B0:
+/* 803147B0 00310410 80 7F 00 08 */ lwz r3, 8(r31)
+/* 803147B4 00310414 80 83 02 68 */ lwz r4, 0x268(r3)
+lbl_803147B8:
+/* 803147B8 00310418 80 7F 00 1C */ lwz r3, 0x1c(r31)
+/* 803147BC 0031041C 88 04 00 20 */ lbz r0, 0x20(r4)
+/* 803147C0 00310420 7C 60 04 30 */ srw r0, r3, r0
+/* 803147C4 00310424 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 803147C8 00310428 A0 64 00 00 */ lhz r3, 0(r4)
+/* 803147CC 0031042C 80 9F 00 1C */ lwz r4, 0x1c(r31)
+/* 803147D0 00310430 38 03 FF FF */ addi r0, r3, -1
+/* 803147D4 00310434 7C 80 00 38 */ and r0, r4, r0
+/* 803147D8 00310438 B0 1F 00 28 */ sth r0, 0x28(r31)
+lbl_803147DC:
+/* 803147DC 0031043C 93 FE 00 00 */ stw r31, 0(r30)
+/* 803147E0 00310440 38 60 00 00 */ li r3, 0
+lbl_803147E4:
+/* 803147E4 00310444 80 01 05 44 */ lwz r0, 0x544(r1)
+/* 803147E8 00310448 83 E1 05 3C */ lwz r31, 0x53c(r1)
+/* 803147EC 0031044C 83 C1 05 38 */ lwz r30, 0x538(r1)
+/* 803147F0 00310450 83 A1 05 34 */ lwz r29, 0x534(r1)
+/* 803147F4 00310454 83 81 05 30 */ lwz r28, 0x530(r1)
+/* 803147F8 00310458 7C 08 03 A6 */ mtlr r0
+/* 803147FC 0031045C 38 21 05 40 */ addi r1, r1, 0x540
+/* 80314800 00310460 4E 80 00 20 */ blr
+
+.global VFiPFFILE_p_fread
+VFiPFFILE_p_fread:
+/* 80314804 00310464 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80314808 00310468 7C 08 02 A6 */ mflr r0
+/* 8031480C 0031046C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80314810 00310470 38 00 00 00 */ li r0, 0
+/* 80314814 00310474 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80314818 00310478 7D 1F 43 78 */ mr r31, r8
+/* 8031481C 0031047C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80314820 00310480 7C BE 2B 78 */ mr r30, r5
+/* 80314824 00310484 90 01 00 08 */ stw r0, 8(r1)
+/* 80314828 00310488 90 08 00 00 */ stw r0, 0(r8)
+/* 8031482C 0031048C 80 67 00 04 */ lwz r3, 4(r7)
+/* 80314830 00310490 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c
+/* 80314834 00310494 40 82 00 1C */ bne lbl_80314850
+/* 80314838 00310498 54 60 07 FF */ clrlwi. r0, r3, 0x1f
+/* 8031483C 0031049C 40 82 00 0C */ bne lbl_80314848
+/* 80314840 003104A0 54 60 07 7B */ rlwinm. r0, r3, 0, 0x1d, 0x1d
+/* 80314844 003104A4 41 82 00 0C */ beq lbl_80314850
+lbl_80314848:
+/* 80314848 003104A8 38 60 00 0A */ li r3, 0xa
+/* 8031484C 003104AC 48 00 00 6C */ b lbl_803148B8
+lbl_80314850:
+/* 80314850 003104B0 81 07 00 08 */ lwz r8, 8(r7)
+/* 80314854 003104B4 A0 08 02 7C */ lhz r0, 0x27c(r8)
+/* 80314858 003104B8 54 00 07 BF */ clrlwi. r0, r0, 0x1e
+/* 8031485C 003104BC 41 82 00 18 */ beq lbl_80314874
+/* 80314860 003104C0 A0 07 00 2C */ lhz r0, 0x2c(r7)
+/* 80314864 003104C4 2C 00 00 00 */ cmpwi r0, 0
+/* 80314868 003104C8 40 82 00 0C */ bne lbl_80314874
+/* 8031486C 003104CC 38 60 00 19 */ li r3, 0x19
+/* 80314870 003104D0 48 00 00 48 */ b lbl_803148B8
+lbl_80314874:
+/* 80314874 003104D4 80 67 00 1C */ lwz r3, 0x1c(r7)
+/* 80314878 003104D8 80 08 02 64 */ lwz r0, 0x264(r8)
+/* 8031487C 003104DC 7C 03 00 40 */ cmplw r3, r0
+/* 80314880 003104E0 41 80 00 0C */ blt lbl_8031488C
+/* 80314884 003104E4 38 60 00 1C */ li r3, 0x1c
+/* 80314888 003104E8 48 00 00 30 */ b lbl_803148B8
+lbl_8031488C:
+/* 8031488C 003104EC 7C A5 31 D6 */ mullw r5, r5, r6
+/* 80314890 003104F0 7C E3 3B 78 */ mr r3, r7
+/* 80314894 003104F4 38 C1 00 08 */ addi r6, r1, 8
+/* 80314898 003104F8 4B FF E7 85 */ bl VFiPFFILE_Cursor_Read
+/* 8031489C 003104FC 80 81 00 08 */ lwz r4, 8(r1)
+/* 803148A0 00310500 7C 03 00 D0 */ neg r0, r3
+/* 803148A4 00310504 7C 00 1B 78 */ or r0, r0, r3
+/* 803148A8 00310508 7C 84 F3 96 */ divwu r4, r4, r30
+/* 803148AC 0031050C 7C 00 FE 70 */ srawi r0, r0, 0x1f
+/* 803148B0 00310510 7C 63 00 38 */ and r3, r3, r0
+/* 803148B4 00310514 90 9F 00 00 */ stw r4, 0(r31)
+lbl_803148B8:
+/* 803148B8 00310518 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803148BC 0031051C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803148C0 00310520 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 803148C4 00310524 7C 08 03 A6 */ mtlr r0
+/* 803148C8 00310528 38 21 00 20 */ addi r1, r1, 0x20
+/* 803148CC 0031052C 4E 80 00 20 */ blr
+
+.global VFiPFFILE_p_fwrite
+VFiPFFILE_p_fwrite:
+/* 803148D0 00310530 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 803148D4 00310534 7C 08 02 A6 */ mflr r0
+/* 803148D8 00310538 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803148DC 0031053C 39 61 00 30 */ addi r11, r1, 0x30
+/* 803148E0 00310540 4B EB 28 41 */ bl _savegpr_25
+/* 803148E4 00310544 38 00 00 00 */ li r0, 0
+/* 803148E8 00310548 7C 9B 23 78 */ mr r27, r4
+/* 803148EC 0031054C 90 01 00 08 */ stw r0, 8(r1)
+/* 803148F0 00310550 7C 7A 1B 78 */ mr r26, r3
+/* 803148F4 00310554 7C BC 2B 78 */ mr r28, r5
+/* 803148F8 00310558 7C DD 33 78 */ mr r29, r6
+/* 803148FC 0031055C 90 08 00 00 */ stw r0, 0(r8)
+/* 80314900 00310560 7C FE 3B 78 */ mr r30, r7
+/* 80314904 00310564 7D 1F 43 78 */ mr r31, r8
+/* 80314908 00310568 80 87 00 04 */ lwz r4, 4(r7)
+/* 8031490C 0031056C 54 80 07 39 */ rlwinm. r0, r4, 0, 0x1c, 0x1c
+/* 80314910 00310570 40 82 00 14 */ bne lbl_80314924
+/* 80314914 00310574 54 80 07 BD */ rlwinm. r0, r4, 0, 0x1e, 0x1e
+/* 80314918 00310578 41 82 00 0C */ beq lbl_80314924
+/* 8031491C 0031057C 38 60 00 0A */ li r3, 0xa
+/* 80314920 00310580 48 00 01 EC */ b lbl_80314B0C
+lbl_80314924:
+/* 80314924 00310584 80 A7 00 08 */ lwz r5, 8(r7)
+/* 80314928 00310588 A0 C5 02 7C */ lhz r6, 0x27c(r5)
+/* 8031492C 0031058C 54 C0 07 BF */ clrlwi. r0, r6, 0x1e
+/* 80314930 00310590 41 82 00 28 */ beq lbl_80314958
+/* 80314934 00310594 54 C0 07 FF */ clrlwi. r0, r6, 0x1f
+/* 80314938 00310598 40 82 00 18 */ bne lbl_80314950
+/* 8031493C 0031059C 54 C0 07 BD */ rlwinm. r0, r6, 0, 0x1e, 0x1e
+/* 80314940 003105A0 41 82 00 18 */ beq lbl_80314958
+/* 80314944 003105A4 A0 07 00 2C */ lhz r0, 0x2c(r7)
+/* 80314948 003105A8 2C 00 00 00 */ cmpwi r0, 0
+/* 8031494C 003105AC 40 82 00 0C */ bne lbl_80314958
+lbl_80314950:
+/* 80314950 003105B0 38 60 00 19 */ li r3, 0x19
+/* 80314954 003105B4 48 00 01 B8 */ b lbl_80314B0C
+lbl_80314958:
+/* 80314958 003105B8 54 80 07 7B */ rlwinm. r0, r4, 0, 0x1d, 0x1d
+/* 8031495C 003105BC 41 82 00 A8 */ beq lbl_80314A04
+/* 80314960 003105C0 2C 07 00 00 */ cmpwi r7, 0
+/* 80314964 003105C4 81 45 02 64 */ lwz r10, 0x264(r5)
+/* 80314968 003105C8 40 82 00 0C */ bne lbl_80314974
+/* 8031496C 003105CC 38 A0 00 00 */ li r5, 0
+/* 80314970 003105D0 48 00 00 08 */ b lbl_80314978
+lbl_80314974:
+/* 80314974 003105D4 80 A5 02 68 */ lwz r5, 0x268(r5)
+lbl_80314978:
+/* 80314978 003105D8 A0 85 00 00 */ lhz r4, 0(r5)
+/* 8031497C 003105DC 80 07 00 1C */ lwz r0, 0x1c(r7)
+/* 80314980 003105E0 38 84 FF FF */ addi r4, r4, -1
+/* 80314984 003105E4 88 A5 00 20 */ lbz r5, 0x20(r5)
+/* 80314988 003105E8 7C 09 20 38 */ and r9, r0, r4
+/* 8031498C 003105EC 7C 06 2C 30 */ srw r6, r0, r5
+/* 80314990 003105F0 7D 44 20 38 */ and r4, r10, r4
+/* 80314994 003105F4 7D 09 00 D0 */ neg r8, r9
+/* 80314998 003105F8 7D 45 2C 30 */ srw r5, r10, r5
+/* 8031499C 003105FC 7C 04 00 D0 */ neg r0, r4
+/* 803149A0 00310600 7C 00 23 78 */ or r0, r0, r4
+/* 803149A4 00310604 7D 08 4B 78 */ or r8, r8, r9
+/* 803149A8 00310608 55 04 0F FE */ srwi r4, r8, 0x1f
+/* 803149AC 0031060C 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 803149B0 00310610 7C 86 22 14 */ add r4, r6, r4
+/* 803149B4 00310614 7C 05 02 14 */ add r0, r5, r0
+/* 803149B8 00310618 7C 04 00 40 */ cmplw r4, r0
+/* 803149BC 0031061C 41 82 00 0C */ beq lbl_803149C8
+/* 803149C0 00310620 38 00 FF FF */ li r0, -1
+/* 803149C4 00310624 90 07 00 20 */ stw r0, 0x20(r7)
+lbl_803149C8:
+/* 803149C8 00310628 2C 07 00 00 */ cmpwi r7, 0
+/* 803149CC 0031062C 91 47 00 1C */ stw r10, 0x1c(r7)
+/* 803149D0 00310630 40 82 00 0C */ bne lbl_803149DC
+/* 803149D4 00310634 38 80 00 00 */ li r4, 0
+/* 803149D8 00310638 48 00 00 0C */ b lbl_803149E4
+lbl_803149DC:
+/* 803149DC 0031063C 80 87 00 08 */ lwz r4, 8(r7)
+/* 803149E0 00310640 80 84 02 68 */ lwz r4, 0x268(r4)
+lbl_803149E4:
+/* 803149E4 00310644 80 A7 00 1C */ lwz r5, 0x1c(r7)
+/* 803149E8 00310648 88 04 00 20 */ lbz r0, 0x20(r4)
+/* 803149EC 0031064C 7C A0 04 30 */ srw r0, r5, r0
+/* 803149F0 00310650 90 07 00 24 */ stw r0, 0x24(r7)
+/* 803149F4 00310654 A0 84 00 00 */ lhz r4, 0(r4)
+/* 803149F8 00310658 38 04 FF FF */ addi r0, r4, -1
+/* 803149FC 0031065C 7C A0 00 38 */ and r0, r5, r0
+/* 80314A00 00310660 B0 07 00 28 */ sth r0, 0x28(r7)
+lbl_80314A04:
+/* 80314A04 00310664 80 87 00 08 */ lwz r4, 8(r7)
+/* 80314A08 00310668 80 07 00 1C */ lwz r0, 0x1c(r7)
+/* 80314A0C 0031066C 81 04 02 64 */ lwz r8, 0x264(r4)
+/* 80314A10 00310670 7C 00 40 40 */ cmplw r0, r8
+/* 80314A14 00310674 40 81 00 C8 */ ble lbl_80314ADC
+/* 80314A18 00310678 91 07 00 1C */ stw r8, 0x1c(r7)
+/* 80314A1C 0031067C 7F 28 00 50 */ subf r25, r8, r0
+/* 80314A20 00310680 38 A1 00 0C */ addi r5, r1, 0xc
+/* 80314A24 00310684 38 80 FF FF */ li r4, -1
+/* 80314A28 00310688 88 03 00 20 */ lbz r0, 0x20(r3)
+/* 80314A2C 0031068C 7D 00 04 30 */ srw r0, r8, r0
+/* 80314A30 00310690 90 07 00 24 */ stw r0, 0x24(r7)
+/* 80314A34 00310694 A0 C3 00 00 */ lhz r6, 0(r3)
+/* 80314A38 00310698 7F 43 D3 78 */ mr r3, r26
+/* 80314A3C 0031069C 38 06 FF FF */ addi r0, r6, -1
+/* 80314A40 003106A0 7D 00 00 38 */ and r0, r8, r0
+/* 80314A44 003106A4 B0 07 00 28 */ sth r0, 0x28(r7)
+/* 80314A48 003106A8 4B FF 5C 71 */ bl VFiPFCACHE_AllocateDataPage
+/* 80314A4C 003106AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80314A50 003106B0 41 82 00 08 */ beq lbl_80314A58
+/* 80314A54 003106B4 48 00 00 B8 */ b lbl_80314B0C
+lbl_80314A58:
+/* 80314A58 003106B8 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80314A5C 003106BC 38 80 00 00 */ li r4, 0
+/* 80314A60 003106C0 A0 BA 00 00 */ lhz r5, 0(r26)
+/* 80314A64 003106C4 80 63 00 08 */ lwz r3, 8(r3)
+/* 80314A68 003106C8 4B FF 05 6D */ bl VFipf_memset
+/* 80314A6C 003106CC 48 00 00 5C */ b lbl_80314AC8
+lbl_80314A70:
+/* 80314A70 003106D0 A0 BA 00 00 */ lhz r5, 0(r26)
+/* 80314A74 003106D4 7C 19 28 40 */ cmplw r25, r5
+/* 80314A78 003106D8 40 81 00 24 */ ble lbl_80314A9C
+/* 80314A7C 003106DC 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 80314A80 003106E0 7F C3 F3 78 */ mr r3, r30
+/* 80314A84 003106E4 38 C1 00 08 */ addi r6, r1, 8
+/* 80314A88 003106E8 80 84 00 08 */ lwz r4, 8(r4)
+/* 80314A8C 003106EC 4B FF EE 4D */ bl VFiPFFILE_Cursor_Write
+/* 80314A90 003106F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80314A94 003106F4 41 82 00 2C */ beq lbl_80314AC0
+/* 80314A98 003106F8 48 00 00 74 */ b lbl_80314B0C
+lbl_80314A9C:
+/* 80314A9C 003106FC 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 80314AA0 00310700 7F C3 F3 78 */ mr r3, r30
+/* 80314AA4 00310704 7F 25 CB 78 */ mr r5, r25
+/* 80314AA8 00310708 38 C1 00 08 */ addi r6, r1, 8
+/* 80314AAC 0031070C 80 84 00 08 */ lwz r4, 8(r4)
+/* 80314AB0 00310710 4B FF EE 29 */ bl VFiPFFILE_Cursor_Write
+/* 80314AB4 00310714 2C 03 00 00 */ cmpwi r3, 0
+/* 80314AB8 00310718 41 82 00 18 */ beq lbl_80314AD0
+/* 80314ABC 0031071C 48 00 00 50 */ b lbl_80314B0C
+lbl_80314AC0:
+/* 80314AC0 00310720 A0 1A 00 00 */ lhz r0, 0(r26)
+/* 80314AC4 00310724 7F 20 C8 50 */ subf r25, r0, r25
+lbl_80314AC8:
+/* 80314AC8 00310728 2C 19 00 00 */ cmpwi r25, 0
+/* 80314ACC 0031072C 40 82 FF A4 */ bne lbl_80314A70
+lbl_80314AD0:
+/* 80314AD0 00310730 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 80314AD4 00310734 7F 43 D3 78 */ mr r3, r26
+/* 80314AD8 00310738 4B FF 5C E5 */ bl VFiPFCACHE_FreeDataPage
+lbl_80314ADC:
+/* 80314ADC 0031073C 7C BC E9 D6 */ mullw r5, r28, r29
+/* 80314AE0 00310740 7F C3 F3 78 */ mr r3, r30
+/* 80314AE4 00310744 7F 64 DB 78 */ mr r4, r27
+/* 80314AE8 00310748 38 C1 00 08 */ addi r6, r1, 8
+/* 80314AEC 0031074C 4B FF ED ED */ bl VFiPFFILE_Cursor_Write
+/* 80314AF0 00310750 80 01 00 08 */ lwz r0, 8(r1)
+/* 80314AF4 00310754 2C 03 00 00 */ cmpwi r3, 0
+/* 80314AF8 00310758 7C 00 E3 96 */ divwu r0, r0, r28
+/* 80314AFC 0031075C 90 1F 00 00 */ stw r0, 0(r31)
+/* 80314B00 00310760 41 82 00 08 */ beq lbl_80314B08
+/* 80314B04 00310764 48 00 00 08 */ b lbl_80314B0C
+lbl_80314B08:
+/* 80314B08 00310768 38 60 00 00 */ li r3, 0
+lbl_80314B0C:
+/* 80314B0C 0031076C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80314B10 00310770 4B EB 26 5D */ bl _restgpr_25
+/* 80314B14 00310774 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80314B18 00310778 7C 08 03 A6 */ mtlr r0
+/* 80314B1C 0031077C 38 21 00 30 */ addi r1, r1, 0x30
+/* 80314B20 00310780 4E 80 00 20 */ blr
+
+.global VFiPFFILE_p_finfo
+VFiPFFILE_p_finfo:
+/* 80314B24 00310784 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80314B28 00310788 7C 08 02 A6 */ mflr r0
+/* 80314B2C 0031078C 2C 03 00 00 */ cmpwi r3, 0
+/* 80314B30 00310790 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80314B34 00310794 38 03 00 0C */ addi r0, r3, 0xc
+/* 80314B38 00310798 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80314B3C 0031079C 7C 9F 23 78 */ mr r31, r4
+/* 80314B40 003107A0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80314B44 003107A4 7C 7E 1B 78 */ mr r30, r3
+/* 80314B48 003107A8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80314B4C 003107AC 80 A3 00 08 */ lwz r5, 8(r3)
+/* 80314B50 003107B0 90 05 00 34 */ stw r0, 0x34(r5)
+/* 80314B54 003107B4 40 82 00 0C */ bne lbl_80314B60
+/* 80314B58 003107B8 38 C0 00 00 */ li r6, 0
+/* 80314B5C 003107BC 48 00 00 0C */ b lbl_80314B68
+lbl_80314B60:
+/* 80314B60 003107C0 80 A3 00 08 */ lwz r5, 8(r3)
+/* 80314B64 003107C4 80 C5 02 68 */ lwz r6, 0x268(r5)
+lbl_80314B68:
+/* 80314B68 003107C8 80 A3 00 08 */ lwz r5, 8(r3)
+/* 80314B6C 003107CC 80 05 02 64 */ lwz r0, 0x264(r5)
+/* 80314B70 003107D0 90 04 00 00 */ stw r0, 0(r4)
+/* 80314B74 003107D4 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80314B78 003107D8 90 04 00 04 */ stw r0, 4(r4)
+/* 80314B7C 003107DC 80 63 00 08 */ lwz r3, 8(r3)
+/* 80314B80 003107E0 A0 A6 00 00 */ lhz r5, 0(r6)
+/* 80314B84 003107E4 80 03 02 70 */ lwz r0, 0x270(r3)
+/* 80314B88 003107E8 88 66 00 21 */ lbz r3, 0x21(r6)
+/* 80314B8C 003107EC 2C 00 00 00 */ cmpwi r0, 0
+/* 80314B90 003107F0 7C BD 18 30 */ slw r29, r5, r3
+/* 80314B94 003107F4 41 82 00 54 */ beq lbl_80314BE8
+/* 80314B98 003107F8 7F C3 F3 78 */ mr r3, r30
+/* 80314B9C 003107FC 38 84 00 0C */ addi r4, r4, 0xc
+/* 80314BA0 00310800 4B FF 64 F1 */ bl VFiPFCLUSTER_GetAppendSize
+/* 80314BA4 00310804 2C 03 00 00 */ cmpwi r3, 0
+/* 80314BA8 00310808 41 82 00 08 */ beq lbl_80314BB0
+/* 80314BAC 0031080C 48 00 00 7C */ b lbl_80314C28
+lbl_80314BB0:
+/* 80314BB0 00310810 80 7E 00 08 */ lwz r3, 8(r30)
+/* 80314BB4 00310814 80 9F 00 0C */ lwz r4, 0xc(r31)
+/* 80314BB8 00310818 80 63 02 64 */ lwz r3, 0x264(r3)
+/* 80314BBC 0031081C 7C 03 EB 96 */ divwu r0, r3, r29
+/* 80314BC0 00310820 7C 00 E9 D6 */ mullw r0, r0, r29
+/* 80314BC4 00310824 7C A0 18 50 */ subf r5, r0, r3
+/* 80314BC8 00310828 7C 05 00 D0 */ neg r0, r5
+/* 80314BCC 0031082C 7C 03 2B 78 */ or r3, r0, r5
+/* 80314BD0 00310830 7C 05 E8 50 */ subf r0, r5, r29
+/* 80314BD4 00310834 7C 63 FE 70 */ srawi r3, r3, 0x1f
+/* 80314BD8 00310838 7C 00 18 38 */ and r0, r0, r3
+/* 80314BDC 0031083C 7C 04 02 14 */ add r0, r4, r0
+/* 80314BE0 00310840 90 1F 00 08 */ stw r0, 8(r31)
+/* 80314BE4 00310844 48 00 00 10 */ b lbl_80314BF4
+lbl_80314BE8:
+/* 80314BE8 00310848 38 00 00 00 */ li r0, 0
+/* 80314BEC 0031084C 90 04 00 0C */ stw r0, 0xc(r4)
+/* 80314BF0 00310850 90 04 00 08 */ stw r0, 8(r4)
+lbl_80314BF4:
+/* 80314BF4 00310854 80 9E 00 08 */ lwz r4, 8(r30)
+/* 80314BF8 00310858 38 60 00 00 */ li r3, 0
+/* 80314BFC 0031085C A0 04 02 7C */ lhz r0, 0x27c(r4)
+/* 80314C00 00310860 54 00 07 BE */ clrlwi r0, r0, 0x1e
+/* 80314C04 00310864 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 80314C08 00310868 80 9E 00 08 */ lwz r4, 8(r30)
+/* 80314C0C 0031086C 80 04 02 84 */ lwz r0, 0x284(r4)
+/* 80314C10 00310870 90 1F 00 14 */ stw r0, 0x14(r31)
+/* 80314C14 00310874 A0 1E 00 2C */ lhz r0, 0x2c(r30)
+/* 80314C18 00310878 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 80314C1C 0031087C 80 9E 00 08 */ lwz r4, 8(r30)
+/* 80314C20 00310880 A0 04 02 7E */ lhz r0, 0x27e(r4)
+/* 80314C24 00310884 90 1F 00 1C */ stw r0, 0x1c(r31)
+lbl_80314C28:
+/* 80314C28 00310888 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80314C2C 0031088C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80314C30 00310890 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80314C34 00310894 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80314C38 00310898 7C 08 03 A6 */ mtlr r0
+/* 80314C3C 0031089C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80314C40 003108A0 4E 80 00 20 */ blr
+
+.global VFiPFFILE_GetOpenedFile
+VFiPFFILE_GetOpenedFile:
+/* 80314C44 003108A4 2C 03 00 00 */ cmpwi r3, 0
+/* 80314C48 003108A8 41 82 00 18 */ beq lbl_80314C60
+/* 80314C4C 003108AC 2C 04 00 00 */ cmpwi r4, 0
+/* 80314C50 003108B0 41 82 00 10 */ beq lbl_80314C60
+/* 80314C54 003108B4 80 03 02 2C */ lwz r0, 0x22c(r3)
+/* 80314C58 003108B8 2C 00 00 00 */ cmpwi r0, 0
+/* 80314C5C 003108BC 40 82 00 0C */ bne lbl_80314C68
+lbl_80314C60:
+/* 80314C60 003108C0 38 60 00 0A */ li r3, 0xa
+/* 80314C64 003108C4 4E 80 00 20 */ blr
+lbl_80314C68:
+/* 80314C68 003108C8 38 A0 00 00 */ li r5, 0
+/* 80314C6C 003108CC 38 00 00 05 */ li r0, 5
+/* 80314C70 003108D0 90 A4 00 00 */ stw r5, 0(r4)
+/* 80314C74 003108D4 38 C0 00 00 */ li r6, 0
+/* 80314C78 003108D8 7C 09 03 A6 */ mtctr r0
+lbl_80314C7C:
+/* 80314C7C 003108DC 81 03 02 2C */ lwz r8, 0x22c(r3)
+/* 80314C80 003108E0 7C E8 32 14 */ add r7, r8, r6
+/* 80314C84 003108E4 80 A7 00 40 */ lwz r5, 0x40(r7)
+/* 80314C88 003108E8 54 A0 07 FF */ clrlwi. r0, r5, 0x1f
+/* 80314C8C 003108EC 41 82 00 40 */ beq lbl_80314CCC
+/* 80314C90 003108F0 54 A0 07 BD */ rlwinm. r0, r5, 0, 0x1e, 0x1e
+/* 80314C94 003108F4 41 82 00 38 */ beq lbl_80314CCC
+/* 80314C98 003108F8 80 07 02 A8 */ lwz r0, 0x2a8(r7)
+/* 80314C9C 003108FC 7C 08 00 40 */ cmplw r8, r0
+/* 80314CA0 00310900 40 82 00 2C */ bne lbl_80314CCC
+/* 80314CA4 00310904 80 A3 02 38 */ lwz r5, 0x238(r3)
+/* 80314CA8 00310908 80 07 02 B4 */ lwz r0, 0x2b4(r7)
+/* 80314CAC 0031090C 7C 05 00 40 */ cmplw r5, r0
+/* 80314CB0 00310910 40 82 00 1C */ bne lbl_80314CCC
+/* 80314CB4 00310914 A0 A3 02 3C */ lhz r5, 0x23c(r3)
+/* 80314CB8 00310918 A0 07 02 B8 */ lhz r0, 0x2b8(r7)
+/* 80314CBC 0031091C 7C 05 00 40 */ cmplw r5, r0
+/* 80314CC0 00310920 40 82 00 0C */ bne lbl_80314CCC
+/* 80314CC4 00310924 38 07 00 7C */ addi r0, r7, 0x7c
+/* 80314CC8 00310928 90 04 00 00 */ stw r0, 0(r4)
+lbl_80314CCC:
+/* 80314CCC 0031092C 38 C6 02 90 */ addi r6, r6, 0x290
+/* 80314CD0 00310930 42 00 FF AC */ bdnz lbl_80314C7C
+/* 80314CD4 00310934 38 60 00 00 */ li r3, 0
+/* 80314CD8 00310938 4E 80 00 20 */ blr
+
+.global VFiPFFILE_FinalizeAllFiles
+VFiPFFILE_FinalizeAllFiles:
+/* 80314CDC 0031093C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80314CE0 00310940 7C 08 02 A6 */ mflr r0
+/* 80314CE4 00310944 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80314CE8 00310948 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80314CEC 0031094C 3B E0 00 00 */ li r31, 0
+/* 80314CF0 00310950 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80314CF4 00310954 3B C0 00 00 */ li r30, 0
+/* 80314CF8 00310958 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80314CFC 0031095C 7C 7D 1B 78 */ mr r29, r3
+lbl_80314D00:
+/* 80314D00 00310960 57 C0 04 3E */ clrlwi r0, r30, 0x10
+/* 80314D04 00310964 1C 00 02 90 */ mulli r0, r0, 0x290
+/* 80314D08 00310968 7C 7D 02 14 */ add r3, r29, r0
+/* 80314D0C 0031096C 93 E3 00 40 */ stw r31, 0x40(r3)
+/* 80314D10 00310970 38 63 00 44 */ addi r3, r3, 0x44
+/* 80314D14 00310974 4B FF C4 21 */ bl VFiPFFAT_FinalizeFFD
+/* 80314D18 00310978 3B DE 00 01 */ addi r30, r30, 1
+/* 80314D1C 0031097C 28 1E 00 05 */ cmplwi r30, 5
+/* 80314D20 00310980 41 80 FF E0 */ blt lbl_80314D00
+/* 80314D24 00310984 80 9D 0D 10 */ lwz r4, 0xd10(r29)
+/* 80314D28 00310988 38 00 00 00 */ li r0, 0
+/* 80314D2C 0031098C 80 7D 0D 40 */ lwz r3, 0xd40(r29)
+/* 80314D30 00310990 54 87 00 3C */ rlwinm r7, r4, 0, 0, 0x1e
+/* 80314D34 00310994 80 BD 0D 70 */ lwz r5, 0xd70(r29)
+/* 80314D38 00310998 54 66 00 3C */ rlwinm r6, r3, 0, 0, 0x1e
+/* 80314D3C 0031099C 80 9D 0D A0 */ lwz r4, 0xda0(r29)
+/* 80314D40 003109A0 80 7D 0D D0 */ lwz r3, 0xdd0(r29)
+/* 80314D44 003109A4 54 A5 00 3C */ rlwinm r5, r5, 0, 0, 0x1e
+/* 80314D48 003109A8 54 84 00 3C */ rlwinm r4, r4, 0, 0, 0x1e
+/* 80314D4C 003109AC 90 FD 0D 10 */ stw r7, 0xd10(r29)
+/* 80314D50 003109B0 54 63 00 3C */ rlwinm r3, r3, 0, 0, 0x1e
+/* 80314D54 003109B4 90 DD 0D 40 */ stw r6, 0xd40(r29)
+/* 80314D58 003109B8 90 BD 0D 70 */ stw r5, 0xd70(r29)
+/* 80314D5C 003109BC 90 9D 0D A0 */ stw r4, 0xda0(r29)
+/* 80314D60 003109C0 90 7D 0D D0 */ stw r3, 0xdd0(r29)
+/* 80314D64 003109C4 90 1D 15 E0 */ stw r0, 0x15e0(r29)
+/* 80314D68 003109C8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80314D6C 003109CC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80314D70 003109D0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80314D74 003109D4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80314D78 003109D8 7C 08 03 A6 */ mtlr r0
+/* 80314D7C 003109DC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80314D80 003109E0 4E 80 00 20 */ blr
+
+.global VFiPFFILE_fopen
+VFiPFFILE_fopen:
+/* 80314D84 003109E4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80314D88 003109E8 7C 08 02 A6 */ mflr r0
+/* 80314D8C 003109EC 2C 05 00 00 */ cmpwi r5, 0
+/* 80314D90 003109F0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80314D94 003109F4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80314D98 003109F8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80314D9C 003109FC 7C BE 2B 78 */ mr r30, r5
+/* 80314DA0 00310A00 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80314DA4 00310A04 7C 9D 23 78 */ mr r29, r4
+/* 80314DA8 00310A08 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80314DAC 00310A0C 7C 7C 1B 78 */ mr r28, r3
+/* 80314DB0 00310A10 40 82 00 1C */ bne lbl_80314DCC
+/* 80314DB4 00310A14 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80314DB8 00310A18 38 00 00 0A */ li r0, 0xa
+/* 80314DBC 00310A1C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80314DC0 00310A20 38 60 00 0A */ li r3, 0xa
+/* 80314DC4 00310A24 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80314DC8 00310A28 48 00 00 D0 */ b lbl_80314E98
+lbl_80314DCC:
+/* 80314DCC 00310A2C 38 00 00 00 */ li r0, 0
+/* 80314DD0 00310A30 2C 03 00 00 */ cmpwi r3, 0
+/* 80314DD4 00310A34 90 05 00 00 */ stw r0, 0(r5)
+/* 80314DD8 00310A38 40 82 00 1C */ bne lbl_80314DF4
+/* 80314DDC 00310A3C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80314DE0 00310A40 38 00 00 0A */ li r0, 0xa
+/* 80314DE4 00310A44 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80314DE8 00310A48 38 60 00 0A */ li r3, 0xa
+/* 80314DEC 00310A4C 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80314DF0 00310A50 48 00 00 A8 */ b lbl_80314E98
+lbl_80314DF4:
+/* 80314DF4 00310A54 48 00 20 A1 */ bl VFiPFPATH_GetVolumeFromPath
+/* 80314DF8 00310A58 2C 03 00 00 */ cmpwi r3, 0
+/* 80314DFC 00310A5C 7C 7F 1B 78 */ mr r31, r3
+/* 80314E00 00310A60 40 82 00 1C */ bne lbl_80314E1C
+/* 80314E04 00310A64 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80314E08 00310A68 38 00 00 0A */ li r0, 0xa
+/* 80314E0C 00310A6C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80314E10 00310A70 38 60 00 0A */ li r3, 0xa
+/* 80314E14 00310A74 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80314E18 00310A78 48 00 00 80 */ b lbl_80314E98
+lbl_80314E1C:
+/* 80314E1C 00310A7C 48 00 45 51 */ bl VFiPFVOL_CheckForRead
+/* 80314E20 00310A80 2C 03 00 00 */ cmpwi r3, 0
+/* 80314E24 00310A84 41 82 00 18 */ beq lbl_80314E3C
+/* 80314E28 00310A88 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80314E2C 00310A8C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80314E30 00310A90 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 80314E34 00310A94 90 7F 18 6C */ stw r3, 0x186c(r31)
+/* 80314E38 00310A98 48 00 00 60 */ b lbl_80314E98
+lbl_80314E3C:
+/* 80314E3C 00310A9C 7F E3 FB 78 */ mr r3, r31
+/* 80314E40 00310AA0 4B FF 0F 69 */ bl VFiPFDRV_IsWProtected
+/* 80314E44 00310AA4 2C 03 00 00 */ cmpwi r3, 0
+/* 80314E48 00310AA8 41 82 00 14 */ beq lbl_80314E5C
+/* 80314E4C 00310AAC 2C 1D 00 02 */ cmpwi r29, 2
+/* 80314E50 00310AB0 41 82 00 0C */ beq lbl_80314E5C
+/* 80314E54 00310AB4 38 60 00 0B */ li r3, 0xb
+/* 80314E58 00310AB8 48 00 00 40 */ b lbl_80314E98
+lbl_80314E5C:
+/* 80314E5C 00310ABC 7F E3 FB 78 */ mr r3, r31
+/* 80314E60 00310AC0 7F 84 E3 78 */ mr r4, r28
+/* 80314E64 00310AC4 7F A5 EB 78 */ mr r5, r29
+/* 80314E68 00310AC8 7F C6 F3 78 */ mr r6, r30
+/* 80314E6C 00310ACC 4B FF F4 A9 */ bl VFiPFFILE_p_fopen
+/* 80314E70 00310AD0 2C 03 00 00 */ cmpwi r3, 0
+/* 80314E74 00310AD4 41 82 00 18 */ beq lbl_80314E8C
+/* 80314E78 00310AD8 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80314E7C 00310ADC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80314E80 00310AE0 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 80314E84 00310AE4 90 7F 18 6C */ stw r3, 0x186c(r31)
+/* 80314E88 00310AE8 48 00 00 10 */ b lbl_80314E98
+lbl_80314E8C:
+/* 80314E8C 00310AEC 80 9F 15 E0 */ lwz r4, 0x15e0(r31)
+/* 80314E90 00310AF0 38 04 00 01 */ addi r0, r4, 1
+/* 80314E94 00310AF4 90 1F 15 E0 */ stw r0, 0x15e0(r31)
+lbl_80314E98:
+/* 80314E98 00310AF8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80314E9C 00310AFC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80314EA0 00310B00 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80314EA4 00310B04 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80314EA8 00310B08 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80314EAC 00310B0C 7C 08 03 A6 */ mtlr r0
+/* 80314EB0 00310B10 38 21 00 20 */ addi r1, r1, 0x20
+/* 80314EB4 00310B14 4E 80 00 20 */ blr
+
+.global VFiPFFILE_fclose
+VFiPFFILE_fclose:
+/* 80314EB8 00310B18 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80314EBC 00310B1C 7C 08 02 A6 */ mflr r0
+/* 80314EC0 00310B20 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80314EC4 00310B24 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80314EC8 00310B28 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80314ECC 00310B2C 7C 04 18 40 */ cmplw r4, r3
+/* 80314ED0 00310B30 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80314ED4 00310B34 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80314ED8 00310B38 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80314EDC 00310B3C 7C 7D 1B 78 */ mr r29, r3
+/* 80314EE0 00310B40 41 81 00 14 */ bgt lbl_80314EF4
+/* 80314EE4 00310B44 3C 84 00 02 */ addis r4, r4, 2
+/* 80314EE8 00310B48 38 04 7F B8 */ addi r0, r4, 0x7fb8
+/* 80314EEC 00310B4C 7C 00 18 40 */ cmplw r0, r3
+/* 80314EF0 00310B50 40 80 00 1C */ bge lbl_80314F0C
+lbl_80314EF4:
+/* 80314EF4 00310B54 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80314EF8 00310B58 38 00 00 0A */ li r0, 0xa
+/* 80314EFC 00310B5C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80314F00 00310B60 38 60 00 0A */ li r3, 0xa
+/* 80314F04 00310B64 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80314F08 00310B68 48 00 02 F0 */ b lbl_803151F8
+lbl_80314F0C:
+/* 80314F0C 00310B6C 2C 03 00 00 */ cmpwi r3, 0
+/* 80314F10 00310B70 40 82 00 0C */ bne lbl_80314F1C
+/* 80314F14 00310B74 3B E0 00 00 */ li r31, 0
+/* 80314F18 00310B78 48 00 00 0C */ b lbl_80314F24
+lbl_80314F1C:
+/* 80314F1C 00310B7C 80 63 00 08 */ lwz r3, 8(r3)
+/* 80314F20 00310B80 83 E3 02 68 */ lwz r31, 0x268(r3)
+lbl_80314F24:
+/* 80314F24 00310B84 2C 1F 00 00 */ cmpwi r31, 0
+/* 80314F28 00310B88 40 82 00 1C */ bne lbl_80314F44
+/* 80314F2C 00310B8C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80314F30 00310B90 38 00 00 0A */ li r0, 0xa
+/* 80314F34 00310B94 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80314F38 00310B98 38 60 00 0A */ li r3, 0xa
+/* 80314F3C 00310B9C 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80314F40 00310BA0 48 00 02 B8 */ b lbl_803151F8
+lbl_80314F44:
+/* 80314F44 00310BA4 7F E3 FB 78 */ mr r3, r31
+/* 80314F48 00310BA8 48 00 44 25 */ bl VFiPFVOL_CheckForRead
+/* 80314F4C 00310BAC 2C 03 00 00 */ cmpwi r3, 0
+/* 80314F50 00310BB0 7C 7E 1B 78 */ mr r30, r3
+/* 80314F54 00310BB4 41 82 00 18 */ beq lbl_80314F6C
+/* 80314F58 00310BB8 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80314F5C 00310BBC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80314F60 00310BC0 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 80314F64 00310BC4 90 7F 18 6C */ stw r3, 0x186c(r31)
+/* 80314F68 00310BC8 48 00 02 90 */ b lbl_803151F8
+lbl_80314F6C:
+/* 80314F6C 00310BCC 7F E3 FB 78 */ mr r3, r31
+/* 80314F70 00310BD0 4B FF 0E 39 */ bl VFiPFDRV_IsWProtected
+/* 80314F74 00310BD4 2C 03 00 00 */ cmpwi r3, 0
+/* 80314F78 00310BD8 41 82 00 18 */ beq lbl_80314F90
+/* 80314F7C 00310BDC 80 1D 00 04 */ lwz r0, 4(r29)
+/* 80314F80 00310BE0 2C 00 00 02 */ cmpwi r0, 2
+/* 80314F84 00310BE4 41 82 00 0C */ beq lbl_80314F90
+/* 80314F88 00310BE8 38 60 00 0B */ li r3, 0xb
+/* 80314F8C 00310BEC 48 00 02 6C */ b lbl_803151F8
+lbl_80314F90:
+/* 80314F90 00310BF0 2C 1D 00 00 */ cmpwi r29, 0
+/* 80314F94 00310BF4 41 82 00 34 */ beq lbl_80314FC8
+/* 80314F98 00310BF8 80 7D 00 08 */ lwz r3, 8(r29)
+/* 80314F9C 00310BFC 2C 03 00 00 */ cmpwi r3, 0
+/* 80314FA0 00310C00 41 82 00 28 */ beq lbl_80314FC8
+/* 80314FA4 00310C04 80 1D 00 00 */ lwz r0, 0(r29)
+/* 80314FA8 00310C08 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80314FAC 00310C0C 41 82 00 1C */ beq lbl_80314FC8
+/* 80314FB0 00310C10 80 03 00 00 */ lwz r0, 0(r3)
+/* 80314FB4 00310C14 54 03 07 FE */ clrlwi r3, r0, 0x1f
+/* 80314FB8 00310C18 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 80314FBC 00310C1C 41 86 00 0C */ beq cr1, lbl_80314FC8
+/* 80314FC0 00310C20 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80314FC4 00310C24 40 82 00 20 */ bne lbl_80314FE4
+lbl_80314FC8:
+/* 80314FC8 00310C28 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80314FCC 00310C2C 38 00 00 0A */ li r0, 0xa
+/* 80314FD0 00310C30 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80314FD4 00310C34 38 60 00 0A */ li r3, 0xa
+/* 80314FD8 00310C38 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80314FDC 00310C3C 90 1F 18 6C */ stw r0, 0x186c(r31)
+/* 80314FE0 00310C40 48 00 02 18 */ b lbl_803151F8
+lbl_80314FE4:
+/* 80314FE4 00310C44 41 86 00 08 */ beq cr1, lbl_80314FEC
+/* 80314FE8 00310C48 40 82 00 20 */ bne lbl_80315008
+lbl_80314FEC:
+/* 80314FEC 00310C4C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80314FF0 00310C50 38 00 00 0A */ li r0, 0xa
+/* 80314FF4 00310C54 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80314FF8 00310C58 38 60 00 0A */ li r3, 0xa
+/* 80314FFC 00310C5C 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315000 00310C60 90 1F 18 6C */ stw r0, 0x186c(r31)
+/* 80315004 00310C64 48 00 01 F4 */ b lbl_803151F8
+lbl_80315008:
+/* 80315008 00310C68 93 BF 16 08 */ stw r29, 0x1608(r31)
+/* 8031500C 00310C6C 80 9D 00 08 */ lwz r4, 8(r29)
+/* 80315010 00310C70 A0 64 02 8C */ lhz r3, 0x28c(r4)
+/* 80315014 00310C74 34 03 FF FF */ addic. r0, r3, -1
+/* 80315018 00310C78 41 81 00 50 */ bgt lbl_80315068
+/* 8031501C 00310C7C 88 04 02 58 */ lbz r0, 0x258(r4)
+/* 80315020 00310C80 70 00 00 19 */ andi. r0, r0, 0x19
+/* 80315024 00310C84 40 82 00 44 */ bne lbl_80315068
+/* 80315028 00310C88 7F E3 FB 78 */ mr r3, r31
+/* 8031502C 00310C8C 4B FF 0D 7D */ bl VFiPFDRV_IsWProtected
+/* 80315030 00310C90 2C 03 00 00 */ cmpwi r3, 0
+/* 80315034 00310C94 40 82 00 34 */ bne lbl_80315068
+/* 80315038 00310C98 80 7D 00 08 */ lwz r3, 8(r29)
+/* 8031503C 00310C9C 80 03 00 00 */ lwz r0, 0(r3)
+/* 80315040 00310CA0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
+/* 80315044 00310CA4 40 82 00 14 */ bne lbl_80315058
+/* 80315048 00310CA8 80 1F 18 74 */ lwz r0, 0x1874(r31)
+/* 8031504C 00310CAC 54 00 07 FE */ clrlwi r0, r0, 0x1f
+/* 80315050 00310CB0 28 00 00 01 */ cmplwi r0, 1
+/* 80315054 00310CB4 41 82 00 14 */ beq lbl_80315068
+lbl_80315058:
+/* 80315058 00310CB8 38 63 00 3C */ addi r3, r3, 0x3c
+/* 8031505C 00310CBC 38 80 00 01 */ li r4, 1
+/* 80315060 00310CC0 4B FF 78 91 */ bl VFiPFENT_updateEntry
+/* 80315064 00310CC4 7C 7E 1B 78 */ mr r30, r3
+lbl_80315068:
+/* 80315068 00310CC8 A0 9D 00 2C */ lhz r4, 0x2c(r29)
+/* 8031506C 00310CCC 2C 04 00 00 */ cmpwi r4, 0
+/* 80315070 00310CD0 41 82 00 94 */ beq lbl_80315104
+/* 80315074 00310CD4 80 BD 00 08 */ lwz r5, 8(r29)
+/* 80315078 00310CD8 A0 05 02 7C */ lhz r0, 0x27c(r5)
+/* 8031507C 00310CDC 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80315080 00310CE0 41 82 00 44 */ beq lbl_803150C4
+/* 80315084 00310CE4 A0 65 02 7E */ lhz r3, 0x27e(r5)
+/* 80315088 00310CE8 38 00 00 00 */ li r0, 0
+/* 8031508C 00310CEC 7C 64 18 50 */ subf r3, r4, r3
+/* 80315090 00310CF0 B0 65 02 7E */ sth r3, 0x27e(r5)
+/* 80315094 00310CF4 B0 1D 00 2C */ sth r0, 0x2c(r29)
+/* 80315098 00310CF8 80 7D 00 08 */ lwz r3, 8(r29)
+/* 8031509C 00310CFC A0 03 02 7E */ lhz r0, 0x27e(r3)
+/* 803150A0 00310D00 2C 00 00 00 */ cmpwi r0, 0
+/* 803150A4 00310D04 40 82 00 0C */ bne lbl_803150B0
+/* 803150A8 00310D08 7F A3 EB 78 */ mr r3, r29
+/* 803150AC 00310D0C 48 00 53 75 */ bl func_8031A420
+lbl_803150B0:
+/* 803150B0 00310D10 80 7D 00 08 */ lwz r3, 8(r29)
+/* 803150B4 00310D14 A0 03 02 7C */ lhz r0, 0x27c(r3)
+/* 803150B8 00310D18 54 00 04 3A */ rlwinm r0, r0, 0, 0x10, 0x1d
+/* 803150BC 00310D1C B0 03 02 7C */ sth r0, 0x27c(r3)
+/* 803150C0 00310D20 48 00 00 44 */ b lbl_80315104
+lbl_803150C4:
+/* 803150C4 00310D24 80 05 02 84 */ lwz r0, 0x284(r5)
+/* 803150C8 00310D28 7C 00 E8 40 */ cmplw r0, r29
+/* 803150CC 00310D2C 41 82 00 0C */ beq lbl_803150D8
+/* 803150D0 00310D30 3B C0 00 19 */ li r30, 0x19
+/* 803150D4 00310D34 48 00 00 30 */ b lbl_80315104
+lbl_803150D8:
+/* 803150D8 00310D38 38 00 00 00 */ li r0, 0
+/* 803150DC 00310D3C 7F A3 EB 78 */ mr r3, r29
+/* 803150E0 00310D40 B0 05 02 7E */ sth r0, 0x27e(r5)
+/* 803150E4 00310D44 B0 1D 00 2C */ sth r0, 0x2c(r29)
+/* 803150E8 00310D48 80 9D 00 08 */ lwz r4, 8(r29)
+/* 803150EC 00310D4C 90 04 02 84 */ stw r0, 0x284(r4)
+/* 803150F0 00310D50 48 00 53 31 */ bl func_8031A420
+/* 803150F4 00310D54 80 7D 00 08 */ lwz r3, 8(r29)
+/* 803150F8 00310D58 A0 03 02 7C */ lhz r0, 0x27c(r3)
+/* 803150FC 00310D5C 54 00 04 3A */ rlwinm r0, r0, 0, 0x10, 0x1d
+/* 80315100 00310D60 B0 03 02 7C */ sth r0, 0x27c(r3)
+lbl_80315104:
+/* 80315104 00310D64 2C 1E 00 00 */ cmpwi r30, 0
+/* 80315108 00310D68 41 82 00 24 */ beq lbl_8031512C
+/* 8031510C 00310D6C 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80315110 00310D70 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80315114 00310D74 93 C3 00 1C */ stw r30, 0x1c(r3)
+/* 80315118 00310D78 80 7D 00 08 */ lwz r3, 8(r29)
+/* 8031511C 00310D7C 80 63 00 38 */ lwz r3, 0x38(r3)
+/* 80315120 00310D80 93 C3 18 6C */ stw r30, 0x186c(r3)
+/* 80315124 00310D84 93 DD 00 18 */ stw r30, 0x18(r29)
+/* 80315128 00310D88 48 00 00 C4 */ b lbl_803151EC
+lbl_8031512C:
+/* 8031512C 00310D8C 80 1F 15 E8 */ lwz r0, 0x15e8(r31)
+/* 80315130 00310D90 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80315134 00310D94 41 82 00 6C */ beq lbl_803151A0
+/* 80315138 00310D98 7F E3 FB 78 */ mr r3, r31
+/* 8031513C 00310D9C 4B FF 59 75 */ bl VFiPFCACHE_FlushFATCache
+/* 80315140 00310DA0 2C 03 00 00 */ cmpwi r3, 0
+/* 80315144 00310DA4 7C 7E 1B 78 */ mr r30, r3
+/* 80315148 00310DA8 41 82 00 24 */ beq lbl_8031516C
+/* 8031514C 00310DAC 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315150 00310DB0 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315154 00310DB4 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 80315158 00310DB8 80 9D 00 08 */ lwz r4, 8(r29)
+/* 8031515C 00310DBC 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 80315160 00310DC0 90 64 18 6C */ stw r3, 0x186c(r4)
+/* 80315164 00310DC4 90 7D 00 18 */ stw r3, 0x18(r29)
+/* 80315168 00310DC8 48 00 00 38 */ b lbl_803151A0
+lbl_8031516C:
+/* 8031516C 00310DCC 7F E3 FB 78 */ mr r3, r31
+/* 80315170 00310DD0 7F A4 EB 78 */ mr r4, r29
+/* 80315174 00310DD4 4B FF 59 71 */ bl VFiPFCACHE_FlushDataCacheSpecific
+/* 80315178 00310DD8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031517C 00310DDC 7C 7E 1B 78 */ mr r30, r3
+/* 80315180 00310DE0 41 82 00 20 */ beq lbl_803151A0
+/* 80315184 00310DE4 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315188 00310DE8 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 8031518C 00310DEC 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 80315190 00310DF0 80 9D 00 08 */ lwz r4, 8(r29)
+/* 80315194 00310DF4 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 80315198 00310DF8 90 64 18 6C */ stw r3, 0x186c(r4)
+/* 8031519C 00310DFC 90 7D 00 18 */ stw r3, 0x18(r29)
+lbl_803151A0:
+/* 803151A0 00310E00 2C 1E 00 00 */ cmpwi r30, 0
+/* 803151A4 00310E04 40 82 00 48 */ bne lbl_803151EC
+/* 803151A8 00310E08 80 9D 00 08 */ lwz r4, 8(r29)
+/* 803151AC 00310E0C A0 64 02 8C */ lhz r3, 0x28c(r4)
+/* 803151B0 00310E10 38 63 FF FF */ addi r3, r3, -1
+/* 803151B4 00310E14 54 60 04 3F */ clrlwi. r0, r3, 0x10
+/* 803151B8 00310E18 B0 64 02 8C */ sth r3, 0x28c(r4)
+/* 803151BC 00310E1C 40 82 00 18 */ bne lbl_803151D4
+/* 803151C0 00310E20 80 64 00 00 */ lwz r3, 0(r4)
+/* 803151C4 00310E24 38 00 00 00 */ li r0, 0
+/* 803151C8 00310E28 54 63 00 3C */ rlwinm r3, r3, 0, 0, 0x1e
+/* 803151CC 00310E2C 90 64 00 00 */ stw r3, 0(r4)
+/* 803151D0 00310E30 90 04 00 20 */ stw r0, 0x20(r4)
+lbl_803151D4:
+/* 803151D4 00310E34 80 1D 00 00 */ lwz r0, 0(r29)
+/* 803151D8 00310E38 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
+/* 803151DC 00310E3C 90 1D 00 00 */ stw r0, 0(r29)
+/* 803151E0 00310E40 80 7F 15 E0 */ lwz r3, 0x15e0(r31)
+/* 803151E4 00310E44 38 03 FF FF */ addi r0, r3, -1
+/* 803151E8 00310E48 90 1F 15 E0 */ stw r0, 0x15e0(r31)
+lbl_803151EC:
+/* 803151EC 00310E4C 38 00 00 00 */ li r0, 0
+/* 803151F0 00310E50 7F C3 F3 78 */ mr r3, r30
+/* 803151F4 00310E54 90 1F 16 08 */ stw r0, 0x1608(r31)
+lbl_803151F8:
+/* 803151F8 00310E58 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803151FC 00310E5C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80315200 00310E60 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80315204 00310E64 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80315208 00310E68 7C 08 03 A6 */ mtlr r0
+/* 8031520C 00310E6C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80315210 00310E70 4E 80 00 20 */ blr
+
+.global VFiPFFILE_fread
+VFiPFFILE_fread:
+/* 80315214 00310E74 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80315218 00310E78 7C 08 02 A6 */ mflr r0
+/* 8031521C 00310E7C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80315220 00310E80 39 61 00 30 */ addi r11, r1, 0x30
+/* 80315224 00310E84 4B EB 1F 01 */ bl _savegpr_26
+/* 80315228 00310E88 2C 07 00 00 */ cmpwi r7, 0
+/* 8031522C 00310E8C 7C 7A 1B 78 */ mr r26, r3
+/* 80315230 00310E90 7C 9B 23 78 */ mr r27, r4
+/* 80315234 00310E94 7C BC 2B 78 */ mr r28, r5
+/* 80315238 00310E98 7C DF 33 78 */ mr r31, r6
+/* 8031523C 00310E9C 7C FD 3B 78 */ mr r29, r7
+/* 80315240 00310EA0 40 82 00 1C */ bne lbl_8031525C
+/* 80315244 00310EA4 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315248 00310EA8 38 00 00 0A */ li r0, 0xa
+/* 8031524C 00310EAC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315250 00310EB0 38 60 00 0A */ li r3, 0xa
+/* 80315254 00310EB4 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315258 00310EB8 48 00 01 BC */ b lbl_80315414
+lbl_8031525C:
+/* 8031525C 00310EBC 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80315260 00310EC0 38 00 00 00 */ li r0, 0
+/* 80315264 00310EC4 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80315268 00310EC8 90 07 00 00 */ stw r0, 0(r7)
+/* 8031526C 00310ECC 7C 03 30 40 */ cmplw r3, r6
+/* 80315270 00310ED0 41 81 00 14 */ bgt lbl_80315284
+/* 80315274 00310ED4 3C 63 00 02 */ addis r3, r3, 2
+/* 80315278 00310ED8 38 03 7F B8 */ addi r0, r3, 0x7fb8
+/* 8031527C 00310EDC 7C 00 30 40 */ cmplw r0, r6
+/* 80315280 00310EE0 40 80 00 1C */ bge lbl_8031529C
+lbl_80315284:
+/* 80315284 00310EE4 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315288 00310EE8 38 00 00 0A */ li r0, 0xa
+/* 8031528C 00310EEC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315290 00310EF0 38 60 00 0A */ li r3, 0xa
+/* 80315294 00310EF4 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315298 00310EF8 48 00 01 7C */ b lbl_80315414
+lbl_8031529C:
+/* 8031529C 00310EFC 2C 06 00 00 */ cmpwi r6, 0
+/* 803152A0 00310F00 40 82 00 0C */ bne lbl_803152AC
+/* 803152A4 00310F04 3B C0 00 00 */ li r30, 0
+/* 803152A8 00310F08 48 00 00 0C */ b lbl_803152B4
+lbl_803152AC:
+/* 803152AC 00310F0C 80 66 00 08 */ lwz r3, 8(r6)
+/* 803152B0 00310F10 83 C3 02 68 */ lwz r30, 0x268(r3)
+lbl_803152B4:
+/* 803152B4 00310F14 2C 1E 00 00 */ cmpwi r30, 0
+/* 803152B8 00310F18 40 82 00 2C */ bne lbl_803152E4
+/* 803152BC 00310F1C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 803152C0 00310F20 38 00 00 26 */ li r0, 0x26
+/* 803152C4 00310F24 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 803152C8 00310F28 38 60 00 26 */ li r3, 0x26
+/* 803152CC 00310F2C 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 803152D0 00310F30 80 86 00 08 */ lwz r4, 8(r6)
+/* 803152D4 00310F34 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 803152D8 00310F38 90 04 18 6C */ stw r0, 0x186c(r4)
+/* 803152DC 00310F3C 90 06 00 18 */ stw r0, 0x18(r6)
+/* 803152E0 00310F40 48 00 01 34 */ b lbl_80315414
+lbl_803152E4:
+/* 803152E4 00310F44 7F C3 F3 78 */ mr r3, r30
+/* 803152E8 00310F48 48 00 40 85 */ bl VFiPFVOL_CheckForRead
+/* 803152EC 00310F4C 2C 03 00 00 */ cmpwi r3, 0
+/* 803152F0 00310F50 41 82 00 18 */ beq lbl_80315308
+/* 803152F4 00310F54 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 803152F8 00310F58 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 803152FC 00310F5C 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 80315300 00310F60 90 7E 18 6C */ stw r3, 0x186c(r30)
+/* 80315304 00310F64 48 00 01 10 */ b lbl_80315414
+lbl_80315308:
+/* 80315308 00310F68 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031530C 00310F6C 41 82 00 34 */ beq lbl_80315340
+/* 80315310 00310F70 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80315314 00310F74 2C 03 00 00 */ cmpwi r3, 0
+/* 80315318 00310F78 41 82 00 28 */ beq lbl_80315340
+/* 8031531C 00310F7C 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80315320 00310F80 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80315324 00310F84 41 82 00 1C */ beq lbl_80315340
+/* 80315328 00310F88 80 03 00 00 */ lwz r0, 0(r3)
+/* 8031532C 00310F8C 54 03 07 FE */ clrlwi r3, r0, 0x1f
+/* 80315330 00310F90 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 80315334 00310F94 41 86 00 0C */ beq cr1, lbl_80315340
+/* 80315338 00310F98 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 8031533C 00310F9C 40 82 00 20 */ bne lbl_8031535C
+lbl_80315340:
+/* 80315340 00310FA0 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315344 00310FA4 38 00 00 26 */ li r0, 0x26
+/* 80315348 00310FA8 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 8031534C 00310FAC 38 60 00 26 */ li r3, 0x26
+/* 80315350 00310FB0 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315354 00310FB4 90 1E 18 6C */ stw r0, 0x186c(r30)
+/* 80315358 00310FB8 48 00 00 BC */ b lbl_80315414
+lbl_8031535C:
+/* 8031535C 00310FBC 41 86 00 08 */ beq cr1, lbl_80315364
+/* 80315360 00310FC0 40 82 00 20 */ bne lbl_80315380
+lbl_80315364:
+/* 80315364 00310FC4 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315368 00310FC8 38 00 00 26 */ li r0, 0x26
+/* 8031536C 00310FCC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315370 00310FD0 38 60 00 26 */ li r3, 0x26
+/* 80315374 00310FD4 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315378 00310FD8 90 1E 18 6C */ stw r0, 0x186c(r30)
+/* 8031537C 00310FDC 48 00 00 98 */ b lbl_80315414
+lbl_80315380:
+/* 80315380 00310FE0 2C 1A 00 00 */ cmpwi r26, 0
+/* 80315384 00310FE4 41 82 00 14 */ beq lbl_80315398
+/* 80315388 00310FE8 2C 1C 00 00 */ cmpwi r28, 0
+/* 8031538C 00310FEC 41 82 00 0C */ beq lbl_80315398
+/* 80315390 00310FF0 2C 1B 00 00 */ cmpwi r27, 0
+/* 80315394 00310FF4 40 82 00 2C */ bne lbl_803153C0
+lbl_80315398:
+/* 80315398 00310FF8 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 8031539C 00310FFC 38 00 00 0A */ li r0, 0xa
+/* 803153A0 00311000 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 803153A4 00311004 38 60 00 0A */ li r3, 0xa
+/* 803153A8 00311008 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 803153AC 0031100C 80 9F 00 08 */ lwz r4, 8(r31)
+/* 803153B0 00311010 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 803153B4 00311014 90 04 18 6C */ stw r0, 0x186c(r4)
+/* 803153B8 00311018 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 803153BC 0031101C 48 00 00 58 */ b lbl_80315414
+lbl_803153C0:
+/* 803153C0 00311020 93 FE 16 08 */ stw r31, 0x1608(r30)
+/* 803153C4 00311024 7F C3 F3 78 */ mr r3, r30
+/* 803153C8 00311028 7F 44 D3 78 */ mr r4, r26
+/* 803153CC 0031102C 7F 65 DB 78 */ mr r5, r27
+/* 803153D0 00311030 7F 86 E3 78 */ mr r6, r28
+/* 803153D4 00311034 7F E7 FB 78 */ mr r7, r31
+/* 803153D8 00311038 39 01 00 08 */ addi r8, r1, 8
+/* 803153DC 0031103C 4B FF F4 29 */ bl VFiPFFILE_p_fread
+/* 803153E0 00311040 80 81 00 08 */ lwz r4, 8(r1)
+/* 803153E4 00311044 2C 03 00 00 */ cmpwi r3, 0
+/* 803153E8 00311048 38 00 00 00 */ li r0, 0
+/* 803153EC 0031104C 90 9D 00 00 */ stw r4, 0(r29)
+/* 803153F0 00311050 90 1E 16 08 */ stw r0, 0x1608(r30)
+/* 803153F4 00311054 41 82 00 20 */ beq lbl_80315414
+/* 803153F8 00311058 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 803153FC 0031105C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315400 00311060 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 80315404 00311064 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80315408 00311068 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 8031540C 0031106C 90 64 18 6C */ stw r3, 0x186c(r4)
+/* 80315410 00311070 90 7F 00 18 */ stw r3, 0x18(r31)
+lbl_80315414:
+/* 80315414 00311074 39 61 00 30 */ addi r11, r1, 0x30
+/* 80315418 00311078 4B EB 1D 59 */ bl _restgpr_26
+/* 8031541C 0031107C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80315420 00311080 7C 08 03 A6 */ mtlr r0
+/* 80315424 00311084 38 21 00 30 */ addi r1, r1, 0x30
+/* 80315428 00311088 4E 80 00 20 */ blr
+
+.global VFiPFFILE_fwrite
+VFiPFFILE_fwrite:
+/* 8031542C 0031108C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80315430 00311090 7C 08 02 A6 */ mflr r0
+/* 80315434 00311094 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80315438 00311098 39 61 00 30 */ addi r11, r1, 0x30
+/* 8031543C 0031109C 4B EB 1C E9 */ bl _savegpr_26
+/* 80315440 003110A0 2C 07 00 00 */ cmpwi r7, 0
+/* 80315444 003110A4 7C 7A 1B 78 */ mr r26, r3
+/* 80315448 003110A8 7C 9B 23 78 */ mr r27, r4
+/* 8031544C 003110AC 7C BD 2B 78 */ mr r29, r5
+/* 80315450 003110B0 7C DF 33 78 */ mr r31, r6
+/* 80315454 003110B4 7C FC 3B 78 */ mr r28, r7
+/* 80315458 003110B8 40 82 00 1C */ bne lbl_80315474
+/* 8031545C 003110BC 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315460 003110C0 38 00 00 0A */ li r0, 0xa
+/* 80315464 003110C4 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315468 003110C8 38 60 00 0A */ li r3, 0xa
+/* 8031546C 003110CC 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315470 003110D0 48 00 01 FC */ b lbl_8031566C
+lbl_80315474:
+/* 80315474 003110D4 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80315478 003110D8 38 00 00 00 */ li r0, 0
+/* 8031547C 003110DC 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80315480 003110E0 90 07 00 00 */ stw r0, 0(r7)
+/* 80315484 003110E4 7C 03 30 40 */ cmplw r3, r6
+/* 80315488 003110E8 41 81 00 14 */ bgt lbl_8031549C
+/* 8031548C 003110EC 3C 63 00 02 */ addis r3, r3, 2
+/* 80315490 003110F0 38 03 7F B8 */ addi r0, r3, 0x7fb8
+/* 80315494 003110F4 7C 00 30 40 */ cmplw r0, r6
+/* 80315498 003110F8 40 80 00 1C */ bge lbl_803154B4
+lbl_8031549C:
+/* 8031549C 003110FC 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 803154A0 00311100 38 00 00 0A */ li r0, 0xa
+/* 803154A4 00311104 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 803154A8 00311108 38 60 00 0A */ li r3, 0xa
+/* 803154AC 0031110C 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 803154B0 00311110 48 00 01 BC */ b lbl_8031566C
+lbl_803154B4:
+/* 803154B4 00311114 2C 06 00 00 */ cmpwi r6, 0
+/* 803154B8 00311118 40 82 00 0C */ bne lbl_803154C4
+/* 803154BC 0031111C 3B C0 00 00 */ li r30, 0
+/* 803154C0 00311120 48 00 00 0C */ b lbl_803154CC
+lbl_803154C4:
+/* 803154C4 00311124 80 66 00 08 */ lwz r3, 8(r6)
+/* 803154C8 00311128 83 C3 02 68 */ lwz r30, 0x268(r3)
+lbl_803154CC:
+/* 803154CC 0031112C 2C 1E 00 00 */ cmpwi r30, 0
+/* 803154D0 00311130 40 82 00 2C */ bne lbl_803154FC
+/* 803154D4 00311134 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 803154D8 00311138 38 00 00 26 */ li r0, 0x26
+/* 803154DC 0031113C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 803154E0 00311140 38 60 00 26 */ li r3, 0x26
+/* 803154E4 00311144 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 803154E8 00311148 80 86 00 08 */ lwz r4, 8(r6)
+/* 803154EC 0031114C 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 803154F0 00311150 90 04 18 6C */ stw r0, 0x186c(r4)
+/* 803154F4 00311154 90 06 00 18 */ stw r0, 0x18(r6)
+/* 803154F8 00311158 48 00 01 74 */ b lbl_8031566C
+lbl_803154FC:
+/* 803154FC 0031115C 7F C3 F3 78 */ mr r3, r30
+/* 80315500 00311160 48 00 40 29 */ bl VFiPFVOL_CheckForWrite
+/* 80315504 00311164 2C 03 00 00 */ cmpwi r3, 0
+/* 80315508 00311168 41 82 00 18 */ beq lbl_80315520
+/* 8031550C 0031116C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315510 00311170 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315514 00311174 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 80315518 00311178 90 7E 18 6C */ stw r3, 0x186c(r30)
+/* 8031551C 0031117C 48 00 01 50 */ b lbl_8031566C
+lbl_80315520:
+/* 80315520 00311180 2C 1F 00 00 */ cmpwi r31, 0
+/* 80315524 00311184 41 82 00 34 */ beq lbl_80315558
+/* 80315528 00311188 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8031552C 0031118C 2C 03 00 00 */ cmpwi r3, 0
+/* 80315530 00311190 41 82 00 28 */ beq lbl_80315558
+/* 80315534 00311194 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80315538 00311198 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 8031553C 0031119C 41 82 00 1C */ beq lbl_80315558
+/* 80315540 003111A0 80 03 00 00 */ lwz r0, 0(r3)
+/* 80315544 003111A4 54 03 07 FE */ clrlwi r3, r0, 0x1f
+/* 80315548 003111A8 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 8031554C 003111AC 41 86 00 0C */ beq cr1, lbl_80315558
+/* 80315550 003111B0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80315554 003111B4 40 82 00 20 */ bne lbl_80315574
+lbl_80315558:
+/* 80315558 003111B8 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 8031555C 003111BC 38 00 00 26 */ li r0, 0x26
+/* 80315560 003111C0 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315564 003111C4 38 60 00 26 */ li r3, 0x26
+/* 80315568 003111C8 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 8031556C 003111CC 90 1E 18 6C */ stw r0, 0x186c(r30)
+/* 80315570 003111D0 48 00 00 FC */ b lbl_8031566C
+lbl_80315574:
+/* 80315574 003111D4 41 86 00 08 */ beq cr1, lbl_8031557C
+/* 80315578 003111D8 40 82 00 20 */ bne lbl_80315598
+lbl_8031557C:
+/* 8031557C 003111DC 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315580 003111E0 38 00 00 26 */ li r0, 0x26
+/* 80315584 003111E4 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315588 003111E8 38 60 00 26 */ li r3, 0x26
+/* 8031558C 003111EC 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315590 003111F0 90 1E 18 6C */ stw r0, 0x186c(r30)
+/* 80315594 003111F4 48 00 00 D8 */ b lbl_8031566C
+lbl_80315598:
+/* 80315598 003111F8 2C 1A 00 00 */ cmpwi r26, 0
+/* 8031559C 003111FC 41 82 00 14 */ beq lbl_803155B0
+/* 803155A0 00311200 2C 1D 00 00 */ cmpwi r29, 0
+/* 803155A4 00311204 41 82 00 0C */ beq lbl_803155B0
+/* 803155A8 00311208 2C 1B 00 00 */ cmpwi r27, 0
+/* 803155AC 0031120C 40 82 00 2C */ bne lbl_803155D8
+lbl_803155B0:
+/* 803155B0 00311210 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 803155B4 00311214 38 00 00 0A */ li r0, 0xa
+/* 803155B8 00311218 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 803155BC 0031121C 38 60 00 0A */ li r3, 0xa
+/* 803155C0 00311220 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 803155C4 00311224 80 9F 00 08 */ lwz r4, 8(r31)
+/* 803155C8 00311228 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 803155CC 0031122C 90 04 18 6C */ stw r0, 0x186c(r4)
+/* 803155D0 00311230 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 803155D4 00311234 48 00 00 98 */ b lbl_8031566C
+lbl_803155D8:
+/* 803155D8 00311238 93 FE 16 08 */ stw r31, 0x1608(r30)
+/* 803155DC 0031123C 7F C3 F3 78 */ mr r3, r30
+/* 803155E0 00311240 7F 44 D3 78 */ mr r4, r26
+/* 803155E4 00311244 7F 65 DB 78 */ mr r5, r27
+/* 803155E8 00311248 7F A6 EB 78 */ mr r6, r29
+/* 803155EC 0031124C 7F E7 FB 78 */ mr r7, r31
+/* 803155F0 00311250 39 01 00 08 */ addi r8, r1, 8
+/* 803155F4 00311254 4B FF F2 DD */ bl VFiPFFILE_p_fwrite
+/* 803155F8 00311258 80 81 00 08 */ lwz r4, 8(r1)
+/* 803155FC 0031125C 2C 03 00 00 */ cmpwi r3, 0
+/* 80315600 00311260 38 00 00 00 */ li r0, 0
+/* 80315604 00311264 7C 7D 1B 78 */ mr r29, r3
+/* 80315608 00311268 90 9C 00 00 */ stw r4, 0(r28)
+/* 8031560C 0031126C 90 1E 16 08 */ stw r0, 0x1608(r30)
+/* 80315610 00311270 41 82 00 20 */ beq lbl_80315630
+/* 80315614 00311274 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315618 00311278 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 8031561C 0031127C 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 80315620 00311280 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80315624 00311284 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 80315628 00311288 90 64 18 6C */ stw r3, 0x186c(r4)
+/* 8031562C 0031128C 90 7F 00 18 */ stw r3, 0x18(r31)
+lbl_80315630:
+/* 80315630 00311290 80 01 00 08 */ lwz r0, 8(r1)
+/* 80315634 00311294 2C 00 00 00 */ cmpwi r0, 0
+/* 80315638 00311298 41 82 00 30 */ beq lbl_80315668
+/* 8031563C 0031129C 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80315640 003112A0 38 64 02 62 */ addi r3, r4, 0x262
+/* 80315644 003112A4 38 84 02 60 */ addi r4, r4, 0x260
+/* 80315648 003112A8 4B FF 75 31 */ bl VFiPFENT_getcurrentDateTimeForEnt
+/* 8031564C 003112AC 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80315650 003112B0 A0 03 02 62 */ lhz r0, 0x262(r3)
+/* 80315654 003112B4 B0 03 02 5E */ sth r0, 0x25e(r3)
+/* 80315658 003112B8 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8031565C 003112BC 80 03 00 00 */ lwz r0, 0(r3)
+/* 80315660 003112C0 60 00 00 04 */ ori r0, r0, 4
+/* 80315664 003112C4 90 03 00 00 */ stw r0, 0(r3)
+lbl_80315668:
+/* 80315668 003112C8 7F A3 EB 78 */ mr r3, r29
+lbl_8031566C:
+/* 8031566C 003112CC 39 61 00 30 */ addi r11, r1, 0x30
+/* 80315670 003112D0 4B EB 1B 01 */ bl _restgpr_26
+/* 80315674 003112D4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80315678 003112D8 7C 08 03 A6 */ mtlr r0
+/* 8031567C 003112DC 38 21 00 30 */ addi r1, r1, 0x30
+/* 80315680 003112E0 4E 80 00 20 */ blr
+
+.global VFiPFFILE_fseek
+VFiPFFILE_fseek:
+/* 80315684 003112E4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80315688 003112E8 7C 08 02 A6 */ mflr r0
+/* 8031568C 003112EC 3C C0 80 58 */ lis r6, lbl_8057F5C8@ha
+/* 80315690 003112F0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80315694 003112F4 38 C6 F5 C8 */ addi r6, r6, lbl_8057F5C8@l
+/* 80315698 003112F8 7C 06 18 40 */ cmplw r6, r3
+/* 8031569C 003112FC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 803156A0 00311300 7C 7F 1B 78 */ mr r31, r3
+/* 803156A4 00311304 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 803156A8 00311308 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 803156AC 0031130C 7C BD 2B 78 */ mr r29, r5
+/* 803156B0 00311310 93 81 00 10 */ stw r28, 0x10(r1)
+/* 803156B4 00311314 7C 9C 23 78 */ mr r28, r4
+/* 803156B8 00311318 41 81 00 14 */ bgt lbl_803156CC
+/* 803156BC 0031131C 3C 86 00 02 */ addis r4, r6, 2
+/* 803156C0 00311320 38 04 7F B8 */ addi r0, r4, 0x7fb8
+/* 803156C4 00311324 7C 00 18 40 */ cmplw r0, r3
+/* 803156C8 00311328 40 80 00 1C */ bge lbl_803156E4
+lbl_803156CC:
+/* 803156CC 0031132C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 803156D0 00311330 38 00 00 0A */ li r0, 0xa
+/* 803156D4 00311334 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 803156D8 00311338 38 60 00 0A */ li r3, 0xa
+/* 803156DC 0031133C 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 803156E0 00311340 48 00 02 F8 */ b lbl_803159D8
+lbl_803156E4:
+/* 803156E4 00311344 2C 03 00 00 */ cmpwi r3, 0
+/* 803156E8 00311348 40 82 00 0C */ bne lbl_803156F4
+/* 803156EC 0031134C 3B C0 00 00 */ li r30, 0
+/* 803156F0 00311350 48 00 00 0C */ b lbl_803156FC
+lbl_803156F4:
+/* 803156F4 00311354 80 63 00 08 */ lwz r3, 8(r3)
+/* 803156F8 00311358 83 C3 02 68 */ lwz r30, 0x268(r3)
+lbl_803156FC:
+/* 803156FC 0031135C 2C 1E 00 00 */ cmpwi r30, 0
+/* 80315700 00311360 40 82 00 1C */ bne lbl_8031571C
+/* 80315704 00311364 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315708 00311368 38 00 00 26 */ li r0, 0x26
+/* 8031570C 0031136C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315710 00311370 38 60 00 26 */ li r3, 0x26
+/* 80315714 00311374 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315718 00311378 48 00 02 C0 */ b lbl_803159D8
+lbl_8031571C:
+/* 8031571C 0031137C 7F C3 F3 78 */ mr r3, r30
+/* 80315720 00311380 48 00 3C 4D */ bl VFiPFVOL_CheckForRead
+/* 80315724 00311384 2C 03 00 00 */ cmpwi r3, 0
+/* 80315728 00311388 41 82 00 18 */ beq lbl_80315740
+/* 8031572C 0031138C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315730 00311390 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315734 00311394 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 80315738 00311398 90 7E 18 6C */ stw r3, 0x186c(r30)
+/* 8031573C 0031139C 48 00 02 9C */ b lbl_803159D8
+lbl_80315740:
+/* 80315740 003113A0 2C 1F 00 00 */ cmpwi r31, 0
+/* 80315744 003113A4 41 82 00 34 */ beq lbl_80315778
+/* 80315748 003113A8 80 9F 00 08 */ lwz r4, 8(r31)
+/* 8031574C 003113AC 2C 04 00 00 */ cmpwi r4, 0
+/* 80315750 003113B0 41 82 00 28 */ beq lbl_80315778
+/* 80315754 003113B4 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80315758 003113B8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 8031575C 003113BC 41 82 00 1C */ beq lbl_80315778
+/* 80315760 003113C0 80 04 00 00 */ lwz r0, 0(r4)
+/* 80315764 003113C4 54 05 07 FE */ clrlwi r5, r0, 0x1f
+/* 80315768 003113C8 2C 85 00 00 */ cmpwi cr1, r5, 0
+/* 8031576C 003113CC 41 86 00 0C */ beq cr1, lbl_80315778
+/* 80315770 003113D0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80315774 003113D4 40 82 00 20 */ bne lbl_80315794
+lbl_80315778:
+/* 80315778 003113D8 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 8031577C 003113DC 38 00 00 26 */ li r0, 0x26
+/* 80315780 003113E0 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315784 003113E4 38 60 00 26 */ li r3, 0x26
+/* 80315788 003113E8 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 8031578C 003113EC 90 1E 18 6C */ stw r0, 0x186c(r30)
+/* 80315790 003113F0 48 00 02 48 */ b lbl_803159D8
+lbl_80315794:
+/* 80315794 003113F4 41 86 00 08 */ beq cr1, lbl_8031579C
+/* 80315798 003113F8 40 82 00 20 */ bne lbl_803157B8
+lbl_8031579C:
+/* 8031579C 003113FC 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 803157A0 00311400 38 00 00 26 */ li r0, 0x26
+/* 803157A4 00311404 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 803157A8 00311408 38 60 00 26 */ li r3, 0x26
+/* 803157AC 0031140C 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 803157B0 00311410 90 1E 18 6C */ stw r0, 0x186c(r30)
+/* 803157B4 00311414 48 00 02 24 */ b lbl_803159D8
+lbl_803157B8:
+/* 803157B8 00311418 2C 1D 00 01 */ cmpwi r29, 1
+/* 803157BC 0031141C 41 82 00 20 */ beq lbl_803157DC
+/* 803157C0 00311420 40 80 00 10 */ bge lbl_803157D0
+/* 803157C4 00311424 2C 1D 00 00 */ cmpwi r29, 0
+/* 803157C8 00311428 40 80 00 1C */ bge lbl_803157E4
+/* 803157CC 0031142C 48 00 00 28 */ b lbl_803157F4
+lbl_803157D0:
+/* 803157D0 00311430 2C 1D 00 03 */ cmpwi r29, 3
+/* 803157D4 00311434 40 80 00 20 */ bge lbl_803157F4
+/* 803157D8 00311438 48 00 00 14 */ b lbl_803157EC
+lbl_803157DC:
+/* 803157DC 0031143C 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 803157E0 00311440 48 00 00 3C */ b lbl_8031581C
+lbl_803157E4:
+/* 803157E4 00311444 38 00 00 00 */ li r0, 0
+/* 803157E8 00311448 48 00 00 34 */ b lbl_8031581C
+lbl_803157EC:
+/* 803157EC 0031144C 80 04 02 64 */ lwz r0, 0x264(r4)
+/* 803157F0 00311450 48 00 00 2C */ b lbl_8031581C
+lbl_803157F4:
+/* 803157F4 00311454 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 803157F8 00311458 38 00 00 0A */ li r0, 0xa
+/* 803157FC 0031145C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315800 00311460 38 60 00 0A */ li r3, 0xa
+/* 80315804 00311464 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315808 00311468 80 9F 00 08 */ lwz r4, 8(r31)
+/* 8031580C 0031146C 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 80315810 00311470 90 04 18 6C */ stw r0, 0x186c(r4)
+/* 80315814 00311474 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 80315818 00311478 48 00 01 C0 */ b lbl_803159D8
+lbl_8031581C:
+/* 8031581C 0031147C 57 84 00 01 */ rlwinm. r4, r28, 0, 0, 0
+/* 80315820 00311480 41 82 00 48 */ beq lbl_80315868
+/* 80315824 00311484 7F 84 E0 F8 */ nor r4, r28, r28
+/* 80315828 00311488 54 84 00 7E */ clrlwi r4, r4, 1
+/* 8031582C 0031148C 38 84 00 01 */ addi r4, r4, 1
+/* 80315830 00311490 7C 00 20 40 */ cmplw r0, r4
+/* 80315834 00311494 40 80 00 2C */ bge lbl_80315860
+/* 80315838 00311498 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 8031583C 0031149C 38 00 00 0A */ li r0, 0xa
+/* 80315840 003114A0 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315844 003114A4 38 60 00 0A */ li r3, 0xa
+/* 80315848 003114A8 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 8031584C 003114AC 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80315850 003114B0 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 80315854 003114B4 90 04 18 6C */ stw r0, 0x186c(r4)
+/* 80315858 003114B8 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 8031585C 003114BC 48 00 01 7C */ b lbl_803159D8
+lbl_80315860:
+/* 80315860 003114C0 7C 04 00 50 */ subf r0, r4, r0
+/* 80315864 003114C4 48 00 00 3C */ b lbl_803158A0
+lbl_80315868:
+/* 80315868 003114C8 20 80 FF FF */ subfic r4, r0, -1
+/* 8031586C 003114CC 7C 1C 20 40 */ cmplw r28, r4
+/* 80315870 003114D0 40 81 00 2C */ ble lbl_8031589C
+/* 80315874 003114D4 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315878 003114D8 38 00 00 25 */ li r0, 0x25
+/* 8031587C 003114DC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315880 003114E0 38 60 00 25 */ li r3, 0x25
+/* 80315884 003114E4 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315888 003114E8 80 9F 00 08 */ lwz r4, 8(r31)
+/* 8031588C 003114EC 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 80315890 003114F0 90 04 18 6C */ stw r0, 0x186c(r4)
+/* 80315894 003114F4 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 80315898 003114F8 48 00 01 40 */ b lbl_803159D8
+lbl_8031589C:
+/* 8031589C 003114FC 7C 00 E2 14 */ add r0, r0, r28
+lbl_803158A0:
+/* 803158A0 00311500 38 80 FF FF */ li r4, -1
+/* 803158A4 00311504 2C 1F 00 00 */ cmpwi r31, 0
+/* 803158A8 00311508 90 9F 00 20 */ stw r4, 0x20(r31)
+/* 803158AC 0031150C 40 82 00 0C */ bne lbl_803158B8
+/* 803158B0 00311510 38 A0 00 00 */ li r5, 0
+/* 803158B4 00311514 48 00 00 0C */ b lbl_803158C0
+lbl_803158B8:
+/* 803158B8 00311518 80 9F 00 08 */ lwz r4, 8(r31)
+/* 803158BC 0031151C 80 A4 02 68 */ lwz r5, 0x268(r4)
+lbl_803158C0:
+/* 803158C0 00311520 A0 85 00 00 */ lhz r4, 0(r5)
+/* 803158C4 00311524 80 FF 00 1C */ lwz r7, 0x1c(r31)
+/* 803158C8 00311528 38 84 FF FF */ addi r4, r4, -1
+/* 803158CC 0031152C 88 C5 00 20 */ lbz r6, 0x20(r5)
+/* 803158D0 00311530 7C E5 20 38 */ and r5, r7, r4
+/* 803158D4 00311534 7C 85 00 D0 */ neg r4, r5
+/* 803158D8 00311538 7C E6 34 30 */ srw r6, r7, r6
+/* 803158DC 0031153C 7C 84 2B 78 */ or r4, r4, r5
+/* 803158E0 00311540 54 84 0F FE */ srwi r4, r4, 0x1f
+/* 803158E4 00311544 7C 86 22 15 */ add. r4, r6, r4
+/* 803158E8 00311548 41 82 00 0C */ beq lbl_803158F4
+/* 803158EC 0031154C 38 80 FF FF */ li r4, -1
+/* 803158F0 00311550 90 9F 00 20 */ stw r4, 0x20(r31)
+lbl_803158F4:
+/* 803158F4 00311554 38 80 00 00 */ li r4, 0
+/* 803158F8 00311558 2C 1F 00 00 */ cmpwi r31, 0
+/* 803158FC 0031155C 90 9F 00 1C */ stw r4, 0x1c(r31)
+/* 80315900 00311560 40 82 00 0C */ bne lbl_8031590C
+/* 80315904 00311564 38 C0 00 00 */ li r6, 0
+/* 80315908 00311568 48 00 00 0C */ b lbl_80315914
+lbl_8031590C:
+/* 8031590C 0031156C 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80315910 00311570 80 C4 02 68 */ lwz r6, 0x268(r4)
+lbl_80315914:
+/* 80315914 00311574 80 BF 00 1C */ lwz r5, 0x1c(r31)
+/* 80315918 00311578 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031591C 0031157C 88 86 00 20 */ lbz r4, 0x20(r6)
+/* 80315920 00311580 7C A4 24 30 */ srw r4, r5, r4
+/* 80315924 00311584 90 9F 00 24 */ stw r4, 0x24(r31)
+/* 80315928 00311588 A0 86 00 00 */ lhz r4, 0(r6)
+/* 8031592C 0031158C 38 84 FF FF */ addi r4, r4, -1
+/* 80315930 00311590 7C A4 20 38 */ and r4, r5, r4
+/* 80315934 00311594 B0 9F 00 28 */ sth r4, 0x28(r31)
+/* 80315938 00311598 40 82 00 0C */ bne lbl_80315944
+/* 8031593C 0031159C 38 A0 00 00 */ li r5, 0
+/* 80315940 003115A0 48 00 00 0C */ b lbl_8031594C
+lbl_80315944:
+/* 80315944 003115A4 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80315948 003115A8 80 A4 02 68 */ lwz r5, 0x268(r4)
+lbl_8031594C:
+/* 8031594C 003115AC A0 85 00 00 */ lhz r4, 0(r5)
+/* 80315950 003115B0 80 DF 00 1C */ lwz r6, 0x1c(r31)
+/* 80315954 003115B4 38 84 FF FF */ addi r4, r4, -1
+/* 80315958 003115B8 89 45 00 20 */ lbz r10, 0x20(r5)
+/* 8031595C 003115BC 7C C9 20 38 */ and r9, r6, r4
+/* 80315960 003115C0 7C 05 20 38 */ and r5, r0, r4
+/* 80315964 003115C4 7C C7 54 30 */ srw r7, r6, r10
+/* 80315968 003115C8 7D 09 00 D0 */ neg r8, r9
+/* 8031596C 003115CC 7C 06 54 30 */ srw r6, r0, r10
+/* 80315970 003115D0 7C 85 00 D0 */ neg r4, r5
+/* 80315974 003115D4 7C 84 2B 78 */ or r4, r4, r5
+/* 80315978 003115D8 7D 08 4B 78 */ or r8, r8, r9
+/* 8031597C 003115DC 55 05 0F FE */ srwi r5, r8, 0x1f
+/* 80315980 003115E0 54 84 0F FE */ srwi r4, r4, 0x1f
+/* 80315984 003115E4 7C A7 2A 14 */ add r5, r7, r5
+/* 80315988 003115E8 7C 86 22 14 */ add r4, r6, r4
+/* 8031598C 003115EC 7C 05 20 40 */ cmplw r5, r4
+/* 80315990 003115F0 41 82 00 0C */ beq lbl_8031599C
+/* 80315994 003115F4 38 80 FF FF */ li r4, -1
+/* 80315998 003115F8 90 9F 00 20 */ stw r4, 0x20(r31)
+lbl_8031599C:
+/* 8031599C 003115FC 2C 1F 00 00 */ cmpwi r31, 0
+/* 803159A0 00311600 90 1F 00 1C */ stw r0, 0x1c(r31)
+/* 803159A4 00311604 40 82 00 0C */ bne lbl_803159B0
+/* 803159A8 00311608 38 80 00 00 */ li r4, 0
+/* 803159AC 0031160C 48 00 00 0C */ b lbl_803159B8
+lbl_803159B0:
+/* 803159B0 00311610 80 9F 00 08 */ lwz r4, 8(r31)
+/* 803159B4 00311614 80 84 02 68 */ lwz r4, 0x268(r4)
+lbl_803159B8:
+/* 803159B8 00311618 80 BF 00 1C */ lwz r5, 0x1c(r31)
+/* 803159BC 0031161C 88 04 00 20 */ lbz r0, 0x20(r4)
+/* 803159C0 00311620 7C A0 04 30 */ srw r0, r5, r0
+/* 803159C4 00311624 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 803159C8 00311628 A0 84 00 00 */ lhz r4, 0(r4)
+/* 803159CC 0031162C 38 04 FF FF */ addi r0, r4, -1
+/* 803159D0 00311630 7C A0 00 38 */ and r0, r5, r0
+/* 803159D4 00311634 B0 1F 00 28 */ sth r0, 0x28(r31)
+lbl_803159D8:
+/* 803159D8 00311638 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803159DC 0031163C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803159E0 00311640 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 803159E4 00311644 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 803159E8 00311648 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 803159EC 0031164C 7C 08 03 A6 */ mtlr r0
+/* 803159F0 00311650 38 21 00 20 */ addi r1, r1, 0x20
+/* 803159F4 00311654 4E 80 00 20 */ blr
+
+.global VFiPFFILE_finfo
+VFiPFFILE_finfo:
+/* 803159F8 00311658 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 803159FC 0031165C 7C 08 02 A6 */ mflr r0
+/* 80315A00 00311660 3C A0 80 58 */ lis r5, lbl_8057F5C8@ha
+/* 80315A04 00311664 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80315A08 00311668 38 A5 F5 C8 */ addi r5, r5, lbl_8057F5C8@l
+/* 80315A0C 0031166C 7C 05 18 40 */ cmplw r5, r3
+/* 80315A10 00311670 93 E1 00 3C */ stw r31, 0x3c(r1)
+/* 80315A14 00311674 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 80315A18 00311678 7C 7E 1B 78 */ mr r30, r3
+/* 80315A1C 0031167C 93 A1 00 34 */ stw r29, 0x34(r1)
+/* 80315A20 00311680 7C 9D 23 78 */ mr r29, r4
+/* 80315A24 00311684 41 81 00 14 */ bgt lbl_80315A38
+/* 80315A28 00311688 3C 85 00 02 */ addis r4, r5, 2
+/* 80315A2C 0031168C 38 04 7F B8 */ addi r0, r4, 0x7fb8
+/* 80315A30 00311690 7C 00 18 40 */ cmplw r0, r3
+/* 80315A34 00311694 40 80 00 1C */ bge lbl_80315A50
+lbl_80315A38:
+/* 80315A38 00311698 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315A3C 0031169C 38 00 00 0A */ li r0, 0xa
+/* 80315A40 003116A0 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315A44 003116A4 38 60 00 0A */ li r3, 0xa
+/* 80315A48 003116A8 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315A4C 003116AC 48 00 01 C8 */ b lbl_80315C14
+lbl_80315A50:
+/* 80315A50 003116B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80315A54 003116B4 40 82 00 0C */ bne lbl_80315A60
+/* 80315A58 003116B8 3B E0 00 00 */ li r31, 0
+/* 80315A5C 003116BC 48 00 00 0C */ b lbl_80315A68
+lbl_80315A60:
+/* 80315A60 003116C0 80 63 00 08 */ lwz r3, 8(r3)
+/* 80315A64 003116C4 83 E3 02 68 */ lwz r31, 0x268(r3)
+lbl_80315A68:
+/* 80315A68 003116C8 2C 1F 00 00 */ cmpwi r31, 0
+/* 80315A6C 003116CC 40 82 00 1C */ bne lbl_80315A88
+/* 80315A70 003116D0 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315A74 003116D4 38 00 00 26 */ li r0, 0x26
+/* 80315A78 003116D8 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315A7C 003116DC 38 60 00 26 */ li r3, 0x26
+/* 80315A80 003116E0 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315A84 003116E4 48 00 01 90 */ b lbl_80315C14
+lbl_80315A88:
+/* 80315A88 003116E8 7F E3 FB 78 */ mr r3, r31
+/* 80315A8C 003116EC 48 00 38 E1 */ bl VFiPFVOL_CheckForRead
+/* 80315A90 003116F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80315A94 003116F4 41 82 00 24 */ beq lbl_80315AB8
+/* 80315A98 003116F8 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315A9C 003116FC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315AA0 00311700 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 80315AA4 00311704 80 9E 00 08 */ lwz r4, 8(r30)
+/* 80315AA8 00311708 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 80315AAC 0031170C 90 64 18 6C */ stw r3, 0x186c(r4)
+/* 80315AB0 00311710 90 7E 00 18 */ stw r3, 0x18(r30)
+/* 80315AB4 00311714 48 00 01 60 */ b lbl_80315C14
+lbl_80315AB8:
+/* 80315AB8 00311718 2C 1E 00 00 */ cmpwi r30, 0
+/* 80315ABC 0031171C 41 82 00 34 */ beq lbl_80315AF0
+/* 80315AC0 00311720 80 7E 00 08 */ lwz r3, 8(r30)
+/* 80315AC4 00311724 2C 03 00 00 */ cmpwi r3, 0
+/* 80315AC8 00311728 41 82 00 28 */ beq lbl_80315AF0
+/* 80315ACC 0031172C 80 1E 00 00 */ lwz r0, 0(r30)
+/* 80315AD0 00311730 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80315AD4 00311734 41 82 00 1C */ beq lbl_80315AF0
+/* 80315AD8 00311738 80 03 00 00 */ lwz r0, 0(r3)
+/* 80315ADC 0031173C 54 03 07 FE */ clrlwi r3, r0, 0x1f
+/* 80315AE0 00311740 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 80315AE4 00311744 41 86 00 0C */ beq cr1, lbl_80315AF0
+/* 80315AE8 00311748 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80315AEC 0031174C 40 82 00 20 */ bne lbl_80315B0C
+lbl_80315AF0:
+/* 80315AF0 00311750 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315AF4 00311754 38 00 00 26 */ li r0, 0x26
+/* 80315AF8 00311758 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315AFC 0031175C 38 60 00 26 */ li r3, 0x26
+/* 80315B00 00311760 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315B04 00311764 90 1F 18 6C */ stw r0, 0x186c(r31)
+/* 80315B08 00311768 48 00 01 0C */ b lbl_80315C14
+lbl_80315B0C:
+/* 80315B0C 0031176C 41 86 00 08 */ beq cr1, lbl_80315B14
+/* 80315B10 00311770 40 82 00 20 */ bne lbl_80315B30
+lbl_80315B14:
+/* 80315B14 00311774 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315B18 00311778 38 00 00 26 */ li r0, 0x26
+/* 80315B1C 0031177C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315B20 00311780 38 60 00 26 */ li r3, 0x26
+/* 80315B24 00311784 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315B28 00311788 90 1F 18 6C */ stw r0, 0x186c(r31)
+/* 80315B2C 0031178C 48 00 00 E8 */ b lbl_80315C14
+lbl_80315B30:
+/* 80315B30 00311790 2C 1D 00 00 */ cmpwi r29, 0
+/* 80315B34 00311794 40 82 00 2C */ bne lbl_80315B60
+/* 80315B38 00311798 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315B3C 0031179C 38 00 00 0A */ li r0, 0xa
+/* 80315B40 003117A0 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315B44 003117A4 38 60 00 0A */ li r3, 0xa
+/* 80315B48 003117A8 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80315B4C 003117AC 80 9E 00 08 */ lwz r4, 8(r30)
+/* 80315B50 003117B0 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 80315B54 003117B4 90 04 18 6C */ stw r0, 0x186c(r4)
+/* 80315B58 003117B8 90 1E 00 18 */ stw r0, 0x18(r30)
+/* 80315B5C 003117BC 48 00 00 B8 */ b lbl_80315C14
+lbl_80315B60:
+/* 80315B60 003117C0 93 DF 16 08 */ stw r30, 0x1608(r31)
+/* 80315B64 003117C4 7F C3 F3 78 */ mr r3, r30
+/* 80315B68 003117C8 7F A4 EB 78 */ mr r4, r29
+/* 80315B6C 003117CC 81 5E 00 1C */ lwz r10, 0x1c(r30)
+/* 80315B70 003117D0 81 3E 00 20 */ lwz r9, 0x20(r30)
+/* 80315B74 003117D4 81 1E 00 24 */ lwz r8, 0x24(r30)
+/* 80315B78 003117D8 80 FE 00 28 */ lwz r7, 0x28(r30)
+/* 80315B7C 003117DC 80 DE 00 0C */ lwz r6, 0xc(r30)
+/* 80315B80 003117E0 80 BE 00 10 */ lwz r5, 0x10(r30)
+/* 80315B84 003117E4 80 1E 00 14 */ lwz r0, 0x14(r30)
+/* 80315B88 003117E8 91 41 00 18 */ stw r10, 0x18(r1)
+/* 80315B8C 003117EC 91 21 00 1C */ stw r9, 0x1c(r1)
+/* 80315B90 003117F0 91 01 00 20 */ stw r8, 0x20(r1)
+/* 80315B94 003117F4 90 E1 00 24 */ stw r7, 0x24(r1)
+/* 80315B98 003117F8 90 C1 00 08 */ stw r6, 8(r1)
+/* 80315B9C 003117FC 90 A1 00 0C */ stw r5, 0xc(r1)
+/* 80315BA0 00311800 90 01 00 10 */ stw r0, 0x10(r1)
+/* 80315BA4 00311804 4B FF EF 81 */ bl VFiPFFILE_p_finfo
+/* 80315BA8 00311808 81 41 00 18 */ lwz r10, 0x18(r1)
+/* 80315BAC 0031180C 2C 03 00 00 */ cmpwi r3, 0
+/* 80315BB0 00311810 81 21 00 1C */ lwz r9, 0x1c(r1)
+/* 80315BB4 00311814 38 00 00 00 */ li r0, 0
+/* 80315BB8 00311818 81 01 00 20 */ lwz r8, 0x20(r1)
+/* 80315BBC 0031181C 80 E1 00 24 */ lwz r7, 0x24(r1)
+/* 80315BC0 00311820 80 C1 00 08 */ lwz r6, 8(r1)
+/* 80315BC4 00311824 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 80315BC8 00311828 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 80315BCC 0031182C 91 5E 00 1C */ stw r10, 0x1c(r30)
+/* 80315BD0 00311830 91 3E 00 20 */ stw r9, 0x20(r30)
+/* 80315BD4 00311834 91 1E 00 24 */ stw r8, 0x24(r30)
+/* 80315BD8 00311838 90 FE 00 28 */ stw r7, 0x28(r30)
+/* 80315BDC 0031183C 90 DE 00 0C */ stw r6, 0xc(r30)
+/* 80315BE0 00311840 90 BE 00 10 */ stw r5, 0x10(r30)
+/* 80315BE4 00311844 90 9E 00 14 */ stw r4, 0x14(r30)
+/* 80315BE8 00311848 90 1F 16 08 */ stw r0, 0x1608(r31)
+/* 80315BEC 0031184C 41 82 00 24 */ beq lbl_80315C10
+/* 80315BF0 00311850 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80315BF4 00311854 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80315BF8 00311858 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 80315BFC 0031185C 80 9E 00 08 */ lwz r4, 8(r30)
+/* 80315C00 00311860 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 80315C04 00311864 90 64 18 6C */ stw r3, 0x186c(r4)
+/* 80315C08 00311868 90 7E 00 18 */ stw r3, 0x18(r30)
+/* 80315C0C 0031186C 48 00 00 08 */ b lbl_80315C14
+lbl_80315C10:
+/* 80315C10 00311870 38 60 00 00 */ li r3, 0
+lbl_80315C14:
+/* 80315C14 00311874 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80315C18 00311878 83 E1 00 3C */ lwz r31, 0x3c(r1)
+/* 80315C1C 0031187C 83 C1 00 38 */ lwz r30, 0x38(r1)
+/* 80315C20 00311880 83 A1 00 34 */ lwz r29, 0x34(r1)
+/* 80315C24 00311884 7C 08 03 A6 */ mtlr r0
+/* 80315C28 00311888 38 21 00 40 */ addi r1, r1, 0x40
+/* 80315C2C 0031188C 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_path.s b/asm/SDK/VF/pf_path.s
new file mode 100644
index 0000000..8f23358
--- /dev/null
+++ b/asm/SDK/VF/pf_path.s
@@ -0,0 +1,3324 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+VFiPFPATH_DoSplitPath:
+/* 80315C30 00311890 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80315C34 00311894 7C 08 02 A6 */ mflr r0
+/* 80315C38 00311898 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80315C3C 0031189C 39 61 00 40 */ addi r11, r1, 0x40
+/* 80315C40 003118A0 4B EB 14 E5 */ bl _savegpr_26
+/* 80315C44 003118A4 2C 04 00 00 */ cmpwi r4, 0
+/* 80315C48 003118A8 7C 7B 1B 78 */ mr r27, r3
+/* 80315C4C 003118AC 7C 9C 23 78 */ mr r28, r4
+/* 80315C50 003118B0 7C BD 2B 78 */ mr r29, r5
+/* 80315C54 003118B4 7C DE 33 78 */ mr r30, r6
+/* 80315C58 003118B8 40 82 00 0C */ bne lbl_80315C64
+/* 80315C5C 003118BC 38 60 00 0A */ li r3, 0xa
+/* 80315C60 003118C0 48 00 01 B0 */ b lbl_80315E10
+lbl_80315C64:
+/* 80315C64 003118C4 4B FE F6 7D */ bl VFiPFSTR_GetCodeMode
+/* 80315C68 003118C8 7C 7A 1B 78 */ mr r26, r3
+/* 80315C6C 003118CC 7F 83 E3 78 */ mr r3, r28
+/* 80315C70 003118D0 7F 44 D3 78 */ mr r4, r26
+/* 80315C74 003118D4 4B FE F6 65 */ bl VFiPFSTR_SetCodeMode
+/* 80315C78 003118D8 7F A3 EB 78 */ mr r3, r29
+/* 80315C7C 003118DC 7F 44 D3 78 */ mr r4, r26
+/* 80315C80 003118E0 4B FE F6 59 */ bl VFiPFSTR_SetCodeMode
+/* 80315C84 003118E4 38 00 00 00 */ li r0, 0
+/* 80315C88 003118E8 2C 1D 00 00 */ cmpwi r29, 0
+/* 80315C8C 003118EC 90 1C 00 00 */ stw r0, 0(r28)
+/* 80315C90 003118F0 41 82 00 08 */ beq lbl_80315C98
+/* 80315C94 003118F4 90 1D 00 00 */ stw r0, 0(r29)
+lbl_80315C98:
+/* 80315C98 003118F8 7F 63 DB 78 */ mr r3, r27
+/* 80315C9C 003118FC 38 8D 8C F8 */ addi r4, r13, lbl_8063DFB8-_SDA_BASE_
+/* 80315CA0 00311900 38 A0 00 01 */ li r5, 1
+/* 80315CA4 00311904 38 C0 00 01 */ li r6, 1
+/* 80315CA8 00311908 38 E0 00 01 */ li r7, 1
+/* 80315CAC 0031190C 4B FE F9 B5 */ bl VFiPFSTR_StrNCmp
+/* 80315CB0 00311910 2C 03 00 00 */ cmpwi r3, 0
+/* 80315CB4 00311914 40 82 00 10 */ bne lbl_80315CC4
+/* 80315CB8 00311918 7F 63 DB 78 */ mr r3, r27
+/* 80315CBC 0031191C 38 80 00 02 */ li r4, 2
+/* 80315CC0 00311920 4B FE F6 79 */ bl VFiPFSTR_MoveStrPos
+lbl_80315CC4:
+/* 80315CC4 00311924 83 FB 00 00 */ lwz r31, 0(r27)
+/* 80315CC8 00311928 7F C4 F3 78 */ mr r4, r30
+/* 80315CCC 0031192C 38 61 00 18 */ addi r3, r1, 0x18
+/* 80315CD0 00311930 93 E1 00 18 */ stw r31, 0x18(r1)
+/* 80315CD4 00311934 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80315CD8 00311938 93 41 00 24 */ stw r26, 0x24(r1)
+/* 80315CDC 0031193C 48 00 0E 2D */ bl VFiPFPATH_GetNextTokenOfPath
+/* 80315CE0 00311940 2C 03 00 00 */ cmpwi r3, 0
+/* 80315CE4 00311944 41 82 00 08 */ beq lbl_80315CEC
+/* 80315CE8 00311948 48 00 01 28 */ b lbl_80315E10
+lbl_80315CEC:
+/* 80315CEC 0031194C 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 80315CF0 00311950 2C 00 00 00 */ cmpwi r0, 0
+/* 80315CF4 00311954 41 82 00 14 */ beq lbl_80315D08
+/* 80315CF8 00311958 38 61 00 18 */ addi r3, r1, 0x18
+/* 80315CFC 0031195C 4B FE F7 CD */ bl VFiPFSTR_StrLen
+/* 80315D00 00311960 54 60 04 3F */ clrlwi. r0, r3, 0x10
+/* 80315D04 00311964 40 82 00 0C */ bne lbl_80315D10
+lbl_80315D08:
+/* 80315D08 00311968 38 60 00 02 */ li r3, 2
+/* 80315D0C 0031196C 48 00 01 04 */ b lbl_80315E10
+lbl_80315D10:
+/* 80315D10 00311970 80 1B 00 04 */ lwz r0, 4(r27)
+/* 80315D14 00311974 80 A1 00 1C */ lwz r5, 0x1c(r1)
+/* 80315D18 00311978 7C 00 28 40 */ cmplw r0, r5
+/* 80315D1C 0031197C 40 80 00 0C */ bge lbl_80315D28
+/* 80315D20 00311980 38 60 00 02 */ li r3, 2
+/* 80315D24 00311984 48 00 00 EC */ b lbl_80315E10
+lbl_80315D28:
+/* 80315D28 00311988 80 81 00 18 */ lwz r4, 0x18(r1)
+/* 80315D2C 0031198C 80 61 00 20 */ lwz r3, 0x20(r1)
+/* 80315D30 00311990 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80315D34 00311994 90 81 00 08 */ stw r4, 8(r1)
+/* 80315D38 00311998 90 A1 00 0C */ stw r5, 0xc(r1)
+/* 80315D3C 0031199C 90 61 00 10 */ stw r3, 0x10(r1)
+/* 80315D40 003119A0 90 01 00 14 */ stw r0, 0x14(r1)
+lbl_80315D44:
+/* 80315D44 003119A4 38 61 00 18 */ addi r3, r1, 0x18
+/* 80315D48 003119A8 38 8D 8C FC */ addi r4, r13, lbl_8063DFBC-_SDA_BASE_
+/* 80315D4C 003119AC 38 A0 00 02 */ li r5, 2
+/* 80315D50 003119B0 38 C0 00 00 */ li r6, 0
+/* 80315D54 003119B4 38 E0 00 01 */ li r7, 1
+/* 80315D58 003119B8 4B FE F9 09 */ bl VFiPFSTR_StrNCmp
+/* 80315D5C 003119BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80315D60 003119C0 40 82 00 0C */ bne lbl_80315D6C
+/* 80315D64 003119C4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80315D68 003119C8 48 00 00 70 */ b lbl_80315DD8
+lbl_80315D6C:
+/* 80315D6C 003119CC 7F C4 F3 78 */ mr r4, r30
+/* 80315D70 003119D0 38 61 00 18 */ addi r3, r1, 0x18
+/* 80315D74 003119D4 48 00 0D 95 */ bl VFiPFPATH_GetNextTokenOfPath
+/* 80315D78 003119D8 2C 03 00 00 */ cmpwi r3, 0
+/* 80315D7C 003119DC 41 82 00 08 */ beq lbl_80315D84
+/* 80315D80 003119E0 48 00 00 90 */ b lbl_80315E10
+lbl_80315D84:
+/* 80315D84 003119E4 38 61 00 18 */ addi r3, r1, 0x18
+/* 80315D88 003119E8 4B FE F7 41 */ bl VFiPFSTR_StrLen
+/* 80315D8C 003119EC 54 60 04 3F */ clrlwi. r0, r3, 0x10
+/* 80315D90 003119F0 40 82 00 0C */ bne lbl_80315D9C
+/* 80315D94 003119F4 38 60 00 02 */ li r3, 2
+/* 80315D98 003119F8 48 00 00 78 */ b lbl_80315E10
+lbl_80315D9C:
+/* 80315D9C 003119FC 80 1B 00 04 */ lwz r0, 4(r27)
+/* 80315DA0 00311A00 80 A1 00 1C */ lwz r5, 0x1c(r1)
+/* 80315DA4 00311A04 7C 00 28 40 */ cmplw r0, r5
+/* 80315DA8 00311A08 41 80 00 30 */ blt lbl_80315DD8
+/* 80315DAC 00311A0C 80 81 00 18 */ lwz r4, 0x18(r1)
+/* 80315DB0 00311A10 2C 04 00 00 */ cmpwi r4, 0
+/* 80315DB4 00311A14 41 82 00 24 */ beq lbl_80315DD8
+/* 80315DB8 00311A18 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80315DBC 00311A1C 80 61 00 20 */ lwz r3, 0x20(r1)
+/* 80315DC0 00311A20 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80315DC4 00311A24 90 81 00 08 */ stw r4, 8(r1)
+/* 80315DC8 00311A28 90 A1 00 0C */ stw r5, 0xc(r1)
+/* 80315DCC 00311A2C 90 61 00 10 */ stw r3, 0x10(r1)
+/* 80315DD0 00311A30 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80315DD4 00311A34 4B FF FF 70 */ b lbl_80315D44
+lbl_80315DD8:
+/* 80315DD8 00311A38 80 1B 00 00 */ lwz r0, 0(r27)
+/* 80315DDC 00311A3C 2C 1D 00 00 */ cmpwi r29, 0
+/* 80315DE0 00311A40 90 1C 00 00 */ stw r0, 0(r28)
+/* 80315DE4 00311A44 93 FC 00 04 */ stw r31, 4(r28)
+/* 80315DE8 00311A48 41 82 00 24 */ beq lbl_80315E0C
+/* 80315DEC 00311A4C 80 A1 00 08 */ lwz r5, 8(r1)
+/* 80315DF0 00311A50 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 80315DF4 00311A54 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 80315DF8 00311A58 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80315DFC 00311A5C 90 BD 00 00 */ stw r5, 0(r29)
+/* 80315E00 00311A60 90 9D 00 04 */ stw r4, 4(r29)
+/* 80315E04 00311A64 90 7D 00 08 */ stw r3, 8(r29)
+/* 80315E08 00311A68 90 1D 00 0C */ stw r0, 0xc(r29)
+lbl_80315E0C:
+/* 80315E0C 00311A6C 38 60 00 00 */ li r3, 0
+lbl_80315E10:
+/* 80315E10 00311A70 39 61 00 40 */ addi r11, r1, 0x40
+/* 80315E14 00311A74 4B EB 13 5D */ bl _restgpr_26
+/* 80315E18 00311A78 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80315E1C 00311A7C 7C 08 03 A6 */ mtlr r0
+/* 80315E20 00311A80 38 21 00 40 */ addi r1, r1, 0x40
+/* 80315E24 00311A84 4E 80 00 20 */ blr
+
+.global VFiPFPATH_GetNextCharOfPattern
+VFiPFPATH_GetNextCharOfPattern:
+/* 80315E28 00311A88 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80315E2C 00311A8C 7C 08 02 A6 */ mflr r0
+/* 80315E30 00311A90 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80315E34 00311A94 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80315E38 00311A98 7C 9F 23 78 */ mr r31, r4
+/* 80315E3C 00311A9C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80315E40 00311AA0 7C 7E 1B 78 */ mr r30, r3
+/* 80315E44 00311AA4 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80315E48 00311AA8 28 00 00 01 */ cmplwi r0, 1
+/* 80315E4C 00311AAC 40 82 00 C4 */ bne lbl_80315F10
+/* 80315E50 00311AB0 80 A3 00 00 */ lwz r5, 0(r3)
+/* 80315E54 00311AB4 38 00 00 00 */ li r0, 0
+/* 80315E58 00311AB8 38 85 00 01 */ addi r4, r5, 1
+/* 80315E5C 00311ABC 90 83 00 00 */ stw r4, 0(r3)
+/* 80315E60 00311AC0 88 85 00 00 */ lbz r4, 0(r5)
+/* 80315E64 00311AC4 7C 86 07 75 */ extsb. r6, r4
+/* 80315E68 00311AC8 98 81 00 10 */ stb r4, 0x10(r1)
+/* 80315E6C 00311ACC 98 01 00 11 */ stb r0, 0x11(r1)
+/* 80315E70 00311AD0 41 82 00 14 */ beq lbl_80315E84
+/* 80315E74 00311AD4 80 83 00 04 */ lwz r4, 4(r3)
+/* 80315E78 00311AD8 80 03 00 00 */ lwz r0, 0(r3)
+/* 80315E7C 00311ADC 7C 04 00 40 */ cmplw r4, r0
+/* 80315E80 00311AE0 40 80 00 0C */ bge lbl_80315E8C
+lbl_80315E84:
+/* 80315E84 00311AE4 38 60 00 00 */ li r3, 0
+/* 80315E88 00311AE8 48 00 02 48 */ b lbl_803160D0
+lbl_80315E8C:
+/* 80315E8C 00311AEC 3C A0 80 58 */ lis r5, lbl_8057F5C8@ha
+/* 80315E90 00311AF0 7C C3 33 78 */ mr r3, r6
+/* 80315E94 00311AF4 38 A5 F5 C8 */ addi r5, r5, lbl_8057F5C8@l
+/* 80315E98 00311AF8 38 80 00 01 */ li r4, 1
+/* 80315E9C 00311AFC 81 85 00 30 */ lwz r12, 0x30(r5)
+/* 80315EA0 00311B00 7D 89 03 A6 */ mtctr r12
+/* 80315EA4 00311B04 4E 80 04 21 */ bctrl
+/* 80315EA8 00311B08 2C 03 00 00 */ cmpwi r3, 0
+/* 80315EAC 00311B0C 41 82 00 30 */ beq lbl_80315EDC
+/* 80315EB0 00311B10 80 7E 00 00 */ lwz r3, 0(r30)
+/* 80315EB4 00311B14 88 03 00 00 */ lbz r0, 0(r3)
+/* 80315EB8 00311B18 38 63 00 01 */ addi r3, r3, 1
+/* 80315EBC 00311B1C 98 01 00 11 */ stb r0, 0x11(r1)
+/* 80315EC0 00311B20 90 7E 00 00 */ stw r3, 0(r30)
+/* 80315EC4 00311B24 88 61 00 10 */ lbz r3, 0x10(r1)
+/* 80315EC8 00311B28 88 01 00 11 */ lbz r0, 0x11(r1)
+/* 80315ECC 00311B2C 54 63 40 2E */ slwi r3, r3, 8
+/* 80315ED0 00311B30 7C 03 02 14 */ add r0, r3, r0
+/* 80315ED4 00311B34 B0 01 00 0C */ sth r0, 0xc(r1)
+/* 80315ED8 00311B38 48 00 00 10 */ b lbl_80315EE8
+lbl_80315EDC:
+/* 80315EDC 00311B3C 88 01 00 10 */ lbz r0, 0x10(r1)
+/* 80315EE0 00311B40 7C 00 07 74 */ extsb r0, r0
+/* 80315EE4 00311B44 B0 01 00 0C */ sth r0, 0xc(r1)
+lbl_80315EE8:
+/* 80315EE8 00311B48 2C 1F 00 00 */ cmpwi r31, 0
+/* 80315EEC 00311B4C 41 82 00 EC */ beq lbl_80315FD8
+/* 80315EF0 00311B50 3C A0 80 58 */ lis r5, lbl_8057F5C8@ha
+/* 80315EF4 00311B54 38 61 00 10 */ addi r3, r1, 0x10
+/* 80315EF8 00311B58 38 A5 F5 C8 */ addi r5, r5, lbl_8057F5C8@l
+/* 80315EFC 00311B5C 38 81 00 0C */ addi r4, r1, 0xc
+/* 80315F00 00311B60 81 85 00 24 */ lwz r12, 0x24(r5)
+/* 80315F04 00311B64 7D 89 03 A6 */ mtctr r12
+/* 80315F08 00311B68 4E 80 04 21 */ bctrl
+/* 80315F0C 00311B6C 48 00 00 CC */ b lbl_80315FD8
+lbl_80315F10:
+/* 80315F10 00311B70 80 A3 00 00 */ lwz r5, 0(r3)
+/* 80315F14 00311B74 38 00 00 00 */ li r0, 0
+/* 80315F18 00311B78 A0 A5 00 00 */ lhz r5, 0(r5)
+/* 80315F1C 00311B7C 98 A1 00 10 */ stb r5, 0x10(r1)
+/* 80315F20 00311B80 80 A3 00 00 */ lwz r5, 0(r3)
+/* 80315F24 00311B84 A0 A5 00 00 */ lhz r5, 0(r5)
+/* 80315F28 00311B88 7C A5 46 70 */ srawi r5, r5, 8
+/* 80315F2C 00311B8C 98 A1 00 11 */ stb r5, 0x11(r1)
+/* 80315F30 00311B90 80 A3 00 00 */ lwz r5, 0(r3)
+/* 80315F34 00311B94 38 A5 00 02 */ addi r5, r5, 2
+/* 80315F38 00311B98 90 A3 00 00 */ stw r5, 0(r3)
+/* 80315F3C 00311B9C 88 C1 00 10 */ lbz r6, 0x10(r1)
+/* 80315F40 00311BA0 98 01 00 12 */ stb r0, 0x12(r1)
+/* 80315F44 00311BA4 7C C0 07 75 */ extsb. r0, r6
+/* 80315F48 00311BA8 40 82 00 10 */ bne lbl_80315F58
+/* 80315F4C 00311BAC 88 01 00 11 */ lbz r0, 0x11(r1)
+/* 80315F50 00311BB0 7C 00 07 75 */ extsb. r0, r0
+/* 80315F54 00311BB4 41 82 00 14 */ beq lbl_80315F68
+lbl_80315F58:
+/* 80315F58 00311BB8 80 A3 00 04 */ lwz r5, 4(r3)
+/* 80315F5C 00311BBC 80 03 00 00 */ lwz r0, 0(r3)
+/* 80315F60 00311BC0 7C 05 00 40 */ cmplw r5, r0
+/* 80315F64 00311BC4 40 80 00 0C */ bge lbl_80315F70
+lbl_80315F68:
+/* 80315F68 00311BC8 38 60 00 00 */ li r3, 0
+/* 80315F6C 00311BCC 48 00 01 64 */ b lbl_803160D0
+lbl_80315F70:
+/* 80315F70 00311BD0 88 01 00 11 */ lbz r0, 0x11(r1)
+/* 80315F74 00311BD4 2C 04 00 00 */ cmpwi r4, 0
+/* 80315F78 00311BD8 54 00 40 2E */ slwi r0, r0, 8
+/* 80315F7C 00311BDC 7C 00 32 14 */ add r0, r0, r6
+/* 80315F80 00311BE0 B0 01 00 0C */ sth r0, 0xc(r1)
+/* 80315F84 00311BE4 40 82 00 54 */ bne lbl_80315FD8
+/* 80315F88 00311BE8 3F C0 80 58 */ lis r30, lbl_8057F5C8@ha
+/* 80315F8C 00311BEC 38 61 00 0C */ addi r3, r1, 0xc
+/* 80315F90 00311BF0 3B DE F5 C8 */ addi r30, r30, lbl_8057F5C8@l
+/* 80315F94 00311BF4 38 81 00 0A */ addi r4, r1, 0xa
+/* 80315F98 00311BF8 81 9E 00 28 */ lwz r12, 0x28(r30)
+/* 80315F9C 00311BFC 7D 89 03 A6 */ mtctr r12
+/* 80315FA0 00311C00 4E 80 04 21 */ bctrl
+/* 80315FA4 00311C04 A0 01 00 0A */ lhz r0, 0xa(r1)
+/* 80315FA8 00311C08 38 80 00 01 */ li r4, 1
+/* 80315FAC 00311C0C 81 9E 00 30 */ lwz r12, 0x30(r30)
+/* 80315FB0 00311C10 7C 03 46 70 */ srawi r3, r0, 8
+/* 80315FB4 00311C14 7D 89 03 A6 */ mtctr r12
+/* 80315FB8 00311C18 4E 80 04 21 */ bctrl
+/* 80315FBC 00311C1C 2C 03 00 00 */ cmpwi r3, 0
+/* 80315FC0 00311C20 41 82 00 0C */ beq lbl_80315FCC
+/* 80315FC4 00311C24 A0 01 00 0A */ lhz r0, 0xa(r1)
+/* 80315FC8 00311C28 48 00 00 0C */ b lbl_80315FD4
+lbl_80315FCC:
+/* 80315FCC 00311C2C 88 01 00 10 */ lbz r0, 0x10(r1)
+/* 80315FD0 00311C30 7C 00 07 74 */ extsb r0, r0
+lbl_80315FD4:
+/* 80315FD4 00311C34 B0 01 00 0C */ sth r0, 0xc(r1)
+lbl_80315FD8:
+/* 80315FD8 00311C38 A0 61 00 0C */ lhz r3, 0xc(r1)
+/* 80315FDC 00311C3C 38 00 00 00 */ li r0, 0
+/* 80315FE0 00311C40 28 03 00 61 */ cmplwi r3, 0x61
+/* 80315FE4 00311C44 41 80 00 10 */ blt lbl_80315FF4
+/* 80315FE8 00311C48 28 03 00 7A */ cmplwi r3, 0x7a
+/* 80315FEC 00311C4C 41 81 00 08 */ bgt lbl_80315FF4
+/* 80315FF0 00311C50 38 00 00 01 */ li r0, 1
+lbl_80315FF4:
+/* 80315FF4 00311C54 2C 00 00 00 */ cmpwi r0, 0
+/* 80315FF8 00311C58 41 82 00 08 */ beq lbl_80316000
+/* 80315FFC 00311C5C 38 63 FF E0 */ addi r3, r3, -32
+lbl_80316000:
+/* 80316000 00311C60 2C 1F 00 00 */ cmpwi r31, 0
+/* 80316004 00311C64 B0 61 00 0C */ sth r3, 0xc(r1)
+/* 80316008 00311C68 41 82 00 40 */ beq lbl_80316048
+/* 8031600C 00311C6C 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 80316010 00311C70 28 03 FF 41 */ cmplwi r3, 0xff41
+/* 80316014 00311C74 41 80 00 1C */ blt lbl_80316030
+/* 80316018 00311C78 28 03 FF 5A */ cmplwi r3, 0xff5a
+/* 8031601C 00311C7C 41 81 00 14 */ bgt lbl_80316030
+/* 80316020 00311C80 38 03 FF E0 */ addi r0, r3, -32
+/* 80316024 00311C84 38 60 00 01 */ li r3, 1
+/* 80316028 00311C88 B0 01 00 08 */ sth r0, 8(r1)
+/* 8031602C 00311C8C 48 00 00 08 */ b lbl_80316034
+lbl_80316030:
+/* 80316030 00311C90 38 60 00 00 */ li r3, 0
+lbl_80316034:
+/* 80316034 00311C94 28 03 00 01 */ cmplwi r3, 1
+/* 80316038 00311C98 40 82 00 94 */ bne lbl_803160CC
+/* 8031603C 00311C9C A0 01 00 08 */ lhz r0, 8(r1)
+/* 80316040 00311CA0 B0 01 00 0C */ sth r0, 0xc(r1)
+/* 80316044 00311CA4 48 00 00 88 */ b lbl_803160CC
+lbl_80316048:
+/* 80316048 00311CA8 3C A0 80 58 */ lis r5, lbl_8057F5C8@ha
+/* 8031604C 00311CAC 38 61 00 0C */ addi r3, r1, 0xc
+/* 80316050 00311CB0 38 A5 F5 C8 */ addi r5, r5, lbl_8057F5C8@l
+/* 80316054 00311CB4 38 81 00 08 */ addi r4, r1, 8
+/* 80316058 00311CB8 81 85 00 24 */ lwz r12, 0x24(r5)
+/* 8031605C 00311CBC 7D 89 03 A6 */ mtctr r12
+/* 80316060 00311CC0 4E 80 04 21 */ bctrl
+/* 80316064 00311CC4 A0 61 00 08 */ lhz r3, 8(r1)
+/* 80316068 00311CC8 28 03 FF 41 */ cmplwi r3, 0xff41
+/* 8031606C 00311CCC 41 80 00 1C */ blt lbl_80316088
+/* 80316070 00311CD0 28 03 FF 5A */ cmplwi r3, 0xff5a
+/* 80316074 00311CD4 41 81 00 14 */ bgt lbl_80316088
+/* 80316078 00311CD8 38 03 FF E0 */ addi r0, r3, -32
+/* 8031607C 00311CDC 38 60 00 01 */ li r3, 1
+/* 80316080 00311CE0 B0 01 00 08 */ sth r0, 8(r1)
+/* 80316084 00311CE4 48 00 00 08 */ b lbl_8031608C
+lbl_80316088:
+/* 80316088 00311CE8 38 60 00 00 */ li r3, 0
+lbl_8031608C:
+/* 8031608C 00311CEC 28 03 00 01 */ cmplwi r3, 1
+/* 80316090 00311CF0 40 82 00 28 */ bne lbl_803160B8
+/* 80316094 00311CF4 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80316098 00311CF8 38 61 00 08 */ addi r3, r1, 8
+/* 8031609C 00311CFC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 803160A0 00311D00 81 84 00 28 */ lwz r12, 0x28(r4)
+/* 803160A4 00311D04 7C 64 1B 78 */ mr r4, r3
+/* 803160A8 00311D08 7D 89 03 A6 */ mtctr r12
+/* 803160AC 00311D0C 4E 80 04 21 */ bctrl
+/* 803160B0 00311D10 38 60 00 01 */ li r3, 1
+/* 803160B4 00311D14 48 00 00 08 */ b lbl_803160BC
+lbl_803160B8:
+/* 803160B8 00311D18 38 60 00 00 */ li r3, 0
+lbl_803160BC:
+/* 803160BC 00311D1C 28 03 00 01 */ cmplwi r3, 1
+/* 803160C0 00311D20 40 82 00 0C */ bne lbl_803160CC
+/* 803160C4 00311D24 A0 01 00 08 */ lhz r0, 8(r1)
+/* 803160C8 00311D28 B0 01 00 0C */ sth r0, 0xc(r1)
+lbl_803160CC:
+/* 803160CC 00311D2C A0 61 00 0C */ lhz r3, 0xc(r1)
+lbl_803160D0:
+/* 803160D0 00311D30 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803160D4 00311D34 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803160D8 00311D38 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 803160DC 00311D3C 7C 08 03 A6 */ mtlr r0
+/* 803160E0 00311D40 38 21 00 20 */ addi r1, r1, 0x20
+/* 803160E4 00311D44 4E 80 00 20 */ blr
+
+.global VFiPFPATH_DoMatchFileNameWithPattern
+VFiPFPATH_DoMatchFileNameWithPattern:
+/* 803160E8 00311D48 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 803160EC 00311D4C 7C 08 02 A6 */ mflr r0
+/* 803160F0 00311D50 90 01 00 54 */ stw r0, 0x54(r1)
+/* 803160F4 00311D54 39 61 00 50 */ addi r11, r1, 0x50
+/* 803160F8 00311D58 4B EB 10 25 */ bl _savegpr_24
+/* 803160FC 00311D5C 3F A0 80 58 */ lis r29, lbl_8057F5C8@ha
+/* 80316100 00311D60 7C 78 1B 78 */ mr r24, r3
+/* 80316104 00311D64 7C 99 23 78 */ mr r25, r4
+/* 80316108 00311D68 7C BA 2B 78 */ mr r26, r5
+/* 8031610C 00311D6C 7C DB 33 78 */ mr r27, r6
+/* 80316110 00311D70 7C FC 3B 78 */ mr r28, r7
+/* 80316114 00311D74 3B BD F5 C8 */ addi r29, r29, lbl_8057F5C8@l
+/* 80316118 00311D78 48 00 04 98 */ b lbl_803165B0
+lbl_8031611C:
+/* 8031611C 00311D7C 57 40 04 3E */ clrlwi r0, r26, 0x10
+/* 80316120 00311D80 2C 00 00 3F */ cmpwi r0, 0x3f
+/* 80316124 00311D84 41 82 00 14 */ beq lbl_80316138
+/* 80316128 00311D88 40 80 03 40 */ bge lbl_80316468
+/* 8031612C 00311D8C 2C 00 00 2A */ cmpwi r0, 0x2a
+/* 80316130 00311D90 41 82 00 18 */ beq lbl_80316148
+/* 80316134 00311D94 48 00 03 34 */ b lbl_80316468
+lbl_80316138:
+/* 80316138 00311D98 57 00 04 3F */ clrlwi. r0, r24, 0x10
+/* 8031613C 00311D9C 40 82 03 44 */ bne lbl_80316480
+/* 80316140 00311DA0 38 60 00 00 */ li r3, 0
+/* 80316144 00311DA4 48 00 04 80 */ b lbl_803165C4
+lbl_80316148:
+/* 80316148 00311DA8 7F 63 DB 78 */ mr r3, r27
+/* 8031614C 00311DAC 7F 84 E3 78 */ mr r4, r28
+/* 80316150 00311DB0 4B FF FC D9 */ bl VFiPFPATH_GetNextCharOfPattern
+/* 80316154 00311DB4 7C 7A 1B 78 */ mr r26, r3
+/* 80316158 00311DB8 48 00 00 14 */ b lbl_8031616C
+lbl_8031615C:
+/* 8031615C 00311DBC 7F 63 DB 78 */ mr r3, r27
+/* 80316160 00311DC0 7F 84 E3 78 */ mr r4, r28
+/* 80316164 00311DC4 4B FF FC C5 */ bl VFiPFPATH_GetNextCharOfPattern
+/* 80316168 00311DC8 7C 7A 1B 78 */ mr r26, r3
+lbl_8031616C:
+/* 8031616C 00311DCC 57 40 04 3E */ clrlwi r0, r26, 0x10
+/* 80316170 00311DD0 28 00 00 2A */ cmplwi r0, 0x2a
+/* 80316174 00311DD4 41 82 FF E8 */ beq lbl_8031615C
+/* 80316178 00311DD8 28 00 00 3F */ cmplwi r0, 0x3f
+/* 8031617C 00311DDC 41 82 FF E0 */ beq lbl_8031615C
+/* 80316180 00311DE0 2C 00 00 00 */ cmpwi r0, 0
+/* 80316184 00311DE4 40 82 00 0C */ bne lbl_80316190
+/* 80316188 00311DE8 38 60 00 01 */ li r3, 1
+/* 8031618C 00311DEC 48 00 04 38 */ b lbl_803165C4
+lbl_80316190:
+/* 80316190 00311DF0 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80316194 00311DF4 3B E3 F5 C8 */ addi r31, r3, lbl_8057F5C8@l
+/* 80316198 00311DF8 48 00 02 C0 */ b lbl_80316458
+lbl_8031619C:
+/* 8031619C 00311DFC 57 03 04 3E */ clrlwi r3, r24, 0x10
+/* 803161A0 00311E00 57 40 04 3E */ clrlwi r0, r26, 0x10
+/* 803161A4 00311E04 7C 03 00 40 */ cmplw r3, r0
+/* 803161A8 00311E08 40 82 01 90 */ bne lbl_80316338
+/* 803161AC 00311E0C 80 B9 00 00 */ lwz r5, 0(r25)
+/* 803161B0 00311E10 80 19 00 04 */ lwz r0, 4(r25)
+/* 803161B4 00311E14 90 A1 00 18 */ stw r5, 0x18(r1)
+/* 803161B8 00311E18 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 803161BC 00311E1C 80 79 00 08 */ lwz r3, 8(r25)
+/* 803161C0 00311E20 80 19 00 0C */ lwz r0, 0xc(r25)
+/* 803161C4 00311E24 2C 03 00 00 */ cmpwi r3, 0
+/* 803161C8 00311E28 90 61 00 20 */ stw r3, 0x20(r1)
+/* 803161CC 00311E2C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803161D0 00311E30 80 7B 00 00 */ lwz r3, 0(r27)
+/* 803161D4 00311E34 80 1B 00 04 */ lwz r0, 4(r27)
+/* 803161D8 00311E38 90 61 00 08 */ stw r3, 8(r1)
+/* 803161DC 00311E3C 90 01 00 0C */ stw r0, 0xc(r1)
+/* 803161E0 00311E40 80 7B 00 08 */ lwz r3, 8(r27)
+/* 803161E4 00311E44 80 1B 00 0C */ lwz r0, 0xc(r27)
+/* 803161E8 00311E48 90 61 00 10 */ stw r3, 0x10(r1)
+/* 803161EC 00311E4C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803161F0 00311E50 41 82 00 80 */ beq lbl_80316270
+/* 803161F4 00311E54 A0 61 00 24 */ lhz r3, 0x24(r1)
+/* 803161F8 00311E58 28 03 02 0A */ cmplwi r3, 0x20a
+/* 803161FC 00311E5C 40 81 00 0C */ ble lbl_80316208
+/* 80316200 00311E60 3B 00 00 00 */ li r24, 0
+/* 80316204 00311E64 48 00 00 FC */ b lbl_80316300
+lbl_80316208:
+/* 80316208 00311E68 7C 85 1A 2E */ lhzx r4, r5, r3
+/* 8031620C 00311E6C 38 63 00 02 */ addi r3, r3, 2
+/* 80316210 00311E70 38 00 00 00 */ li r0, 0
+/* 80316214 00311E74 28 04 00 61 */ cmplwi r4, 0x61
+/* 80316218 00311E78 B0 61 00 24 */ sth r3, 0x24(r1)
+/* 8031621C 00311E7C 41 80 00 10 */ blt lbl_8031622C
+/* 80316220 00311E80 28 04 00 7A */ cmplwi r4, 0x7a
+/* 80316224 00311E84 41 81 00 08 */ bgt lbl_8031622C
+/* 80316228 00311E88 38 00 00 01 */ li r0, 1
+lbl_8031622C:
+/* 8031622C 00311E8C 2C 00 00 00 */ cmpwi r0, 0
+/* 80316230 00311E90 41 82 00 08 */ beq lbl_80316238
+/* 80316234 00311E94 38 84 FF E0 */ addi r4, r4, -32
+lbl_80316238:
+/* 80316238 00311E98 54 98 04 3E */ clrlwi r24, r4, 0x10
+/* 8031623C 00311E9C 28 18 FF 41 */ cmplwi r24, 0xff41
+/* 80316240 00311EA0 41 80 00 1C */ blt lbl_8031625C
+/* 80316244 00311EA4 28 18 FF 5A */ cmplwi r24, 0xff5a
+/* 80316248 00311EA8 41 81 00 14 */ bgt lbl_8031625C
+/* 8031624C 00311EAC 38 18 FF E0 */ addi r0, r24, -32
+/* 80316250 00311EB0 38 60 00 01 */ li r3, 1
+/* 80316254 00311EB4 54 1E 04 3E */ clrlwi r30, r0, 0x10
+/* 80316258 00311EB8 48 00 00 08 */ b lbl_80316260
+lbl_8031625C:
+/* 8031625C 00311EBC 38 60 00 00 */ li r3, 0
+lbl_80316260:
+/* 80316260 00311EC0 28 03 00 01 */ cmplwi r3, 1
+/* 80316264 00311EC4 40 82 00 9C */ bne lbl_80316300
+/* 80316268 00311EC8 7F D8 F3 78 */ mr r24, r30
+/* 8031626C 00311ECC 48 00 00 94 */ b lbl_80316300
+lbl_80316270:
+/* 80316270 00311ED0 A0 61 00 24 */ lhz r3, 0x24(r1)
+/* 80316274 00311ED4 28 03 00 0C */ cmplwi r3, 0xc
+/* 80316278 00311ED8 41 80 00 0C */ blt lbl_80316284
+/* 8031627C 00311EDC 3B 00 00 00 */ li r24, 0
+/* 80316280 00311EE0 48 00 00 80 */ b lbl_80316300
+lbl_80316284:
+/* 80316284 00311EE4 38 03 00 01 */ addi r0, r3, 1
+/* 80316288 00311EE8 81 9F 00 30 */ lwz r12, 0x30(r31)
+/* 8031628C 00311EEC B0 01 00 24 */ sth r0, 0x24(r1)
+/* 80316290 00311EF0 38 80 00 01 */ li r4, 1
+/* 80316294 00311EF4 7F 05 18 AE */ lbzx r24, r5, r3
+/* 80316298 00311EF8 7F 18 07 74 */ extsb r24, r24
+/* 8031629C 00311EFC 7F 03 C3 78 */ mr r3, r24
+/* 803162A0 00311F00 7D 89 03 A6 */ mtctr r12
+/* 803162A4 00311F04 4E 80 04 21 */ bctrl
+/* 803162A8 00311F08 2C 03 00 00 */ cmpwi r3, 0
+/* 803162AC 00311F0C 41 82 00 24 */ beq lbl_803162D0
+/* 803162B0 00311F10 A0 81 00 24 */ lhz r4, 0x24(r1)
+/* 803162B4 00311F14 57 00 44 2E */ rlwinm r0, r24, 8, 0x10, 0x17
+/* 803162B8 00311F18 80 A1 00 18 */ lwz r5, 0x18(r1)
+/* 803162BC 00311F1C 38 64 00 01 */ addi r3, r4, 1
+/* 803162C0 00311F20 B0 61 00 24 */ sth r3, 0x24(r1)
+/* 803162C4 00311F24 7C 65 20 AE */ lbzx r3, r5, r4
+/* 803162C8 00311F28 7C 00 1A 14 */ add r0, r0, r3
+/* 803162CC 00311F2C 54 18 04 3E */ clrlwi r24, r0, 0x10
+lbl_803162D0:
+/* 803162D0 00311F30 57 00 04 3E */ clrlwi r0, r24, 0x10
+/* 803162D4 00311F34 38 60 00 00 */ li r3, 0
+/* 803162D8 00311F38 28 00 00 61 */ cmplwi r0, 0x61
+/* 803162DC 00311F3C 41 80 00 10 */ blt lbl_803162EC
+/* 803162E0 00311F40 28 00 00 7A */ cmplwi r0, 0x7a
+/* 803162E4 00311F44 41 81 00 08 */ bgt lbl_803162EC
+/* 803162E8 00311F48 38 60 00 01 */ li r3, 1
+lbl_803162EC:
+/* 803162EC 00311F4C 2C 03 00 00 */ cmpwi r3, 0
+/* 803162F0 00311F50 57 03 04 3E */ clrlwi r3, r24, 0x10
+/* 803162F4 00311F54 41 82 00 08 */ beq lbl_803162FC
+/* 803162F8 00311F58 38 63 FF E0 */ addi r3, r3, -32
+lbl_803162FC:
+/* 803162FC 00311F5C 54 78 04 3E */ clrlwi r24, r3, 0x10
+lbl_80316300:
+/* 80316300 00311F60 7F 84 E3 78 */ mr r4, r28
+/* 80316304 00311F64 38 61 00 08 */ addi r3, r1, 8
+/* 80316308 00311F68 4B FF FB 21 */ bl VFiPFPATH_GetNextCharOfPattern
+/* 8031630C 00311F6C 7C 7A 1B 78 */ mr r26, r3
+/* 80316310 00311F70 7F 87 E3 78 */ mr r7, r28
+/* 80316314 00311F74 57 03 04 3E */ clrlwi r3, r24, 0x10
+/* 80316318 00311F78 38 81 00 18 */ addi r4, r1, 0x18
+/* 8031631C 00311F7C 57 45 04 3E */ clrlwi r5, r26, 0x10
+/* 80316320 00311F80 38 C1 00 08 */ addi r6, r1, 8
+/* 80316324 00311F84 4B FF FD C5 */ bl VFiPFPATH_DoMatchFileNameWithPattern
+/* 80316328 00311F88 2C 03 00 00 */ cmpwi r3, 0
+/* 8031632C 00311F8C 41 82 00 0C */ beq lbl_80316338
+/* 80316330 00311F90 38 60 00 01 */ li r3, 1
+/* 80316334 00311F94 48 00 02 90 */ b lbl_803165C4
+lbl_80316338:
+/* 80316338 00311F98 80 19 00 08 */ lwz r0, 8(r25)
+/* 8031633C 00311F9C 2C 00 00 00 */ cmpwi r0, 0
+/* 80316340 00311FA0 41 82 00 84 */ beq lbl_803163C4
+/* 80316344 00311FA4 A0 B9 00 0C */ lhz r5, 0xc(r25)
+/* 80316348 00311FA8 28 05 02 0A */ cmplwi r5, 0x20a
+/* 8031634C 00311FAC 40 81 00 0C */ ble lbl_80316358
+/* 80316350 00311FB0 3B 00 00 00 */ li r24, 0
+/* 80316354 00311FB4 48 00 01 04 */ b lbl_80316458
+lbl_80316358:
+/* 80316358 00311FB8 80 99 00 00 */ lwz r4, 0(r25)
+/* 8031635C 00311FBC 38 65 00 02 */ addi r3, r5, 2
+/* 80316360 00311FC0 38 00 00 00 */ li r0, 0
+/* 80316364 00311FC4 7C 84 2A 2E */ lhzx r4, r4, r5
+/* 80316368 00311FC8 28 04 00 61 */ cmplwi r4, 0x61
+/* 8031636C 00311FCC B0 79 00 0C */ sth r3, 0xc(r25)
+/* 80316370 00311FD0 41 80 00 10 */ blt lbl_80316380
+/* 80316374 00311FD4 28 04 00 7A */ cmplwi r4, 0x7a
+/* 80316378 00311FD8 41 81 00 08 */ bgt lbl_80316380
+/* 8031637C 00311FDC 38 00 00 01 */ li r0, 1
+lbl_80316380:
+/* 80316380 00311FE0 2C 00 00 00 */ cmpwi r0, 0
+/* 80316384 00311FE4 41 82 00 08 */ beq lbl_8031638C
+/* 80316388 00311FE8 38 84 FF E0 */ addi r4, r4, -32
+lbl_8031638C:
+/* 8031638C 00311FEC 54 98 04 3E */ clrlwi r24, r4, 0x10
+/* 80316390 00311FF0 28 18 FF 41 */ cmplwi r24, 0xff41
+/* 80316394 00311FF4 41 80 00 1C */ blt lbl_803163B0
+/* 80316398 00311FF8 28 18 FF 5A */ cmplwi r24, 0xff5a
+/* 8031639C 00311FFC 41 81 00 14 */ bgt lbl_803163B0
+/* 803163A0 00312000 38 18 FF E0 */ addi r0, r24, -32
+/* 803163A4 00312004 38 60 00 01 */ li r3, 1
+/* 803163A8 00312008 54 1D 04 3E */ clrlwi r29, r0, 0x10
+/* 803163AC 0031200C 48 00 00 08 */ b lbl_803163B4
+lbl_803163B0:
+/* 803163B0 00312010 38 60 00 00 */ li r3, 0
+lbl_803163B4:
+/* 803163B4 00312014 28 03 00 01 */ cmplwi r3, 1
+/* 803163B8 00312018 40 82 00 A0 */ bne lbl_80316458
+/* 803163BC 0031201C 7F B8 EB 78 */ mr r24, r29
+/* 803163C0 00312020 48 00 00 98 */ b lbl_80316458
+lbl_803163C4:
+/* 803163C4 00312024 A0 B9 00 0C */ lhz r5, 0xc(r25)
+/* 803163C8 00312028 28 05 00 0C */ cmplwi r5, 0xc
+/* 803163CC 0031202C 41 80 00 0C */ blt lbl_803163D8
+/* 803163D0 00312030 3B 00 00 00 */ li r24, 0
+/* 803163D4 00312034 48 00 00 84 */ b lbl_80316458
+lbl_803163D8:
+/* 803163D8 00312038 38 05 00 01 */ addi r0, r5, 1
+/* 803163DC 0031203C 80 79 00 00 */ lwz r3, 0(r25)
+/* 803163E0 00312040 B0 19 00 0C */ sth r0, 0xc(r25)
+/* 803163E4 00312044 38 80 00 01 */ li r4, 1
+/* 803163E8 00312048 7F 03 28 AE */ lbzx r24, r3, r5
+/* 803163EC 0031204C 81 9F 00 30 */ lwz r12, 0x30(r31)
+/* 803163F0 00312050 7F 18 07 74 */ extsb r24, r24
+/* 803163F4 00312054 7F 03 C3 78 */ mr r3, r24
+/* 803163F8 00312058 7D 89 03 A6 */ mtctr r12
+/* 803163FC 0031205C 4E 80 04 21 */ bctrl
+/* 80316400 00312060 2C 03 00 00 */ cmpwi r3, 0
+/* 80316404 00312064 41 82 00 24 */ beq lbl_80316428
+/* 80316408 00312068 A0 99 00 0C */ lhz r4, 0xc(r25)
+/* 8031640C 0031206C 57 00 44 2E */ rlwinm r0, r24, 8, 0x10, 0x17
+/* 80316410 00312070 80 B9 00 00 */ lwz r5, 0(r25)
+/* 80316414 00312074 38 64 00 01 */ addi r3, r4, 1
+/* 80316418 00312078 B0 79 00 0C */ sth r3, 0xc(r25)
+/* 8031641C 0031207C 7C 65 20 AE */ lbzx r3, r5, r4
+/* 80316420 00312080 7C 00 1A 14 */ add r0, r0, r3
+/* 80316424 00312084 54 18 04 3E */ clrlwi r24, r0, 0x10
+lbl_80316428:
+/* 80316428 00312088 57 00 04 3E */ clrlwi r0, r24, 0x10
+/* 8031642C 0031208C 38 60 00 00 */ li r3, 0
+/* 80316430 00312090 28 00 00 61 */ cmplwi r0, 0x61
+/* 80316434 00312094 41 80 00 10 */ blt lbl_80316444
+/* 80316438 00312098 28 00 00 7A */ cmplwi r0, 0x7a
+/* 8031643C 0031209C 41 81 00 08 */ bgt lbl_80316444
+/* 80316440 003120A0 38 60 00 01 */ li r3, 1
+lbl_80316444:
+/* 80316444 003120A4 2C 03 00 00 */ cmpwi r3, 0
+/* 80316448 003120A8 57 03 04 3E */ clrlwi r3, r24, 0x10
+/* 8031644C 003120AC 41 82 00 08 */ beq lbl_80316454
+/* 80316450 003120B0 38 63 FF E0 */ addi r3, r3, -32
+lbl_80316454:
+/* 80316454 003120B4 54 78 04 3E */ clrlwi r24, r3, 0x10
+lbl_80316458:
+/* 80316458 003120B8 57 00 04 3F */ clrlwi. r0, r24, 0x10
+/* 8031645C 003120BC 40 82 FD 40 */ bne lbl_8031619C
+/* 80316460 003120C0 38 60 00 00 */ li r3, 0
+/* 80316464 003120C4 48 00 01 60 */ b lbl_803165C4
+lbl_80316468:
+/* 80316468 003120C8 57 03 04 3E */ clrlwi r3, r24, 0x10
+/* 8031646C 003120CC 57 40 04 3E */ clrlwi r0, r26, 0x10
+/* 80316470 003120D0 7C 03 00 40 */ cmplw r3, r0
+/* 80316474 003120D4 41 82 00 0C */ beq lbl_80316480
+/* 80316478 003120D8 38 60 00 00 */ li r3, 0
+/* 8031647C 003120DC 48 00 01 48 */ b lbl_803165C4
+lbl_80316480:
+/* 80316480 003120E0 80 19 00 08 */ lwz r0, 8(r25)
+/* 80316484 003120E4 2C 00 00 00 */ cmpwi r0, 0
+/* 80316488 003120E8 41 82 00 84 */ beq lbl_8031650C
+/* 8031648C 003120EC A0 B9 00 0C */ lhz r5, 0xc(r25)
+/* 80316490 003120F0 28 05 02 0A */ cmplwi r5, 0x20a
+/* 80316494 003120F4 40 81 00 0C */ ble lbl_803164A0
+/* 80316498 003120F8 3B 00 00 00 */ li r24, 0
+/* 8031649C 003120FC 48 00 01 04 */ b lbl_803165A0
+lbl_803164A0:
+/* 803164A0 00312100 80 99 00 00 */ lwz r4, 0(r25)
+/* 803164A4 00312104 38 65 00 02 */ addi r3, r5, 2
+/* 803164A8 00312108 38 00 00 00 */ li r0, 0
+/* 803164AC 0031210C 7C 84 2A 2E */ lhzx r4, r4, r5
+/* 803164B0 00312110 28 04 00 61 */ cmplwi r4, 0x61
+/* 803164B4 00312114 B0 79 00 0C */ sth r3, 0xc(r25)
+/* 803164B8 00312118 41 80 00 10 */ blt lbl_803164C8
+/* 803164BC 0031211C 28 04 00 7A */ cmplwi r4, 0x7a
+/* 803164C0 00312120 41 81 00 08 */ bgt lbl_803164C8
+/* 803164C4 00312124 38 00 00 01 */ li r0, 1
+lbl_803164C8:
+/* 803164C8 00312128 2C 00 00 00 */ cmpwi r0, 0
+/* 803164CC 0031212C 41 82 00 08 */ beq lbl_803164D4
+/* 803164D0 00312130 38 84 FF E0 */ addi r4, r4, -32
+lbl_803164D4:
+/* 803164D4 00312134 54 98 04 3E */ clrlwi r24, r4, 0x10
+/* 803164D8 00312138 28 18 FF 41 */ cmplwi r24, 0xff41
+/* 803164DC 0031213C 41 80 00 1C */ blt lbl_803164F8
+/* 803164E0 00312140 28 18 FF 5A */ cmplwi r24, 0xff5a
+/* 803164E4 00312144 41 81 00 14 */ bgt lbl_803164F8
+/* 803164E8 00312148 38 18 FF E0 */ addi r0, r24, -32
+/* 803164EC 0031214C 38 60 00 01 */ li r3, 1
+/* 803164F0 00312150 54 1F 04 3E */ clrlwi r31, r0, 0x10
+/* 803164F4 00312154 48 00 00 08 */ b lbl_803164FC
+lbl_803164F8:
+/* 803164F8 00312158 38 60 00 00 */ li r3, 0
+lbl_803164FC:
+/* 803164FC 0031215C 28 03 00 01 */ cmplwi r3, 1
+/* 80316500 00312160 40 82 00 A0 */ bne lbl_803165A0
+/* 80316504 00312164 7F F8 FB 78 */ mr r24, r31
+/* 80316508 00312168 48 00 00 98 */ b lbl_803165A0
+lbl_8031650C:
+/* 8031650C 0031216C A0 B9 00 0C */ lhz r5, 0xc(r25)
+/* 80316510 00312170 28 05 00 0C */ cmplwi r5, 0xc
+/* 80316514 00312174 41 80 00 0C */ blt lbl_80316520
+/* 80316518 00312178 3B 00 00 00 */ li r24, 0
+/* 8031651C 0031217C 48 00 00 84 */ b lbl_803165A0
+lbl_80316520:
+/* 80316520 00312180 38 05 00 01 */ addi r0, r5, 1
+/* 80316524 00312184 80 79 00 00 */ lwz r3, 0(r25)
+/* 80316528 00312188 B0 19 00 0C */ sth r0, 0xc(r25)
+/* 8031652C 0031218C 38 80 00 01 */ li r4, 1
+/* 80316530 00312190 7F 03 28 AE */ lbzx r24, r3, r5
+/* 80316534 00312194 81 9D 00 30 */ lwz r12, 0x30(r29)
+/* 80316538 00312198 7F 18 07 74 */ extsb r24, r24
+/* 8031653C 0031219C 7F 03 C3 78 */ mr r3, r24
+/* 80316540 003121A0 7D 89 03 A6 */ mtctr r12
+/* 80316544 003121A4 4E 80 04 21 */ bctrl
+/* 80316548 003121A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031654C 003121AC 41 82 00 24 */ beq lbl_80316570
+/* 80316550 003121B0 A0 99 00 0C */ lhz r4, 0xc(r25)
+/* 80316554 003121B4 57 00 44 2E */ rlwinm r0, r24, 8, 0x10, 0x17
+/* 80316558 003121B8 80 B9 00 00 */ lwz r5, 0(r25)
+/* 8031655C 003121BC 38 64 00 01 */ addi r3, r4, 1
+/* 80316560 003121C0 B0 79 00 0C */ sth r3, 0xc(r25)
+/* 80316564 003121C4 7C 65 20 AE */ lbzx r3, r5, r4
+/* 80316568 003121C8 7C 00 1A 14 */ add r0, r0, r3
+/* 8031656C 003121CC 54 18 04 3E */ clrlwi r24, r0, 0x10
+lbl_80316570:
+/* 80316570 003121D0 57 00 04 3E */ clrlwi r0, r24, 0x10
+/* 80316574 003121D4 38 60 00 00 */ li r3, 0
+/* 80316578 003121D8 28 00 00 61 */ cmplwi r0, 0x61
+/* 8031657C 003121DC 41 80 00 10 */ blt lbl_8031658C
+/* 80316580 003121E0 28 00 00 7A */ cmplwi r0, 0x7a
+/* 80316584 003121E4 41 81 00 08 */ bgt lbl_8031658C
+/* 80316588 003121E8 38 60 00 01 */ li r3, 1
+lbl_8031658C:
+/* 8031658C 003121EC 2C 03 00 00 */ cmpwi r3, 0
+/* 80316590 003121F0 57 03 04 3E */ clrlwi r3, r24, 0x10
+/* 80316594 003121F4 41 82 00 08 */ beq lbl_8031659C
+/* 80316598 003121F8 38 63 FF E0 */ addi r3, r3, -32
+lbl_8031659C:
+/* 8031659C 003121FC 54 78 04 3E */ clrlwi r24, r3, 0x10
+lbl_803165A0:
+/* 803165A0 00312200 7F 63 DB 78 */ mr r3, r27
+/* 803165A4 00312204 7F 84 E3 78 */ mr r4, r28
+/* 803165A8 00312208 4B FF F8 81 */ bl VFiPFPATH_GetNextCharOfPattern
+/* 803165AC 0031220C 7C 7A 1B 78 */ mr r26, r3
+lbl_803165B0:
+/* 803165B0 00312210 57 40 04 3F */ clrlwi. r0, r26, 0x10
+/* 803165B4 00312214 40 82 FB 68 */ bne lbl_8031611C
+/* 803165B8 00312218 57 00 04 3E */ clrlwi r0, r24, 0x10
+/* 803165BC 0031221C 7C 00 00 34 */ cntlzw r0, r0
+/* 803165C0 00312220 54 03 D9 7E */ srwi r3, r0, 5
+lbl_803165C4:
+/* 803165C4 00312224 39 61 00 50 */ addi r11, r1, 0x50
+/* 803165C8 00312228 4B EB 0B A1 */ bl _restgpr_24
+/* 803165CC 0031222C 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 803165D0 00312230 7C 08 03 A6 */ mtlr r0
+/* 803165D4 00312234 38 21 00 50 */ addi r1, r1, 0x50
+/* 803165D8 00312238 4E 80 00 20 */ blr
+
+.global VFiPFPATH_cmpNameImpl
+VFiPFPATH_cmpNameImpl:
+/* 803165DC 0031223C 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 803165E0 00312240 7C 08 02 A6 */ mflr r0
+/* 803165E4 00312244 90 01 00 44 */ stw r0, 0x44(r1)
+/* 803165E8 00312248 39 61 00 40 */ addi r11, r1, 0x40
+/* 803165EC 0031224C 4B EB 0B 2D */ bl _savegpr_23
+/* 803165F0 00312250 3C C0 80 58 */ lis r6, lbl_8057F5C8@ha
+/* 803165F4 00312254 7C 7A 1B 78 */ mr r26, r3
+/* 803165F8 00312258 7C 9B 23 78 */ mr r27, r4
+/* 803165FC 0031225C 7C BC 2B 78 */ mr r28, r5
+/* 80316600 00312260 3B 06 F5 C8 */ addi r24, r6, lbl_8057F5C8@l
+/* 80316604 00312264 3B 20 00 01 */ li r25, 1
+/* 80316608 00312268 48 00 03 04 */ b lbl_8031690C
+lbl_8031660C:
+/* 8031660C 0031226C 81 98 00 2C */ lwz r12, 0x2c(r24)
+/* 80316610 00312270 7F 63 DB 78 */ mr r3, r27
+/* 80316614 00312274 7D 89 03 A6 */ mtctr r12
+/* 80316618 00312278 4E 80 04 21 */ bctrl
+/* 8031661C 0031227C 81 98 00 2C */ lwz r12, 0x2c(r24)
+/* 80316620 00312280 7C 77 1B 78 */ mr r23, r3
+/* 80316624 00312284 7F 43 D3 78 */ mr r3, r26
+/* 80316628 00312288 7D 89 03 A6 */ mtctr r12
+/* 8031662C 0031228C 4E 80 04 21 */ bctrl
+/* 80316630 00312290 2C 17 00 01 */ cmpwi r23, 1
+/* 80316634 00312294 7C 7F 1B 78 */ mr r31, r3
+/* 80316638 00312298 40 82 00 14 */ bne lbl_8031664C
+/* 8031663C 0031229C 88 7B 00 00 */ lbz r3, 0(r27)
+/* 80316640 003122A0 7C 63 07 74 */ extsb r3, r3
+/* 80316644 003122A4 4B FE E8 51 */ bl VFipf_toupper
+/* 80316648 003122A8 48 00 00 10 */ b lbl_80316658
+lbl_8031664C:
+/* 8031664C 003122AC 7F 63 DB 78 */ mr r3, r27
+/* 80316650 003122B0 4B FE EB 61 */ bl VFiPF_GET_LE_U16
+/* 80316654 003122B4 54 63 04 3E */ clrlwi r3, r3, 0x10
+lbl_80316658:
+/* 80316658 003122B8 2C 1F 00 01 */ cmpwi r31, 1
+/* 8031665C 003122BC 54 7E 04 3E */ clrlwi r30, r3, 0x10
+/* 80316660 003122C0 40 82 00 14 */ bne lbl_80316674
+/* 80316664 003122C4 88 7A 00 00 */ lbz r3, 0(r26)
+/* 80316668 003122C8 7C 63 07 74 */ extsb r3, r3
+/* 8031666C 003122CC 4B FE E8 29 */ bl VFipf_toupper
+/* 80316670 003122D0 48 00 00 10 */ b lbl_80316680
+lbl_80316674:
+/* 80316674 003122D4 7F 43 D3 78 */ mr r3, r26
+/* 80316678 003122D8 4B FE EB 39 */ bl VFiPF_GET_LE_U16
+/* 8031667C 003122DC 54 63 04 3E */ clrlwi r3, r3, 0x10
+lbl_80316680:
+/* 80316680 003122E0 2C 17 00 02 */ cmpwi r23, 2
+/* 80316684 003122E4 54 7D 04 3E */ clrlwi r29, r3, 0x10
+/* 80316688 003122E8 40 82 00 74 */ bne lbl_803166FC
+/* 8031668C 003122EC 81 98 00 24 */ lwz r12, 0x24(r24)
+/* 80316690 003122F0 7F 63 DB 78 */ mr r3, r27
+/* 80316694 003122F4 38 81 00 0A */ addi r4, r1, 0xa
+/* 80316698 003122F8 7D 89 03 A6 */ mtctr r12
+/* 8031669C 003122FC 4E 80 04 21 */ bctrl
+/* 803166A0 00312300 A0 61 00 0A */ lhz r3, 0xa(r1)
+/* 803166A4 00312304 28 03 FF 41 */ cmplwi r3, 0xff41
+/* 803166A8 00312308 41 80 00 1C */ blt lbl_803166C4
+/* 803166AC 0031230C 28 03 FF 5A */ cmplwi r3, 0xff5a
+/* 803166B0 00312310 41 81 00 14 */ bgt lbl_803166C4
+/* 803166B4 00312314 38 03 FF E0 */ addi r0, r3, -32
+/* 803166B8 00312318 38 60 00 01 */ li r3, 1
+/* 803166BC 0031231C B0 01 00 0A */ sth r0, 0xa(r1)
+/* 803166C0 00312320 48 00 00 08 */ b lbl_803166C8
+lbl_803166C4:
+/* 803166C4 00312324 38 60 00 00 */ li r3, 0
+lbl_803166C8:
+/* 803166C8 00312328 28 03 00 01 */ cmplwi r3, 1
+/* 803166CC 0031232C 40 82 00 20 */ bne lbl_803166EC
+/* 803166D0 00312330 81 98 00 28 */ lwz r12, 0x28(r24)
+/* 803166D4 00312334 38 61 00 0A */ addi r3, r1, 0xa
+/* 803166D8 00312338 7C 64 1B 78 */ mr r4, r3
+/* 803166DC 0031233C 7D 89 03 A6 */ mtctr r12
+/* 803166E0 00312340 4E 80 04 21 */ bctrl
+/* 803166E4 00312344 38 60 00 01 */ li r3, 1
+/* 803166E8 00312348 48 00 00 08 */ b lbl_803166F0
+lbl_803166EC:
+/* 803166EC 0031234C 38 60 00 00 */ li r3, 0
+lbl_803166F0:
+/* 803166F0 00312350 28 03 00 01 */ cmplwi r3, 1
+/* 803166F4 00312354 40 82 00 08 */ bne lbl_803166FC
+/* 803166F8 00312358 A3 C1 00 0A */ lhz r30, 0xa(r1)
+lbl_803166FC:
+/* 803166FC 0031235C 2C 1F 00 02 */ cmpwi r31, 2
+/* 80316700 00312360 40 82 00 74 */ bne lbl_80316774
+/* 80316704 00312364 81 98 00 24 */ lwz r12, 0x24(r24)
+/* 80316708 00312368 7F 43 D3 78 */ mr r3, r26
+/* 8031670C 0031236C 38 81 00 08 */ addi r4, r1, 8
+/* 80316710 00312370 7D 89 03 A6 */ mtctr r12
+/* 80316714 00312374 4E 80 04 21 */ bctrl
+/* 80316718 00312378 A0 61 00 08 */ lhz r3, 8(r1)
+/* 8031671C 0031237C 28 03 FF 41 */ cmplwi r3, 0xff41
+/* 80316720 00312380 41 80 00 1C */ blt lbl_8031673C
+/* 80316724 00312384 28 03 FF 5A */ cmplwi r3, 0xff5a
+/* 80316728 00312388 41 81 00 14 */ bgt lbl_8031673C
+/* 8031672C 0031238C 38 03 FF E0 */ addi r0, r3, -32
+/* 80316730 00312390 38 60 00 01 */ li r3, 1
+/* 80316734 00312394 B0 01 00 08 */ sth r0, 8(r1)
+/* 80316738 00312398 48 00 00 08 */ b lbl_80316740
+lbl_8031673C:
+/* 8031673C 0031239C 38 60 00 00 */ li r3, 0
+lbl_80316740:
+/* 80316740 003123A0 28 03 00 01 */ cmplwi r3, 1
+/* 80316744 003123A4 40 82 00 20 */ bne lbl_80316764
+/* 80316748 003123A8 81 98 00 28 */ lwz r12, 0x28(r24)
+/* 8031674C 003123AC 38 61 00 08 */ addi r3, r1, 8
+/* 80316750 003123B0 7C 64 1B 78 */ mr r4, r3
+/* 80316754 003123B4 7D 89 03 A6 */ mtctr r12
+/* 80316758 003123B8 4E 80 04 21 */ bctrl
+/* 8031675C 003123BC 38 60 00 01 */ li r3, 1
+/* 80316760 003123C0 48 00 00 08 */ b lbl_80316768
+lbl_80316764:
+/* 80316764 003123C4 38 60 00 00 */ li r3, 0
+lbl_80316768:
+/* 80316768 003123C8 28 03 00 01 */ cmplwi r3, 1
+/* 8031676C 003123CC 40 82 00 08 */ bne lbl_80316774
+/* 80316770 003123D0 A3 A1 00 08 */ lhz r29, 8(r1)
+lbl_80316774:
+/* 80316774 003123D4 2C 1E 00 3F */ cmpwi r30, 0x3f
+/* 80316778 003123D8 7F 7B BA 14 */ add r27, r27, r23
+/* 8031677C 003123DC 41 82 00 14 */ beq lbl_80316790
+/* 80316780 003123E0 40 80 01 78 */ bge lbl_803168F8
+/* 80316784 003123E4 2C 1E 00 2A */ cmpwi r30, 0x2a
+/* 80316788 003123E8 41 82 00 18 */ beq lbl_803167A0
+/* 8031678C 003123EC 48 00 01 6C */ b lbl_803168F8
+lbl_80316790:
+/* 80316790 003123F0 2C 1D 00 00 */ cmpwi r29, 0
+/* 80316794 003123F4 40 82 01 74 */ bne lbl_80316908
+/* 80316798 003123F8 38 60 00 01 */ li r3, 1
+/* 8031679C 003123FC 48 00 01 90 */ b lbl_8031692C
+lbl_803167A0:
+/* 803167A0 00312400 81 98 00 2C */ lwz r12, 0x2c(r24)
+/* 803167A4 00312404 7F 63 DB 78 */ mr r3, r27
+/* 803167A8 00312408 7D 89 03 A6 */ mtctr r12
+/* 803167AC 0031240C 4E 80 04 21 */ bctrl
+/* 803167B0 00312410 2C 03 00 01 */ cmpwi r3, 1
+/* 803167B4 00312414 7C 77 1B 78 */ mr r23, r3
+/* 803167B8 00312418 41 82 00 14 */ beq lbl_803167CC
+/* 803167BC 0031241C 7F 63 DB 78 */ mr r3, r27
+/* 803167C0 00312420 4B FE E9 F1 */ bl VFiPF_GET_LE_U16
+/* 803167C4 00312424 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 803167C8 00312428 48 00 00 10 */ b lbl_803167D8
+lbl_803167CC:
+/* 803167CC 0031242C 88 7B 00 00 */ lbz r3, 0(r27)
+/* 803167D0 00312430 7C 63 07 74 */ extsb r3, r3
+/* 803167D4 00312434 4B FE E6 C1 */ bl VFipf_toupper
+lbl_803167D8:
+/* 803167D8 00312438 54 7E 04 3E */ clrlwi r30, r3, 0x10
+/* 803167DC 0031243C 7F 7B BA 14 */ add r27, r27, r23
+/* 803167E0 00312440 28 1E 00 3F */ cmplwi r30, 0x3f
+/* 803167E4 00312444 40 82 00 54 */ bne lbl_80316838
+/* 803167E8 00312448 2C 1D 00 00 */ cmpwi r29, 0
+/* 803167EC 0031244C 40 82 00 0C */ bne lbl_803167F8
+/* 803167F0 00312450 38 60 00 01 */ li r3, 1
+/* 803167F4 00312454 48 00 01 38 */ b lbl_8031692C
+lbl_803167F8:
+/* 803167F8 00312458 81 98 00 2C */ lwz r12, 0x2c(r24)
+/* 803167FC 0031245C 7F 5A FA 14 */ add r26, r26, r31
+/* 80316800 00312460 7F 43 D3 78 */ mr r3, r26
+/* 80316804 00312464 7D 89 03 A6 */ mtctr r12
+/* 80316808 00312468 4E 80 04 21 */ bctrl
+/* 8031680C 0031246C 2C 03 00 01 */ cmpwi r3, 1
+/* 80316810 00312470 7C 7F 1B 78 */ mr r31, r3
+/* 80316814 00312474 40 82 00 14 */ bne lbl_80316828
+/* 80316818 00312478 88 7A 00 00 */ lbz r3, 0(r26)
+/* 8031681C 0031247C 7C 63 07 74 */ extsb r3, r3
+/* 80316820 00312480 4B FE E6 75 */ bl VFipf_toupper
+/* 80316824 00312484 48 00 00 10 */ b lbl_80316834
+lbl_80316828:
+/* 80316828 00312488 7F 43 D3 78 */ mr r3, r26
+/* 8031682C 0031248C 4B FE E9 85 */ bl VFiPF_GET_LE_U16
+/* 80316830 00312490 54 63 04 3E */ clrlwi r3, r3, 0x10
+lbl_80316834:
+/* 80316834 00312494 54 7D 04 3E */ clrlwi r29, r3, 0x10
+lbl_80316838:
+/* 80316838 00312498 28 1E 00 3F */ cmplwi r30, 0x3f
+/* 8031683C 0031249C 41 82 FF 64 */ beq lbl_803167A0
+/* 80316840 003124A0 28 1E 00 2A */ cmplwi r30, 0x2a
+/* 80316844 003124A4 41 82 FF 5C */ beq lbl_803167A0
+/* 80316848 003124A8 2C 1E 00 00 */ cmpwi r30, 0
+/* 8031684C 003124AC 40 82 00 88 */ bne lbl_803168D4
+/* 80316850 003124B0 38 60 00 00 */ li r3, 0
+/* 80316854 003124B4 48 00 00 D8 */ b lbl_8031692C
+/* 80316858 003124B8 48 00 00 7C */ b lbl_803168D4
+lbl_8031685C:
+/* 8031685C 003124BC 7C 1D F0 40 */ cmplw r29, r30
+/* 80316860 003124C0 7F 5A FA 14 */ add r26, r26, r31
+/* 80316864 003124C4 40 82 00 34 */ bne lbl_80316898
+/* 80316868 003124C8 7F 43 D3 78 */ mr r3, r26
+/* 8031686C 003124CC 7F 64 DB 78 */ mr r4, r27
+/* 80316870 003124D0 7F 85 E3 78 */ mr r5, r28
+/* 80316874 003124D4 4B FF FD 69 */ bl VFiPFPATH_cmpNameImpl
+/* 80316878 003124D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031687C 003124DC 40 82 00 0C */ bne lbl_80316888
+/* 80316880 003124E0 38 60 00 00 */ li r3, 0
+/* 80316884 003124E4 48 00 00 A8 */ b lbl_8031692C
+lbl_80316888:
+/* 80316888 003124E8 80 1C 00 00 */ lwz r0, 0(r28)
+/* 8031688C 003124EC 2C 00 00 00 */ cmpwi r0, 0
+/* 80316890 003124F0 41 82 00 08 */ beq lbl_80316898
+/* 80316894 003124F4 48 00 00 98 */ b lbl_8031692C
+lbl_80316898:
+/* 80316898 003124F8 81 98 00 2C */ lwz r12, 0x2c(r24)
+/* 8031689C 003124FC 7F 43 D3 78 */ mr r3, r26
+/* 803168A0 00312500 7D 89 03 A6 */ mtctr r12
+/* 803168A4 00312504 4E 80 04 21 */ bctrl
+/* 803168A8 00312508 2C 03 00 01 */ cmpwi r3, 1
+/* 803168AC 0031250C 7C 7F 1B 78 */ mr r31, r3
+/* 803168B0 00312510 40 82 00 14 */ bne lbl_803168C4
+/* 803168B4 00312514 88 7A 00 00 */ lbz r3, 0(r26)
+/* 803168B8 00312518 7C 63 07 74 */ extsb r3, r3
+/* 803168BC 0031251C 4B FE E5 D9 */ bl VFipf_toupper
+/* 803168C0 00312520 48 00 00 10 */ b lbl_803168D0
+lbl_803168C4:
+/* 803168C4 00312524 7F 43 D3 78 */ mr r3, r26
+/* 803168C8 00312528 4B FE E8 E9 */ bl VFiPF_GET_LE_U16
+/* 803168CC 0031252C 54 63 04 3E */ clrlwi r3, r3, 0x10
+lbl_803168D0:
+/* 803168D0 00312530 54 7D 04 3E */ clrlwi r29, r3, 0x10
+lbl_803168D4:
+/* 803168D4 00312534 2C 1D 00 00 */ cmpwi r29, 0
+/* 803168D8 00312538 40 82 FF 84 */ bne lbl_8031685C
+/* 803168DC 0031253C 88 1A 00 00 */ lbz r0, 0(r26)
+/* 803168E0 00312540 7C 00 07 75 */ extsb. r0, r0
+/* 803168E4 00312544 41 82 00 10 */ beq lbl_803168F4
+/* 803168E8 00312548 88 1B 00 00 */ lbz r0, 0(r27)
+/* 803168EC 0031254C 7C 00 07 75 */ extsb. r0, r0
+/* 803168F0 00312550 40 82 00 08 */ bne lbl_803168F8
+lbl_803168F4:
+/* 803168F4 00312554 93 3C 00 00 */ stw r25, 0(r28)
+lbl_803168F8:
+/* 803168F8 00312558 7C 1D F0 40 */ cmplw r29, r30
+/* 803168FC 0031255C 41 82 00 0C */ beq lbl_80316908
+/* 80316900 00312560 38 60 00 01 */ li r3, 1
+/* 80316904 00312564 48 00 00 28 */ b lbl_8031692C
+lbl_80316908:
+/* 80316908 00312568 7F 5A FA 14 */ add r26, r26, r31
+lbl_8031690C:
+/* 8031690C 0031256C 88 1B 00 00 */ lbz r0, 0(r27)
+/* 80316910 00312570 7C 00 07 75 */ extsb. r0, r0
+/* 80316914 00312574 40 82 FC F8 */ bne lbl_8031660C
+/* 80316918 00312578 88 1A 00 00 */ lbz r0, 0(r26)
+/* 8031691C 0031257C 7C 03 07 74 */ extsb r3, r0
+/* 80316920 00312580 7C 03 00 D0 */ neg r0, r3
+/* 80316924 00312584 7C 00 1B 78 */ or r0, r0, r3
+/* 80316928 00312588 54 03 0F FE */ srwi r3, r0, 0x1f
+lbl_8031692C:
+/* 8031692C 0031258C 39 61 00 40 */ addi r11, r1, 0x40
+/* 80316930 00312590 4B EB 08 35 */ bl _restgpr_23
+/* 80316934 00312594 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80316938 00312598 7C 08 03 A6 */ mtlr r0
+/* 8031693C 0031259C 38 21 00 40 */ addi r1, r1, 0x40
+/* 80316940 003125A0 4E 80 00 20 */ blr
+
+.global VFiPFPATH_cmpNameUni
+VFiPFPATH_cmpNameUni:
+/* 80316944 003125A4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80316948 003125A8 7C 08 02 A6 */ mflr r0
+/* 8031694C 003125AC 38 A0 00 01 */ li r5, 1
+/* 80316950 003125B0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80316954 003125B4 48 00 05 D9 */ bl VFiPFPATH_MatchFileNameWithPattern
+/* 80316958 003125B8 7C 60 00 34 */ cntlzw r0, r3
+/* 8031695C 003125BC 54 03 D9 7E */ srwi r3, r0, 5
+/* 80316960 003125C0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80316964 003125C4 7C 08 03 A6 */ mtlr r0
+/* 80316968 003125C8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031696C 003125CC 4E 80 00 20 */ blr
+
+.global VFiPFPATH_cmpName
+VFiPFPATH_cmpName:
+/* 80316970 003125D0 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80316974 003125D4 7C 08 02 A6 */ mflr r0
+/* 80316978 003125D8 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8031697C 003125DC 39 61 00 40 */ addi r11, r1, 0x40
+/* 80316980 003125E0 4B EB 07 A9 */ bl _savegpr_27
+/* 80316984 003125E4 38 00 00 00 */ li r0, 0
+/* 80316988 003125E8 7C 9C 23 78 */ mr r28, r4
+/* 8031698C 003125EC 90 01 00 08 */ stw r0, 8(r1)
+/* 80316990 003125F0 7C 7B 1B 78 */ mr r27, r3
+/* 80316994 003125F4 7C BD 2B 78 */ mr r29, r5
+/* 80316998 003125F8 7F 83 E3 78 */ mr r3, r28
+/* 8031699C 003125FC 3B E1 00 0C */ addi r31, r1, 0xc
+/* 803169A0 00312600 38 80 00 03 */ li r4, 3
+/* 803169A4 00312604 4B FE E9 6D */ bl VFiPFSTR_GetStrPos
+/* 803169A8 00312608 7C 7E 1B 78 */ mr r30, r3
+/* 803169AC 0031260C 7F E3 FB 78 */ mr r3, r31
+/* 803169B0 00312610 7F 64 DB 78 */ mr r4, r27
+/* 803169B4 00312614 4B FE E7 39 */ bl VFipf_strcpy
+/* 803169B8 00312618 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 803169BC 0031261C 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 803169C0 00312620 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 803169C4 00312624 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
+/* 803169C8 00312628 28 00 00 02 */ cmplwi r0, 2
+/* 803169CC 0031262C 40 82 00 64 */ bne lbl_80316A30
+/* 803169D0 00312630 7F 83 E3 78 */ mr r3, r28
+/* 803169D4 00312634 4B FE E9 0D */ bl VFiPFSTR_GetCodeMode
+/* 803169D8 00312638 28 03 00 02 */ cmplwi r3, 2
+/* 803169DC 0031263C 40 82 00 54 */ bne lbl_80316A30
+/* 803169E0 00312640 7F E3 FB 78 */ mr r3, r31
+/* 803169E4 00312644 38 8D 8D 00 */ addi r4, r13, lbl_8063DFC0-_SDA_BASE_
+/* 803169E8 00312648 4B FE E7 29 */ bl VFipf_strcmp
+/* 803169EC 0031264C 2C 03 00 00 */ cmpwi r3, 0
+/* 803169F0 00312650 41 82 00 40 */ beq lbl_80316A30
+/* 803169F4 00312654 7F E3 FB 78 */ mr r3, r31
+/* 803169F8 00312658 38 8D 8D 04 */ addi r4, r13, lbl_8063DFC4-_SDA_BASE_
+/* 803169FC 0031265C 4B FE E7 15 */ bl VFipf_strcmp
+/* 80316A00 00312660 2C 03 00 00 */ cmpwi r3, 0
+/* 80316A04 00312664 41 82 00 2C */ beq lbl_80316A30
+/* 80316A08 00312668 7F 83 E3 78 */ mr r3, r28
+/* 80316A0C 0031266C 38 80 00 03 */ li r4, 3
+/* 80316A10 00312670 38 A0 00 01 */ li r5, 1
+/* 80316A14 00312674 48 00 1A 21 */ bl VFiPFPATH_CheckExtShortName
+/* 80316A18 00312678 2C 03 00 00 */ cmpwi r3, 0
+/* 80316A1C 0031267C 40 82 00 14 */ bne lbl_80316A30
+/* 80316A20 00312680 2C 1D 00 00 */ cmpwi r29, 0
+/* 80316A24 00312684 40 82 00 0C */ bne lbl_80316A30
+/* 80316A28 00312688 38 60 00 01 */ li r3, 1
+/* 80316A2C 0031268C 48 00 00 88 */ b lbl_80316AB4
+lbl_80316A30:
+/* 80316A30 00312690 7F C3 F3 78 */ mr r3, r30
+/* 80316A34 00312694 38 8D 8D 08 */ addi r4, r13, lbl_8063DFC8-_SDA_BASE_
+/* 80316A38 00312698 4B FE E6 D9 */ bl VFipf_strcmp
+/* 80316A3C 0031269C 2C 03 00 00 */ cmpwi r3, 0
+/* 80316A40 003126A0 40 82 00 3C */ bne lbl_80316A7C
+/* 80316A44 003126A4 48 00 00 08 */ b lbl_80316A4C
+lbl_80316A48:
+/* 80316A48 003126A8 3B FF 00 01 */ addi r31, r31, 1
+lbl_80316A4C:
+/* 80316A4C 003126AC 88 7F 00 00 */ lbz r3, 0(r31)
+/* 80316A50 003126B0 7C 60 07 75 */ extsb. r0, r3
+/* 80316A54 003126B4 41 82 00 0C */ beq lbl_80316A60
+/* 80316A58 003126B8 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 80316A5C 003126BC 40 82 FF EC */ bne lbl_80316A48
+lbl_80316A60:
+/* 80316A60 003126C0 7C 60 07 75 */ extsb. r0, r3
+/* 80316A64 003126C4 40 82 00 40 */ bne lbl_80316AA4
+/* 80316A68 003126C8 38 60 00 2E */ li r3, 0x2e
+/* 80316A6C 003126CC 38 00 00 00 */ li r0, 0
+/* 80316A70 003126D0 98 7F 00 00 */ stb r3, 0(r31)
+/* 80316A74 003126D4 98 1F 00 01 */ stb r0, 1(r31)
+/* 80316A78 003126D8 48 00 00 2C */ b lbl_80316AA4
+lbl_80316A7C:
+/* 80316A7C 003126DC 88 1E 00 00 */ lbz r0, 0(r30)
+/* 80316A80 003126E0 7C 00 07 75 */ extsb. r0, r0
+/* 80316A84 003126E4 40 82 00 0C */ bne lbl_80316A90
+/* 80316A88 003126E8 38 60 00 01 */ li r3, 1
+/* 80316A8C 003126EC 48 00 00 28 */ b lbl_80316AB4
+lbl_80316A90:
+/* 80316A90 003126F0 88 01 00 0C */ lbz r0, 0xc(r1)
+/* 80316A94 003126F4 7C 00 07 75 */ extsb. r0, r0
+/* 80316A98 003126F8 40 82 00 0C */ bne lbl_80316AA4
+/* 80316A9C 003126FC 38 60 00 01 */ li r3, 1
+/* 80316AA0 00312700 48 00 00 14 */ b lbl_80316AB4
+lbl_80316AA4:
+/* 80316AA4 00312704 7F C4 F3 78 */ mr r4, r30
+/* 80316AA8 00312708 38 61 00 0C */ addi r3, r1, 0xc
+/* 80316AAC 0031270C 38 A1 00 08 */ addi r5, r1, 8
+/* 80316AB0 00312710 4B FF FB 2D */ bl VFiPFPATH_cmpNameImpl
+lbl_80316AB4:
+/* 80316AB4 00312714 39 61 00 40 */ addi r11, r1, 0x40
+/* 80316AB8 00312718 4B EB 06 BD */ bl _restgpr_27
+/* 80316ABC 0031271C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80316AC0 00312720 7C 08 03 A6 */ mtlr r0
+/* 80316AC4 00312724 38 21 00 40 */ addi r1, r1, 0x40
+/* 80316AC8 00312728 4E 80 00 20 */ blr
+
+.global VFiPFPATH_cmpTailSFN
+VFiPFPATH_cmpTailSFN:
+/* 80316ACC 0031272C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80316AD0 00312730 7C 08 02 A6 */ mflr r0
+/* 80316AD4 00312734 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80316AD8 00312738 4B FE E6 39 */ bl VFipf_strcmp
+/* 80316ADC 0031273C 7C 03 00 D0 */ neg r0, r3
+/* 80316AE0 00312740 7C 00 1B 78 */ or r0, r0, r3
+/* 80316AE4 00312744 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80316AE8 00312748 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80316AEC 0031274C 7C 08 03 A6 */ mtlr r0
+/* 80316AF0 00312750 38 21 00 10 */ addi r1, r1, 0x10
+/* 80316AF4 00312754 4E 80 00 20 */ blr
+
+.global VFiPFPATH_InitTokenOfPath
+VFiPFPATH_InitTokenOfPath:
+/* 80316AF8 00312758 90 83 00 00 */ stw r4, 0(r3)
+/* 80316AFC 0031275C 90 83 00 04 */ stw r4, 4(r3)
+/* 80316B00 00312760 90 A3 00 0C */ stw r5, 0xc(r3)
+/* 80316B04 00312764 4E 80 00 20 */ blr
+
+.global VFiPFPATH_GetNextTokenOfPath
+VFiPFPATH_GetNextTokenOfPath:
+/* 80316B08 00312768 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80316B0C 0031276C 7C 08 02 A6 */ mflr r0
+/* 80316B10 00312770 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80316B14 00312774 39 61 00 20 */ addi r11, r1, 0x20
+/* 80316B18 00312778 4B EB 06 11 */ bl _savegpr_27
+/* 80316B1C 0031277C 80 03 00 04 */ lwz r0, 4(r3)
+/* 80316B20 00312780 7C 9D 23 78 */ mr r29, r4
+/* 80316B24 00312784 7C 7C 1B 78 */ mr r28, r3
+/* 80316B28 00312788 3B 60 00 00 */ li r27, 0
+/* 80316B2C 0031278C 90 03 00 00 */ stw r0, 0(r3)
+/* 80316B30 00312790 38 8D 8C FC */ addi r4, r13, lbl_8063DFBC-_SDA_BASE_
+/* 80316B34 00312794 38 A0 00 01 */ li r5, 1
+/* 80316B38 00312798 38 C0 00 00 */ li r6, 0
+/* 80316B3C 0031279C 38 E0 00 01 */ li r7, 1
+/* 80316B40 003127A0 4B FE EB 21 */ bl VFiPFSTR_StrNCmp
+/* 80316B44 003127A4 2C 03 00 00 */ cmpwi r3, 0
+/* 80316B48 003127A8 40 82 00 18 */ bne lbl_80316B60
+/* 80316B4C 003127AC 38 00 00 00 */ li r0, 0
+/* 80316B50 003127B0 38 60 00 00 */ li r3, 0
+/* 80316B54 003127B4 90 1C 00 04 */ stw r0, 4(r28)
+/* 80316B58 003127B8 90 1C 00 00 */ stw r0, 0(r28)
+/* 80316B5C 003127BC 48 00 03 18 */ b lbl_80316E74
+lbl_80316B60:
+/* 80316B60 003127C0 7F 83 E3 78 */ mr r3, r28
+/* 80316B64 003127C4 38 8D 8D 0C */ addi r4, r13, lbl_8063DFCC-_SDA_BASE_
+/* 80316B68 003127C8 38 A0 00 01 */ li r5, 1
+/* 80316B6C 003127CC 38 C0 00 00 */ li r6, 0
+/* 80316B70 003127D0 38 E0 00 01 */ li r7, 1
+/* 80316B74 003127D4 4B FE EA ED */ bl VFiPFSTR_StrNCmp
+/* 80316B78 003127D8 2C 03 00 00 */ cmpwi r3, 0
+/* 80316B7C 003127DC 41 82 00 24 */ beq lbl_80316BA0
+/* 80316B80 003127E0 7F 83 E3 78 */ mr r3, r28
+/* 80316B84 003127E4 38 8D 8D 10 */ addi r4, r13, lbl_8063DFD0-_SDA_BASE_
+/* 80316B88 003127E8 38 A0 00 01 */ li r5, 1
+/* 80316B8C 003127EC 38 C0 00 00 */ li r6, 0
+/* 80316B90 003127F0 38 E0 00 01 */ li r7, 1
+/* 80316B94 003127F4 4B FE EA CD */ bl VFiPFSTR_StrNCmp
+/* 80316B98 003127F8 2C 03 00 00 */ cmpwi r3, 0
+/* 80316B9C 003127FC 40 82 00 10 */ bne lbl_80316BAC
+lbl_80316BA0:
+/* 80316BA0 00312800 7F 83 E3 78 */ mr r3, r28
+/* 80316BA4 00312804 38 80 00 01 */ li r4, 1
+/* 80316BA8 00312808 4B FE E7 91 */ bl VFiPFSTR_MoveStrPos
+lbl_80316BAC:
+/* 80316BAC 0031280C 7F 83 E3 78 */ mr r3, r28
+/* 80316BB0 00312810 38 8D 8D 0C */ addi r4, r13, lbl_8063DFCC-_SDA_BASE_
+/* 80316BB4 00312814 38 A0 00 01 */ li r5, 1
+/* 80316BB8 00312818 38 C0 00 00 */ li r6, 0
+/* 80316BBC 0031281C 38 E0 00 01 */ li r7, 1
+/* 80316BC0 00312820 4B FE EA A1 */ bl VFiPFSTR_StrNCmp
+/* 80316BC4 00312824 2C 03 00 00 */ cmpwi r3, 0
+/* 80316BC8 00312828 41 82 00 24 */ beq lbl_80316BEC
+/* 80316BCC 0031282C 7F 83 E3 78 */ mr r3, r28
+/* 80316BD0 00312830 38 8D 8D 10 */ addi r4, r13, lbl_8063DFD0-_SDA_BASE_
+/* 80316BD4 00312834 38 A0 00 01 */ li r5, 1
+/* 80316BD8 00312838 38 C0 00 00 */ li r6, 0
+/* 80316BDC 0031283C 38 E0 00 01 */ li r7, 1
+/* 80316BE0 00312840 4B FE EA 81 */ bl VFiPFSTR_StrNCmp
+/* 80316BE4 00312844 2C 03 00 00 */ cmpwi r3, 0
+/* 80316BE8 00312848 40 82 00 0C */ bne lbl_80316BF4
+lbl_80316BEC:
+/* 80316BEC 0031284C 38 60 00 02 */ li r3, 2
+/* 80316BF0 00312850 48 00 02 84 */ b lbl_80316E74
+lbl_80316BF4:
+/* 80316BF4 00312854 7F 83 E3 78 */ mr r3, r28
+/* 80316BF8 00312858 4B FE E6 E9 */ bl VFiPFSTR_GetCodeMode
+/* 80316BFC 0031285C 80 1C 00 00 */ lwz r0, 0(r28)
+/* 80316C00 00312860 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80316C04 00312864 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80316C08 00312868 7C 7E 1B 78 */ mr r30, r3
+/* 80316C0C 0031286C 90 1C 00 04 */ stw r0, 4(r28)
+/* 80316C10 00312870 80 04 00 3C */ lwz r0, 0x3c(r4)
+/* 80316C14 00312874 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
+/* 80316C18 00312878 28 00 00 02 */ cmplwi r0, 2
+/* 80316C1C 0031287C 40 82 00 48 */ bne lbl_80316C64
+/* 80316C20 00312880 7F 83 E3 78 */ mr r3, r28
+/* 80316C24 00312884 7F A5 EB 78 */ mr r5, r29
+/* 80316C28 00312888 38 80 00 02 */ li r4, 2
+/* 80316C2C 0031288C 48 00 18 09 */ bl VFiPFPATH_CheckExtShortName
+/* 80316C30 00312890 2C 03 00 00 */ cmpwi r3, 0
+/* 80316C34 00312894 7C 7B 1B 78 */ mr r27, r3
+/* 80316C38 00312898 41 82 00 2C */ beq lbl_80316C64
+/* 80316C3C 0031289C 28 1E 00 01 */ cmplwi r30, 1
+/* 80316C40 003128A0 40 82 00 14 */ bne lbl_80316C54
+/* 80316C44 003128A4 80 1C 00 04 */ lwz r0, 4(r28)
+/* 80316C48 003128A8 7C 00 1A 14 */ add r0, r0, r3
+/* 80316C4C 003128AC 90 1C 00 04 */ stw r0, 4(r28)
+/* 80316C50 003128B0 48 00 00 14 */ b lbl_80316C64
+lbl_80316C54:
+/* 80316C54 003128B4 80 9C 00 04 */ lwz r4, 4(r28)
+/* 80316C58 003128B8 54 60 08 3C */ slwi r0, r3, 1
+/* 80316C5C 003128BC 7C 04 02 14 */ add r0, r4, r0
+/* 80316C60 003128C0 90 1C 00 04 */ stw r0, 4(r28)
+lbl_80316C64:
+/* 80316C64 003128C4 2C 1B 00 00 */ cmpwi r27, 0
+/* 80316C68 003128C8 40 82 02 08 */ bne lbl_80316E70
+/* 80316C6C 003128CC 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80316C70 003128D0 3C 60 80 40 */ lis r3, lbl_803FE220@ha
+/* 80316C74 003128D4 3B E4 F5 C8 */ addi r31, r4, lbl_8057F5C8@l
+/* 80316C78 003128D8 3B 63 E2 20 */ addi r27, r3, lbl_803FE220@l
+/* 80316C7C 003128DC 48 00 01 D4 */ b lbl_80316E50
+lbl_80316C80:
+/* 80316C80 003128E0 28 1E 00 01 */ cmplwi r30, 1
+/* 80316C84 003128E4 40 82 00 6C */ bne lbl_80316CF0
+/* 80316C88 003128E8 80 7C 00 04 */ lwz r3, 4(r28)
+/* 80316C8C 003128EC 38 80 00 01 */ li r4, 1
+/* 80316C90 003128F0 81 9F 00 30 */ lwz r12, 0x30(r31)
+/* 80316C94 003128F4 88 03 00 00 */ lbz r0, 0(r3)
+/* 80316C98 003128F8 7C 03 07 74 */ extsb r3, r0
+/* 80316C9C 003128FC 7D 89 03 A6 */ mtctr r12
+/* 80316CA0 00312900 4E 80 04 21 */ bctrl
+/* 80316CA4 00312904 2C 03 00 00 */ cmpwi r3, 0
+/* 80316CA8 00312908 41 82 00 48 */ beq lbl_80316CF0
+/* 80316CAC 0031290C 80 7C 00 04 */ lwz r3, 4(r28)
+/* 80316CB0 00312910 38 80 00 02 */ li r4, 2
+/* 80316CB4 00312914 38 63 00 01 */ addi r3, r3, 1
+/* 80316CB8 00312918 90 7C 00 04 */ stw r3, 4(r28)
+/* 80316CBC 0031291C 88 03 00 00 */ lbz r0, 0(r3)
+/* 80316CC0 00312920 81 9F 00 30 */ lwz r12, 0x30(r31)
+/* 80316CC4 00312924 7C 03 07 74 */ extsb r3, r0
+/* 80316CC8 00312928 7D 89 03 A6 */ mtctr r12
+/* 80316CCC 0031292C 4E 80 04 21 */ bctrl
+/* 80316CD0 00312930 2C 03 00 00 */ cmpwi r3, 0
+/* 80316CD4 00312934 41 82 00 14 */ beq lbl_80316CE8
+/* 80316CD8 00312938 80 7C 00 04 */ lwz r3, 4(r28)
+/* 80316CDC 0031293C 88 03 00 00 */ lbz r0, 0(r3)
+/* 80316CE0 00312940 7C 00 07 75 */ extsb. r0, r0
+/* 80316CE4 00312944 40 82 01 48 */ bne lbl_80316E2C
+lbl_80316CE8:
+/* 80316CE8 00312948 38 60 00 02 */ li r3, 2
+/* 80316CEC 0031294C 48 00 01 88 */ b lbl_80316E74
+lbl_80316CF0:
+/* 80316CF0 00312950 7F 83 E3 78 */ mr r3, r28
+/* 80316CF4 00312954 38 8D 8D 0C */ addi r4, r13, lbl_8063DFCC-_SDA_BASE_
+/* 80316CF8 00312958 38 A0 00 02 */ li r5, 2
+/* 80316CFC 0031295C 38 C0 00 00 */ li r6, 0
+/* 80316D00 00312960 38 E0 00 01 */ li r7, 1
+/* 80316D04 00312964 4B FE E9 5D */ bl VFiPFSTR_StrNCmp
+/* 80316D08 00312968 2C 03 00 00 */ cmpwi r3, 0
+/* 80316D0C 0031296C 41 82 01 64 */ beq lbl_80316E70
+/* 80316D10 00312970 7F 83 E3 78 */ mr r3, r28
+/* 80316D14 00312974 38 8D 8D 10 */ addi r4, r13, lbl_8063DFD0-_SDA_BASE_
+/* 80316D18 00312978 38 A0 00 02 */ li r5, 2
+/* 80316D1C 0031297C 38 C0 00 00 */ li r6, 0
+/* 80316D20 00312980 38 E0 00 01 */ li r7, 1
+/* 80316D24 00312984 4B FE E9 3D */ bl VFiPFSTR_StrNCmp
+/* 80316D28 00312988 2C 03 00 00 */ cmpwi r3, 0
+/* 80316D2C 0031298C 41 82 01 44 */ beq lbl_80316E70
+/* 80316D30 00312990 80 1F 00 14 */ lwz r0, 0x14(r31)
+/* 80316D34 00312994 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf
+/* 80316D38 00312998 40 82 00 F4 */ bne lbl_80316E2C
+/* 80316D3C 0031299C 28 1E 00 01 */ cmplwi r30, 1
+/* 80316D40 003129A0 40 82 00 2C */ bne lbl_80316D6C
+/* 80316D44 003129A4 80 7C 00 04 */ lwz r3, 4(r28)
+/* 80316D48 003129A8 88 03 00 00 */ lbz r0, 0(r3)
+/* 80316D4C 003129AC 28 00 00 80 */ cmplwi r0, 0x80
+/* 80316D50 003129B0 40 80 00 1C */ bge lbl_80316D6C
+/* 80316D54 003129B4 28 00 00 20 */ cmplwi r0, 0x20
+/* 80316D58 003129B8 41 80 00 84 */ blt lbl_80316DDC
+/* 80316D5C 003129BC 7C 7B 02 14 */ add r3, r27, r0
+/* 80316D60 003129C0 88 03 FF E0 */ lbz r0, -0x20(r3)
+/* 80316D64 003129C4 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80316D68 003129C8 41 82 00 74 */ beq lbl_80316DDC
+lbl_80316D6C:
+/* 80316D6C 003129CC 28 1E 00 02 */ cmplwi r30, 2
+/* 80316D70 003129D0 40 82 00 BC */ bne lbl_80316E2C
+/* 80316D74 003129D4 80 9C 00 04 */ lwz r4, 4(r28)
+/* 80316D78 003129D8 38 A0 00 01 */ li r5, 1
+/* 80316D7C 003129DC 88 64 00 00 */ lbz r3, 0(r4)
+/* 80316D80 003129E0 88 04 00 01 */ lbz r0, 1(r4)
+/* 80316D84 003129E4 54 63 40 2E */ slwi r3, r3, 8
+/* 80316D88 003129E8 7C 63 02 14 */ add r3, r3, r0
+/* 80316D8C 003129EC 54 60 04 3E */ clrlwi r0, r3, 0x10
+/* 80316D90 003129F0 28 00 00 80 */ cmplwi r0, 0x80
+/* 80316D94 003129F4 40 80 00 40 */ bge lbl_80316DD4
+/* 80316D98 003129F8 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 80316D9C 003129FC 38 80 00 00 */ li r4, 0
+/* 80316DA0 00312A00 28 03 00 20 */ cmplwi r3, 0x20
+/* 80316DA4 00312A04 41 80 00 24 */ blt lbl_80316DC8
+/* 80316DA8 00312A08 54 60 04 2F */ rlwinm. r0, r3, 0, 0x10, 0x17
+/* 80316DAC 00312A0C 40 82 00 1C */ bne lbl_80316DC8
+/* 80316DB0 00312A10 38 03 FF E0 */ addi r0, r3, -32
+/* 80316DB4 00312A14 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 80316DB8 00312A18 7C 1B 00 AE */ lbzx r0, r27, r0
+/* 80316DBC 00312A1C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80316DC0 00312A20 41 82 00 08 */ beq lbl_80316DC8
+/* 80316DC4 00312A24 38 80 00 01 */ li r4, 1
+lbl_80316DC8:
+/* 80316DC8 00312A28 2C 04 00 00 */ cmpwi r4, 0
+/* 80316DCC 00312A2C 40 82 00 08 */ bne lbl_80316DD4
+/* 80316DD0 00312A30 38 A0 00 00 */ li r5, 0
+lbl_80316DD4:
+/* 80316DD4 00312A34 2C 05 00 00 */ cmpwi r5, 0
+/* 80316DD8 00312A38 40 82 00 54 */ bne lbl_80316E2C
+lbl_80316DDC:
+/* 80316DDC 00312A3C 2C 1D 00 00 */ cmpwi r29, 0
+/* 80316DE0 00312A40 41 82 00 44 */ beq lbl_80316E24
+/* 80316DE4 00312A44 7F 83 E3 78 */ mr r3, r28
+/* 80316DE8 00312A48 38 8D 8D 14 */ addi r4, r13, lbl_8063DFD4-_SDA_BASE_
+/* 80316DEC 00312A4C 38 A0 00 02 */ li r5, 2
+/* 80316DF0 00312A50 38 C0 00 00 */ li r6, 0
+/* 80316DF4 00312A54 38 E0 00 01 */ li r7, 1
+/* 80316DF8 00312A58 4B FE E8 69 */ bl VFiPFSTR_StrNCmp
+/* 80316DFC 00312A5C 2C 03 00 00 */ cmpwi r3, 0
+/* 80316E00 00312A60 41 82 00 2C */ beq lbl_80316E2C
+/* 80316E04 00312A64 7F 83 E3 78 */ mr r3, r28
+/* 80316E08 00312A68 38 8D 8D 18 */ addi r4, r13, lbl_8063DFD8-_SDA_BASE_
+/* 80316E0C 00312A6C 38 A0 00 02 */ li r5, 2
+/* 80316E10 00312A70 38 C0 00 00 */ li r6, 0
+/* 80316E14 00312A74 38 E0 00 01 */ li r7, 1
+/* 80316E18 00312A78 4B FE E8 49 */ bl VFiPFSTR_StrNCmp
+/* 80316E1C 00312A7C 2C 03 00 00 */ cmpwi r3, 0
+/* 80316E20 00312A80 41 82 00 0C */ beq lbl_80316E2C
+lbl_80316E24:
+/* 80316E24 00312A84 38 60 00 02 */ li r3, 2
+/* 80316E28 00312A88 48 00 00 4C */ b lbl_80316E74
+lbl_80316E2C:
+/* 80316E2C 00312A8C 28 1E 00 01 */ cmplwi r30, 1
+/* 80316E30 00312A90 40 82 00 14 */ bne lbl_80316E44
+/* 80316E34 00312A94 80 7C 00 04 */ lwz r3, 4(r28)
+/* 80316E38 00312A98 38 03 00 01 */ addi r0, r3, 1
+/* 80316E3C 00312A9C 90 1C 00 04 */ stw r0, 4(r28)
+/* 80316E40 00312AA0 48 00 00 10 */ b lbl_80316E50
+lbl_80316E44:
+/* 80316E44 00312AA4 80 7C 00 04 */ lwz r3, 4(r28)
+/* 80316E48 00312AA8 38 03 00 02 */ addi r0, r3, 2
+/* 80316E4C 00312AAC 90 1C 00 04 */ stw r0, 4(r28)
+lbl_80316E50:
+/* 80316E50 00312AB0 7F 83 E3 78 */ mr r3, r28
+/* 80316E54 00312AB4 38 8D 8C FC */ addi r4, r13, lbl_8063DFBC-_SDA_BASE_
+/* 80316E58 00312AB8 38 A0 00 02 */ li r5, 2
+/* 80316E5C 00312ABC 38 C0 00 00 */ li r6, 0
+/* 80316E60 00312AC0 38 E0 00 01 */ li r7, 1
+/* 80316E64 00312AC4 4B FE E7 FD */ bl VFiPFSTR_StrNCmp
+/* 80316E68 00312AC8 2C 03 00 00 */ cmpwi r3, 0
+/* 80316E6C 00312ACC 40 82 FE 14 */ bne lbl_80316C80
+lbl_80316E70:
+/* 80316E70 00312AD0 38 60 00 00 */ li r3, 0
+lbl_80316E74:
+/* 80316E74 00312AD4 39 61 00 20 */ addi r11, r1, 0x20
+/* 80316E78 00312AD8 4B EB 02 FD */ bl _restgpr_27
+/* 80316E7C 00312ADC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80316E80 00312AE0 7C 08 03 A6 */ mtlr r0
+/* 80316E84 00312AE4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80316E88 00312AE8 4E 80 00 20 */ blr
+
+.global VFiPFPATH_SplitPath
+VFiPFPATH_SplitPath:
+/* 80316E8C 00312AEC 38 C0 00 00 */ li r6, 0
+/* 80316E90 00312AF0 4B FF ED A0 */ b VFiPFPATH_DoSplitPath
+
+.global VFiPFPATH_GetVolumeFromPath
+VFiPFPATH_GetVolumeFromPath:
+/* 80316E94 00312AF4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80316E98 00312AF8 7C 08 02 A6 */ mflr r0
+/* 80316E9C 00312AFC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80316EA0 00312B00 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80316EA4 00312B04 7C 7F 1B 78 */ mr r31, r3
+/* 80316EA8 00312B08 4B FE E6 21 */ bl VFiPFSTR_StrLen
+/* 80316EAC 00312B0C 54 60 04 3F */ clrlwi. r0, r3, 0x10
+/* 80316EB0 00312B10 40 82 00 0C */ bne lbl_80316EBC
+/* 80316EB4 00312B14 38 60 00 00 */ li r3, 0
+/* 80316EB8 00312B18 48 00 00 60 */ b lbl_80316F18
+lbl_80316EBC:
+/* 80316EBC 00312B1C 7F E3 FB 78 */ mr r3, r31
+/* 80316EC0 00312B20 38 80 00 01 */ li r4, 1
+/* 80316EC4 00312B24 4B FE E6 19 */ bl VFiPFSTR_StrNumChar
+/* 80316EC8 00312B28 54 60 04 3E */ clrlwi r0, r3, 0x10
+/* 80316ECC 00312B2C 28 00 00 02 */ cmplwi r0, 2
+/* 80316ED0 00312B30 41 80 00 44 */ blt lbl_80316F14
+/* 80316ED4 00312B34 7F E3 FB 78 */ mr r3, r31
+/* 80316ED8 00312B38 38 8D 8C F8 */ addi r4, r13, lbl_8063DFB8-_SDA_BASE_
+/* 80316EDC 00312B3C 38 A0 00 01 */ li r5, 1
+/* 80316EE0 00312B40 38 C0 00 01 */ li r6, 1
+/* 80316EE4 00312B44 38 E0 00 01 */ li r7, 1
+/* 80316EE8 00312B48 4B FE E7 79 */ bl VFiPFSTR_StrNCmp
+/* 80316EEC 00312B4C 2C 03 00 00 */ cmpwi r3, 0
+/* 80316EF0 00312B50 40 82 00 24 */ bne lbl_80316F14
+/* 80316EF4 00312B54 7F E3 FB 78 */ mr r3, r31
+/* 80316EF8 00312B58 38 A1 00 08 */ addi r5, r1, 8
+/* 80316EFC 00312B5C 38 80 00 01 */ li r4, 1
+/* 80316F00 00312B60 4B FE E8 79 */ bl VFiPFSTR_ToUpperNStr
+/* 80316F04 00312B64 88 01 00 08 */ lbz r0, 8(r1)
+/* 80316F08 00312B68 7C 03 07 74 */ extsb r3, r0
+/* 80316F0C 00312B6C 48 00 2C 4D */ bl VFiPFVOL_GetVolumeFromDrvChar
+/* 80316F10 00312B70 48 00 00 08 */ b lbl_80316F18
+lbl_80316F14:
+/* 80316F14 00312B74 48 00 2A F1 */ bl VFiPFVOL_GetCurrentVolume
+lbl_80316F18:
+/* 80316F18 00312B78 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80316F1C 00312B7C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80316F20 00312B80 7C 08 03 A6 */ mtlr r0
+/* 80316F24 00312B84 38 21 00 20 */ addi r1, r1, 0x20
+/* 80316F28 00312B88 4E 80 00 20 */ blr
+
+.global VFiPFPATH_MatchFileNameWithPattern
+VFiPFPATH_MatchFileNameWithPattern:
+/* 80316F2C 00312B8C 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80316F30 00312B90 7C 08 02 A6 */ mflr r0
+/* 80316F34 00312B94 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80316F38 00312B98 38 00 00 00 */ li r0, 0
+/* 80316F3C 00312B9C 93 E1 00 3C */ stw r31, 0x3c(r1)
+/* 80316F40 00312BA0 3B E0 00 01 */ li r31, 1
+/* 80316F44 00312BA4 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 80316F48 00312BA8 7C BE 2B 78 */ mr r30, r5
+/* 80316F4C 00312BAC 93 A1 00 34 */ stw r29, 0x34(r1)
+/* 80316F50 00312BB0 7C 9D 23 78 */ mr r29, r4
+/* 80316F54 00312BB4 93 81 00 30 */ stw r28, 0x30(r1)
+/* 80316F58 00312BB8 7C 7C 1B 78 */ mr r28, r3
+/* 80316F5C 00312BBC 88 E2 A4 A0 */ lbz r7, lbl_80642AA0-_SDA2_BASE_(r2)
+/* 80316F60 00312BC0 88 C2 A4 A1 */ lbz r6, lbl_80642AA1-_SDA2_BASE_(r2)
+/* 80316F64 00312BC4 90 61 00 20 */ stw r3, 0x20(r1)
+/* 80316F68 00312BC8 7F A3 EB 78 */ mr r3, r29
+/* 80316F6C 00312BCC 98 E1 00 0C */ stb r7, 0xc(r1)
+/* 80316F70 00312BD0 98 C1 00 0D */ stb r6, 0xd(r1)
+/* 80316F74 00312BD4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80316F78 00312BD8 90 A1 00 28 */ stw r5, 0x28(r1)
+/* 80316F7C 00312BDC B0 01 00 2C */ sth r0, 0x2c(r1)
+/* 80316F80 00312BE0 80 A4 00 00 */ lwz r5, 0(r4)
+/* 80316F84 00312BE4 80 04 00 04 */ lwz r0, 4(r4)
+/* 80316F88 00312BE8 90 A1 00 10 */ stw r5, 0x10(r1)
+/* 80316F8C 00312BEC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80316F90 00312BF0 80 A4 00 08 */ lwz r5, 8(r4)
+/* 80316F94 00312BF4 80 04 00 0C */ lwz r0, 0xc(r4)
+/* 80316F98 00312BF8 90 A1 00 18 */ stw r5, 0x18(r1)
+/* 80316F9C 00312BFC 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 80316FA0 00312C00 4B FE E3 41 */ bl VFiPFSTR_GetCodeMode
+/* 80316FA4 00312C04 28 03 00 01 */ cmplwi r3, 1
+/* 80316FA8 00312C08 40 82 00 A4 */ bne lbl_8031704C
+/* 80316FAC 00312C0C 2C 1E 00 00 */ cmpwi r30, 0
+/* 80316FB0 00312C10 40 82 01 18 */ bne lbl_803170C8
+/* 80316FB4 00312C14 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80316FB8 00312C18 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80316FBC 00312C1C 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 80316FC0 00312C20 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
+/* 80316FC4 00312C24 28 00 00 02 */ cmplwi r0, 2
+/* 80316FC8 00312C28 40 82 01 00 */ bne lbl_803170C8
+/* 80316FCC 00312C2C 88 8D 8D 1C */ lbz r4, lbl_8063DFDC-_SDA_BASE_(r13)
+/* 80316FD0 00312C30 34 61 00 10 */ addic. r3, r1, 0x10
+/* 80316FD4 00312C34 88 0D 8D 1D */ lbz r0, lbl_8063DFDD-_SDA_BASE_(r13)
+/* 80316FD8 00312C38 3B A0 00 00 */ li r29, 0
+/* 80316FDC 00312C3C 98 81 00 08 */ stb r4, 8(r1)
+/* 80316FE0 00312C40 98 01 00 09 */ stb r0, 9(r1)
+/* 80316FE4 00312C44 40 82 00 0C */ bne lbl_80316FF0
+/* 80316FE8 00312C48 3B A0 00 0A */ li r29, 0xa
+/* 80316FEC 00312C4C 48 00 00 24 */ b lbl_80317010
+lbl_80316FF0:
+/* 80316FF0 00312C50 38 81 00 08 */ addi r4, r1, 8
+/* 80316FF4 00312C54 38 A0 00 01 */ li r5, 1
+/* 80316FF8 00312C58 38 C0 00 00 */ li r6, 0
+/* 80316FFC 00312C5C 38 E0 00 02 */ li r7, 2
+/* 80317000 00312C60 4B FE E6 61 */ bl VFiPFSTR_StrNCmp
+/* 80317004 00312C64 2C 03 00 00 */ cmpwi r3, 0
+/* 80317008 00312C68 40 82 00 08 */ bne lbl_80317010
+/* 8031700C 00312C6C 3B A0 00 01 */ li r29, 1
+lbl_80317010:
+/* 80317010 00312C70 28 1D 00 01 */ cmplwi r29, 1
+/* 80317014 00312C74 40 82 00 B4 */ bne lbl_803170C8
+/* 80317018 00312C78 7F 83 E3 78 */ mr r3, r28
+/* 8031701C 00312C7C 38 81 00 0C */ addi r4, r1, 0xc
+/* 80317020 00312C80 38 A0 00 02 */ li r5, 2
+/* 80317024 00312C84 4B FE E1 25 */ bl VFipf_strncmp
+/* 80317028 00312C88 2C 03 00 00 */ cmpwi r3, 0
+/* 8031702C 00312C8C 40 82 00 9C */ bne lbl_803170C8
+/* 80317030 00312C90 A0 81 00 2C */ lhz r4, 0x2c(r1)
+/* 80317034 00312C94 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 80317038 00312C98 38 84 00 02 */ addi r4, r4, 2
+/* 8031703C 00312C9C 38 03 00 02 */ addi r0, r3, 2
+/* 80317040 00312CA0 B0 81 00 2C */ sth r4, 0x2c(r1)
+/* 80317044 00312CA4 90 01 00 10 */ stw r0, 0x10(r1)
+/* 80317048 00312CA8 48 00 00 80 */ b lbl_803170C8
+lbl_8031704C:
+/* 8031704C 00312CAC 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80317050 00312CB0 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80317054 00312CB4 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 80317058 00312CB8 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
+/* 8031705C 00312CBC 28 00 00 02 */ cmplwi r0, 2
+/* 80317060 00312CC0 40 82 00 68 */ bne lbl_803170C8
+/* 80317064 00312CC4 2C 1E 00 00 */ cmpwi r30, 0
+/* 80317068 00312CC8 40 82 00 60 */ bne lbl_803170C8
+/* 8031706C 00312CCC 7F A3 EB 78 */ mr r3, r29
+/* 80317070 00312CD0 38 8D 8D 00 */ addi r4, r13, lbl_8063DFC0-_SDA_BASE_
+/* 80317074 00312CD4 38 A0 00 01 */ li r5, 1
+/* 80317078 00312CD8 38 C0 00 00 */ li r6, 0
+/* 8031707C 00312CDC 38 E0 00 01 */ li r7, 1
+/* 80317080 00312CE0 4B FE E5 E1 */ bl VFiPFSTR_StrNCmp
+/* 80317084 00312CE4 2C 03 00 00 */ cmpwi r3, 0
+/* 80317088 00312CE8 41 82 00 40 */ beq lbl_803170C8
+/* 8031708C 00312CEC 7F A3 EB 78 */ mr r3, r29
+/* 80317090 00312CF0 38 8D 8D 04 */ addi r4, r13, lbl_8063DFC4-_SDA_BASE_
+/* 80317094 00312CF4 38 A0 00 01 */ li r5, 1
+/* 80317098 00312CF8 38 C0 00 00 */ li r6, 0
+/* 8031709C 00312CFC 38 E0 00 02 */ li r7, 2
+/* 803170A0 00312D00 4B FE E5 C1 */ bl VFiPFSTR_StrNCmp
+/* 803170A4 00312D04 2C 03 00 00 */ cmpwi r3, 0
+/* 803170A8 00312D08 41 82 00 20 */ beq lbl_803170C8
+/* 803170AC 00312D0C 7F A3 EB 78 */ mr r3, r29
+/* 803170B0 00312D10 38 80 00 01 */ li r4, 1
+/* 803170B4 00312D14 38 A0 00 00 */ li r5, 0
+/* 803170B8 00312D18 48 00 13 7D */ bl VFiPFPATH_CheckExtShortName
+/* 803170BC 00312D1C 2C 03 00 00 */ cmpwi r3, 0
+/* 803170C0 00312D20 40 82 00 08 */ bne lbl_803170C8
+/* 803170C4 00312D24 3B E0 00 00 */ li r31, 0
+lbl_803170C8:
+/* 803170C8 00312D28 28 1F 00 01 */ cmplwi r31, 1
+/* 803170CC 00312D2C 40 82 01 58 */ bne lbl_80317224
+/* 803170D0 00312D30 80 01 00 28 */ lwz r0, 0x28(r1)
+/* 803170D4 00312D34 2C 00 00 00 */ cmpwi r0, 0
+/* 803170D8 00312D38 41 82 00 84 */ beq lbl_8031715C
+/* 803170DC 00312D3C A0 A1 00 2C */ lhz r5, 0x2c(r1)
+/* 803170E0 00312D40 28 05 02 0A */ cmplwi r5, 0x20a
+/* 803170E4 00312D44 40 81 00 0C */ ble lbl_803170F0
+/* 803170E8 00312D48 3B E0 00 00 */ li r31, 0
+/* 803170EC 00312D4C 48 00 01 0C */ b lbl_803171F8
+lbl_803170F0:
+/* 803170F0 00312D50 80 81 00 20 */ lwz r4, 0x20(r1)
+/* 803170F4 00312D54 38 65 00 02 */ addi r3, r5, 2
+/* 803170F8 00312D58 38 00 00 00 */ li r0, 0
+/* 803170FC 00312D5C 7C 84 2A 2E */ lhzx r4, r4, r5
+/* 80317100 00312D60 28 04 00 61 */ cmplwi r4, 0x61
+/* 80317104 00312D64 B0 61 00 2C */ sth r3, 0x2c(r1)
+/* 80317108 00312D68 41 80 00 10 */ blt lbl_80317118
+/* 8031710C 00312D6C 28 04 00 7A */ cmplwi r4, 0x7a
+/* 80317110 00312D70 41 81 00 08 */ bgt lbl_80317118
+/* 80317114 00312D74 38 00 00 01 */ li r0, 1
+lbl_80317118:
+/* 80317118 00312D78 2C 00 00 00 */ cmpwi r0, 0
+/* 8031711C 00312D7C 41 82 00 08 */ beq lbl_80317124
+/* 80317120 00312D80 38 84 FF E0 */ addi r4, r4, -32
+lbl_80317124:
+/* 80317124 00312D84 54 9F 04 3E */ clrlwi r31, r4, 0x10
+/* 80317128 00312D88 28 1F FF 41 */ cmplwi r31, 0xff41
+/* 8031712C 00312D8C 41 80 00 1C */ blt lbl_80317148
+/* 80317130 00312D90 28 1F FF 5A */ cmplwi r31, 0xff5a
+/* 80317134 00312D94 41 81 00 14 */ bgt lbl_80317148
+/* 80317138 00312D98 38 1F FF E0 */ addi r0, r31, -32
+/* 8031713C 00312D9C 38 60 00 01 */ li r3, 1
+/* 80317140 00312DA0 54 1D 04 3E */ clrlwi r29, r0, 0x10
+/* 80317144 00312DA4 48 00 00 08 */ b lbl_8031714C
+lbl_80317148:
+/* 80317148 00312DA8 38 60 00 00 */ li r3, 0
+lbl_8031714C:
+/* 8031714C 00312DAC 28 03 00 01 */ cmplwi r3, 1
+/* 80317150 00312DB0 40 82 00 A8 */ bne lbl_803171F8
+/* 80317154 00312DB4 7F BF EB 78 */ mr r31, r29
+/* 80317158 00312DB8 48 00 00 A0 */ b lbl_803171F8
+lbl_8031715C:
+/* 8031715C 00312DBC A0 C1 00 2C */ lhz r6, 0x2c(r1)
+/* 80317160 00312DC0 28 06 00 0C */ cmplwi r6, 0xc
+/* 80317164 00312DC4 41 80 00 0C */ blt lbl_80317170
+/* 80317168 00312DC8 3B E0 00 00 */ li r31, 0
+/* 8031716C 00312DCC 48 00 00 8C */ b lbl_803171F8
+lbl_80317170:
+/* 80317170 00312DD0 38 06 00 01 */ addi r0, r6, 1
+/* 80317174 00312DD4 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80317178 00312DD8 B0 01 00 2C */ sth r0, 0x2c(r1)
+/* 8031717C 00312DDC 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80317180 00312DE0 80 A1 00 20 */ lwz r5, 0x20(r1)
+/* 80317184 00312DE4 38 80 00 01 */ li r4, 1
+/* 80317188 00312DE8 81 83 00 30 */ lwz r12, 0x30(r3)
+/* 8031718C 00312DEC 7F A5 30 AE */ lbzx r29, r5, r6
+/* 80317190 00312DF0 7F BD 07 74 */ extsb r29, r29
+/* 80317194 00312DF4 7F A3 EB 78 */ mr r3, r29
+/* 80317198 00312DF8 7D 89 03 A6 */ mtctr r12
+/* 8031719C 00312DFC 4E 80 04 21 */ bctrl
+/* 803171A0 00312E00 2C 03 00 00 */ cmpwi r3, 0
+/* 803171A4 00312E04 41 82 00 24 */ beq lbl_803171C8
+/* 803171A8 00312E08 A0 81 00 2C */ lhz r4, 0x2c(r1)
+/* 803171AC 00312E0C 57 A0 44 2E */ rlwinm r0, r29, 8, 0x10, 0x17
+/* 803171B0 00312E10 80 A1 00 20 */ lwz r5, 0x20(r1)
+/* 803171B4 00312E14 38 64 00 01 */ addi r3, r4, 1
+/* 803171B8 00312E18 B0 61 00 2C */ sth r3, 0x2c(r1)
+/* 803171BC 00312E1C 7C 65 20 AE */ lbzx r3, r5, r4
+/* 803171C0 00312E20 7C 00 1A 14 */ add r0, r0, r3
+/* 803171C4 00312E24 54 1D 04 3E */ clrlwi r29, r0, 0x10
+lbl_803171C8:
+/* 803171C8 00312E28 57 A0 04 3E */ clrlwi r0, r29, 0x10
+/* 803171CC 00312E2C 38 60 00 00 */ li r3, 0
+/* 803171D0 00312E30 28 00 00 61 */ cmplwi r0, 0x61
+/* 803171D4 00312E34 41 80 00 10 */ blt lbl_803171E4
+/* 803171D8 00312E38 28 00 00 7A */ cmplwi r0, 0x7a
+/* 803171DC 00312E3C 41 81 00 08 */ bgt lbl_803171E4
+/* 803171E0 00312E40 38 60 00 01 */ li r3, 1
+lbl_803171E4:
+/* 803171E4 00312E44 2C 03 00 00 */ cmpwi r3, 0
+/* 803171E8 00312E48 57 A3 04 3E */ clrlwi r3, r29, 0x10
+/* 803171EC 00312E4C 41 82 00 08 */ beq lbl_803171F4
+/* 803171F0 00312E50 38 63 FF E0 */ addi r3, r3, -32
+lbl_803171F4:
+/* 803171F4 00312E54 54 7F 04 3E */ clrlwi r31, r3, 0x10
+lbl_803171F8:
+/* 803171F8 00312E58 7F C4 F3 78 */ mr r4, r30
+/* 803171FC 00312E5C 38 61 00 10 */ addi r3, r1, 0x10
+/* 80317200 00312E60 4B FF EC 29 */ bl VFiPFPATH_GetNextCharOfPattern
+/* 80317204 00312E64 7C 60 1B 78 */ mr r0, r3
+/* 80317208 00312E68 7F C7 F3 78 */ mr r7, r30
+/* 8031720C 00312E6C 57 E3 04 3E */ clrlwi r3, r31, 0x10
+/* 80317210 00312E70 38 81 00 20 */ addi r4, r1, 0x20
+/* 80317214 00312E74 54 05 04 3E */ clrlwi r5, r0, 0x10
+/* 80317218 00312E78 38 C1 00 10 */ addi r6, r1, 0x10
+/* 8031721C 00312E7C 4B FF EE CD */ bl VFiPFPATH_DoMatchFileNameWithPattern
+/* 80317220 00312E80 7C 7F 1B 78 */ mr r31, r3
+lbl_80317224:
+/* 80317224 00312E84 7F E3 FB 78 */ mr r3, r31
+/* 80317228 00312E88 83 E1 00 3C */ lwz r31, 0x3c(r1)
+/* 8031722C 00312E8C 83 C1 00 38 */ lwz r30, 0x38(r1)
+/* 80317230 00312E90 83 A1 00 34 */ lwz r29, 0x34(r1)
+/* 80317234 00312E94 83 81 00 30 */ lwz r28, 0x30(r1)
+/* 80317238 00312E98 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8031723C 00312E9C 7C 08 03 A6 */ mtlr r0
+/* 80317240 00312EA0 38 21 00 40 */ addi r1, r1, 0x40
+/* 80317244 00312EA4 4E 80 00 20 */ blr
+
+.global VFiPFPATH_putShortName
+VFiPFPATH_putShortName:
+/* 80317248 00312EA8 39 20 00 00 */ li r9, 0
+/* 8031724C 00312EAC 48 00 00 18 */ b lbl_80317264
+lbl_80317250:
+/* 80317250 00312EB0 88 04 00 00 */ lbz r0, 0(r4)
+/* 80317254 00312EB4 39 29 00 01 */ addi r9, r9, 1
+/* 80317258 00312EB8 38 84 00 01 */ addi r4, r4, 1
+/* 8031725C 00312EBC 98 03 00 00 */ stb r0, 0(r3)
+/* 80317260 00312EC0 38 63 00 01 */ addi r3, r3, 1
+lbl_80317264:
+/* 80317264 00312EC4 2C 09 00 08 */ cmpwi r9, 8
+/* 80317268 00312EC8 40 80 00 18 */ bge lbl_80317280
+/* 8031726C 00312ECC 88 04 00 00 */ lbz r0, 0(r4)
+/* 80317270 00312ED0 7C 00 07 75 */ extsb. r0, r0
+/* 80317274 00312ED4 41 82 00 0C */ beq lbl_80317280
+/* 80317278 00312ED8 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 8031727C 00312EDC 40 82 FF D4 */ bne lbl_80317250
+lbl_80317280:
+/* 80317280 00312EE0 2C 09 00 00 */ cmpwi r9, 0
+/* 80317284 00312EE4 40 82 00 34 */ bne lbl_803172B8
+/* 80317288 00312EE8 39 20 00 00 */ li r9, 0
+/* 8031728C 00312EEC 48 00 00 18 */ b lbl_803172A4
+lbl_80317290:
+/* 80317290 00312EF0 88 04 00 00 */ lbz r0, 0(r4)
+/* 80317294 00312EF4 39 29 00 01 */ addi r9, r9, 1
+/* 80317298 00312EF8 38 84 00 01 */ addi r4, r4, 1
+/* 8031729C 00312EFC 98 03 00 00 */ stb r0, 0(r3)
+/* 803172A0 00312F00 38 63 00 01 */ addi r3, r3, 1
+lbl_803172A4:
+/* 803172A4 00312F04 2C 09 00 02 */ cmpwi r9, 2
+/* 803172A8 00312F08 40 80 00 10 */ bge lbl_803172B8
+/* 803172AC 00312F0C 88 04 00 00 */ lbz r0, 0(r4)
+/* 803172B0 00312F10 7C 00 07 75 */ extsb. r0, r0
+/* 803172B4 00312F14 40 82 FF DC */ bne lbl_80317290
+lbl_803172B8:
+/* 803172B8 00312F18 2C 89 00 08 */ cmpwi cr1, r9, 8
+/* 803172BC 00312F1C 40 85 00 0C */ ble cr1, lbl_803172C8
+/* 803172C0 00312F20 38 60 00 0A */ li r3, 0xa
+/* 803172C4 00312F24 4E 80 00 20 */ blr
+lbl_803172C8:
+/* 803172C8 00312F28 54 A8 07 39 */ rlwinm. r8, r5, 0, 0x1c, 0x1c
+/* 803172CC 00312F2C 40 82 00 64 */ bne lbl_80317330
+/* 803172D0 00312F30 20 C9 00 08 */ subfic r6, r9, 8
+/* 803172D4 00312F34 38 E0 00 20 */ li r7, 0x20
+/* 803172D8 00312F38 40 84 00 58 */ bge cr1, lbl_80317330
+/* 803172DC 00312F3C 54 C5 E8 FF */ rlwinm. r5, r6, 0x1d, 3, 0x1f
+/* 803172E0 00312F40 7C C0 33 78 */ mr r0, r6
+/* 803172E4 00312F44 7C A9 03 A6 */ mtctr r5
+/* 803172E8 00312F48 41 82 00 34 */ beq lbl_8031731C
+lbl_803172EC:
+/* 803172EC 00312F4C 98 E3 00 00 */ stb r7, 0(r3)
+/* 803172F0 00312F50 98 E3 00 01 */ stb r7, 1(r3)
+/* 803172F4 00312F54 98 E3 00 02 */ stb r7, 2(r3)
+/* 803172F8 00312F58 98 E3 00 03 */ stb r7, 3(r3)
+/* 803172FC 00312F5C 98 E3 00 04 */ stb r7, 4(r3)
+/* 80317300 00312F60 98 E3 00 05 */ stb r7, 5(r3)
+/* 80317304 00312F64 98 E3 00 06 */ stb r7, 6(r3)
+/* 80317308 00312F68 98 E3 00 07 */ stb r7, 7(r3)
+/* 8031730C 00312F6C 38 63 00 08 */ addi r3, r3, 8
+/* 80317310 00312F70 42 00 FF DC */ bdnz lbl_803172EC
+/* 80317314 00312F74 70 C6 00 07 */ andi. r6, r6, 7
+/* 80317318 00312F78 41 82 00 14 */ beq lbl_8031732C
+lbl_8031731C:
+/* 8031731C 00312F7C 7C C9 03 A6 */ mtctr r6
+lbl_80317320:
+/* 80317320 00312F80 98 E3 00 00 */ stb r7, 0(r3)
+/* 80317324 00312F84 38 63 00 01 */ addi r3, r3, 1
+/* 80317328 00312F88 42 00 FF F8 */ bdnz lbl_80317320
+lbl_8031732C:
+/* 8031732C 00312F8C 7D 29 02 14 */ add r9, r9, r0
+lbl_80317330:
+/* 80317330 00312F90 88 04 00 00 */ lbz r0, 0(r4)
+/* 80317334 00312F94 7C 00 07 75 */ extsb. r0, r0
+/* 80317338 00312F98 41 82 00 34 */ beq lbl_8031736C
+/* 8031733C 00312F9C 2C 08 00 00 */ cmpwi r8, 0
+/* 80317340 00312FA0 40 82 00 20 */ bne lbl_80317360
+/* 80317344 00312FA4 38 84 00 01 */ addi r4, r4, 1
+/* 80317348 00312FA8 48 00 00 18 */ b lbl_80317360
+lbl_8031734C:
+/* 8031734C 00312FAC 88 04 00 00 */ lbz r0, 0(r4)
+/* 80317350 00312FB0 39 29 00 01 */ addi r9, r9, 1
+/* 80317354 00312FB4 38 84 00 01 */ addi r4, r4, 1
+/* 80317358 00312FB8 98 03 00 00 */ stb r0, 0(r3)
+/* 8031735C 00312FBC 38 63 00 01 */ addi r3, r3, 1
+lbl_80317360:
+/* 80317360 00312FC0 88 04 00 00 */ lbz r0, 0(r4)
+/* 80317364 00312FC4 7C 00 07 75 */ extsb. r0, r0
+/* 80317368 00312FC8 40 82 FF E4 */ bne lbl_8031734C
+lbl_8031736C:
+/* 8031736C 00312FCC 2C 09 00 0B */ cmpwi r9, 0xb
+/* 80317370 00312FD0 20 89 00 0B */ subfic r4, r9, 0xb
+/* 80317374 00312FD4 38 A0 00 20 */ li r5, 0x20
+/* 80317378 00312FD8 40 80 00 50 */ bge lbl_803173C8
+/* 8031737C 00312FDC 54 80 E8 FF */ rlwinm. r0, r4, 0x1d, 3, 0x1f
+/* 80317380 00312FE0 7C 09 03 A6 */ mtctr r0
+/* 80317384 00312FE4 41 82 00 34 */ beq lbl_803173B8
+lbl_80317388:
+/* 80317388 00312FE8 98 A3 00 00 */ stb r5, 0(r3)
+/* 8031738C 00312FEC 98 A3 00 01 */ stb r5, 1(r3)
+/* 80317390 00312FF0 98 A3 00 02 */ stb r5, 2(r3)
+/* 80317394 00312FF4 98 A3 00 03 */ stb r5, 3(r3)
+/* 80317398 00312FF8 98 A3 00 04 */ stb r5, 4(r3)
+/* 8031739C 00312FFC 98 A3 00 05 */ stb r5, 5(r3)
+/* 803173A0 00313000 98 A3 00 06 */ stb r5, 6(r3)
+/* 803173A4 00313004 98 A3 00 07 */ stb r5, 7(r3)
+/* 803173A8 00313008 38 63 00 08 */ addi r3, r3, 8
+/* 803173AC 0031300C 42 00 FF DC */ bdnz lbl_80317388
+/* 803173B0 00313010 70 84 00 07 */ andi. r4, r4, 7
+/* 803173B4 00313014 41 82 00 14 */ beq lbl_803173C8
+lbl_803173B8:
+/* 803173B8 00313018 7C 89 03 A6 */ mtctr r4
+lbl_803173BC:
+/* 803173BC 0031301C 98 A3 00 00 */ stb r5, 0(r3)
+/* 803173C0 00313020 38 63 00 01 */ addi r3, r3, 1
+/* 803173C4 00313024 42 00 FF F8 */ bdnz lbl_803173BC
+lbl_803173C8:
+/* 803173C8 00313028 38 60 00 00 */ li r3, 0
+/* 803173CC 0031302C 4E 80 00 20 */ blr
+
+.global VFiPFPATH_getShortName
+VFiPFPATH_getShortName:
+/* 803173D0 00313030 88 C4 00 00 */ lbz r6, 0(r4)
+/* 803173D4 00313034 38 E0 FF FF */ li r7, -1
+/* 803173D8 00313038 2C 06 00 20 */ cmpwi r6, 0x20
+/* 803173DC 0031303C 98 C3 00 00 */ stb r6, 0(r3)
+/* 803173E0 00313040 41 82 00 08 */ beq lbl_803173E8
+/* 803173E4 00313044 38 E0 00 00 */ li r7, 0
+lbl_803173E8:
+/* 803173E8 00313048 88 C4 00 01 */ lbz r6, 1(r4)
+/* 803173EC 0031304C 2C 06 00 20 */ cmpwi r6, 0x20
+/* 803173F0 00313050 98 C3 00 01 */ stb r6, 1(r3)
+/* 803173F4 00313054 41 82 00 08 */ beq lbl_803173FC
+/* 803173F8 00313058 38 E0 00 01 */ li r7, 1
+lbl_803173FC:
+/* 803173FC 0031305C 88 C4 00 02 */ lbz r6, 2(r4)
+/* 80317400 00313060 2C 06 00 20 */ cmpwi r6, 0x20
+/* 80317404 00313064 98 C3 00 02 */ stb r6, 2(r3)
+/* 80317408 00313068 41 82 00 08 */ beq lbl_80317410
+/* 8031740C 0031306C 38 E0 00 02 */ li r7, 2
+lbl_80317410:
+/* 80317410 00313070 88 C4 00 03 */ lbz r6, 3(r4)
+/* 80317414 00313074 2C 06 00 20 */ cmpwi r6, 0x20
+/* 80317418 00313078 98 C3 00 03 */ stb r6, 3(r3)
+/* 8031741C 0031307C 41 82 00 08 */ beq lbl_80317424
+/* 80317420 00313080 38 E0 00 03 */ li r7, 3
+lbl_80317424:
+/* 80317424 00313084 88 C4 00 04 */ lbz r6, 4(r4)
+/* 80317428 00313088 2C 06 00 20 */ cmpwi r6, 0x20
+/* 8031742C 0031308C 98 C3 00 04 */ stb r6, 4(r3)
+/* 80317430 00313090 41 82 00 08 */ beq lbl_80317438
+/* 80317434 00313094 38 E0 00 04 */ li r7, 4
+lbl_80317438:
+/* 80317438 00313098 88 C4 00 05 */ lbz r6, 5(r4)
+/* 8031743C 0031309C 2C 06 00 20 */ cmpwi r6, 0x20
+/* 80317440 003130A0 98 C3 00 05 */ stb r6, 5(r3)
+/* 80317444 003130A4 41 82 00 08 */ beq lbl_8031744C
+/* 80317448 003130A8 38 E0 00 05 */ li r7, 5
+lbl_8031744C:
+/* 8031744C 003130AC 88 C4 00 06 */ lbz r6, 6(r4)
+/* 80317450 003130B0 2C 06 00 20 */ cmpwi r6, 0x20
+/* 80317454 003130B4 98 C3 00 06 */ stb r6, 6(r3)
+/* 80317458 003130B8 41 82 00 08 */ beq lbl_80317460
+/* 8031745C 003130BC 38 E0 00 06 */ li r7, 6
+lbl_80317460:
+/* 80317460 003130C0 88 C4 00 07 */ lbz r6, 7(r4)
+/* 80317464 003130C4 2C 06 00 20 */ cmpwi r6, 0x20
+/* 80317468 003130C8 98 C3 00 07 */ stb r6, 7(r3)
+/* 8031746C 003130CC 41 82 00 08 */ beq lbl_80317474
+/* 80317470 003130D0 38 E0 00 07 */ li r7, 7
+lbl_80317474:
+/* 80317474 003130D4 34 E7 00 01 */ addic. r7, r7, 1
+/* 80317478 003130D8 7C E3 3A 14 */ add r7, r3, r7
+/* 8031747C 003130DC 40 82 00 0C */ bne lbl_80317488
+/* 80317480 003130E0 38 60 00 0A */ li r3, 0xa
+/* 80317484 003130E4 4E 80 00 20 */ blr
+lbl_80317488:
+/* 80317488 003130E8 88 04 00 08 */ lbz r0, 8(r4)
+/* 8031748C 003130EC 38 C0 00 07 */ li r6, 7
+/* 80317490 003130F0 28 00 00 20 */ cmplwi r0, 0x20
+/* 80317494 003130F4 41 82 00 08 */ beq lbl_8031749C
+/* 80317498 003130F8 38 C0 00 08 */ li r6, 8
+lbl_8031749C:
+/* 8031749C 003130FC 88 04 00 09 */ lbz r0, 9(r4)
+/* 803174A0 00313100 28 00 00 20 */ cmplwi r0, 0x20
+/* 803174A4 00313104 41 82 00 08 */ beq lbl_803174AC
+/* 803174A8 00313108 38 C0 00 09 */ li r6, 9
+lbl_803174AC:
+/* 803174AC 0031310C 88 04 00 0A */ lbz r0, 0xa(r4)
+/* 803174B0 00313110 28 00 00 20 */ cmplwi r0, 0x20
+/* 803174B4 00313114 41 82 00 08 */ beq lbl_803174BC
+/* 803174B8 00313118 38 C0 00 0A */ li r6, 0xa
+lbl_803174BC:
+/* 803174BC 0031311C 2C 06 00 07 */ cmpwi r6, 7
+/* 803174C0 00313120 40 81 01 5C */ ble lbl_8031761C
+/* 803174C4 00313124 54 A0 07 39 */ rlwinm. r0, r5, 0, 0x1c, 0x1c
+/* 803174C8 00313128 40 82 00 10 */ bne lbl_803174D8
+/* 803174CC 0031312C 38 00 00 2E */ li r0, 0x2e
+/* 803174D0 00313130 98 07 00 00 */ stb r0, 0(r7)
+/* 803174D4 00313134 38 E7 00 01 */ addi r7, r7, 1
+lbl_803174D8:
+/* 803174D8 00313138 2C 86 00 08 */ cmpwi cr1, r6, 8
+/* 803174DC 0031313C 38 60 00 08 */ li r3, 8
+/* 803174E0 00313140 41 84 01 3C */ blt cr1, lbl_8031761C
+/* 803174E4 00313144 38 06 FF F9 */ addi r0, r6, -7
+/* 803174E8 00313148 39 06 FF F8 */ addi r8, r6, -8
+/* 803174EC 0031314C 2C 00 00 08 */ cmpwi r0, 8
+/* 803174F0 00313150 40 81 01 00 */ ble lbl_803175F0
+/* 803174F4 00313154 39 20 00 00 */ li r9, 0
+/* 803174F8 00313158 39 40 00 00 */ li r10, 0
+/* 803174FC 0031315C 39 60 00 00 */ li r11, 0
+/* 80317500 00313160 41 84 00 18 */ blt cr1, lbl_80317518
+/* 80317504 00313164 3C A0 80 00 */ lis r5, 0x7FFFFFFE@ha
+/* 80317508 00313168 38 05 FF FE */ addi r0, r5, 0x7FFFFFFE@l
+/* 8031750C 0031316C 7C 06 00 00 */ cmpw r6, r0
+/* 80317510 00313170 41 81 00 08 */ bgt lbl_80317518
+/* 80317514 00313174 39 60 00 01 */ li r11, 1
+lbl_80317518:
+/* 80317518 00313178 2C 0B 00 00 */ cmpwi r11, 0
+/* 8031751C 0031317C 41 82 00 38 */ beq lbl_80317554
+/* 80317520 00313180 54 CB 00 00 */ rlwinm r11, r6, 0, 0, 0
+/* 80317524 00313184 38 A0 00 01 */ li r5, 1
+/* 80317528 00313188 3C 0B 80 00 */ addis r0, r11, 0x8000
+/* 8031752C 0031318C 28 00 00 00 */ cmplwi r0, 0
+/* 80317530 00313190 40 82 00 18 */ bne lbl_80317548
+/* 80317534 00313194 38 06 FF F8 */ addi r0, r6, -8
+/* 80317538 00313198 54 00 00 00 */ rlwinm r0, r0, 0, 0, 0
+/* 8031753C 0031319C 7C 0B 00 00 */ cmpw r11, r0
+/* 80317540 003131A0 41 82 00 08 */ beq lbl_80317548
+/* 80317544 003131A4 38 A0 00 00 */ li r5, 0
+lbl_80317548:
+/* 80317548 003131A8 2C 05 00 00 */ cmpwi r5, 0
+/* 8031754C 003131AC 41 82 00 08 */ beq lbl_80317554
+/* 80317550 003131B0 39 40 00 01 */ li r10, 1
+lbl_80317554:
+/* 80317554 003131B4 2C 0A 00 00 */ cmpwi r10, 0
+/* 80317558 003131B8 41 82 00 30 */ beq lbl_80317588
+/* 8031755C 003131BC 38 06 FF F8 */ addi r0, r6, -8
+/* 80317560 003131C0 38 A0 00 01 */ li r5, 1
+/* 80317564 003131C4 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0
+/* 80317568 003131C8 40 82 00 14 */ bne lbl_8031757C
+/* 8031756C 003131CC 38 06 FF F9 */ addi r0, r6, -7
+/* 80317570 003131D0 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0
+/* 80317574 003131D4 41 82 00 08 */ beq lbl_8031757C
+/* 80317578 003131D8 38 A0 00 00 */ li r5, 0
+lbl_8031757C:
+/* 8031757C 003131DC 2C 05 00 00 */ cmpwi r5, 0
+/* 80317580 003131E0 41 82 00 08 */ beq lbl_80317588
+/* 80317584 003131E4 39 20 00 01 */ li r9, 1
+lbl_80317588:
+/* 80317588 003131E8 2C 09 00 00 */ cmpwi r9, 0
+/* 8031758C 003131EC 41 82 00 64 */ beq lbl_803175F0
+/* 80317590 003131F0 55 00 E8 FE */ srwi r0, r8, 3
+/* 80317594 003131F4 7C 09 03 A6 */ mtctr r0
+/* 80317598 003131F8 2C 08 00 08 */ cmpwi r8, 8
+/* 8031759C 003131FC 41 80 00 54 */ blt lbl_803175F0
+lbl_803175A0:
+/* 803175A0 00313200 7C A4 18 AE */ lbzx r5, r4, r3
+/* 803175A4 00313204 7D 04 1A 14 */ add r8, r4, r3
+/* 803175A8 00313208 88 08 00 01 */ lbz r0, 1(r8)
+/* 803175AC 0031320C 38 63 00 08 */ addi r3, r3, 8
+/* 803175B0 00313210 98 A7 00 00 */ stb r5, 0(r7)
+/* 803175B4 00313214 88 A8 00 02 */ lbz r5, 2(r8)
+/* 803175B8 00313218 98 07 00 01 */ stb r0, 1(r7)
+/* 803175BC 0031321C 88 08 00 03 */ lbz r0, 3(r8)
+/* 803175C0 00313220 98 A7 00 02 */ stb r5, 2(r7)
+/* 803175C4 00313224 88 A8 00 04 */ lbz r5, 4(r8)
+/* 803175C8 00313228 98 07 00 03 */ stb r0, 3(r7)
+/* 803175CC 0031322C 88 08 00 05 */ lbz r0, 5(r8)
+/* 803175D0 00313230 98 A7 00 04 */ stb r5, 4(r7)
+/* 803175D4 00313234 88 A8 00 06 */ lbz r5, 6(r8)
+/* 803175D8 00313238 98 07 00 05 */ stb r0, 5(r7)
+/* 803175DC 0031323C 88 08 00 07 */ lbz r0, 7(r8)
+/* 803175E0 00313240 98 A7 00 06 */ stb r5, 6(r7)
+/* 803175E4 00313244 98 07 00 07 */ stb r0, 7(r7)
+/* 803175E8 00313248 38 E7 00 08 */ addi r7, r7, 8
+/* 803175EC 0031324C 42 00 FF B4 */ bdnz lbl_803175A0
+lbl_803175F0:
+/* 803175F0 00313250 38 06 00 01 */ addi r0, r6, 1
+/* 803175F4 00313254 7C 84 1A 14 */ add r4, r4, r3
+/* 803175F8 00313258 7C 03 00 50 */ subf r0, r3, r0
+/* 803175FC 0031325C 7C 09 03 A6 */ mtctr r0
+/* 80317600 00313260 7C 03 30 00 */ cmpw r3, r6
+/* 80317604 00313264 41 81 00 18 */ bgt lbl_8031761C
+lbl_80317608:
+/* 80317608 00313268 88 04 00 00 */ lbz r0, 0(r4)
+/* 8031760C 0031326C 38 84 00 01 */ addi r4, r4, 1
+/* 80317610 00313270 98 07 00 00 */ stb r0, 0(r7)
+/* 80317614 00313274 38 E7 00 01 */ addi r7, r7, 1
+/* 80317618 00313278 42 00 FF F0 */ bdnz lbl_80317608
+lbl_8031761C:
+/* 8031761C 0031327C 38 00 00 00 */ li r0, 0
+/* 80317620 00313280 38 60 00 00 */ li r3, 0
+/* 80317624 00313284 98 07 00 00 */ stb r0, 0(r7)
+/* 80317628 00313288 4E 80 00 20 */ blr
+
+.global VFiPFPATH_getLongNameformShortName
+VFiPFPATH_getLongNameformShortName:
+/* 8031762C 0031328C 38 00 00 02 */ li r0, 2
+/* 80317630 00313290 7C 67 1B 78 */ mr r7, r3
+/* 80317634 00313294 7C 86 23 78 */ mr r6, r4
+/* 80317638 00313298 54 A8 07 38 */ rlwinm r8, r5, 0, 0x1c, 0x1c
+/* 8031763C 0031329C 39 40 00 00 */ li r10, 0
+/* 80317640 003132A0 7C 09 03 A6 */ mtctr r0
+lbl_80317644:
+/* 80317644 003132A4 89 27 00 00 */ lbz r9, 0(r7)
+/* 80317648 003132A8 7D 20 07 75 */ extsb. r0, r9
+/* 8031764C 003132AC 41 82 01 04 */ beq lbl_80317750
+/* 80317650 003132B0 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 80317654 003132B4 41 82 00 FC */ beq lbl_80317750
+/* 80317658 003132B8 2C 08 00 00 */ cmpwi r8, 0
+/* 8031765C 003132BC 41 82 00 20 */ beq lbl_8031767C
+/* 80317660 003132C0 2C 00 00 41 */ cmpwi r0, 0x41
+/* 80317664 003132C4 41 80 00 18 */ blt lbl_8031767C
+/* 80317668 003132C8 2C 00 00 5A */ cmpwi r0, 0x5a
+/* 8031766C 003132CC 41 81 00 10 */ bgt lbl_8031767C
+/* 80317670 003132D0 38 09 00 20 */ addi r0, r9, 0x20
+/* 80317674 003132D4 98 06 00 00 */ stb r0, 0(r6)
+/* 80317678 003132D8 48 00 00 08 */ b lbl_80317680
+lbl_8031767C:
+/* 8031767C 003132DC 99 26 00 00 */ stb r9, 0(r6)
+lbl_80317680:
+/* 80317680 003132E0 89 27 00 01 */ lbz r9, 1(r7)
+/* 80317684 003132E4 39 4A 00 01 */ addi r10, r10, 1
+/* 80317688 003132E8 7D 20 07 75 */ extsb. r0, r9
+/* 8031768C 003132EC 41 82 00 C4 */ beq lbl_80317750
+/* 80317690 003132F0 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 80317694 003132F4 41 82 00 BC */ beq lbl_80317750
+/* 80317698 003132F8 2C 08 00 00 */ cmpwi r8, 0
+/* 8031769C 003132FC 41 82 00 20 */ beq lbl_803176BC
+/* 803176A0 00313300 2C 00 00 41 */ cmpwi r0, 0x41
+/* 803176A4 00313304 41 80 00 18 */ blt lbl_803176BC
+/* 803176A8 00313308 2C 00 00 5A */ cmpwi r0, 0x5a
+/* 803176AC 0031330C 41 81 00 10 */ bgt lbl_803176BC
+/* 803176B0 00313310 38 09 00 20 */ addi r0, r9, 0x20
+/* 803176B4 00313314 98 06 00 01 */ stb r0, 1(r6)
+/* 803176B8 00313318 48 00 00 08 */ b lbl_803176C0
+lbl_803176BC:
+/* 803176BC 0031331C 99 26 00 01 */ stb r9, 1(r6)
+lbl_803176C0:
+/* 803176C0 00313320 89 27 00 02 */ lbz r9, 2(r7)
+/* 803176C4 00313324 39 4A 00 01 */ addi r10, r10, 1
+/* 803176C8 00313328 7D 20 07 75 */ extsb. r0, r9
+/* 803176CC 0031332C 41 82 00 84 */ beq lbl_80317750
+/* 803176D0 00313330 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 803176D4 00313334 41 82 00 7C */ beq lbl_80317750
+/* 803176D8 00313338 2C 08 00 00 */ cmpwi r8, 0
+/* 803176DC 0031333C 41 82 00 20 */ beq lbl_803176FC
+/* 803176E0 00313340 2C 00 00 41 */ cmpwi r0, 0x41
+/* 803176E4 00313344 41 80 00 18 */ blt lbl_803176FC
+/* 803176E8 00313348 2C 00 00 5A */ cmpwi r0, 0x5a
+/* 803176EC 0031334C 41 81 00 10 */ bgt lbl_803176FC
+/* 803176F0 00313350 38 09 00 20 */ addi r0, r9, 0x20
+/* 803176F4 00313354 98 06 00 02 */ stb r0, 2(r6)
+/* 803176F8 00313358 48 00 00 08 */ b lbl_80317700
+lbl_803176FC:
+/* 803176FC 0031335C 99 26 00 02 */ stb r9, 2(r6)
+lbl_80317700:
+/* 80317700 00313360 89 27 00 03 */ lbz r9, 3(r7)
+/* 80317704 00313364 39 4A 00 01 */ addi r10, r10, 1
+/* 80317708 00313368 7D 20 07 75 */ extsb. r0, r9
+/* 8031770C 0031336C 41 82 00 44 */ beq lbl_80317750
+/* 80317710 00313370 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 80317714 00313374 41 82 00 3C */ beq lbl_80317750
+/* 80317718 00313378 2C 08 00 00 */ cmpwi r8, 0
+/* 8031771C 0031337C 41 82 00 20 */ beq lbl_8031773C
+/* 80317720 00313380 2C 00 00 41 */ cmpwi r0, 0x41
+/* 80317724 00313384 41 80 00 18 */ blt lbl_8031773C
+/* 80317728 00313388 2C 00 00 5A */ cmpwi r0, 0x5a
+/* 8031772C 0031338C 41 81 00 10 */ bgt lbl_8031773C
+/* 80317730 00313390 38 09 00 20 */ addi r0, r9, 0x20
+/* 80317734 00313394 98 06 00 03 */ stb r0, 3(r6)
+/* 80317738 00313398 48 00 00 08 */ b lbl_80317740
+lbl_8031773C:
+/* 8031773C 0031339C 99 26 00 03 */ stb r9, 3(r6)
+lbl_80317740:
+/* 80317740 003133A0 39 4A 00 01 */ addi r10, r10, 1
+/* 80317744 003133A4 38 C6 00 04 */ addi r6, r6, 4
+/* 80317748 003133A8 38 E7 00 04 */ addi r7, r7, 4
+/* 8031774C 003133AC 42 00 FE F8 */ bdnz lbl_80317644
+lbl_80317750:
+/* 80317750 003133B0 7C 03 50 AE */ lbzx r0, r3, r10
+/* 80317754 003133B4 7C 00 07 74 */ extsb r0, r0
+/* 80317758 003133B8 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 8031775C 003133BC 40 82 00 10 */ bne lbl_8031776C
+/* 80317760 003133C0 38 00 00 2E */ li r0, 0x2e
+/* 80317764 003133C4 7C 04 51 AE */ stbx r0, r4, r10
+/* 80317768 003133C8 39 4A 00 01 */ addi r10, r10, 1
+lbl_8031776C:
+/* 8031776C 003133CC 38 EA 00 03 */ addi r7, r10, 3
+/* 80317770 003133D0 54 A6 06 F6 */ rlwinm r6, r5, 0, 0x1b, 0x1b
+/* 80317774 003133D4 7C 0A 38 50 */ subf r0, r10, r7
+/* 80317778 003133D8 7C A3 52 14 */ add r5, r3, r10
+/* 8031777C 003133DC 7C 64 52 14 */ add r3, r4, r10
+/* 80317780 003133E0 7C 09 03 A6 */ mtctr r0
+/* 80317784 003133E4 7C 0A 38 00 */ cmpw r10, r7
+/* 80317788 003133E8 40 80 00 48 */ bge lbl_803177D0
+lbl_8031778C:
+/* 8031778C 003133EC 88 E5 00 00 */ lbz r7, 0(r5)
+/* 80317790 003133F0 7C E0 07 75 */ extsb. r0, r7
+/* 80317794 003133F4 41 82 00 3C */ beq lbl_803177D0
+/* 80317798 003133F8 2C 06 00 00 */ cmpwi r6, 0
+/* 8031779C 003133FC 41 82 00 20 */ beq lbl_803177BC
+/* 803177A0 00313400 2C 00 00 41 */ cmpwi r0, 0x41
+/* 803177A4 00313404 41 80 00 18 */ blt lbl_803177BC
+/* 803177A8 00313408 2C 00 00 5A */ cmpwi r0, 0x5a
+/* 803177AC 0031340C 41 81 00 10 */ bgt lbl_803177BC
+/* 803177B0 00313410 38 07 00 20 */ addi r0, r7, 0x20
+/* 803177B4 00313414 98 03 00 00 */ stb r0, 0(r3)
+/* 803177B8 00313418 48 00 00 08 */ b lbl_803177C0
+lbl_803177BC:
+/* 803177BC 0031341C 98 E3 00 00 */ stb r7, 0(r3)
+lbl_803177C0:
+/* 803177C0 00313420 39 4A 00 01 */ addi r10, r10, 1
+/* 803177C4 00313424 38 63 00 01 */ addi r3, r3, 1
+/* 803177C8 00313428 38 A5 00 01 */ addi r5, r5, 1
+/* 803177CC 0031342C 42 00 FF C0 */ bdnz lbl_8031778C
+lbl_803177D0:
+/* 803177D0 00313430 38 00 00 00 */ li r0, 0
+/* 803177D4 00313434 7C 04 51 AE */ stbx r0, r4, r10
+/* 803177D8 00313438 4E 80 00 20 */ blr
+
+.global VFiPFPATH_GetLengthFromShortname
+VFiPFPATH_GetLengthFromShortname:
+/* 803177DC 0031343C 38 C0 00 00 */ li r6, 0
+/* 803177E0 00313440 38 E0 00 00 */ li r7, 0
+/* 803177E4 00313444 48 00 00 48 */ b lbl_8031782C
+lbl_803177E8:
+/* 803177E8 00313448 2C 06 00 08 */ cmpwi r6, 8
+/* 803177EC 0031344C 40 82 00 2C */ bne lbl_80317818
+/* 803177F0 00313450 7C A0 07 74 */ extsb r0, r5
+/* 803177F4 00313454 2C 00 00 20 */ cmpwi r0, 0x20
+/* 803177F8 00313458 40 82 00 1C */ bne lbl_80317814
+/* 803177FC 0031345C 88 04 00 01 */ lbz r0, 1(r4)
+/* 80317800 00313460 2C 00 00 20 */ cmpwi r0, 0x20
+/* 80317804 00313464 40 82 00 10 */ bne lbl_80317814
+/* 80317808 00313468 88 04 00 02 */ lbz r0, 2(r4)
+/* 8031780C 0031346C 2C 00 00 20 */ cmpwi r0, 0x20
+/* 80317810 00313470 41 82 00 08 */ beq lbl_80317818
+lbl_80317814:
+/* 80317814 00313474 38 E7 00 01 */ addi r7, r7, 1
+lbl_80317818:
+/* 80317818 00313478 7C A0 07 74 */ extsb r0, r5
+/* 8031781C 0031347C 2C 00 00 20 */ cmpwi r0, 0x20
+/* 80317820 00313480 41 82 00 08 */ beq lbl_80317828
+/* 80317824 00313484 38 E7 00 01 */ addi r7, r7, 1
+lbl_80317828:
+/* 80317828 00313488 38 C6 00 01 */ addi r6, r6, 1
+lbl_8031782C:
+/* 8031782C 0031348C 7C A3 30 AE */ lbzx r5, r3, r6
+/* 80317830 00313490 7C 83 32 14 */ add r4, r3, r6
+/* 80317834 00313494 7C A0 07 75 */ extsb. r0, r5
+/* 80317838 00313498 40 82 FF B0 */ bne lbl_803177E8
+/* 8031783C 0031349C 7C E3 3B 78 */ mr r3, r7
+/* 80317840 003134A0 4E 80 00 20 */ blr
+
+.global VFiPFPATH_GetLengthFromUnicode
+VFiPFPATH_GetLengthFromUnicode:
+/* 80317844 003134A4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80317848 003134A8 7C 08 02 A6 */ mflr r0
+/* 8031784C 003134AC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80317850 003134B0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80317854 003134B4 3F E0 80 58 */ lis r31, lbl_8057F5C8@ha
+/* 80317858 003134B8 3B FF F5 C8 */ addi r31, r31, lbl_8057F5C8@l
+/* 8031785C 003134BC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80317860 003134C0 3B C0 00 00 */ li r30, 0
+/* 80317864 003134C4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80317868 003134C8 3B A0 00 00 */ li r29, 0
+/* 8031786C 003134CC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80317870 003134D0 7C 7C 1B 78 */ mr r28, r3
+/* 80317874 003134D4 48 00 00 38 */ b lbl_803178AC
+lbl_80317878:
+/* 80317878 003134D8 81 9F 00 28 */ lwz r12, 0x28(r31)
+/* 8031787C 003134DC 7C 7C 1A 14 */ add r3, r28, r3
+/* 80317880 003134E0 38 81 00 08 */ addi r4, r1, 8
+/* 80317884 003134E4 7D 89 03 A6 */ mtctr r12
+/* 80317888 003134E8 4E 80 04 21 */ bctrl
+/* 8031788C 003134EC 38 81 00 0E */ addi r4, r1, 0xe
+/* 80317890 003134F0 38 A1 00 0C */ addi r5, r1, 0xc
+/* 80317894 003134F4 4B FE D9 0D */ bl VFiPFCODE_Divide_Width
+/* 80317898 003134F8 A8 01 00 0C */ lha r0, 0xc(r1)
+/* 8031789C 003134FC A8 61 00 0E */ lha r3, 0xe(r1)
+/* 803178A0 00313500 7C 00 0E 70 */ srawi r0, r0, 1
+/* 803178A4 00313504 7F BD 1A 14 */ add r29, r29, r3
+/* 803178A8 00313508 7F DE 02 14 */ add r30, r30, r0
+lbl_803178AC:
+/* 803178AC 0031350C 57 C3 08 3C */ slwi r3, r30, 1
+/* 803178B0 00313510 7C 1C 1A 2E */ lhzx r0, r28, r3
+/* 803178B4 00313514 2C 00 00 00 */ cmpwi r0, 0
+/* 803178B8 00313518 40 82 FF C0 */ bne lbl_80317878
+/* 803178BC 0031351C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803178C0 00313520 7F A3 EB 78 */ mr r3, r29
+/* 803178C4 00313524 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 803178C8 00313528 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 803178CC 0031352C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 803178D0 00313530 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803178D4 00313534 7C 08 03 A6 */ mtlr r0
+/* 803178D8 00313538 38 21 00 20 */ addi r1, r1, 0x20
+/* 803178DC 0031353C 4E 80 00 20 */ blr
+
+.global VFiPFPATH_transformFromUnicodeToNormal
+VFiPFPATH_transformFromUnicodeToNormal:
+/* 803178E0 00313540 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 803178E4 00313544 7C 08 02 A6 */ mflr r0
+/* 803178E8 00313548 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803178EC 0031354C 39 61 00 30 */ addi r11, r1, 0x30
+/* 803178F0 00313550 4B EA F8 35 */ bl _savegpr_26
+/* 803178F4 00313554 3C A0 80 58 */ lis r5, lbl_8057F5C8@ha
+/* 803178F8 00313558 7C 7F 1B 78 */ mr r31, r3
+/* 803178FC 0031355C 3B 85 F5 C8 */ addi r28, r5, lbl_8057F5C8@l
+/* 80317900 00313560 7C 9A 23 78 */ mr r26, r4
+/* 80317904 00313564 80 1C 00 3C */ lwz r0, 0x3c(r28)
+/* 80317908 00313568 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
+/* 8031790C 0031356C 28 00 00 02 */ cmplwi r0, 2
+/* 80317910 00313570 40 82 00 8C */ bne lbl_8031799C
+/* 80317914 00313574 38 00 00 00 */ li r0, 0
+/* 80317918 00313578 3B 80 00 2E */ li r28, 0x2e
+/* 8031791C 0031357C 3B A0 00 20 */ li r29, 0x20
+/* 80317920 00313580 B3 81 00 10 */ sth r28, 0x10(r1)
+/* 80317924 00313584 7F 5B D3 78 */ mr r27, r26
+/* 80317928 00313588 3B C0 00 5F */ li r30, 0x5f
+/* 8031792C 0031358C B0 01 00 12 */ sth r0, 0x12(r1)
+/* 80317930 00313590 B3 A1 00 0C */ sth r29, 0xc(r1)
+/* 80317934 00313594 B0 01 00 0E */ sth r0, 0xe(r1)
+/* 80317938 00313598 48 00 00 54 */ b lbl_8031798C
+lbl_8031793C:
+/* 8031793C 0031359C 7F 43 D3 78 */ mr r3, r26
+/* 80317940 003135A0 38 81 00 10 */ addi r4, r1, 0x10
+/* 80317944 003135A4 38 A0 00 01 */ li r5, 1
+/* 80317948 003135A8 4B FE DF 61 */ bl VFipf_w_strncmp
+/* 8031794C 003135AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80317950 003135B0 40 82 00 0C */ bne lbl_8031795C
+/* 80317954 003135B4 9B 9F 00 00 */ stb r28, 0(r31)
+/* 80317958 003135B8 48 00 00 28 */ b lbl_80317980
+lbl_8031795C:
+/* 8031795C 003135BC 7F 43 D3 78 */ mr r3, r26
+/* 80317960 003135C0 38 81 00 0C */ addi r4, r1, 0xc
+/* 80317964 003135C4 38 A0 00 01 */ li r5, 1
+/* 80317968 003135C8 4B FE DF 41 */ bl VFipf_w_strncmp
+/* 8031796C 003135CC 2C 03 00 00 */ cmpwi r3, 0
+/* 80317970 003135D0 40 82 00 0C */ bne lbl_8031797C
+/* 80317974 003135D4 9B BF 00 00 */ stb r29, 0(r31)
+/* 80317978 003135D8 48 00 00 08 */ b lbl_80317980
+lbl_8031797C:
+/* 8031797C 003135DC 9B DF 00 00 */ stb r30, 0(r31)
+lbl_80317980:
+/* 80317980 003135E0 3B FF 00 01 */ addi r31, r31, 1
+/* 80317984 003135E4 3B 5A 00 02 */ addi r26, r26, 2
+/* 80317988 003135E8 3B 7B 00 02 */ addi r27, r27, 2
+lbl_8031798C:
+/* 8031798C 003135EC A0 1B 00 00 */ lhz r0, 0(r27)
+/* 80317990 003135F0 2C 00 00 00 */ cmpwi r0, 0
+/* 80317994 003135F4 40 82 FF A8 */ bne lbl_8031793C
+/* 80317998 003135F8 48 00 00 50 */ b lbl_803179E8
+lbl_8031799C:
+/* 8031799C 003135FC 3B 60 00 00 */ li r27, 0
+/* 803179A0 00313600 48 00 00 38 */ b lbl_803179D8
+lbl_803179A4:
+/* 803179A4 00313604 81 9C 00 28 */ lwz r12, 0x28(r28)
+/* 803179A8 00313608 7F E4 FB 78 */ mr r4, r31
+/* 803179AC 0031360C 7C 7A 1A 14 */ add r3, r26, r3
+/* 803179B0 00313610 7D 89 03 A6 */ mtctr r12
+/* 803179B4 00313614 4E 80 04 21 */ bctrl
+/* 803179B8 00313618 38 81 00 0A */ addi r4, r1, 0xa
+/* 803179BC 0031361C 38 A1 00 08 */ addi r5, r1, 8
+/* 803179C0 00313620 4B FE D7 E1 */ bl VFiPFCODE_Divide_Width
+/* 803179C4 00313624 A8 01 00 08 */ lha r0, 8(r1)
+/* 803179C8 00313628 A8 61 00 0A */ lha r3, 0xa(r1)
+/* 803179CC 0031362C 7C 00 0E 70 */ srawi r0, r0, 1
+/* 803179D0 00313630 7F FF 1A 14 */ add r31, r31, r3
+/* 803179D4 00313634 7F 7B 02 14 */ add r27, r27, r0
+lbl_803179D8:
+/* 803179D8 00313638 57 63 08 3C */ slwi r3, r27, 1
+/* 803179DC 0031363C 7C 1A 1A 2E */ lhzx r0, r26, r3
+/* 803179E0 00313640 2C 00 00 00 */ cmpwi r0, 0
+/* 803179E4 00313644 40 82 FF C0 */ bne lbl_803179A4
+lbl_803179E8:
+/* 803179E8 00313648 38 00 00 00 */ li r0, 0
+/* 803179EC 0031364C 39 61 00 30 */ addi r11, r1, 0x30
+/* 803179F0 00313650 98 1F 00 00 */ stb r0, 0(r31)
+/* 803179F4 00313654 38 60 00 00 */ li r3, 0
+/* 803179F8 00313658 4B EA F7 79 */ bl _restgpr_26
+/* 803179FC 0031365C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80317A00 00313660 7C 08 03 A6 */ mtlr r0
+/* 80317A04 00313664 38 21 00 30 */ addi r1, r1, 0x30
+/* 80317A08 00313668 4E 80 00 20 */ blr
+
+.global VFiPFPATH_transformInUnicode
+VFiPFPATH_transformInUnicode:
+/* 80317A0C 0031366C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80317A10 00313670 7C 08 02 A6 */ mflr r0
+/* 80317A14 00313674 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80317A18 00313678 39 61 00 30 */ addi r11, r1, 0x30
+/* 80317A1C 0031367C 4B EA F7 0D */ bl _savegpr_27
+/* 80317A20 00313680 3F E0 80 58 */ lis r31, lbl_8057F5C8@ha
+/* 80317A24 00313684 7C 7B 1B 78 */ mr r27, r3
+/* 80317A28 00313688 7C 9C 23 78 */ mr r28, r4
+/* 80317A2C 0031368C 3B A0 00 00 */ li r29, 0
+/* 80317A30 00313690 3B FF F5 C8 */ addi r31, r31, lbl_8057F5C8@l
+/* 80317A34 00313694 3B C0 00 00 */ li r30, 0
+/* 80317A38 00313698 48 00 00 3C */ b lbl_80317A74
+lbl_80317A3C:
+/* 80317A3C 0031369C 81 9F 00 24 */ lwz r12, 0x24(r31)
+/* 80317A40 003136A0 7F 64 DB 78 */ mr r4, r27
+/* 80317A44 003136A4 7C 7C F2 14 */ add r3, r28, r30
+/* 80317A48 003136A8 7D 89 03 A6 */ mtctr r12
+/* 80317A4C 003136AC 4E 80 04 21 */ bctrl
+/* 80317A50 003136B0 38 81 00 0A */ addi r4, r1, 0xa
+/* 80317A54 003136B4 38 A1 00 08 */ addi r5, r1, 8
+/* 80317A58 003136B8 4B FE D7 49 */ bl VFiPFCODE_Divide_Width
+/* 80317A5C 003136BC A8 61 00 08 */ lha r3, 8(r1)
+/* 80317A60 003136C0 3B BD 00 01 */ addi r29, r29, 1
+/* 80317A64 003136C4 A8 01 00 0A */ lha r0, 0xa(r1)
+/* 80317A68 003136C8 54 63 00 3C */ rlwinm r3, r3, 0, 0, 0x1e
+/* 80317A6C 003136CC 7F 7B 1A 14 */ add r27, r27, r3
+/* 80317A70 003136D0 7F DE 02 14 */ add r30, r30, r0
+lbl_80317A74:
+/* 80317A74 003136D4 7C 1C F0 AE */ lbzx r0, r28, r30
+/* 80317A78 003136D8 7C 00 07 75 */ extsb. r0, r0
+/* 80317A7C 003136DC 40 82 FF C0 */ bne lbl_80317A3C
+/* 80317A80 003136E0 38 00 00 00 */ li r0, 0
+/* 80317A84 003136E4 39 61 00 30 */ addi r11, r1, 0x30
+/* 80317A88 003136E8 B0 1B 00 00 */ sth r0, 0(r27)
+/* 80317A8C 003136EC 7F A3 EB 78 */ mr r3, r29
+/* 80317A90 003136F0 4B EA F6 E5 */ bl _restgpr_27
+/* 80317A94 003136F4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80317A98 003136F8 7C 08 03 A6 */ mtlr r0
+/* 80317A9C 003136FC 38 21 00 30 */ addi r1, r1, 0x30
+/* 80317AA0 00313700 4E 80 00 20 */ blr
+
+.global VFiPFPATH_parseShortName
+VFiPFPATH_parseShortName:
+/* 80317AA4 00313704 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 80317AA8 00313708 7C 08 02 A6 */ mflr r0
+/* 80317AAC 0031370C 90 01 00 64 */ stw r0, 0x64(r1)
+/* 80317AB0 00313710 39 61 00 60 */ addi r11, r1, 0x60
+/* 80317AB4 00313714 4B EA F6 41 */ bl __save_gpr
+/* 80317AB8 00313718 90 81 00 08 */ stw r4, 8(r1)
+/* 80317ABC 0031371C 7C 7F 1B 78 */ mr r31, r3
+/* 80317AC0 00313720 7C 83 23 78 */ mr r3, r4
+/* 80317AC4 00313724 3A A0 00 00 */ li r21, 0
+/* 80317AC8 00313728 3A 80 00 00 */ li r20, 0
+/* 80317ACC 0031372C 38 80 00 03 */ li r4, 3
+/* 80317AD0 00313730 4B FE D8 41 */ bl VFiPFSTR_GetStrPos
+/* 80317AD4 00313734 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80317AD8 00313738 7C 76 1B 78 */ mr r22, r3
+/* 80317ADC 0031373C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80317AE0 00313740 80 04 00 3C */ lwz r0, 0x3c(r4)
+/* 80317AE4 00313744 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80317AE8 00313748 40 82 06 88 */ bne lbl_80318170
+/* 80317AEC 0031374C 48 00 00 0C */ b lbl_80317AF8
+lbl_80317AF0:
+/* 80317AF0 00313750 3A 80 00 01 */ li r20, 1
+/* 80317AF4 00313754 3A D6 00 01 */ addi r22, r22, 1
+lbl_80317AF8:
+/* 80317AF8 00313758 88 16 00 00 */ lbz r0, 0(r22)
+/* 80317AFC 0031375C 7C 00 07 74 */ extsb r0, r0
+/* 80317B00 00313760 2C 00 00 20 */ cmpwi r0, 0x20
+/* 80317B04 00313764 41 82 FF EC */ beq lbl_80317AF0
+/* 80317B08 00313768 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 80317B0C 0031376C 41 82 FF E4 */ beq lbl_80317AF0
+/* 80317B10 00313770 3A 00 00 00 */ li r16, 0
+/* 80317B14 00313774 38 80 00 00 */ li r4, 0
+/* 80317B18 00313778 38 A0 00 00 */ li r5, 0
+/* 80317B1C 0031377C 48 00 00 24 */ b lbl_80317B40
+lbl_80317B20:
+/* 80317B20 00313780 7C 60 07 74 */ extsb r0, r3
+/* 80317B24 00313784 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 80317B28 00313788 40 82 00 14 */ bne lbl_80317B3C
+/* 80317B2C 0031378C 56 00 04 3F */ clrlwi. r0, r16, 0x10
+/* 80317B30 00313790 41 82 00 08 */ beq lbl_80317B38
+/* 80317B34 00313794 7E 04 83 78 */ mr r4, r16
+lbl_80317B38:
+/* 80317B38 00313798 7C B0 2B 78 */ mr r16, r5
+lbl_80317B3C:
+/* 80317B3C 0031379C 38 A5 00 01 */ addi r5, r5, 1
+lbl_80317B40:
+/* 80317B40 003137A0 54 A0 04 3E */ clrlwi r0, r5, 0x10
+/* 80317B44 003137A4 7C 76 00 AE */ lbzx r3, r22, r0
+/* 80317B48 003137A8 7C 60 07 75 */ extsb. r0, r3
+/* 80317B4C 003137AC 40 82 FF D4 */ bne lbl_80317B20
+/* 80317B50 003137B0 56 00 04 3F */ clrlwi. r0, r16, 0x10
+/* 80317B54 003137B4 41 82 00 24 */ beq lbl_80317B78
+/* 80317B58 003137B8 7C 60 B2 14 */ add r3, r0, r22
+/* 80317B5C 003137BC 88 03 00 01 */ lbz r0, 1(r3)
+/* 80317B60 003137C0 7C 00 07 75 */ extsb. r0, r0
+/* 80317B64 003137C4 40 82 00 14 */ bne lbl_80317B78
+/* 80317B68 003137C8 54 80 04 3F */ clrlwi. r0, r4, 0x10
+/* 80317B6C 003137CC 41 82 00 08 */ beq lbl_80317B74
+/* 80317B70 003137D0 7C 90 23 78 */ mr r16, r4
+lbl_80317B74:
+/* 80317B74 003137D4 3A 80 00 01 */ li r20, 1
+lbl_80317B78:
+/* 80317B78 003137D8 39 E0 00 00 */ li r15, 0
+/* 80317B7C 003137DC 3A 61 00 10 */ addi r19, r1, 0x10
+/* 80317B80 003137E0 3F 60 80 58 */ lis r27, lbl_8057F5C8@ha
+/* 80317B84 003137E4 3F A0 80 40 */ lis r29, lbl_803FE220@ha
+/* 80317B88 003137E8 B1 E1 00 10 */ sth r15, 0x10(r1)
+/* 80317B8C 003137EC 7E 7A 9B 78 */ mr r26, r19
+/* 80317B90 003137F0 7E 7C 9B 78 */ mr r28, r19
+/* 80317B94 003137F4 3B 7B F5 C8 */ addi r27, r27, lbl_8057F5C8@l
+/* 80317B98 003137F8 B1 E1 00 0E */ sth r15, 0xe(r1)
+/* 80317B9C 003137FC 3B BD E2 20 */ addi r29, r29, lbl_803FE220@l
+/* 80317BA0 00313800 3B 21 00 0E */ addi r25, r1, 0xe
+/* 80317BA4 00313804 3B 00 00 00 */ li r24, 0
+/* 80317BA8 00313808 3A 40 00 01 */ li r18, 1
+/* 80317BAC 0031380C 3A 20 00 01 */ li r17, 1
+/* 80317BB0 00313810 39 C0 00 5F */ li r14, 0x5f
+/* 80317BB4 00313814 48 00 02 84 */ b lbl_80317E38
+lbl_80317BB8:
+/* 80317BB8 00313818 A0 01 00 10 */ lhz r0, 0x10(r1)
+/* 80317BBC 0031381C 28 00 00 08 */ cmplwi r0, 8
+/* 80317BC0 00313820 41 82 00 18 */ beq lbl_80317BD8
+/* 80317BC4 00313824 56 03 04 3F */ clrlwi. r3, r16, 0x10
+/* 80317BC8 00313828 41 82 00 18 */ beq lbl_80317BE0
+/* 80317BCC 0031382C 57 00 04 3E */ clrlwi r0, r24, 0x10
+/* 80317BD0 00313830 7C 00 18 40 */ cmplw r0, r3
+/* 80317BD4 00313834 40 82 00 0C */ bne lbl_80317BE0
+lbl_80317BD8:
+/* 80317BD8 00313838 7C 13 C8 40 */ cmplw r19, r25
+/* 80317BDC 0031383C 40 82 02 24 */ bne lbl_80317E00
+lbl_80317BE0:
+/* 80317BE0 00313840 7C 80 07 74 */ extsb r0, r4
+/* 80317BE4 00313844 2C 00 00 20 */ cmpwi r0, 0x20
+/* 80317BE8 00313848 41 82 02 10 */ beq lbl_80317DF8
+/* 80317BEC 0031384C 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 80317BF0 00313850 41 82 02 08 */ beq lbl_80317DF8
+/* 80317BF4 00313854 81 9B 00 2C */ lwz r12, 0x2c(r27)
+/* 80317BF8 00313858 57 00 04 3E */ clrlwi r0, r24, 0x10
+/* 80317BFC 0031385C 7C 76 02 14 */ add r3, r22, r0
+/* 80317C00 00313860 7D 89 03 A6 */ mtctr r12
+/* 80317C04 00313864 4E 80 04 21 */ bctrl
+/* 80317C08 00313868 2C 03 00 01 */ cmpwi r3, 1
+/* 80317C0C 0031386C 7C 77 1B 78 */ mr r23, r3
+/* 80317C10 00313870 41 82 01 44 */ beq lbl_80317D54
+/* 80317C14 00313874 57 04 04 3E */ clrlwi r4, r24, 0x10
+/* 80317C18 00313878 56 00 04 3E */ clrlwi r0, r16, 0x10
+/* 80317C1C 0031387C 7C 04 00 40 */ cmplw r4, r0
+/* 80317C20 00313880 41 80 00 0C */ blt lbl_80317C2C
+/* 80317C24 00313884 2C 00 00 00 */ cmpwi r0, 0
+/* 80317C28 00313888 40 82 00 1C */ bne lbl_80317C44
+lbl_80317C2C:
+/* 80317C2C 0031388C A0 01 00 10 */ lhz r0, 0x10(r1)
+/* 80317C30 00313890 7C 00 1A 14 */ add r0, r0, r3
+/* 80317C34 00313894 2C 00 00 08 */ cmpwi r0, 8
+/* 80317C38 00313898 40 81 00 0C */ ble lbl_80317C44
+/* 80317C3C 0031389C 3A 80 00 01 */ li r20, 1
+/* 80317C40 003138A0 48 00 01 F4 */ b lbl_80317E34
+lbl_80317C44:
+/* 80317C44 003138A4 56 04 04 3F */ clrlwi. r4, r16, 0x10
+/* 80317C48 003138A8 41 82 00 28 */ beq lbl_80317C70
+/* 80317C4C 003138AC 57 00 04 3E */ clrlwi r0, r24, 0x10
+/* 80317C50 003138B0 7C 00 20 40 */ cmplw r0, r4
+/* 80317C54 003138B4 40 81 00 1C */ ble lbl_80317C70
+/* 80317C58 003138B8 A0 A1 00 0E */ lhz r5, 0xe(r1)
+/* 80317C5C 003138BC 7C 05 1A 14 */ add r0, r5, r3
+/* 80317C60 003138C0 2C 00 00 03 */ cmpwi r0, 3
+/* 80317C64 003138C4 40 81 00 0C */ ble lbl_80317C70
+/* 80317C68 003138C8 3A 80 00 01 */ li r20, 1
+/* 80317C6C 003138CC 48 00 01 E8 */ b lbl_80317E54
+lbl_80317C70:
+/* 80317C70 003138D0 7C 13 D0 40 */ cmplw r19, r26
+/* 80317C74 003138D4 40 82 00 D0 */ bne lbl_80317D44
+/* 80317C78 003138D8 7E 51 93 78 */ mr r17, r18
+/* 80317C7C 003138DC 54 72 04 3E */ clrlwi r18, r3, 0x10
+/* 80317C80 003138E0 48 00 00 C4 */ b lbl_80317D44
+lbl_80317C84:
+/* 80317C84 003138E4 57 00 04 3E */ clrlwi r0, r24, 0x10
+/* 80317C88 003138E8 81 9B 00 24 */ lwz r12, 0x24(r27)
+/* 80317C8C 003138EC 7C B6 00 AE */ lbzx r5, r22, r0
+/* 80317C90 003138F0 7C 76 02 14 */ add r3, r22, r0
+/* 80317C94 003138F4 88 03 00 01 */ lbz r0, 1(r3)
+/* 80317C98 003138F8 38 81 00 0C */ addi r4, r1, 0xc
+/* 80317C9C 003138FC 54 A5 40 2E */ slwi r5, r5, 8
+/* 80317CA0 00313900 7C 05 02 14 */ add r0, r5, r0
+/* 80317CA4 00313904 54 1E 04 3E */ clrlwi r30, r0, 0x10
+/* 80317CA8 00313908 7D 89 03 A6 */ mtctr r12
+/* 80317CAC 0031390C 4E 80 04 21 */ bctrl
+/* 80317CB0 00313910 A0 61 00 0C */ lhz r3, 0xc(r1)
+/* 80317CB4 00313914 28 03 FF 41 */ cmplwi r3, 0xff41
+/* 80317CB8 00313918 41 80 00 1C */ blt lbl_80317CD4
+/* 80317CBC 0031391C 28 03 FF 5A */ cmplwi r3, 0xff5a
+/* 80317CC0 00313920 41 81 00 14 */ bgt lbl_80317CD4
+/* 80317CC4 00313924 38 03 FF E0 */ addi r0, r3, -32
+/* 80317CC8 00313928 38 60 00 01 */ li r3, 1
+/* 80317CCC 0031392C B0 01 00 0C */ sth r0, 0xc(r1)
+/* 80317CD0 00313930 48 00 00 08 */ b lbl_80317CD8
+lbl_80317CD4:
+/* 80317CD4 00313934 38 60 00 00 */ li r3, 0
+lbl_80317CD8:
+/* 80317CD8 00313938 28 03 00 01 */ cmplwi r3, 1
+/* 80317CDC 0031393C 40 82 00 20 */ bne lbl_80317CFC
+/* 80317CE0 00313940 81 9B 00 28 */ lwz r12, 0x28(r27)
+/* 80317CE4 00313944 38 61 00 0C */ addi r3, r1, 0xc
+/* 80317CE8 00313948 7C 64 1B 78 */ mr r4, r3
+/* 80317CEC 0031394C 7D 89 03 A6 */ mtctr r12
+/* 80317CF0 00313950 4E 80 04 21 */ bctrl
+/* 80317CF4 00313954 38 60 00 01 */ li r3, 1
+/* 80317CF8 00313958 48 00 00 08 */ b lbl_80317D00
+lbl_80317CFC:
+/* 80317CFC 0031395C 38 60 00 00 */ li r3, 0
+lbl_80317D00:
+/* 80317D00 00313960 2C 03 00 00 */ cmpwi r3, 0
+/* 80317D04 00313964 41 82 00 0C */ beq lbl_80317D10
+/* 80317D08 00313968 A3 C1 00 0C */ lhz r30, 0xc(r1)
+/* 80317D0C 0031396C 3A A0 00 01 */ li r21, 1
+lbl_80317D10:
+/* 80317D10 00313970 55 E0 04 3E */ clrlwi r0, r15, 0x10
+/* 80317D14 00313974 38 6F 00 02 */ addi r3, r15, 2
+/* 80317D18 00313978 7C 9F 02 14 */ add r4, r31, r0
+/* 80317D1C 0031397C 3A F7 FF FE */ addi r23, r23, -2
+/* 80317D20 00313980 57 C0 C6 3E */ rlwinm r0, r30, 0x18, 0x18, 0x1f
+/* 80317D24 00313984 54 6F 04 3E */ clrlwi r15, r3, 0x10
+/* 80317D28 00313988 98 04 00 00 */ stb r0, 0(r4)
+/* 80317D2C 0031398C 38 18 00 02 */ addi r0, r24, 2
+/* 80317D30 00313990 54 18 04 3E */ clrlwi r24, r0, 0x10
+/* 80317D34 00313994 9B C4 00 01 */ stb r30, 1(r4)
+/* 80317D38 00313998 A0 73 00 00 */ lhz r3, 0(r19)
+/* 80317D3C 0031399C 38 03 00 02 */ addi r0, r3, 2
+/* 80317D40 003139A0 B0 13 00 00 */ sth r0, 0(r19)
+lbl_80317D44:
+/* 80317D44 003139A4 2C 17 00 00 */ cmpwi r23, 0
+/* 80317D48 003139A8 40 82 FF 3C */ bne lbl_80317C84
+/* 80317D4C 003139AC 3B 18 FF FF */ addi r24, r24, -1
+/* 80317D50 003139B0 48 00 00 E4 */ b lbl_80317E34
+lbl_80317D54:
+/* 80317D54 003139B4 7C 13 E0 40 */ cmplw r19, r28
+/* 80317D58 003139B8 40 82 00 0C */ bne lbl_80317D64
+/* 80317D5C 003139BC 7E 51 93 78 */ mr r17, r18
+/* 80317D60 003139C0 3A 40 00 01 */ li r18, 1
+lbl_80317D64:
+/* 80317D64 003139C4 80 1B 00 14 */ lwz r0, 0x14(r27)
+/* 80317D68 003139C8 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf
+/* 80317D6C 003139CC 40 82 00 28 */ bne lbl_80317D94
+/* 80317D70 003139D0 7C 16 F0 AE */ lbzx r0, r22, r30
+/* 80317D74 003139D4 28 00 00 80 */ cmplwi r0, 0x80
+/* 80317D78 003139D8 40 80 00 1C */ bge lbl_80317D94
+/* 80317D7C 003139DC 28 00 00 20 */ cmplwi r0, 0x20
+/* 80317D80 003139E0 41 80 00 58 */ blt lbl_80317DD8
+/* 80317D84 003139E4 7C 7D 02 14 */ add r3, r29, r0
+/* 80317D88 003139E8 88 03 FF E0 */ lbz r0, -0x20(r3)
+/* 80317D8C 003139EC 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80317D90 003139F0 41 82 00 48 */ beq lbl_80317DD8
+lbl_80317D94:
+/* 80317D94 003139F4 7C 76 F0 AE */ lbzx r3, r22, r30
+/* 80317D98 003139F8 7C 63 07 74 */ extsb r3, r3
+/* 80317D9C 003139FC 4B FE D0 F9 */ bl VFipf_toupper
+/* 80317DA0 00313A00 55 E0 04 3E */ clrlwi r0, r15, 0x10
+/* 80317DA4 00313A04 39 EF 00 01 */ addi r15, r15, 1
+/* 80317DA8 00313A08 7C 7F 01 AE */ stbx r3, r31, r0
+/* 80317DAC 00313A0C A0 73 00 00 */ lhz r3, 0(r19)
+/* 80317DB0 00313A10 38 03 00 01 */ addi r0, r3, 1
+/* 80317DB4 00313A14 B0 13 00 00 */ sth r0, 0(r19)
+/* 80317DB8 00313A18 7C 16 F0 AE */ lbzx r0, r22, r30
+/* 80317DBC 00313A1C 7C 00 07 74 */ extsb r0, r0
+/* 80317DC0 00313A20 2C 00 00 61 */ cmpwi r0, 0x61
+/* 80317DC4 00313A24 41 80 00 70 */ blt lbl_80317E34
+/* 80317DC8 00313A28 2C 00 00 7A */ cmpwi r0, 0x7a
+/* 80317DCC 00313A2C 41 81 00 68 */ bgt lbl_80317E34
+/* 80317DD0 00313A30 3A A0 00 01 */ li r21, 1
+/* 80317DD4 00313A34 48 00 00 60 */ b lbl_80317E34
+lbl_80317DD8:
+/* 80317DD8 00313A38 55 E0 04 3E */ clrlwi r0, r15, 0x10
+/* 80317DDC 00313A3C 3A 80 00 01 */ li r20, 1
+/* 80317DE0 00313A40 7D DF 01 AE */ stbx r14, r31, r0
+/* 80317DE4 00313A44 39 EF 00 01 */ addi r15, r15, 1
+/* 80317DE8 00313A48 A0 73 00 00 */ lhz r3, 0(r19)
+/* 80317DEC 00313A4C 38 03 00 01 */ addi r0, r3, 1
+/* 80317DF0 00313A50 B0 13 00 00 */ sth r0, 0(r19)
+/* 80317DF4 00313A54 48 00 00 40 */ b lbl_80317E34
+lbl_80317DF8:
+/* 80317DF8 00313A58 3A 80 00 01 */ li r20, 1
+/* 80317DFC 00313A5C 48 00 00 38 */ b lbl_80317E34
+lbl_80317E00:
+/* 80317E00 00313A60 7C 80 07 75 */ extsb. r0, r4
+/* 80317E04 00313A64 7F 33 CB 78 */ mr r19, r25
+/* 80317E08 00313A68 41 82 00 10 */ beq lbl_80317E18
+/* 80317E0C 00313A6C 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 80317E10 00313A70 41 82 00 08 */ beq lbl_80317E18
+/* 80317E14 00313A74 3A 80 00 01 */ li r20, 1
+lbl_80317E18:
+/* 80317E18 00313A78 56 00 04 3F */ clrlwi. r0, r16, 0x10
+/* 80317E1C 00313A7C 41 82 00 38 */ beq lbl_80317E54
+/* 80317E20 00313A80 55 E3 04 3E */ clrlwi r3, r15, 0x10
+/* 80317E24 00313A84 38 00 00 2E */ li r0, 0x2e
+/* 80317E28 00313A88 7C 1F 19 AE */ stbx r0, r31, r3
+/* 80317E2C 00313A8C 7E 18 83 78 */ mr r24, r16
+/* 80317E30 00313A90 39 EF 00 01 */ addi r15, r15, 1
+lbl_80317E34:
+/* 80317E34 00313A94 3B 18 00 01 */ addi r24, r24, 1
+lbl_80317E38:
+/* 80317E38 00313A98 A0 A1 00 0E */ lhz r5, 0xe(r1)
+/* 80317E3C 00313A9C 28 05 00 03 */ cmplwi r5, 3
+/* 80317E40 00313AA0 40 80 00 14 */ bge lbl_80317E54
+/* 80317E44 00313AA4 57 1E 04 3E */ clrlwi r30, r24, 0x10
+/* 80317E48 00313AA8 7C 96 F0 AE */ lbzx r4, r22, r30
+/* 80317E4C 00313AAC 7C 80 07 75 */ extsb. r0, r4
+/* 80317E50 00313AB0 40 82 FD 68 */ bne lbl_80317BB8
+lbl_80317E54:
+/* 80317E54 00313AB4 54 A0 04 3E */ clrlwi r0, r5, 0x10
+/* 80317E58 00313AB8 28 00 00 03 */ cmplwi r0, 3
+/* 80317E5C 00313ABC 40 82 00 18 */ bne lbl_80317E74
+/* 80317E60 00313AC0 57 00 04 3E */ clrlwi r0, r24, 0x10
+/* 80317E64 00313AC4 7C 16 00 AE */ lbzx r0, r22, r0
+/* 80317E68 00313AC8 7C 00 07 75 */ extsb. r0, r0
+/* 80317E6C 00313ACC 41 82 00 08 */ beq lbl_80317E74
+/* 80317E70 00313AD0 3A 80 00 01 */ li r20, 1
+lbl_80317E74:
+/* 80317E74 00313AD4 2C 14 00 00 */ cmpwi r20, 0
+/* 80317E78 00313AD8 55 E0 04 3E */ clrlwi r0, r15, 0x10
+/* 80317E7C 00313ADC 38 60 00 00 */ li r3, 0
+/* 80317E80 00313AE0 7C 7F 01 AE */ stbx r3, r31, r0
+/* 80317E84 00313AE4 41 82 02 B4 */ beq lbl_80318138
+/* 80317E88 00313AE8 A0 81 00 10 */ lhz r4, 0x10(r1)
+/* 80317E8C 00313AEC 28 04 00 08 */ cmplwi r4, 8
+/* 80317E90 00313AF0 7C 85 23 78 */ mr r5, r4
+/* 80317E94 00313AF4 40 82 00 38 */ bne lbl_80317ECC
+/* 80317E98 00313AF8 28 12 00 01 */ cmplwi r18, 1
+/* 80317E9C 00313AFC 41 82 00 10 */ beq lbl_80317EAC
+/* 80317EA0 00313B00 20 12 00 08 */ subfic r0, r18, 8
+/* 80317EA4 00313B04 54 05 04 3E */ clrlwi r5, r0, 0x10
+/* 80317EA8 00313B08 48 00 00 34 */ b lbl_80317EDC
+lbl_80317EAC:
+/* 80317EAC 00313B0C 56 23 04 3E */ clrlwi r3, r17, 0x10
+/* 80317EB0 00313B10 38 00 00 02 */ li r0, 2
+/* 80317EB4 00313B14 28 03 00 01 */ cmplwi r3, 1
+/* 80317EB8 00313B18 41 82 00 08 */ beq lbl_80317EC0
+/* 80317EBC 00313B1C 38 03 00 01 */ addi r0, r3, 1
+lbl_80317EC0:
+/* 80317EC0 00313B20 20 00 00 08 */ subfic r0, r0, 8
+/* 80317EC4 00313B24 54 05 04 3E */ clrlwi r5, r0, 0x10
+/* 80317EC8 00313B28 48 00 00 14 */ b lbl_80317EDC
+lbl_80317ECC:
+/* 80317ECC 00313B2C 28 04 00 07 */ cmplwi r4, 7
+/* 80317ED0 00313B30 40 82 00 0C */ bne lbl_80317EDC
+/* 80317ED4 00313B34 7C 11 20 50 */ subf r0, r17, r4
+/* 80317ED8 00313B38 54 05 04 3E */ clrlwi r5, r0, 0x10
+lbl_80317EDC:
+/* 80317EDC 00313B3C 38 05 00 02 */ addi r0, r5, 2
+/* 80317EE0 00313B40 54 00 04 3E */ clrlwi r0, r0, 0x10
+/* 80317EE4 00313B44 7C 00 20 40 */ cmplw r0, r4
+/* 80317EE8 00313B48 40 80 00 50 */ bge lbl_80317F38
+/* 80317EEC 00313B4C 7C 00 20 50 */ subf r0, r0, r4
+/* 80317EF0 00313B50 38 E0 FF FF */ li r7, -1
+/* 80317EF4 00313B54 54 00 04 3E */ clrlwi r0, r0, 0x10
+/* 80317EF8 00313B58 7C DF 02 14 */ add r6, r31, r0
+/* 80317EFC 00313B5C 38 C6 FF FF */ addi r6, r6, -1
+/* 80317F00 00313B60 48 00 00 20 */ b lbl_80317F20
+lbl_80317F04:
+/* 80317F04 00313B64 A0 01 00 10 */ lhz r0, 0x10(r1)
+/* 80317F08 00313B68 7C E3 07 34 */ extsh r3, r7
+/* 80317F0C 00313B6C 38 E7 00 01 */ addi r7, r7, 1
+/* 80317F10 00313B70 7C 86 00 AE */ lbzx r4, r6, r0
+/* 80317F14 00313B74 7C 1F 02 14 */ add r0, r31, r0
+/* 80317F18 00313B78 38 C6 00 01 */ addi r6, r6, 1
+/* 80317F1C 00313B7C 7C 83 01 AE */ stbx r4, r3, r0
+lbl_80317F20:
+/* 80317F20 00313B80 A0 61 00 0E */ lhz r3, 0xe(r1)
+/* 80317F24 00313B84 7C E4 07 34 */ extsh r4, r7
+/* 80317F28 00313B88 38 03 00 01 */ addi r0, r3, 1
+/* 80317F2C 00313B8C 7C 04 00 00 */ cmpw r4, r0
+/* 80317F30 00313B90 41 80 FF D4 */ blt lbl_80317F04
+/* 80317F34 00313B94 48 00 01 A4 */ b lbl_803180D8
+lbl_80317F38:
+/* 80317F38 00313B98 40 81 01 A0 */ ble lbl_803180D8
+/* 80317F3C 00313B9C A0 61 00 0E */ lhz r3, 0xe(r1)
+/* 80317F40 00313BA0 7C 04 00 50 */ subf r0, r4, r0
+/* 80317F44 00313BA4 54 00 04 3E */ clrlwi r0, r0, 0x10
+/* 80317F48 00313BA8 38 E3 00 01 */ addi r7, r3, 1
+/* 80317F4C 00313BAC 7C E6 07 34 */ extsh r6, r7
+/* 80317F50 00313BB0 2C 86 00 00 */ cmpwi cr1, r6, 0
+/* 80317F54 00313BB4 41 84 01 84 */ blt cr1, lbl_803180D8
+/* 80317F58 00313BB8 39 06 00 01 */ addi r8, r6, 1
+/* 80317F5C 00313BBC 7D 03 07 34 */ extsh r3, r8
+/* 80317F60 00313BC0 2C 03 00 08 */ cmpwi r3, 8
+/* 80317F64 00313BC4 40 81 01 3C */ ble lbl_803180A0
+/* 80317F68 00313BC8 38 80 00 00 */ li r4, 0
+/* 80317F6C 00313BCC 38 60 00 00 */ li r3, 0
+/* 80317F70 00313BD0 41 84 00 10 */ blt cr1, lbl_80317F80
+/* 80317F74 00313BD4 2C 06 80 01 */ cmpwi r6, -32767
+/* 80317F78 00313BD8 41 80 00 08 */ blt lbl_80317F80
+/* 80317F7C 00313BDC 38 60 00 01 */ li r3, 1
+lbl_80317F80:
+/* 80317F80 00313BE0 2C 03 00 00 */ cmpwi r3, 0
+/* 80317F84 00313BE4 41 82 00 34 */ beq lbl_80317FB8
+/* 80317F88 00313BE8 7C E3 07 34 */ extsh r3, r7
+/* 80317F8C 00313BEC 38 E0 00 01 */ li r7, 1
+/* 80317F90 00313BF0 54 63 00 20 */ rlwinm r3, r3, 0, 0, 0x10
+/* 80317F94 00313BF4 7C 63 07 35 */ extsh. r3, r3
+/* 80317F98 00313BF8 40 82 00 14 */ bne lbl_80317FAC
+/* 80317F9C 00313BFC 55 03 00 20 */ rlwinm r3, r8, 0, 0, 0x10
+/* 80317FA0 00313C00 7C 63 07 35 */ extsh. r3, r3
+/* 80317FA4 00313C04 41 82 00 08 */ beq lbl_80317FAC
+/* 80317FA8 00313C08 38 E0 00 00 */ li r7, 0
+lbl_80317FAC:
+/* 80317FAC 00313C0C 2C 07 00 00 */ cmpwi r7, 0
+/* 80317FB0 00313C10 41 82 00 08 */ beq lbl_80317FB8
+/* 80317FB4 00313C14 38 80 00 01 */ li r4, 1
+lbl_80317FB8:
+/* 80317FB8 00313C18 2C 04 00 00 */ cmpwi r4, 0
+/* 80317FBC 00313C1C 41 82 00 E4 */ beq lbl_803180A0
+/* 80317FC0 00313C20 7C 9F 02 14 */ add r4, r31, r0
+/* 80317FC4 00313C24 54 C3 E8 FE */ srwi r3, r6, 3
+/* 80317FC8 00313C28 7C 86 22 14 */ add r4, r6, r4
+/* 80317FCC 00313C2C 7C 69 03 A6 */ mtctr r3
+/* 80317FD0 00313C30 2C 06 00 08 */ cmpwi r6, 8
+/* 80317FD4 00313C34 41 80 00 CC */ blt lbl_803180A0
+lbl_80317FD8:
+/* 80317FD8 00313C38 A1 01 00 10 */ lhz r8, 0x10(r1)
+/* 80317FDC 00313C3C 7C C3 07 34 */ extsh r3, r6
+/* 80317FE0 00313C40 38 C6 FF F8 */ addi r6, r6, -8
+/* 80317FE4 00313C44 7C FF 42 14 */ add r7, r31, r8
+/* 80317FE8 00313C48 7C E3 38 AE */ lbzx r7, r3, r7
+/* 80317FEC 00313C4C 7C E4 41 AE */ stbx r7, r4, r8
+/* 80317FF0 00313C50 A0 E1 00 10 */ lhz r7, 0x10(r1)
+/* 80317FF4 00313C54 7D 1F 3A 14 */ add r8, r31, r7
+/* 80317FF8 00313C58 7C E4 3A 14 */ add r7, r4, r7
+/* 80317FFC 00313C5C 7D 03 42 14 */ add r8, r3, r8
+/* 80318000 00313C60 89 08 FF FF */ lbz r8, -1(r8)
+/* 80318004 00313C64 99 07 FF FF */ stb r8, -1(r7)
+/* 80318008 00313C68 A0 E1 00 10 */ lhz r7, 0x10(r1)
+/* 8031800C 00313C6C 7D 1F 3A 14 */ add r8, r31, r7
+/* 80318010 00313C70 7C E4 3A 14 */ add r7, r4, r7
+/* 80318014 00313C74 7D 03 42 14 */ add r8, r3, r8
+/* 80318018 00313C78 89 08 FF FE */ lbz r8, -2(r8)
+/* 8031801C 00313C7C 99 07 FF FE */ stb r8, -2(r7)
+/* 80318020 00313C80 A0 E1 00 10 */ lhz r7, 0x10(r1)
+/* 80318024 00313C84 7D 1F 3A 14 */ add r8, r31, r7
+/* 80318028 00313C88 7C E4 3A 14 */ add r7, r4, r7
+/* 8031802C 00313C8C 7D 03 42 14 */ add r8, r3, r8
+/* 80318030 00313C90 89 08 FF FD */ lbz r8, -3(r8)
+/* 80318034 00313C94 99 07 FF FD */ stb r8, -3(r7)
+/* 80318038 00313C98 A0 E1 00 10 */ lhz r7, 0x10(r1)
+/* 8031803C 00313C9C 7D 1F 3A 14 */ add r8, r31, r7
+/* 80318040 00313CA0 7C E4 3A 14 */ add r7, r4, r7
+/* 80318044 00313CA4 7D 03 42 14 */ add r8, r3, r8
+/* 80318048 00313CA8 89 08 FF FC */ lbz r8, -4(r8)
+/* 8031804C 00313CAC 99 07 FF FC */ stb r8, -4(r7)
+/* 80318050 00313CB0 A0 E1 00 10 */ lhz r7, 0x10(r1)
+/* 80318054 00313CB4 7D 1F 3A 14 */ add r8, r31, r7
+/* 80318058 00313CB8 7C E4 3A 14 */ add r7, r4, r7
+/* 8031805C 00313CBC 7D 03 42 14 */ add r8, r3, r8
+/* 80318060 00313CC0 89 08 FF FB */ lbz r8, -5(r8)
+/* 80318064 00313CC4 99 07 FF FB */ stb r8, -5(r7)
+/* 80318068 00313CC8 A0 E1 00 10 */ lhz r7, 0x10(r1)
+/* 8031806C 00313CCC 7D 1F 3A 14 */ add r8, r31, r7
+/* 80318070 00313CD0 7C E4 3A 14 */ add r7, r4, r7
+/* 80318074 00313CD4 7D 03 42 14 */ add r8, r3, r8
+/* 80318078 00313CD8 89 08 FF FA */ lbz r8, -6(r8)
+/* 8031807C 00313CDC 99 07 FF FA */ stb r8, -6(r7)
+/* 80318080 00313CE0 A0 E1 00 10 */ lhz r7, 0x10(r1)
+/* 80318084 00313CE4 7D 1F 3A 14 */ add r8, r31, r7
+/* 80318088 00313CE8 7C E4 3A 14 */ add r7, r4, r7
+/* 8031808C 00313CEC 7C 63 42 14 */ add r3, r3, r8
+/* 80318090 00313CF0 38 84 FF F8 */ addi r4, r4, -8
+/* 80318094 00313CF4 88 63 FF F9 */ lbz r3, -7(r3)
+/* 80318098 00313CF8 98 67 FF F9 */ stb r3, -7(r7)
+/* 8031809C 00313CFC 42 00 FF 3C */ bdnz lbl_80317FD8
+lbl_803180A0:
+/* 803180A0 00313D00 7C C4 07 35 */ extsh. r4, r6
+/* 803180A4 00313D04 7C 7F 02 14 */ add r3, r31, r0
+/* 803180A8 00313D08 38 04 00 01 */ addi r0, r4, 1
+/* 803180AC 00313D0C 7C E4 1A 14 */ add r7, r4, r3
+/* 803180B0 00313D10 7C 09 03 A6 */ mtctr r0
+/* 803180B4 00313D14 41 80 00 24 */ blt lbl_803180D8
+lbl_803180B8:
+/* 803180B8 00313D18 A0 81 00 10 */ lhz r4, 0x10(r1)
+/* 803180BC 00313D1C 7C C3 07 34 */ extsh r3, r6
+/* 803180C0 00313D20 38 C6 FF FF */ addi r6, r6, -1
+/* 803180C4 00313D24 7C 1F 22 14 */ add r0, r31, r4
+/* 803180C8 00313D28 7C 03 00 AE */ lbzx r0, r3, r0
+/* 803180CC 00313D2C 7C 07 21 AE */ stbx r0, r7, r4
+/* 803180D0 00313D30 38 E7 FF FF */ addi r7, r7, -1
+/* 803180D4 00313D34 42 00 FF E4 */ bdnz lbl_803180B8
+lbl_803180D8:
+/* 803180D8 00313D38 A0 01 00 10 */ lhz r0, 0x10(r1)
+/* 803180DC 00313D3C 2C 00 00 00 */ cmpwi r0, 0
+/* 803180E0 00313D40 41 82 00 54 */ beq lbl_80318134
+/* 803180E4 00313D44 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 803180E8 00313D48 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 803180EC 00313D4C 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 803180F0 00313D50 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e
+/* 803180F4 00313D54 28 00 00 02 */ cmplwi r0, 2
+/* 803180F8 00313D58 41 82 00 24 */ beq lbl_8031811C
+/* 803180FC 00313D5C 54 A0 04 3E */ clrlwi r0, r5, 0x10
+/* 80318100 00313D60 38 60 00 7E */ li r3, 0x7e
+/* 80318104 00313D64 7C 7F 01 AE */ stbx r3, r31, r0
+/* 80318108 00313D68 38 A5 00 01 */ addi r5, r5, 1
+/* 8031810C 00313D6C 54 A0 04 3E */ clrlwi r0, r5, 0x10
+/* 80318110 00313D70 38 60 00 31 */ li r3, 0x31
+/* 80318114 00313D74 7C 7F 01 AE */ stbx r3, r31, r0
+/* 80318118 00313D78 48 00 00 1C */ b lbl_80318134
+lbl_8031811C:
+/* 8031811C 00313D7C 54 A0 04 3E */ clrlwi r0, r5, 0x10
+/* 80318120 00313D80 38 60 00 5F */ li r3, 0x5f
+/* 80318124 00313D84 7C 7F 01 AE */ stbx r3, r31, r0
+/* 80318128 00313D88 38 A5 00 01 */ addi r5, r5, 1
+/* 8031812C 00313D8C 54 A0 04 3E */ clrlwi r0, r5, 0x10
+/* 80318130 00313D90 7C 7F 01 AE */ stbx r3, r31, r0
+lbl_80318134:
+/* 80318134 00313D94 3A A0 00 01 */ li r21, 1
+lbl_80318138:
+/* 80318138 00313D98 80 61 00 08 */ lwz r3, 8(r1)
+/* 8031813C 00313D9C 4B FE D1 A5 */ bl VFiPFSTR_GetCodeMode
+/* 80318140 00313DA0 28 03 00 02 */ cmplwi r3, 2
+/* 80318144 00313DA4 40 82 00 8C */ bne lbl_803181D0
+/* 80318148 00313DA8 3A A0 00 01 */ li r21, 1
+/* 8031814C 00313DAC 48 00 00 84 */ b lbl_803181D0
+/* 80318150 00313DB0 48 00 00 20 */ b lbl_80318170
+lbl_80318154:
+/* 80318154 00313DB4 7C 60 07 74 */ extsb r0, r3
+/* 80318158 00313DB8 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 8031815C 00313DBC 41 82 00 10 */ beq lbl_8031816C
+/* 80318160 00313DC0 2C 00 00 20 */ cmpwi r0, 0x20
+/* 80318164 00313DC4 41 82 00 08 */ beq lbl_8031816C
+/* 80318168 00313DC8 3A 80 00 01 */ li r20, 1
+lbl_8031816C:
+/* 8031816C 00313DCC 3A D6 00 01 */ addi r22, r22, 1
+lbl_80318170:
+/* 80318170 00313DD0 88 76 00 00 */ lbz r3, 0(r22)
+/* 80318174 00313DD4 7C 60 07 75 */ extsb. r0, r3
+/* 80318178 00313DD8 41 82 00 0C */ beq lbl_80318184
+/* 8031817C 00313DDC 2C 14 00 00 */ cmpwi r20, 0
+/* 80318180 00313DE0 41 82 FF D4 */ beq lbl_80318154
+lbl_80318184:
+/* 80318184 00313DE4 2C 14 00 00 */ cmpwi r20, 0
+/* 80318188 00313DE8 41 82 00 3C */ beq lbl_803181C4
+/* 8031818C 00313DEC 38 60 00 30 */ li r3, 0x30
+/* 80318190 00313DF0 38 A0 00 01 */ li r5, 1
+/* 80318194 00313DF4 38 80 00 02 */ li r4, 2
+/* 80318198 00313DF8 38 00 00 00 */ li r0, 0
+/* 8031819C 00313DFC 98 BF 00 00 */ stb r5, 0(r31)
+/* 803181A0 00313E00 98 9F 00 01 */ stb r4, 1(r31)
+/* 803181A4 00313E04 98 7F 00 02 */ stb r3, 2(r31)
+/* 803181A8 00313E08 98 7F 00 03 */ stb r3, 3(r31)
+/* 803181AC 00313E0C 98 7F 00 04 */ stb r3, 4(r31)
+/* 803181B0 00313E10 98 7F 00 05 */ stb r3, 5(r31)
+/* 803181B4 00313E14 98 7F 00 06 */ stb r3, 6(r31)
+/* 803181B8 00313E18 98 7F 00 07 */ stb r3, 7(r31)
+/* 803181BC 00313E1C 98 1F 00 08 */ stb r0, 8(r31)
+/* 803181C0 00313E20 48 00 00 0C */ b lbl_803181CC
+lbl_803181C4:
+/* 803181C4 00313E24 38 00 00 00 */ li r0, 0
+/* 803181C8 00313E28 98 1F 00 00 */ stb r0, 0(r31)
+lbl_803181CC:
+/* 803181CC 00313E2C 3A A0 00 01 */ li r21, 1
+lbl_803181D0:
+/* 803181D0 00313E30 39 61 00 60 */ addi r11, r1, 0x60
+/* 803181D4 00313E34 7E A3 AB 78 */ mr r3, r21
+/* 803181D8 00313E38 4B EA EF 69 */ bl __restore_gpr
+/* 803181DC 00313E3C 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 803181E0 00313E40 7C 08 03 A6 */ mtlr r0
+/* 803181E4 00313E44 38 21 00 60 */ addi r1, r1, 0x60
+/* 803181E8 00313E48 4E 80 00 20 */ blr
+
+.global VFiPFPATH_parseShortNameNumeric
+VFiPFPATH_parseShortNameNumeric:
+/* 803181EC 00313E4C 2C 04 00 00 */ cmpwi r4, 0
+/* 803181F0 00313E50 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803181F4 00313E54 40 82 00 0C */ bne lbl_80318200
+/* 803181F8 00313E58 38 60 00 00 */ li r3, 0
+/* 803181FC 00313E5C 48 00 01 C4 */ b lbl_803183C0
+lbl_80318200:
+/* 80318200 00313E60 38 C3 00 01 */ addi r6, r3, 1
+/* 80318204 00313E64 38 A0 00 01 */ li r5, 1
+/* 80318208 00313E68 48 00 00 0C */ b lbl_80318214
+lbl_8031820C:
+/* 8031820C 00313E6C 38 A5 00 01 */ addi r5, r5, 1
+/* 80318210 00313E70 38 C6 00 01 */ addi r6, r6, 1
+lbl_80318214:
+/* 80318214 00313E74 88 06 00 00 */ lbz r0, 0(r6)
+/* 80318218 00313E78 2C 00 00 7E */ cmpwi r0, 0x7e
+/* 8031821C 00313E7C 40 82 FF F0 */ bne lbl_8031820C
+/* 80318220 00313E80 38 C5 00 01 */ addi r6, r5, 1
+/* 80318224 00313E84 7C E3 32 14 */ add r7, r3, r6
+/* 80318228 00313E88 48 00 00 0C */ b lbl_80318234
+lbl_8031822C:
+/* 8031822C 00313E8C 38 C6 00 01 */ addi r6, r6, 1
+/* 80318230 00313E90 38 E7 00 01 */ addi r7, r7, 1
+lbl_80318234:
+/* 80318234 00313E94 89 07 00 00 */ lbz r8, 0(r7)
+/* 80318238 00313E98 7D 00 07 74 */ extsb r0, r8
+/* 8031823C 00313E9C 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 80318240 00313EA0 41 82 00 0C */ beq lbl_8031824C
+/* 80318244 00313EA4 2C 00 00 00 */ cmpwi r0, 0
+/* 80318248 00313EA8 40 82 FF E4 */ bne lbl_8031822C
+lbl_8031824C:
+/* 8031824C 00313EAC 7D 00 07 74 */ extsb r0, r8
+/* 80318250 00313EB0 39 66 00 01 */ addi r11, r6, 1
+/* 80318254 00313EB4 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 80318258 00313EB8 40 82 00 34 */ bne lbl_8031828C
+/* 8031825C 00313EBC 7C 03 58 AE */ lbzx r0, r3, r11
+/* 80318260 00313EC0 7C 00 07 75 */ extsb. r0, r0
+/* 80318264 00313EC4 41 82 00 28 */ beq lbl_8031828C
+/* 80318268 00313EC8 39 8B 00 01 */ addi r12, r11, 1
+/* 8031826C 00313ECC 7C E3 62 14 */ add r7, r3, r12
+/* 80318270 00313ED0 48 00 00 0C */ b lbl_8031827C
+lbl_80318274:
+/* 80318274 00313ED4 39 8C 00 01 */ addi r12, r12, 1
+/* 80318278 00313ED8 38 E7 00 01 */ addi r7, r7, 1
+lbl_8031827C:
+/* 8031827C 00313EDC 88 07 00 00 */ lbz r0, 0(r7)
+/* 80318280 00313EE0 7C 00 07 75 */ extsb. r0, r0
+/* 80318284 00313EE4 40 82 FF F0 */ bne lbl_80318274
+/* 80318288 00313EE8 48 00 00 08 */ b lbl_80318290
+lbl_8031828C:
+/* 8031828C 00313EEC 7D 6C 5B 78 */ mr r12, r11
+lbl_80318290:
+/* 80318290 00313EF0 3C E0 CC CD */ lis r7, 0xCCCCCCCD@ha
+/* 80318294 00313EF4 39 21 00 08 */ addi r9, r1, 8
+/* 80318298 00313EF8 39 07 CC CD */ addi r8, r7, 0xCCCCCCCD@l
+/* 8031829C 00313EFC 39 40 00 00 */ li r10, 0
+/* 803182A0 00313F00 48 00 00 2C */ b lbl_803182CC
+lbl_803182A4:
+/* 803182A4 00313F04 7C E8 20 16 */ mulhwu r7, r8, r4
+/* 803182A8 00313F08 39 4A 00 01 */ addi r10, r10, 1
+/* 803182AC 00313F0C 7C E0 3B 78 */ mr r0, r7
+/* 803182B0 00313F10 54 E7 E8 FE */ srwi r7, r7, 3
+/* 803182B4 00313F14 1C E7 00 0A */ mulli r7, r7, 0xa
+/* 803182B8 00313F18 7C E7 20 50 */ subf r7, r7, r4
+/* 803182BC 00313F1C 54 04 E8 FE */ srwi r4, r0, 3
+/* 803182C0 00313F20 38 07 00 30 */ addi r0, r7, 0x30
+/* 803182C4 00313F24 98 09 00 00 */ stb r0, 0(r9)
+/* 803182C8 00313F28 39 29 00 01 */ addi r9, r9, 1
+lbl_803182CC:
+/* 803182CC 00313F2C 2C 04 00 00 */ cmpwi r4, 0
+/* 803182D0 00313F30 40 82 FF D4 */ bne lbl_803182A4
+/* 803182D4 00313F34 7D 05 52 14 */ add r8, r5, r10
+/* 803182D8 00313F38 7C 08 58 40 */ cmplw r8, r11
+/* 803182DC 00313F3C 41 80 00 44 */ blt lbl_80318320
+/* 803182E0 00313F40 39 28 00 01 */ addi r9, r8, 1
+/* 803182E4 00313F44 28 09 00 08 */ cmplwi r9, 8
+/* 803182E8 00313F48 40 81 00 08 */ ble lbl_803182F0
+/* 803182EC 00313F4C 39 20 00 08 */ li r9, 8
+lbl_803182F0:
+/* 803182F0 00313F50 7C 03 60 AE */ lbzx r0, r3, r12
+/* 803182F4 00313F54 7C E3 4A 14 */ add r7, r3, r9
+/* 803182F8 00313F58 7C 83 5A 14 */ add r4, r3, r11
+/* 803182FC 00313F5C 98 07 00 04 */ stb r0, 4(r7)
+/* 80318300 00313F60 88 04 00 02 */ lbz r0, 2(r4)
+/* 80318304 00313F64 98 07 00 03 */ stb r0, 3(r7)
+/* 80318308 00313F68 88 04 00 01 */ lbz r0, 1(r4)
+/* 8031830C 00313F6C 98 07 00 02 */ stb r0, 2(r7)
+/* 80318310 00313F70 7C 03 58 AE */ lbzx r0, r3, r11
+/* 80318314 00313F74 98 07 00 01 */ stb r0, 1(r7)
+/* 80318318 00313F78 7C 03 30 AE */ lbzx r0, r3, r6
+/* 8031831C 00313F7C 7C 03 49 AE */ stbx r0, r3, r9
+lbl_80318320:
+/* 80318320 00313F80 28 08 00 08 */ cmplwi r8, 8
+/* 80318324 00313F84 41 80 00 08 */ blt lbl_8031832C
+/* 80318328 00313F88 20 AA 00 07 */ subfic r5, r10, 7
+lbl_8031832C:
+/* 8031832C 00313F8C 38 00 00 7E */ li r0, 0x7e
+/* 80318330 00313F90 2C 0A 00 00 */ cmpwi r10, 0
+/* 80318334 00313F94 7C 03 29 AE */ stbx r0, r3, r5
+/* 80318338 00313F98 38 81 00 08 */ addi r4, r1, 8
+/* 8031833C 00313F9C 38 A5 00 01 */ addi r5, r5, 1
+/* 80318340 00313FA0 7C 84 52 14 */ add r4, r4, r10
+/* 80318344 00313FA4 7C 63 2A 14 */ add r3, r3, r5
+/* 80318348 00313FA8 41 82 00 74 */ beq lbl_803183BC
+/* 8031834C 00313FAC 55 40 E8 FF */ rlwinm. r0, r10, 0x1d, 3, 0x1f
+/* 80318350 00313FB0 7C 09 03 A6 */ mtctr r0
+/* 80318354 00313FB4 41 82 00 54 */ beq lbl_803183A8
+lbl_80318358:
+/* 80318358 00313FB8 88 04 FF FF */ lbz r0, -1(r4)
+/* 8031835C 00313FBC 98 03 00 00 */ stb r0, 0(r3)
+/* 80318360 00313FC0 88 04 FF FE */ lbz r0, -2(r4)
+/* 80318364 00313FC4 98 03 00 01 */ stb r0, 1(r3)
+/* 80318368 00313FC8 88 04 FF FD */ lbz r0, -3(r4)
+/* 8031836C 00313FCC 98 03 00 02 */ stb r0, 2(r3)
+/* 80318370 00313FD0 88 04 FF FC */ lbz r0, -4(r4)
+/* 80318374 00313FD4 98 03 00 03 */ stb r0, 3(r3)
+/* 80318378 00313FD8 88 04 FF FB */ lbz r0, -5(r4)
+/* 8031837C 00313FDC 98 03 00 04 */ stb r0, 4(r3)
+/* 80318380 00313FE0 88 04 FF FA */ lbz r0, -6(r4)
+/* 80318384 00313FE4 98 03 00 05 */ stb r0, 5(r3)
+/* 80318388 00313FE8 88 04 FF F9 */ lbz r0, -7(r4)
+/* 8031838C 00313FEC 98 03 00 06 */ stb r0, 6(r3)
+/* 80318390 00313FF0 8C 04 FF F8 */ lbzu r0, -8(r4)
+/* 80318394 00313FF4 98 03 00 07 */ stb r0, 7(r3)
+/* 80318398 00313FF8 38 63 00 08 */ addi r3, r3, 8
+/* 8031839C 00313FFC 42 00 FF BC */ bdnz lbl_80318358
+/* 803183A0 00314000 71 4A 00 07 */ andi. r10, r10, 7
+/* 803183A4 00314004 41 82 00 18 */ beq lbl_803183BC
+lbl_803183A8:
+/* 803183A8 00314008 7D 49 03 A6 */ mtctr r10
+lbl_803183AC:
+/* 803183AC 0031400C 8C 04 FF FF */ lbzu r0, -1(r4)
+/* 803183B0 00314010 98 03 00 00 */ stb r0, 0(r3)
+/* 803183B4 00314014 38 63 00 01 */ addi r3, r3, 1
+/* 803183B8 00314018 42 00 FF F4 */ bdnz lbl_803183AC
+lbl_803183BC:
+/* 803183BC 0031401C 38 60 00 00 */ li r3, 0
+lbl_803183C0:
+/* 803183C0 00314020 38 21 00 10 */ addi r1, r1, 0x10
+/* 803183C4 00314024 4E 80 00 20 */ blr
+
+.global VFiPFPATH_CheckExtShortNameSignature
+VFiPFPATH_CheckExtShortNameSignature:
+/* 803183C8 00314028 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803183CC 0031402C 7C 08 02 A6 */ mflr r0
+/* 803183D0 00314030 2C 03 00 00 */ cmpwi r3, 0
+/* 803183D4 00314034 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803183D8 00314038 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 803183DC 0031403C 3B E0 00 00 */ li r31, 0
+/* 803183E0 00314040 88 8D 8D 1C */ lbz r4, lbl_8063DFDC-_SDA_BASE_(r13)
+/* 803183E4 00314044 88 0D 8D 1D */ lbz r0, lbl_8063DFDD-_SDA_BASE_(r13)
+/* 803183E8 00314048 98 81 00 08 */ stb r4, 8(r1)
+/* 803183EC 0031404C 98 01 00 09 */ stb r0, 9(r1)
+/* 803183F0 00314050 40 82 00 0C */ bne lbl_803183FC
+/* 803183F4 00314054 38 60 00 0A */ li r3, 0xa
+/* 803183F8 00314058 48 00 00 28 */ b lbl_80318420
+lbl_803183FC:
+/* 803183FC 0031405C 38 81 00 08 */ addi r4, r1, 8
+/* 80318400 00314060 38 A0 00 01 */ li r5, 1
+/* 80318404 00314064 38 C0 00 00 */ li r6, 0
+/* 80318408 00314068 38 E0 00 02 */ li r7, 2
+/* 8031840C 0031406C 4B FE D2 55 */ bl VFiPFSTR_StrNCmp
+/* 80318410 00314070 2C 03 00 00 */ cmpwi r3, 0
+/* 80318414 00314074 40 82 00 08 */ bne lbl_8031841C
+/* 80318418 00314078 3B E0 00 01 */ li r31, 1
+lbl_8031841C:
+/* 8031841C 0031407C 7F E3 FB 78 */ mr r3, r31
+lbl_80318420:
+/* 80318420 00314080 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80318424 00314084 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80318428 00314088 7C 08 03 A6 */ mtlr r0
+/* 8031842C 0031408C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80318430 00314090 4E 80 00 20 */ blr
+
+.global VFiPFPATH_CheckExtShortName
+VFiPFPATH_CheckExtShortName:
+/* 80318434 00314094 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80318438 00314098 7C 08 02 A6 */ mflr r0
+/* 8031843C 0031409C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80318440 003140A0 39 61 00 30 */ addi r11, r1, 0x30
+/* 80318444 003140A4 4B EA EC D9 */ bl _savegpr_24
+/* 80318448 003140A8 88 C2 A4 A4 */ lbz r6, lbl_80642AA4-_SDA2_BASE_(r2)
+/* 8031844C 003140AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80318450 003140B0 88 02 A4 A5 */ lbz r0, lbl_80642AA5-_SDA2_BASE_(r2)
+/* 80318454 003140B4 7C 7E 1B 78 */ mr r30, r3
+/* 80318458 003140B8 98 C1 00 08 */ stb r6, 8(r1)
+/* 8031845C 003140BC 7C 9F 23 78 */ mr r31, r4
+/* 80318460 003140C0 7C B8 2B 78 */ mr r24, r5
+/* 80318464 003140C4 3B 60 00 00 */ li r27, 0
+/* 80318468 003140C8 98 01 00 09 */ stb r0, 9(r1)
+/* 8031846C 003140CC 3B 20 00 00 */ li r25, 0
+/* 80318470 003140D0 40 82 00 0C */ bne lbl_8031847C
+/* 80318474 003140D4 38 60 00 0A */ li r3, 0xa
+/* 80318478 003140D8 48 00 02 C8 */ b lbl_80318740
+lbl_8031847C:
+/* 8031847C 003140DC 7F E5 FB 78 */ mr r5, r31
+/* 80318480 003140E0 38 81 00 08 */ addi r4, r1, 8
+/* 80318484 003140E4 38 C0 00 00 */ li r6, 0
+/* 80318488 003140E8 38 E0 00 02 */ li r7, 2
+/* 8031848C 003140EC 4B FE D1 D5 */ bl VFiPFSTR_StrNCmp
+/* 80318490 003140F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80318494 003140F4 41 82 00 84 */ beq lbl_80318518
+/* 80318498 003140F8 7F C3 F3 78 */ mr r3, r30
+/* 8031849C 003140FC 7F E5 FB 78 */ mr r5, r31
+/* 803184A0 00314100 38 8D 8D 18 */ addi r4, r13, lbl_8063DFD8-_SDA_BASE_
+/* 803184A4 00314104 38 C0 00 00 */ li r6, 0
+/* 803184A8 00314108 38 E0 00 01 */ li r7, 1
+/* 803184AC 0031410C 4B FE D1 B5 */ bl VFiPFSTR_StrNCmp
+/* 803184B0 00314110 2C 03 00 00 */ cmpwi r3, 0
+/* 803184B4 00314114 40 82 00 44 */ bne lbl_803184F8
+/* 803184B8 00314118 7F C3 F3 78 */ mr r3, r30
+/* 803184BC 0031411C 7F E5 FB 78 */ mr r5, r31
+/* 803184C0 00314120 38 8D 8D 18 */ addi r4, r13, lbl_8063DFD8-_SDA_BASE_
+/* 803184C4 00314124 38 C0 00 01 */ li r6, 1
+/* 803184C8 00314128 38 E0 00 01 */ li r7, 1
+/* 803184CC 0031412C 4B FE D1 95 */ bl VFiPFSTR_StrNCmp
+/* 803184D0 00314130 2C 03 00 00 */ cmpwi r3, 0
+/* 803184D4 00314134 41 82 00 44 */ beq lbl_80318518
+/* 803184D8 00314138 7F C3 F3 78 */ mr r3, r30
+/* 803184DC 0031413C 7F E5 FB 78 */ mr r5, r31
+/* 803184E0 00314140 38 8D 8D 14 */ addi r4, r13, lbl_8063DFD4-_SDA_BASE_
+/* 803184E4 00314144 38 C0 00 00 */ li r6, 0
+/* 803184E8 00314148 38 E0 00 01 */ li r7, 1
+/* 803184EC 0031414C 4B FE D1 75 */ bl VFiPFSTR_StrNCmp
+/* 803184F0 00314150 2C 03 00 00 */ cmpwi r3, 0
+/* 803184F4 00314154 41 82 00 24 */ beq lbl_80318518
+lbl_803184F8:
+/* 803184F8 00314158 7F C3 F3 78 */ mr r3, r30
+/* 803184FC 0031415C 7F E5 FB 78 */ mr r5, r31
+/* 80318500 00314160 38 8D 8D 14 */ addi r4, r13, lbl_8063DFD4-_SDA_BASE_
+/* 80318504 00314164 38 C0 00 00 */ li r6, 0
+/* 80318508 00314168 38 E0 00 01 */ li r7, 1
+/* 8031850C 0031416C 4B FE D1 55 */ bl VFiPFSTR_StrNCmp
+/* 80318510 00314170 2C 03 00 00 */ cmpwi r3, 0
+/* 80318514 00314174 40 82 02 28 */ bne lbl_8031873C
+lbl_80318518:
+/* 80318518 00314178 3B 40 00 02 */ li r26, 2
+/* 8031851C 0031417C 3B 80 00 04 */ li r28, 4
+/* 80318520 00314180 48 00 00 DC */ b lbl_803185FC
+lbl_80318524:
+/* 80318524 00314184 7F C3 F3 78 */ mr r3, r30
+/* 80318528 00314188 4B FE CD B9 */ bl VFiPFSTR_GetCodeMode
+/* 8031852C 0031418C 28 03 00 01 */ cmplwi r3, 1
+/* 80318530 00314190 40 82 00 28 */ bne lbl_80318558
+/* 80318534 00314194 7F C3 F3 78 */ mr r3, r30
+/* 80318538 00314198 7F E4 FB 78 */ mr r4, r31
+/* 8031853C 0031419C 4B FE CD D5 */ bl VFiPFSTR_GetStrPos
+/* 80318540 003141A0 7F 40 07 34 */ extsh r0, r26
+/* 80318544 003141A4 7C 03 00 AE */ lbzx r0, r3, r0
+/* 80318548 003141A8 7C 03 07 74 */ extsb r3, r0
+/* 8031854C 003141AC 38 03 FF D0 */ addi r0, r3, -48
+/* 80318550 003141B0 7C 00 07 34 */ extsh r0, r0
+/* 80318554 003141B4 48 00 00 1C */ b lbl_80318570
+lbl_80318558:
+/* 80318558 003141B8 7F C3 F3 78 */ mr r3, r30
+/* 8031855C 003141BC 7F E4 FB 78 */ mr r4, r31
+/* 80318560 003141C0 4B FE CD B1 */ bl VFiPFSTR_GetStrPos
+/* 80318564 003141C4 7C 63 E2 2E */ lhzx r3, r3, r28
+/* 80318568 003141C8 38 03 FF D0 */ addi r0, r3, -48
+/* 8031856C 003141CC 7C 00 07 34 */ extsh r0, r0
+lbl_80318570:
+/* 80318570 003141D0 2C 00 00 00 */ cmpwi r0, 0
+/* 80318574 003141D4 41 80 00 0C */ blt lbl_80318580
+/* 80318578 003141D8 2C 00 00 09 */ cmpwi r0, 9
+/* 8031857C 003141DC 40 81 00 78 */ ble lbl_803185F4
+lbl_80318580:
+/* 80318580 003141E0 2C 18 00 00 */ cmpwi r24, 0
+/* 80318584 003141E4 41 82 01 10 */ beq lbl_80318694
+/* 80318588 003141E8 7F C3 F3 78 */ mr r3, r30
+/* 8031858C 003141EC 7F E5 FB 78 */ mr r5, r31
+/* 80318590 003141F0 7F 46 07 34 */ extsh r6, r26
+/* 80318594 003141F4 38 8D 8D 14 */ addi r4, r13, lbl_8063DFD4-_SDA_BASE_
+/* 80318598 003141F8 38 E0 00 01 */ li r7, 1
+/* 8031859C 003141FC 4B FE D0 C5 */ bl VFiPFSTR_StrNCmp
+/* 803185A0 00314200 2C 03 00 00 */ cmpwi r3, 0
+/* 803185A4 00314204 41 82 00 24 */ beq lbl_803185C8
+/* 803185A8 00314208 7F C3 F3 78 */ mr r3, r30
+/* 803185AC 0031420C 7F E5 FB 78 */ mr r5, r31
+/* 803185B0 00314210 7F 46 07 34 */ extsh r6, r26
+/* 803185B4 00314214 38 8D 8D 18 */ addi r4, r13, lbl_8063DFD8-_SDA_BASE_
+/* 803185B8 00314218 38 E0 00 01 */ li r7, 1
+/* 803185BC 0031421C 4B FE D0 A5 */ bl VFiPFSTR_StrNCmp
+/* 803185C0 00314220 2C 03 00 00 */ cmpwi r3, 0
+/* 803185C4 00314224 40 82 00 D0 */ bne lbl_80318694
+lbl_803185C8:
+/* 803185C8 00314228 28 18 00 01 */ cmplwi r24, 1
+/* 803185CC 0031422C 40 82 00 28 */ bne lbl_803185F4
+/* 803185D0 00314230 7F C3 F3 78 */ mr r3, r30
+/* 803185D4 00314234 7F E5 FB 78 */ mr r5, r31
+/* 803185D8 00314238 7F 46 07 34 */ extsh r6, r26
+/* 803185DC 0031423C 38 8D 8D 14 */ addi r4, r13, lbl_8063DFD4-_SDA_BASE_
+/* 803185E0 00314240 38 E0 00 01 */ li r7, 1
+/* 803185E4 00314244 4B FE D0 7D */ bl VFiPFSTR_StrNCmp
+/* 803185E8 00314248 2C 03 00 00 */ cmpwi r3, 0
+/* 803185EC 0031424C 40 82 00 08 */ bne lbl_803185F4
+/* 803185F0 00314250 3B 20 00 01 */ li r25, 1
+lbl_803185F4:
+/* 803185F4 00314254 3B 9C 00 02 */ addi r28, r28, 2
+/* 803185F8 00314258 3B 5A 00 01 */ addi r26, r26, 1
+lbl_803185FC:
+/* 803185FC 0031425C 7F 46 07 34 */ extsh r6, r26
+/* 80318600 00314260 2C 06 00 08 */ cmpwi r6, 8
+/* 80318604 00314264 40 80 00 90 */ bge lbl_80318694
+/* 80318608 00314268 7F C3 F3 78 */ mr r3, r30
+/* 8031860C 0031426C 7F E5 FB 78 */ mr r5, r31
+/* 80318610 00314270 3B A0 00 00 */ li r29, 0
+/* 80318614 00314274 38 8D 8D 0C */ addi r4, r13, lbl_8063DFCC-_SDA_BASE_
+/* 80318618 00314278 38 E0 00 01 */ li r7, 1
+/* 8031861C 0031427C 4B FE D0 45 */ bl VFiPFSTR_StrNCmp
+/* 80318620 00314280 2C 03 00 00 */ cmpwi r3, 0
+/* 80318624 00314284 41 82 00 24 */ beq lbl_80318648
+/* 80318628 00314288 7F C3 F3 78 */ mr r3, r30
+/* 8031862C 0031428C 7F E5 FB 78 */ mr r5, r31
+/* 80318630 00314290 7F 46 07 34 */ extsh r6, r26
+/* 80318634 00314294 38 8D 8D 10 */ addi r4, r13, lbl_8063DFD0-_SDA_BASE_
+/* 80318638 00314298 38 E0 00 01 */ li r7, 1
+/* 8031863C 0031429C 4B FE D0 25 */ bl VFiPFSTR_StrNCmp
+/* 80318640 003142A0 2C 03 00 00 */ cmpwi r3, 0
+/* 80318644 003142A4 40 82 00 08 */ bne lbl_8031864C
+lbl_80318648:
+/* 80318648 003142A8 3B A0 00 01 */ li r29, 1
+lbl_8031864C:
+/* 8031864C 003142AC 2C 1D 00 00 */ cmpwi r29, 0
+/* 80318650 003142B0 40 82 00 44 */ bne lbl_80318694
+/* 80318654 003142B4 7F C3 F3 78 */ mr r3, r30
+/* 80318658 003142B8 7F E5 FB 78 */ mr r5, r31
+/* 8031865C 003142BC 7F 46 07 34 */ extsh r6, r26
+/* 80318660 003142C0 38 8D 8D 20 */ addi r4, r13, lbl_8063DFE0-_SDA_BASE_
+/* 80318664 003142C4 38 E0 00 01 */ li r7, 1
+/* 80318668 003142C8 4B FE CF F9 */ bl VFiPFSTR_StrNCmp
+/* 8031866C 003142CC 2C 03 00 00 */ cmpwi r3, 0
+/* 80318670 003142D0 41 82 00 24 */ beq lbl_80318694
+/* 80318674 003142D4 7F C3 F3 78 */ mr r3, r30
+/* 80318678 003142D8 7F E5 FB 78 */ mr r5, r31
+/* 8031867C 003142DC 7F 46 07 34 */ extsh r6, r26
+/* 80318680 003142E0 38 8D 8C FC */ addi r4, r13, lbl_8063DFBC-_SDA_BASE_
+/* 80318684 003142E4 38 E0 00 01 */ li r7, 1
+/* 80318688 003142E8 4B FE CF D9 */ bl VFiPFSTR_StrNCmp
+/* 8031868C 003142EC 2C 03 00 00 */ cmpwi r3, 0
+/* 80318690 003142F0 40 82 FE 94 */ bne lbl_80318524
+lbl_80318694:
+/* 80318694 003142F4 7F 40 07 34 */ extsh r0, r26
+/* 80318698 003142F8 2C 00 00 08 */ cmpwi r0, 8
+/* 8031869C 003142FC 41 82 00 0C */ beq lbl_803186A8
+/* 803186A0 00314300 28 19 00 01 */ cmplwi r25, 1
+/* 803186A4 00314304 40 82 00 98 */ bne lbl_8031873C
+lbl_803186A8:
+/* 803186A8 00314308 7F C3 F3 78 */ mr r3, r30
+/* 803186AC 0031430C 7F E5 FB 78 */ mr r5, r31
+/* 803186B0 00314310 7F 46 07 34 */ extsh r6, r26
+/* 803186B4 00314314 38 8D 8D 20 */ addi r4, r13, lbl_8063DFE0-_SDA_BASE_
+/* 803186B8 00314318 38 E0 00 01 */ li r7, 1
+/* 803186BC 0031431C 4B FE CF A5 */ bl VFiPFSTR_StrNCmp
+/* 803186C0 00314320 2C 03 00 00 */ cmpwi r3, 0
+/* 803186C4 00314324 41 82 00 74 */ beq lbl_80318738
+/* 803186C8 00314328 7F C3 F3 78 */ mr r3, r30
+/* 803186CC 0031432C 7F E5 FB 78 */ mr r5, r31
+/* 803186D0 00314330 7F 46 07 34 */ extsh r6, r26
+/* 803186D4 00314334 3B A0 00 00 */ li r29, 0
+/* 803186D8 00314338 38 8D 8D 0C */ addi r4, r13, lbl_8063DFCC-_SDA_BASE_
+/* 803186DC 0031433C 38 E0 00 01 */ li r7, 1
+/* 803186E0 00314340 4B FE CF 81 */ bl VFiPFSTR_StrNCmp
+/* 803186E4 00314344 2C 03 00 00 */ cmpwi r3, 0
+/* 803186E8 00314348 41 82 00 24 */ beq lbl_8031870C
+/* 803186EC 0031434C 7F C3 F3 78 */ mr r3, r30
+/* 803186F0 00314350 7F E5 FB 78 */ mr r5, r31
+/* 803186F4 00314354 7F 46 07 34 */ extsh r6, r26
+/* 803186F8 00314358 38 8D 8D 10 */ addi r4, r13, lbl_8063DFD0-_SDA_BASE_
+/* 803186FC 0031435C 38 E0 00 01 */ li r7, 1
+/* 80318700 00314360 4B FE CF 61 */ bl VFiPFSTR_StrNCmp
+/* 80318704 00314364 2C 03 00 00 */ cmpwi r3, 0
+/* 80318708 00314368 40 82 00 08 */ bne lbl_80318710
+lbl_8031870C:
+/* 8031870C 0031436C 3B A0 00 01 */ li r29, 1
+lbl_80318710:
+/* 80318710 00314370 2C 1D 00 00 */ cmpwi r29, 0
+/* 80318714 00314374 41 82 00 24 */ beq lbl_80318738
+/* 80318718 00314378 7F C3 F3 78 */ mr r3, r30
+/* 8031871C 0031437C 7F E5 FB 78 */ mr r5, r31
+/* 80318720 00314380 7F 46 07 34 */ extsh r6, r26
+/* 80318724 00314384 38 8D 8C FC */ addi r4, r13, lbl_8063DFBC-_SDA_BASE_
+/* 80318728 00314388 38 E0 00 01 */ li r7, 1
+/* 8031872C 0031438C 4B FE CF 35 */ bl VFiPFSTR_StrNCmp
+/* 80318730 00314390 2C 03 00 00 */ cmpwi r3, 0
+/* 80318734 00314394 40 82 00 08 */ bne lbl_8031873C
+lbl_80318738:
+/* 80318738 00314398 7F 5B 07 34 */ extsh r27, r26
+lbl_8031873C:
+/* 8031873C 0031439C 7F 63 DB 78 */ mr r3, r27
+lbl_80318740:
+/* 80318740 003143A0 39 61 00 30 */ addi r11, r1, 0x30
+/* 80318744 003143A4 4B EA EA 25 */ bl _restgpr_24
+/* 80318748 003143A8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8031874C 003143AC 7C 08 03 A6 */ mtlr r0
+/* 80318750 003143B0 38 21 00 30 */ addi r1, r1, 0x30
+/* 80318754 003143B4 4E 80 00 20 */ blr
+
+.global VFiPFPATH_GetExtShortNameIndex
+VFiPFPATH_GetExtShortNameIndex:
+/* 80318758 003143B8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8031875C 003143BC 7C 08 02 A6 */ mflr r0
+/* 80318760 003143C0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80318764 003143C4 39 61 00 30 */ addi r11, r1, 0x30
+/* 80318768 003143C8 4B EA E9 BD */ bl _savegpr_26
+/* 8031876C 003143CC 88 A2 A4 A8 */ lbz r5, lbl_80642AA8-_SDA2_BASE_(r2)
+/* 80318770 003143D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80318774 003143D4 88 02 A4 A9 */ lbz r0, lbl_80642AA9-_SDA2_BASE_(r2)
+/* 80318778 003143D8 7C 7A 1B 78 */ mr r26, r3
+/* 8031877C 003143DC 98 A1 00 08 */ stb r5, 8(r1)
+/* 80318780 003143E0 7C 9B 23 78 */ mr r27, r4
+/* 80318784 003143E4 3B C0 00 00 */ li r30, 0
+/* 80318788 003143E8 98 01 00 09 */ stb r0, 9(r1)
+/* 8031878C 003143EC 41 82 00 0C */ beq lbl_80318798
+/* 80318790 003143F0 2C 04 00 00 */ cmpwi r4, 0
+/* 80318794 003143F4 40 82 00 0C */ bne lbl_803187A0
+lbl_80318798:
+/* 80318798 003143F8 38 60 00 0A */ li r3, 0xa
+/* 8031879C 003143FC 48 00 01 48 */ b lbl_803188E4
+lbl_803187A0:
+/* 803187A0 00314400 38 81 00 08 */ addi r4, r1, 8
+/* 803187A4 00314404 38 A0 00 01 */ li r5, 1
+/* 803187A8 00314408 38 C0 00 00 */ li r6, 0
+/* 803187AC 0031440C 38 E0 00 02 */ li r7, 2
+/* 803187B0 00314410 4B FE CE B1 */ bl VFiPFSTR_StrNCmp
+/* 803187B4 00314414 2C 03 00 00 */ cmpwi r3, 0
+/* 803187B8 00314418 40 82 01 28 */ bne lbl_803188E0
+/* 803187BC 0031441C 3B 80 00 00 */ li r28, 0
+/* 803187C0 00314420 3B A0 00 02 */ li r29, 2
+/* 803187C4 00314424 3B E0 00 04 */ li r31, 4
+/* 803187C8 00314428 48 00 00 70 */ b lbl_80318838
+lbl_803187CC:
+/* 803187CC 0031442C 7F 43 D3 78 */ mr r3, r26
+/* 803187D0 00314430 4B FE CB 11 */ bl VFiPFSTR_GetCodeMode
+/* 803187D4 00314434 28 03 00 01 */ cmplwi r3, 1
+/* 803187D8 00314438 40 82 00 28 */ bne lbl_80318800
+/* 803187DC 0031443C 7F 43 D3 78 */ mr r3, r26
+/* 803187E0 00314440 38 80 00 01 */ li r4, 1
+/* 803187E4 00314444 4B FE CB 2D */ bl VFiPFSTR_GetStrPos
+/* 803187E8 00314448 7F A0 07 34 */ extsh r0, r29
+/* 803187EC 0031444C 7C 03 00 AE */ lbzx r0, r3, r0
+/* 803187F0 00314450 7C 03 07 74 */ extsb r3, r0
+/* 803187F4 00314454 38 03 FF D0 */ addi r0, r3, -48
+/* 803187F8 00314458 7C 00 07 34 */ extsh r0, r0
+/* 803187FC 0031445C 48 00 00 1C */ b lbl_80318818
+lbl_80318800:
+/* 80318800 00314460 7F 43 D3 78 */ mr r3, r26
+/* 80318804 00314464 38 80 00 01 */ li r4, 1
+/* 80318808 00314468 4B FE CB 09 */ bl VFiPFSTR_GetStrPos
+/* 8031880C 0031446C 7C 63 FA 2E */ lhzx r3, r3, r31
+/* 80318810 00314470 38 03 FF D0 */ addi r0, r3, -48
+/* 80318814 00314474 7C 00 07 34 */ extsh r0, r0
+lbl_80318818:
+/* 80318818 00314478 2C 00 00 00 */ cmpwi r0, 0
+/* 8031881C 0031447C 41 80 00 44 */ blt lbl_80318860
+/* 80318820 00314480 2C 00 00 09 */ cmpwi r0, 9
+/* 80318824 00314484 41 81 00 3C */ bgt lbl_80318860
+/* 80318828 00314488 1F 9C 00 0A */ mulli r28, r28, 0xa
+/* 8031882C 0031448C 3B FF 00 02 */ addi r31, r31, 2
+/* 80318830 00314490 3B BD 00 01 */ addi r29, r29, 1
+/* 80318834 00314494 7F 9C 02 14 */ add r28, r28, r0
+lbl_80318838:
+/* 80318838 00314498 7F A6 07 34 */ extsh r6, r29
+/* 8031883C 0031449C 2C 06 00 08 */ cmpwi r6, 8
+/* 80318840 003144A0 41 80 FF 8C */ blt lbl_803187CC
+/* 80318844 003144A4 7F 43 D3 78 */ mr r3, r26
+/* 80318848 003144A8 38 8D 8C FC */ addi r4, r13, lbl_8063DFBC-_SDA_BASE_
+/* 8031884C 003144AC 38 A0 00 01 */ li r5, 1
+/* 80318850 003144B0 38 E0 00 01 */ li r7, 1
+/* 80318854 003144B4 4B FE CE 0D */ bl VFiPFSTR_StrNCmp
+/* 80318858 003144B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031885C 003144BC 40 82 FF 70 */ bne lbl_803187CC
+lbl_80318860:
+/* 80318860 003144C0 7F A6 07 34 */ extsh r6, r29
+/* 80318864 003144C4 2C 06 00 08 */ cmpwi r6, 8
+/* 80318868 003144C8 40 82 00 78 */ bne lbl_803188E0
+/* 8031886C 003144CC 7F 43 D3 78 */ mr r3, r26
+/* 80318870 003144D0 3B E0 00 00 */ li r31, 0
+/* 80318874 003144D4 38 8D 8D 0C */ addi r4, r13, lbl_8063DFCC-_SDA_BASE_
+/* 80318878 003144D8 38 A0 00 01 */ li r5, 1
+/* 8031887C 003144DC 38 E0 00 01 */ li r7, 1
+/* 80318880 003144E0 4B FE CD E1 */ bl VFiPFSTR_StrNCmp
+/* 80318884 003144E4 2C 03 00 00 */ cmpwi r3, 0
+/* 80318888 003144E8 41 82 00 24 */ beq lbl_803188AC
+/* 8031888C 003144EC 7F 43 D3 78 */ mr r3, r26
+/* 80318890 003144F0 7F A6 07 34 */ extsh r6, r29
+/* 80318894 003144F4 38 8D 8D 10 */ addi r4, r13, lbl_8063DFD0-_SDA_BASE_
+/* 80318898 003144F8 38 A0 00 01 */ li r5, 1
+/* 8031889C 003144FC 38 E0 00 01 */ li r7, 1
+/* 803188A0 00314500 4B FE CD C1 */ bl VFiPFSTR_StrNCmp
+/* 803188A4 00314504 2C 03 00 00 */ cmpwi r3, 0
+/* 803188A8 00314508 40 82 00 08 */ bne lbl_803188B0
+lbl_803188AC:
+/* 803188AC 0031450C 3B E0 00 01 */ li r31, 1
+lbl_803188B0:
+/* 803188B0 00314510 2C 1F 00 00 */ cmpwi r31, 0
+/* 803188B4 00314514 41 82 00 24 */ beq lbl_803188D8
+/* 803188B8 00314518 7F 43 D3 78 */ mr r3, r26
+/* 803188BC 0031451C 7F A6 07 34 */ extsh r6, r29
+/* 803188C0 00314520 38 80 00 00 */ li r4, 0
+/* 803188C4 00314524 38 A0 00 01 */ li r5, 1
+/* 803188C8 00314528 38 E0 00 01 */ li r7, 1
+/* 803188CC 0031452C 4B FE CD 95 */ bl VFiPFSTR_StrNCmp
+/* 803188D0 00314530 2C 03 00 00 */ cmpwi r3, 0
+/* 803188D4 00314534 40 82 00 0C */ bne lbl_803188E0
+lbl_803188D8:
+/* 803188D8 00314538 93 9B 00 00 */ stw r28, 0(r27)
+/* 803188DC 0031453C 3B C0 00 01 */ li r30, 1
+lbl_803188E0:
+/* 803188E0 00314540 7F C3 F3 78 */ mr r3, r30
+lbl_803188E4:
+/* 803188E4 00314544 39 61 00 30 */ addi r11, r1, 0x30
+/* 803188E8 00314548 4B EA E8 89 */ bl _restgpr_26
+/* 803188EC 0031454C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 803188F0 00314550 7C 08 03 A6 */ mtlr r0
+/* 803188F4 00314554 38 21 00 30 */ addi r1, r1, 0x30
+/* 803188F8 00314558 4E 80 00 20 */ blr
+
+.global VFiPFPATH_AdjustExtShortName
+VFiPFPATH_AdjustExtShortName:
+/* 803188FC 0031455C 2C 03 00 00 */ cmpwi r3, 0
+/* 80318900 00314560 40 82 00 0C */ bne lbl_8031890C
+/* 80318904 00314564 38 60 00 0A */ li r3, 0xa
+/* 80318908 00314568 4E 80 00 20 */ blr
+lbl_8031890C:
+/* 8031890C 0031456C 38 63 00 07 */ addi r3, r3, 7
+/* 80318910 00314570 38 C0 00 07 */ li r6, 7
+/* 80318914 00314574 38 E0 00 0A */ li r7, 0xa
+/* 80318918 00314578 39 00 00 01 */ li r8, 1
+/* 8031891C 0031457C 48 00 00 3C */ b lbl_80318958
+lbl_80318920:
+/* 80318920 00314580 7C 04 3B 96 */ divwu r0, r4, r7
+/* 80318924 00314584 7C 00 39 D6 */ mullw r0, r0, r7
+/* 80318928 00314588 7C 00 20 51 */ subf. r0, r0, r4
+/* 8031892C 0031458C 41 82 00 1C */ beq lbl_80318948
+/* 80318930 00314590 7C 80 20 50 */ subf r4, r0, r4
+/* 80318934 00314594 88 A3 00 00 */ lbz r5, 0(r3)
+/* 80318938 00314598 7C 00 43 96 */ divwu r0, r0, r8
+/* 8031893C 0031459C 7C 00 07 74 */ extsb r0, r0
+/* 80318940 003145A0 7C 05 02 14 */ add r0, r5, r0
+/* 80318944 003145A4 98 03 00 00 */ stb r0, 0(r3)
+lbl_80318948:
+/* 80318948 003145A8 1C E7 00 0A */ mulli r7, r7, 0xa
+/* 8031894C 003145AC 38 C6 FF FF */ addi r6, r6, -1
+/* 80318950 003145B0 38 63 FF FF */ addi r3, r3, -1
+/* 80318954 003145B4 1D 08 00 0A */ mulli r8, r8, 0xa
+lbl_80318958:
+/* 80318958 003145B8 28 06 00 01 */ cmplwi r6, 1
+/* 8031895C 003145BC 40 81 00 0C */ ble lbl_80318968
+/* 80318960 003145C0 2C 04 00 00 */ cmpwi r4, 0
+/* 80318964 003145C4 40 82 FF BC */ bne lbl_80318920
+lbl_80318968:
+/* 80318968 003145C8 38 60 00 00 */ li r3, 0
+/* 8031896C 003145CC 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_sector.s b/asm/SDK/VF/pf_sector.s
new file mode 100644
index 0000000..d1c9dfd
--- /dev/null
+++ b/asm/SDK/VF/pf_sector.s
@@ -0,0 +1,507 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFiPFSEC_ReadFAT
+VFiPFSEC_ReadFAT:
+/* 80318970 003145D0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80318974 003145D4 7C 08 02 A6 */ mflr r0
+/* 80318978 003145D8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8031897C 003145DC 39 61 00 30 */ addi r11, r1, 0x30
+/* 80318980 003145E0 4B EA E7 A9 */ bl _savegpr_27
+/* 80318984 003145E4 2C 03 00 00 */ cmpwi r3, 0
+/* 80318988 003145E8 7C 7B 1B 78 */ mr r27, r3
+/* 8031898C 003145EC 7C 9C 23 78 */ mr r28, r4
+/* 80318990 003145F0 7C BD 2B 78 */ mr r29, r5
+/* 80318994 003145F4 7C DE 33 78 */ mr r30, r6
+/* 80318998 003145F8 7C FF 3B 78 */ mr r31, r7
+/* 8031899C 003145FC 40 82 00 0C */ bne lbl_803189A8
+/* 803189A0 00314600 38 60 00 0A */ li r3, 0xa
+/* 803189A4 00314604 48 00 00 6C */ b lbl_80318A10
+lbl_803189A8:
+/* 803189A8 00314608 2C 04 00 00 */ cmpwi r4, 0
+/* 803189AC 0031460C 40 82 00 0C */ bne lbl_803189B8
+/* 803189B0 00314610 38 60 00 0A */ li r3, 0xa
+/* 803189B4 00314614 48 00 00 5C */ b lbl_80318A10
+lbl_803189B8:
+/* 803189B8 00314618 A0 03 18 78 */ lhz r0, 0x1878(r3)
+/* 803189BC 0031461C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 803189C0 00314620 41 82 00 10 */ beq lbl_803189D0
+/* 803189C4 00314624 4B FE D3 8D */ bl VFiPFDRV_IsInserted
+/* 803189C8 00314628 2C 03 00 00 */ cmpwi r3, 0
+/* 803189CC 0031462C 40 82 00 0C */ bne lbl_803189D8
+lbl_803189D0:
+/* 803189D0 00314630 38 60 00 09 */ li r3, 9
+/* 803189D4 00314634 48 00 00 3C */ b lbl_80318A10
+lbl_803189D8:
+/* 803189D8 00314638 7F 63 DB 78 */ mr r3, r27
+/* 803189DC 0031463C 7F A4 EB 78 */ mr r4, r29
+/* 803189E0 00314640 38 A1 00 08 */ addi r5, r1, 8
+/* 803189E4 00314644 4B FF 1E 69 */ bl VFiPFCACHE_ReadFATPage
+/* 803189E8 00314648 2C 03 00 00 */ cmpwi r3, 0
+/* 803189EC 0031464C 41 82 00 08 */ beq lbl_803189F4
+/* 803189F0 00314650 48 00 00 20 */ b lbl_80318A10
+lbl_803189F4:
+/* 803189F4 00314654 80 81 00 08 */ lwz r4, 8(r1)
+/* 803189F8 00314658 7F 83 E3 78 */ mr r3, r28
+/* 803189FC 0031465C 7F E5 FB 78 */ mr r5, r31
+/* 80318A00 00314660 80 04 00 08 */ lwz r0, 8(r4)
+/* 80318A04 00314664 7C 80 F2 14 */ add r4, r0, r30
+/* 80318A08 00314668 4B FE C4 A5 */ bl VFipf_memcpy
+/* 80318A0C 0031466C 38 60 00 00 */ li r3, 0
+lbl_80318A10:
+/* 80318A10 00314670 39 61 00 30 */ addi r11, r1, 0x30
+/* 80318A14 00314674 4B EA E7 61 */ bl _restgpr_27
+/* 80318A18 00314678 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80318A1C 0031467C 7C 08 03 A6 */ mtlr r0
+/* 80318A20 00314680 38 21 00 30 */ addi r1, r1, 0x30
+/* 80318A24 00314684 4E 80 00 20 */ blr
+
+.global VFiPFSEC_ReadData
+VFiPFSEC_ReadData:
+/* 80318A28 00314688 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80318A2C 0031468C 7C 08 02 A6 */ mflr r0
+/* 80318A30 00314690 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80318A34 00314694 39 61 00 30 */ addi r11, r1, 0x30
+/* 80318A38 00314698 4B EA E6 E9 */ bl _savegpr_25
+/* 80318A3C 0031469C 38 00 00 00 */ li r0, 0
+/* 80318A40 003146A0 2C 03 00 00 */ cmpwi r3, 0
+/* 80318A44 003146A4 90 08 00 00 */ stw r0, 0(r8)
+/* 80318A48 003146A8 7C 7A 1B 78 */ mr r26, r3
+/* 80318A4C 003146AC 7C 9B 23 78 */ mr r27, r4
+/* 80318A50 003146B0 7C BC 2B 78 */ mr r28, r5
+/* 80318A54 003146B4 7C D9 33 78 */ mr r25, r6
+/* 80318A58 003146B8 7C FF 3B 78 */ mr r31, r7
+/* 80318A5C 003146BC 7D 1D 43 78 */ mr r29, r8
+/* 80318A60 003146C0 7D 3E 4B 78 */ mr r30, r9
+/* 80318A64 003146C4 40 82 00 0C */ bne lbl_80318A70
+/* 80318A68 003146C8 38 60 00 0A */ li r3, 0xa
+/* 80318A6C 003146CC 48 00 02 84 */ b lbl_80318CF0
+lbl_80318A70:
+/* 80318A70 003146D0 2C 04 00 00 */ cmpwi r4, 0
+/* 80318A74 003146D4 40 82 00 0C */ bne lbl_80318A80
+/* 80318A78 003146D8 38 60 00 0A */ li r3, 0xa
+/* 80318A7C 003146DC 48 00 02 74 */ b lbl_80318CF0
+lbl_80318A80:
+/* 80318A80 003146E0 A0 03 18 78 */ lhz r0, 0x1878(r3)
+/* 80318A84 003146E4 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80318A88 003146E8 41 82 00 10 */ beq lbl_80318A98
+/* 80318A8C 003146EC 4B FE D2 C5 */ bl VFiPFDRV_IsInserted
+/* 80318A90 003146F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80318A94 003146F4 40 82 00 0C */ bne lbl_80318AA0
+lbl_80318A98:
+/* 80318A98 003146F8 38 60 00 09 */ li r3, 9
+/* 80318A9C 003146FC 48 00 02 54 */ b lbl_80318CF0
+lbl_80318AA0:
+/* 80318AA0 00314700 2C 99 00 00 */ cmpwi cr1, r25, 0
+/* 80318AA4 00314704 40 86 00 10 */ bne cr1, lbl_80318AB4
+/* 80318AA8 00314708 A0 7A 00 00 */ lhz r3, 0(r26)
+/* 80318AAC 0031470C 7C 1F 18 40 */ cmplw r31, r3
+/* 80318AB0 00314710 40 80 00 44 */ bge lbl_80318AF4
+lbl_80318AB4:
+/* 80318AB4 00314714 7F 43 D3 78 */ mr r3, r26
+/* 80318AB8 00314718 7F 84 E3 78 */ mr r4, r28
+/* 80318ABC 0031471C 7F C6 F3 78 */ mr r6, r30
+/* 80318AC0 00314720 38 A1 00 0C */ addi r5, r1, 0xc
+/* 80318AC4 00314724 4B FF 1D C9 */ bl VFiPFCACHE_ReadDataPage
+/* 80318AC8 00314728 2C 03 00 00 */ cmpwi r3, 0
+/* 80318ACC 0031472C 41 82 00 08 */ beq lbl_80318AD4
+/* 80318AD0 00314730 48 00 02 20 */ b lbl_80318CF0
+lbl_80318AD4:
+/* 80318AD4 00314734 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 80318AD8 00314738 7F 63 DB 78 */ mr r3, r27
+/* 80318ADC 0031473C 7F E5 FB 78 */ mr r5, r31
+/* 80318AE0 00314740 80 04 00 08 */ lwz r0, 8(r4)
+/* 80318AE4 00314744 7C 80 CA 14 */ add r4, r0, r25
+/* 80318AE8 00314748 4B FE C3 C5 */ bl VFipf_memcpy
+/* 80318AEC 0031474C 93 FD 00 00 */ stw r31, 0(r29)
+/* 80318AF0 00314750 48 00 01 FC */ b lbl_80318CEC
+lbl_80318AF4:
+/* 80318AF4 00314754 40 86 00 6C */ bne cr1, lbl_80318B60
+/* 80318AF8 00314758 38 03 FF FF */ addi r0, r3, -1
+/* 80318AFC 0031475C 7F E0 00 39 */ and. r0, r31, r0
+/* 80318B00 00314760 40 82 00 60 */ bne lbl_80318B60
+/* 80318B04 00314764 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318B08 00314768 7F 43 D3 78 */ mr r3, r26
+/* 80318B0C 0031476C 7F 64 DB 78 */ mr r4, r27
+/* 80318B10 00314770 7F 85 E3 78 */ mr r5, r28
+/* 80318B14 00314774 7F E6 04 30 */ srw r6, r31, r0
+/* 80318B18 00314778 38 E1 00 08 */ addi r7, r1, 8
+/* 80318B1C 0031477C 4B FF 1E 01 */ bl VFiPFCACHE_ReadDataNumSector
+/* 80318B20 00314780 2C 03 00 00 */ cmpwi r3, 0
+/* 80318B24 00314784 41 82 00 08 */ beq lbl_80318B2C
+/* 80318B28 00314788 48 00 01 C8 */ b lbl_80318CF0
+lbl_80318B2C:
+/* 80318B2C 0031478C 80 61 00 08 */ lwz r3, 8(r1)
+/* 80318B30 00314790 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318B34 00314794 80 9D 00 00 */ lwz r4, 0(r29)
+/* 80318B38 00314798 7C 60 00 30 */ slw r0, r3, r0
+/* 80318B3C 0031479C 7C 04 02 14 */ add r0, r4, r0
+/* 80318B40 003147A0 90 1D 00 00 */ stw r0, 0(r29)
+/* 80318B44 003147A4 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318B48 003147A8 80 61 00 08 */ lwz r3, 8(r1)
+/* 80318B4C 003147AC 7F E0 04 30 */ srw r0, r31, r0
+/* 80318B50 003147B0 7C 03 00 40 */ cmplw r3, r0
+/* 80318B54 003147B4 41 82 01 98 */ beq lbl_80318CEC
+/* 80318B58 003147B8 38 60 00 11 */ li r3, 0x11
+/* 80318B5C 003147BC 48 00 01 94 */ b lbl_80318CF0
+lbl_80318B60:
+/* 80318B60 003147C0 2C 19 00 00 */ cmpwi r25, 0
+/* 80318B64 003147C4 40 82 01 80 */ bne lbl_80318CE4
+/* 80318B68 003147C8 7F 43 D3 78 */ mr r3, r26
+/* 80318B6C 003147CC 7F 84 E3 78 */ mr r4, r28
+/* 80318B70 003147D0 4B FF 1F 35 */ bl VFiPFCACHE_SearchDataCache
+/* 80318B74 003147D4 2C 03 00 00 */ cmpwi r3, 0
+/* 80318B78 003147D8 90 61 00 0C */ stw r3, 0xc(r1)
+/* 80318B7C 003147DC 41 82 00 80 */ beq lbl_80318BFC
+/* 80318B80 003147E0 80 83 00 18 */ lwz r4, 0x18(r3)
+/* 80318B84 003147E4 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80318B88 003147E8 88 BA 00 20 */ lbz r5, 0x20(r26)
+/* 80318B8C 003147EC 7C 04 02 14 */ add r0, r4, r0
+/* 80318B90 003147F0 7F 3C 00 50 */ subf r25, r28, r0
+/* 80318B94 003147F4 7F E0 2C 30 */ srw r0, r31, r5
+/* 80318B98 003147F8 7C 19 00 40 */ cmplw r25, r0
+/* 80318B9C 003147FC 41 81 00 3C */ bgt lbl_80318BD8
+/* 80318BA0 00314800 80 83 00 08 */ lwz r4, 8(r3)
+/* 80318BA4 00314804 7F 63 DB 78 */ mr r3, r27
+/* 80318BA8 00314808 7F 25 28 30 */ slw r5, r25, r5
+/* 80318BAC 0031480C 4B FE C3 01 */ bl VFipf_memcpy
+/* 80318BB0 00314810 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318BB4 00314814 7F 9C CA 14 */ add r28, r28, r25
+/* 80318BB8 00314818 80 7D 00 00 */ lwz r3, 0(r29)
+/* 80318BBC 0031481C 7F 20 00 30 */ slw r0, r25, r0
+/* 80318BC0 00314820 7C 03 02 14 */ add r0, r3, r0
+/* 80318BC4 00314824 90 1D 00 00 */ stw r0, 0(r29)
+/* 80318BC8 00314828 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318BCC 0031482C 7F 20 00 30 */ slw r0, r25, r0
+/* 80318BD0 00314830 7F E0 F8 50 */ subf r31, r0, r31
+/* 80318BD4 00314834 48 00 00 28 */ b lbl_80318BFC
+lbl_80318BD8:
+/* 80318BD8 00314838 40 81 00 24 */ ble lbl_80318BFC
+/* 80318BDC 0031483C 80 83 00 08 */ lwz r4, 8(r3)
+/* 80318BE0 00314840 7F 63 DB 78 */ mr r3, r27
+/* 80318BE4 00314844 7F E5 FB 78 */ mr r5, r31
+/* 80318BE8 00314848 4B FE C2 C5 */ bl VFipf_memcpy
+/* 80318BEC 0031484C 80 1D 00 00 */ lwz r0, 0(r29)
+/* 80318BF0 00314850 7C 00 FA 14 */ add r0, r0, r31
+/* 80318BF4 00314854 3B E0 00 00 */ li r31, 0
+/* 80318BF8 00314858 90 1D 00 00 */ stw r0, 0(r29)
+lbl_80318BFC:
+/* 80318BFC 0031485C 2C 1F 00 00 */ cmpwi r31, 0
+/* 80318C00 00314860 41 82 00 EC */ beq lbl_80318CEC
+/* 80318C04 00314864 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318C08 00314868 80 7A 16 04 */ lwz r3, 0x1604(r26)
+/* 80318C0C 0031486C 7F FF 04 30 */ srw r31, r31, r0
+/* 80318C10 00314870 7C 9C FA 14 */ add r4, r28, r31
+/* 80318C14 00314874 7C 04 1B 96 */ divwu r0, r4, r3
+/* 80318C18 00314878 7C 00 19 D6 */ mullw r0, r0, r3
+/* 80318C1C 0031487C 7C 60 20 50 */ subf r3, r0, r4
+/* 80318C20 00314880 7C 1F 18 40 */ cmplw r31, r3
+/* 80318C24 00314884 40 81 00 64 */ ble lbl_80318C88
+/* 80318C28 00314888 80 1D 00 00 */ lwz r0, 0(r29)
+/* 80318C2C 0031488C 7F 23 F8 50 */ subf r25, r3, r31
+/* 80318C30 00314890 7F 43 D3 78 */ mr r3, r26
+/* 80318C34 00314894 7F 85 E3 78 */ mr r5, r28
+/* 80318C38 00314898 7F 26 CB 78 */ mr r6, r25
+/* 80318C3C 0031489C 7C 9B 02 14 */ add r4, r27, r0
+/* 80318C40 003148A0 38 E1 00 08 */ addi r7, r1, 8
+/* 80318C44 003148A4 4B FF 1C D9 */ bl VFiPFCACHE_ReadDataNumSector
+/* 80318C48 003148A8 2C 03 00 00 */ cmpwi r3, 0
+/* 80318C4C 003148AC 41 82 00 08 */ beq lbl_80318C54
+/* 80318C50 003148B0 48 00 00 A0 */ b lbl_80318CF0
+lbl_80318C54:
+/* 80318C54 003148B4 80 61 00 08 */ lwz r3, 8(r1)
+/* 80318C58 003148B8 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318C5C 003148BC 80 9D 00 00 */ lwz r4, 0(r29)
+/* 80318C60 003148C0 7C 60 00 30 */ slw r0, r3, r0
+/* 80318C64 003148C4 7C 04 02 14 */ add r0, r4, r0
+/* 80318C68 003148C8 90 1D 00 00 */ stw r0, 0(r29)
+/* 80318C6C 003148CC 80 01 00 08 */ lwz r0, 8(r1)
+/* 80318C70 003148D0 7C 00 C8 40 */ cmplw r0, r25
+/* 80318C74 003148D4 41 82 00 0C */ beq lbl_80318C80
+/* 80318C78 003148D8 38 60 00 11 */ li r3, 0x11
+/* 80318C7C 003148DC 48 00 00 74 */ b lbl_80318CF0
+lbl_80318C80:
+/* 80318C80 003148E0 7F 9C CA 14 */ add r28, r28, r25
+/* 80318C84 003148E4 7F F9 F8 50 */ subf r31, r25, r31
+lbl_80318C88:
+/* 80318C88 003148E8 2C 1F 00 00 */ cmpwi r31, 0
+/* 80318C8C 003148EC 41 82 00 60 */ beq lbl_80318CEC
+/* 80318C90 003148F0 7F 43 D3 78 */ mr r3, r26
+/* 80318C94 003148F4 7F 84 E3 78 */ mr r4, r28
+/* 80318C98 003148F8 7F C6 F3 78 */ mr r6, r30
+/* 80318C9C 003148FC 38 A1 00 0C */ addi r5, r1, 0xc
+/* 80318CA0 00314900 4B FF 1B ED */ bl VFiPFCACHE_ReadDataPage
+/* 80318CA4 00314904 2C 03 00 00 */ cmpwi r3, 0
+/* 80318CA8 00314908 41 82 00 08 */ beq lbl_80318CB0
+/* 80318CAC 0031490C 48 00 00 44 */ b lbl_80318CF0
+lbl_80318CB0:
+/* 80318CB0 00314910 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80318CB4 00314914 80 BD 00 00 */ lwz r5, 0(r29)
+/* 80318CB8 00314918 80 83 00 08 */ lwz r4, 8(r3)
+/* 80318CBC 0031491C 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318CC0 00314920 7C 7B 2A 14 */ add r3, r27, r5
+/* 80318CC4 00314924 7F E5 00 30 */ slw r5, r31, r0
+/* 80318CC8 00314928 4B FE C1 E5 */ bl VFipf_memcpy
+/* 80318CCC 0031492C 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318CD0 00314930 80 7D 00 00 */ lwz r3, 0(r29)
+/* 80318CD4 00314934 7F E0 00 30 */ slw r0, r31, r0
+/* 80318CD8 00314938 7C 03 02 14 */ add r0, r3, r0
+/* 80318CDC 0031493C 90 1D 00 00 */ stw r0, 0(r29)
+/* 80318CE0 00314940 48 00 00 0C */ b lbl_80318CEC
+lbl_80318CE4:
+/* 80318CE4 00314944 38 60 00 0A */ li r3, 0xa
+/* 80318CE8 00314948 48 00 00 08 */ b lbl_80318CF0
+lbl_80318CEC:
+/* 80318CEC 0031494C 38 60 00 00 */ li r3, 0
+lbl_80318CF0:
+/* 80318CF0 00314950 39 61 00 30 */ addi r11, r1, 0x30
+/* 80318CF4 00314954 4B EA E4 79 */ bl _restgpr_25
+/* 80318CF8 00314958 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80318CFC 0031495C 7C 08 03 A6 */ mtlr r0
+/* 80318D00 00314960 38 21 00 30 */ addi r1, r1, 0x30
+/* 80318D04 00314964 4E 80 00 20 */ blr
+
+.global VFiPFSEC_WriteFAT
+VFiPFSEC_WriteFAT:
+/* 80318D08 00314968 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80318D0C 0031496C 7C 08 02 A6 */ mflr r0
+/* 80318D10 00314970 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80318D14 00314974 39 61 00 30 */ addi r11, r1, 0x30
+/* 80318D18 00314978 4B EA E4 11 */ bl _savegpr_27
+/* 80318D1C 0031497C 2C 03 00 00 */ cmpwi r3, 0
+/* 80318D20 00314980 7C 7B 1B 78 */ mr r27, r3
+/* 80318D24 00314984 7C 9C 23 78 */ mr r28, r4
+/* 80318D28 00314988 7C BD 2B 78 */ mr r29, r5
+/* 80318D2C 0031498C 7C DE 33 78 */ mr r30, r6
+/* 80318D30 00314990 7C FF 3B 78 */ mr r31, r7
+/* 80318D34 00314994 40 82 00 0C */ bne lbl_80318D40
+/* 80318D38 00314998 38 60 00 0A */ li r3, 0xa
+/* 80318D3C 0031499C 48 00 00 94 */ b lbl_80318DD0
+lbl_80318D40:
+/* 80318D40 003149A0 2C 04 00 00 */ cmpwi r4, 0
+/* 80318D44 003149A4 40 82 00 0C */ bne lbl_80318D50
+/* 80318D48 003149A8 38 60 00 0A */ li r3, 0xa
+/* 80318D4C 003149AC 48 00 00 84 */ b lbl_80318DD0
+lbl_80318D50:
+/* 80318D50 003149B0 A0 03 18 78 */ lhz r0, 0x1878(r3)
+/* 80318D54 003149B4 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80318D58 003149B8 41 82 00 20 */ beq lbl_80318D78
+/* 80318D5C 003149BC 4B FE CF F5 */ bl VFiPFDRV_IsInserted
+/* 80318D60 003149C0 2C 03 00 00 */ cmpwi r3, 0
+/* 80318D64 003149C4 41 82 00 14 */ beq lbl_80318D78
+/* 80318D68 003149C8 7F 63 DB 78 */ mr r3, r27
+/* 80318D6C 003149CC 4B FE D0 3D */ bl VFiPFDRV_IsWProtected
+/* 80318D70 003149D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80318D74 003149D4 41 82 00 0C */ beq lbl_80318D80
+lbl_80318D78:
+/* 80318D78 003149D8 38 60 00 09 */ li r3, 9
+/* 80318D7C 003149DC 48 00 00 54 */ b lbl_80318DD0
+lbl_80318D80:
+/* 80318D80 003149E0 7F 63 DB 78 */ mr r3, r27
+/* 80318D84 003149E4 7F A4 EB 78 */ mr r4, r29
+/* 80318D88 003149E8 38 A1 00 08 */ addi r5, r1, 8
+/* 80318D8C 003149EC 4B FF 1A C1 */ bl VFiPFCACHE_ReadFATPage
+/* 80318D90 003149F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80318D94 003149F4 41 82 00 08 */ beq lbl_80318D9C
+/* 80318D98 003149F8 48 00 00 38 */ b lbl_80318DD0
+lbl_80318D9C:
+/* 80318D9C 003149FC 80 61 00 08 */ lwz r3, 8(r1)
+/* 80318DA0 00314A00 7F 84 E3 78 */ mr r4, r28
+/* 80318DA4 00314A04 7F E5 FB 78 */ mr r5, r31
+/* 80318DA8 00314A08 80 03 00 08 */ lwz r0, 8(r3)
+/* 80318DAC 00314A0C 7C 60 F2 14 */ add r3, r0, r30
+/* 80318DB0 00314A10 4B FE C0 FD */ bl VFipf_memcpy
+/* 80318DB4 00314A14 80 81 00 08 */ lwz r4, 8(r1)
+/* 80318DB8 00314A18 7F 63 DB 78 */ mr r3, r27
+/* 80318DBC 00314A1C 4B FF 1B C1 */ bl VFiPFCACHE_WriteFATPage
+/* 80318DC0 00314A20 7C 03 00 D0 */ neg r0, r3
+/* 80318DC4 00314A24 7C 00 1B 78 */ or r0, r0, r3
+/* 80318DC8 00314A28 7C 00 FE 70 */ srawi r0, r0, 0x1f
+/* 80318DCC 00314A2C 7C 63 00 38 */ and r3, r3, r0
+lbl_80318DD0:
+/* 80318DD0 00314A30 39 61 00 30 */ addi r11, r1, 0x30
+/* 80318DD4 00314A34 4B EA E3 A1 */ bl _restgpr_27
+/* 80318DD8 00314A38 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80318DDC 00314A3C 7C 08 03 A6 */ mtlr r0
+/* 80318DE0 00314A40 38 21 00 30 */ addi r1, r1, 0x30
+/* 80318DE4 00314A44 4E 80 00 20 */ blr
+
+.global VFiPFSEC_WriteData
+VFiPFSEC_WriteData:
+/* 80318DE8 00314A48 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80318DEC 00314A4C 7C 08 02 A6 */ mflr r0
+/* 80318DF0 00314A50 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80318DF4 00314A54 39 61 00 30 */ addi r11, r1, 0x30
+/* 80318DF8 00314A58 4B EA E3 29 */ bl _savegpr_25
+/* 80318DFC 00314A5C 38 00 00 00 */ li r0, 0
+/* 80318E00 00314A60 2C 03 00 00 */ cmpwi r3, 0
+/* 80318E04 00314A64 90 08 00 00 */ stw r0, 0(r8)
+/* 80318E08 00314A68 7C 7A 1B 78 */ mr r26, r3
+/* 80318E0C 00314A6C 7C 9B 23 78 */ mr r27, r4
+/* 80318E10 00314A70 7C BC 2B 78 */ mr r28, r5
+/* 80318E14 00314A74 7C D9 33 78 */ mr r25, r6
+/* 80318E18 00314A78 7C FF 3B 78 */ mr r31, r7
+/* 80318E1C 00314A7C 7D 1D 43 78 */ mr r29, r8
+/* 80318E20 00314A80 7D 3E 4B 78 */ mr r30, r9
+/* 80318E24 00314A84 40 82 00 0C */ bne lbl_80318E30
+/* 80318E28 00314A88 38 60 00 0A */ li r3, 0xa
+/* 80318E2C 00314A8C 48 00 02 1C */ b lbl_80319048
+lbl_80318E30:
+/* 80318E30 00314A90 2C 04 00 00 */ cmpwi r4, 0
+/* 80318E34 00314A94 40 82 00 0C */ bne lbl_80318E40
+/* 80318E38 00314A98 38 60 00 0A */ li r3, 0xa
+/* 80318E3C 00314A9C 48 00 02 0C */ b lbl_80319048
+lbl_80318E40:
+/* 80318E40 00314AA0 A0 03 18 78 */ lhz r0, 0x1878(r3)
+/* 80318E44 00314AA4 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80318E48 00314AA8 41 82 00 20 */ beq lbl_80318E68
+/* 80318E4C 00314AAC 4B FE CF 05 */ bl VFiPFDRV_IsInserted
+/* 80318E50 00314AB0 2C 03 00 00 */ cmpwi r3, 0
+/* 80318E54 00314AB4 41 82 00 14 */ beq lbl_80318E68
+/* 80318E58 00314AB8 7F 43 D3 78 */ mr r3, r26
+/* 80318E5C 00314ABC 4B FE CF 4D */ bl VFiPFDRV_IsWProtected
+/* 80318E60 00314AC0 2C 03 00 00 */ cmpwi r3, 0
+/* 80318E64 00314AC4 41 82 00 0C */ beq lbl_80318E70
+lbl_80318E68:
+/* 80318E68 00314AC8 38 60 00 09 */ li r3, 9
+/* 80318E6C 00314ACC 48 00 01 DC */ b lbl_80319048
+lbl_80318E70:
+/* 80318E70 00314AD0 2C 99 00 00 */ cmpwi cr1, r25, 0
+/* 80318E74 00314AD4 40 86 00 10 */ bne cr1, lbl_80318E84
+/* 80318E78 00314AD8 A0 7A 00 00 */ lhz r3, 0(r26)
+/* 80318E7C 00314ADC 7C 1F 18 40 */ cmplw r31, r3
+/* 80318E80 00314AE0 40 80 00 60 */ bge lbl_80318EE0
+lbl_80318E84:
+/* 80318E84 00314AE4 7F 43 D3 78 */ mr r3, r26
+/* 80318E88 00314AE8 7F 84 E3 78 */ mr r4, r28
+/* 80318E8C 00314AEC 7F C6 F3 78 */ mr r6, r30
+/* 80318E90 00314AF0 38 A1 00 0C */ addi r5, r1, 0xc
+/* 80318E94 00314AF4 4B FF 1A 41 */ bl VFiPFCACHE_ReadDataPageAndFlushIfNeeded
+/* 80318E98 00314AF8 2C 03 00 00 */ cmpwi r3, 0
+/* 80318E9C 00314AFC 41 82 00 08 */ beq lbl_80318EA4
+/* 80318EA0 00314B00 48 00 01 A8 */ b lbl_80319048
+lbl_80318EA4:
+/* 80318EA4 00314B04 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80318EA8 00314B08 7F 64 DB 78 */ mr r4, r27
+/* 80318EAC 00314B0C 7F E5 FB 78 */ mr r5, r31
+/* 80318EB0 00314B10 80 03 00 08 */ lwz r0, 8(r3)
+/* 80318EB4 00314B14 7C 60 CA 14 */ add r3, r0, r25
+/* 80318EB8 00314B18 4B FE BF F5 */ bl VFipf_memcpy
+/* 80318EBC 00314B1C 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 80318EC0 00314B20 7F 43 D3 78 */ mr r3, r26
+/* 80318EC4 00314B24 7F C5 F3 78 */ mr r5, r30
+/* 80318EC8 00314B28 4B FF 1A F1 */ bl VFiPFCACHE_WriteDataPage
+/* 80318ECC 00314B2C 2C 03 00 00 */ cmpwi r3, 0
+/* 80318ED0 00314B30 41 82 00 08 */ beq lbl_80318ED8
+/* 80318ED4 00314B34 48 00 01 74 */ b lbl_80319048
+lbl_80318ED8:
+/* 80318ED8 00314B38 93 FD 00 00 */ stw r31, 0(r29)
+/* 80318EDC 00314B3C 48 00 01 68 */ b lbl_80319044
+lbl_80318EE0:
+/* 80318EE0 00314B40 40 86 00 64 */ bne cr1, lbl_80318F44
+/* 80318EE4 00314B44 38 03 FF FF */ addi r0, r3, -1
+/* 80318EE8 00314B48 7F E0 00 39 */ and. r0, r31, r0
+/* 80318EEC 00314B4C 40 82 00 58 */ bne lbl_80318F44
+/* 80318EF0 00314B50 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318EF4 00314B54 7F 43 D3 78 */ mr r3, r26
+/* 80318EF8 00314B58 7F 64 DB 78 */ mr r4, r27
+/* 80318EFC 00314B5C 7F 85 E3 78 */ mr r5, r28
+/* 80318F00 00314B60 7F E6 04 30 */ srw r6, r31, r0
+/* 80318F04 00314B64 38 E1 00 08 */ addi r7, r1, 8
+/* 80318F08 00314B68 4B FF 1B 3D */ bl VFiPFCACHE_WriteDataNumSectorAndFreeIfNeeded
+/* 80318F0C 00314B6C 2C 03 00 00 */ cmpwi r3, 0
+/* 80318F10 00314B70 41 82 00 08 */ beq lbl_80318F18
+/* 80318F14 00314B74 48 00 01 34 */ b lbl_80319048
+lbl_80318F18:
+/* 80318F18 00314B78 80 61 00 08 */ lwz r3, 8(r1)
+/* 80318F1C 00314B7C 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318F20 00314B80 7C 60 00 30 */ slw r0, r3, r0
+/* 80318F24 00314B84 90 1D 00 00 */ stw r0, 0(r29)
+/* 80318F28 00314B88 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318F2C 00314B8C 80 61 00 08 */ lwz r3, 8(r1)
+/* 80318F30 00314B90 7F E0 04 30 */ srw r0, r31, r0
+/* 80318F34 00314B94 7C 03 00 40 */ cmplw r3, r0
+/* 80318F38 00314B98 41 82 01 0C */ beq lbl_80319044
+/* 80318F3C 00314B9C 38 60 00 11 */ li r3, 0x11
+/* 80318F40 00314BA0 48 00 01 08 */ b lbl_80319048
+lbl_80318F44:
+/* 80318F44 00314BA4 2C 19 00 00 */ cmpwi r25, 0
+/* 80318F48 00314BA8 40 82 00 F4 */ bne lbl_8031903C
+/* 80318F4C 00314BAC 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318F50 00314BB0 80 7A 16 04 */ lwz r3, 0x1604(r26)
+/* 80318F54 00314BB4 7F FF 04 30 */ srw r31, r31, r0
+/* 80318F58 00314BB8 7C 9C FA 14 */ add r4, r28, r31
+/* 80318F5C 00314BBC 7C 04 1B 96 */ divwu r0, r4, r3
+/* 80318F60 00314BC0 7C 00 19 D6 */ mullw r0, r0, r3
+/* 80318F64 00314BC4 7C 00 20 50 */ subf r0, r0, r4
+/* 80318F68 00314BC8 7C 1F 00 40 */ cmplw r31, r0
+/* 80318F6C 00314BCC 40 81 00 58 */ ble lbl_80318FC4
+/* 80318F70 00314BD0 7F 20 F8 50 */ subf r25, r0, r31
+/* 80318F74 00314BD4 7F 43 D3 78 */ mr r3, r26
+/* 80318F78 00314BD8 7F 64 DB 78 */ mr r4, r27
+/* 80318F7C 00314BDC 7F 85 E3 78 */ mr r5, r28
+/* 80318F80 00314BE0 7F 26 CB 78 */ mr r6, r25
+/* 80318F84 00314BE4 38 E1 00 08 */ addi r7, r1, 8
+/* 80318F88 00314BE8 4B FF 1A BD */ bl VFiPFCACHE_WriteDataNumSectorAndFreeIfNeeded
+/* 80318F8C 00314BEC 2C 03 00 00 */ cmpwi r3, 0
+/* 80318F90 00314BF0 41 82 00 08 */ beq lbl_80318F98
+/* 80318F94 00314BF4 48 00 00 B4 */ b lbl_80319048
+lbl_80318F98:
+/* 80318F98 00314BF8 80 61 00 08 */ lwz r3, 8(r1)
+/* 80318F9C 00314BFC 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318FA0 00314C00 7C 60 00 30 */ slw r0, r3, r0
+/* 80318FA4 00314C04 90 1D 00 00 */ stw r0, 0(r29)
+/* 80318FA8 00314C08 80 01 00 08 */ lwz r0, 8(r1)
+/* 80318FAC 00314C0C 7C 00 C8 40 */ cmplw r0, r25
+/* 80318FB0 00314C10 41 82 00 0C */ beq lbl_80318FBC
+/* 80318FB4 00314C14 38 60 00 11 */ li r3, 0x11
+/* 80318FB8 00314C18 48 00 00 90 */ b lbl_80319048
+lbl_80318FBC:
+/* 80318FBC 00314C1C 7F 9C CA 14 */ add r28, r28, r25
+/* 80318FC0 00314C20 7F F9 F8 50 */ subf r31, r25, r31
+lbl_80318FC4:
+/* 80318FC4 00314C24 2C 1F 00 00 */ cmpwi r31, 0
+/* 80318FC8 00314C28 41 82 00 7C */ beq lbl_80319044
+/* 80318FCC 00314C2C 7F 43 D3 78 */ mr r3, r26
+/* 80318FD0 00314C30 7F 84 E3 78 */ mr r4, r28
+/* 80318FD4 00314C34 7F C6 F3 78 */ mr r6, r30
+/* 80318FD8 00314C38 38 A1 00 0C */ addi r5, r1, 0xc
+/* 80318FDC 00314C3C 4B FF 18 F9 */ bl VFiPFCACHE_ReadDataPageAndFlushIfNeeded
+/* 80318FE0 00314C40 2C 03 00 00 */ cmpwi r3, 0
+/* 80318FE4 00314C44 41 82 00 08 */ beq lbl_80318FEC
+/* 80318FE8 00314C48 48 00 00 60 */ b lbl_80319048
+lbl_80318FEC:
+/* 80318FEC 00314C4C 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80318FF0 00314C50 80 9D 00 00 */ lwz r4, 0(r29)
+/* 80318FF4 00314C54 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80318FF8 00314C58 80 63 00 08 */ lwz r3, 8(r3)
+/* 80318FFC 00314C5C 7C 9B 22 14 */ add r4, r27, r4
+/* 80319000 00314C60 7F E5 00 30 */ slw r5, r31, r0
+/* 80319004 00314C64 4B FE BE A9 */ bl VFipf_memcpy
+/* 80319008 00314C68 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 8031900C 00314C6C 7F 43 D3 78 */ mr r3, r26
+/* 80319010 00314C70 7F C5 F3 78 */ mr r5, r30
+/* 80319014 00314C74 4B FF 19 A5 */ bl VFiPFCACHE_WriteDataPage
+/* 80319018 00314C78 2C 03 00 00 */ cmpwi r3, 0
+/* 8031901C 00314C7C 41 82 00 08 */ beq lbl_80319024
+/* 80319020 00314C80 48 00 00 28 */ b lbl_80319048
+lbl_80319024:
+/* 80319024 00314C84 88 1A 00 20 */ lbz r0, 0x20(r26)
+/* 80319028 00314C88 80 7D 00 00 */ lwz r3, 0(r29)
+/* 8031902C 00314C8C 7F E0 00 30 */ slw r0, r31, r0
+/* 80319030 00314C90 7C 03 02 14 */ add r0, r3, r0
+/* 80319034 00314C94 90 1D 00 00 */ stw r0, 0(r29)
+/* 80319038 00314C98 48 00 00 0C */ b lbl_80319044
+lbl_8031903C:
+/* 8031903C 00314C9C 38 60 00 0A */ li r3, 0xa
+/* 80319040 00314CA0 48 00 00 08 */ b lbl_80319048
+lbl_80319044:
+/* 80319044 00314CA4 38 60 00 00 */ li r3, 0
+lbl_80319048:
+/* 80319048 00314CA8 39 61 00 30 */ addi r11, r1, 0x30
+/* 8031904C 00314CAC 4B EA E1 21 */ bl _restgpr_25
+/* 80319050 00314CB0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80319054 00314CB4 7C 08 03 A6 */ mtlr r0
+/* 80319058 00314CB8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8031905C 00314CBC 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_volume.s b/asm/SDK/VF/pf_volume.s
new file mode 100644
index 0000000..7079192
--- /dev/null
+++ b/asm/SDK/VF/pf_volume.s
@@ -0,0 +1,877 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFiPFVOL_DoMountVolume
+VFiPFVOL_DoMountVolume:
+/* 80319060 00314CC0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80319064 00314CC4 7C 08 02 A6 */ mflr r0
+/* 80319068 00314CC8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031906C 00314CCC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80319070 00314CD0 7C 7F 1B 78 */ mr r31, r3
+/* 80319074 00314CD4 4B FE CD 61 */ bl VFiPFDRV_mount
+/* 80319078 00314CD8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031907C 00314CDC 41 82 00 08 */ beq lbl_80319084
+/* 80319080 00314CE0 48 00 01 4C */ b lbl_803191CC
+lbl_80319084:
+/* 80319084 00314CE4 A0 1F 00 00 */ lhz r0, 0(r31)
+/* 80319088 00314CE8 2C 00 00 00 */ cmpwi r0, 0
+/* 8031908C 00314CEC 41 82 00 0C */ beq lbl_80319098
+/* 80319090 00314CF0 54 00 05 FF */ clrlwi. r0, r0, 0x17
+/* 80319094 00314CF4 41 82 00 0C */ beq lbl_803190A0
+lbl_80319098:
+/* 80319098 00314CF8 38 60 00 0F */ li r3, 0xf
+/* 8031909C 00314CFC 48 00 01 30 */ b lbl_803191CC
+lbl_803190A0:
+/* 803190A0 00314D00 7F E3 FB 78 */ mr r3, r31
+/* 803190A4 00314D04 4B FF 14 85 */ bl VFiPFCACHE_InitCaches
+/* 803190A8 00314D08 2C 03 00 00 */ cmpwi r3, 0
+/* 803190AC 00314D0C 41 82 00 08 */ beq lbl_803190B4
+/* 803190B0 00314D10 48 00 01 1C */ b lbl_803191CC
+lbl_803190B4:
+/* 803190B4 00314D14 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 803190B8 00314D18 60 03 00 02 */ ori r3, r0, 2
+/* 803190BC 00314D1C 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e
+/* 803190C0 00314D20 B0 7F 18 78 */ sth r3, 0x1878(r31)
+/* 803190C4 00314D24 40 82 00 0C */ bne lbl_803190D0
+/* 803190C8 00314D28 38 60 00 09 */ li r3, 9
+/* 803190CC 00314D2C 48 00 00 A0 */ b lbl_8031916C
+lbl_803190D0:
+/* 803190D0 00314D30 38 61 00 08 */ addi r3, r1, 8
+/* 803190D4 00314D34 48 00 13 59 */ bl MWInitializeMutex
+/* 803190D8 00314D38 80 1F 16 18 */ lwz r0, 0x1618(r31)
+/* 803190DC 00314D3C 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 803190E0 00314D40 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 803190E4 00314D44 38 80 00 01 */ li r4, 1
+/* 803190E8 00314D48 60 00 00 01 */ ori r0, r0, 1
+/* 803190EC 00314D4C 90 1F 16 18 */ stw r0, 0x1618(r31)
+/* 803190F0 00314D50 38 A3 00 08 */ addi r5, r3, 8
+/* 803190F4 00314D54 80 61 00 08 */ lwz r3, 8(r1)
+/* 803190F8 00314D58 48 00 00 30 */ b lbl_80319128
+lbl_803190FC:
+/* 803190FC 00314D5C 80 05 00 40 */ lwz r0, 0x40(r5)
+/* 80319100 00314D60 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80319104 00314D64 90 05 00 40 */ stw r0, 0x40(r5)
+/* 80319108 00314D68 41 82 00 18 */ beq lbl_80319120
+/* 8031910C 00314D6C 80 05 00 44 */ lwz r0, 0x44(r5)
+/* 80319110 00314D70 7C 03 00 00 */ cmpw r3, r0
+/* 80319114 00314D74 40 82 00 0C */ bne lbl_80319120
+/* 80319118 00314D78 38 00 00 01 */ li r0, 1
+/* 8031911C 00314D7C 48 00 00 18 */ b lbl_80319134
+lbl_80319120:
+/* 80319120 00314D80 38 A5 00 08 */ addi r5, r5, 8
+/* 80319124 00314D84 38 84 00 01 */ addi r4, r4, 1
+lbl_80319128:
+/* 80319128 00314D88 28 04 00 01 */ cmplwi r4, 1
+/* 8031912C 00314D8C 41 80 FF D0 */ blt lbl_803190FC
+/* 80319130 00314D90 38 00 00 00 */ li r0, 0
+lbl_80319134:
+/* 80319134 00314D94 2C 00 00 00 */ cmpwi r0, 0
+/* 80319138 00314D98 41 82 00 18 */ beq lbl_80319150
+/* 8031913C 00314D9C 80 1F 18 60 */ lwz r0, 0x1860(r31)
+/* 80319140 00314DA0 60 00 00 01 */ ori r0, r0, 1
+/* 80319144 00314DA4 90 1F 18 60 */ stw r0, 0x1860(r31)
+/* 80319148 00314DA8 80 01 00 08 */ lwz r0, 8(r1)
+/* 8031914C 00314DAC 90 1F 18 64 */ stw r0, 0x1864(r31)
+lbl_80319150:
+/* 80319150 00314DB0 38 9F 16 20 */ addi r4, r31, 0x1620
+/* 80319154 00314DB4 7F E3 FB 78 */ mr r3, r31
+/* 80319158 00314DB8 4B FF 35 AD */ bl VFiPFENT_GetRootDir
+/* 8031915C 00314DBC 2C 03 00 00 */ cmpwi r3, 0
+/* 80319160 00314DC0 41 82 00 08 */ beq lbl_80319168
+/* 80319164 00314DC4 48 00 00 08 */ b lbl_8031916C
+lbl_80319168:
+/* 80319168 00314DC8 38 60 00 00 */ li r3, 0
+lbl_8031916C:
+/* 8031916C 00314DCC 2C 03 00 00 */ cmpwi r3, 0
+/* 80319170 00314DD0 40 82 00 48 */ bne lbl_803191B8
+/* 80319174 00314DD4 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 80319178 00314DD8 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
+/* 8031917C 00314DDC 41 82 00 3C */ beq lbl_803191B8
+/* 80319180 00314DE0 80 9F 18 94 */ lwz r4, 0x1894(r31)
+/* 80319184 00314DE4 7F E3 FB 78 */ mr r3, r31
+/* 80319188 00314DE8 4B FE CF 0D */ bl VFiPFDRV_format
+/* 8031918C 00314DEC 2C 03 00 00 */ cmpwi r3, 0
+/* 80319190 00314DF0 40 82 00 28 */ bne lbl_803191B8
+/* 80319194 00314DF4 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 80319198 00314DF8 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
+/* 8031919C 00314DFC 40 82 00 1C */ bne lbl_803191B8
+/* 803191A0 00314E00 7F E3 FB 78 */ mr r3, r31
+/* 803191A4 00314E04 4B FF 77 9D */ bl VFiPFFAT_InitFATRegion
+/* 803191A8 00314E08 2C 03 00 00 */ cmpwi r3, 0
+/* 803191AC 00314E0C 40 82 00 0C */ bne lbl_803191B8
+/* 803191B0 00314E10 7F E3 FB 78 */ mr r3, r31
+/* 803191B4 00314E14 4B FF 35 F9 */ bl VFiPFENT_MakeRootDir
+lbl_803191B8:
+/* 803191B8 00314E18 2C 03 00 00 */ cmpwi r3, 0
+/* 803191BC 00314E1C 41 82 00 10 */ beq lbl_803191CC
+/* 803191C0 00314E20 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 803191C4 00314E24 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
+/* 803191C8 00314E28 B0 1F 18 78 */ sth r0, 0x1878(r31)
+lbl_803191CC:
+/* 803191CC 00314E2C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803191D0 00314E30 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803191D4 00314E34 7C 08 03 A6 */ mtlr r0
+/* 803191D8 00314E38 38 21 00 20 */ addi r1, r1, 0x20
+/* 803191DC 00314E3C 4E 80 00 20 */ blr
+
+.global VFiPFVOL_InitModule
+VFiPFVOL_InitModule:
+/* 803191E0 00314E40 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803191E4 00314E44 7C 08 02 A6 */ mflr r0
+/* 803191E8 00314E48 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803191EC 00314E4C 54 60 04 1B */ rlwinm. r0, r3, 0, 0x10, 0xd
+/* 803191F0 00314E50 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 803191F4 00314E54 93 C1 00 08 */ stw r30, 8(r1)
+/* 803191F8 00314E58 41 82 00 1C */ beq lbl_80319214
+/* 803191FC 00314E5C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80319200 00314E60 38 00 00 0A */ li r0, 0xa
+/* 80319204 00314E64 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80319208 00314E68 38 60 00 0A */ li r3, 0xa
+/* 8031920C 00314E6C 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80319210 00314E70 48 00 01 44 */ b lbl_80319354
+lbl_80319214:
+/* 80319214 00314E74 54 65 03 9E */ rlwinm r5, r3, 0, 0xe, 0xf
+/* 80319218 00314E78 3C 05 FF FD */ addis r0, r5, 0xfffd
+/* 8031921C 00314E7C 28 00 00 00 */ cmplwi r0, 0
+/* 80319220 00314E80 40 82 00 1C */ bne lbl_8031923C
+/* 80319224 00314E84 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80319228 00314E88 38 00 00 0A */ li r0, 0xa
+/* 8031922C 00314E8C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80319230 00314E90 38 60 00 0A */ li r3, 0xa
+/* 80319234 00314E94 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80319238 00314E98 48 00 01 1C */ b lbl_80319354
+lbl_8031923C:
+/* 8031923C 00314E9C 54 65 03 DF */ rlwinm. r5, r3, 0, 0xf, 0xf
+/* 80319240 00314EA0 41 82 00 1C */ beq lbl_8031925C
+/* 80319244 00314EA4 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80319248 00314EA8 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 8031924C 00314EAC 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80319250 00314EB0 64 00 00 01 */ oris r0, r0, 1
+/* 80319254 00314EB4 90 03 00 14 */ stw r0, 0x14(r3)
+/* 80319258 00314EB8 48 00 00 18 */ b lbl_80319270
+lbl_8031925C:
+/* 8031925C 00314EBC 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80319260 00314EC0 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80319264 00314EC4 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80319268 00314EC8 54 00 04 1C */ rlwinm r0, r0, 0, 0x10, 0xe
+/* 8031926C 00314ECC 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_80319270:
+/* 80319270 00314ED0 3C E0 80 58 */ lis r7, lbl_8057F5C8@ha
+/* 80319274 00314ED4 2C 05 00 00 */ cmpwi r5, 0
+/* 80319278 00314ED8 80 67 F5 C8 */ lwz r3, lbl_8057F5C8@l(r7)
+/* 8031927C 00314EDC 38 C7 F5 C8 */ addi r6, r7, -2616
+/* 80319280 00314EE0 38 00 00 00 */ li r0, 0
+/* 80319284 00314EE4 38 A6 00 48 */ addi r5, r6, 0x48
+/* 80319288 00314EE8 60 63 00 01 */ ori r3, r3, 1
+/* 8031928C 00314EEC 90 A6 00 08 */ stw r5, 8(r6)
+/* 80319290 00314EF0 90 67 F5 C8 */ stw r3, -0xa38(r7)
+/* 80319294 00314EF4 90 06 00 0C */ stw r0, 0xc(r6)
+/* 80319298 00314EF8 90 06 00 10 */ stw r0, 0x10(r6)
+/* 8031929C 00314EFC 41 82 00 14 */ beq lbl_803192B0
+/* 803192A0 00314F00 80 06 00 14 */ lwz r0, 0x14(r6)
+/* 803192A4 00314F04 64 00 00 01 */ oris r0, r0, 1
+/* 803192A8 00314F08 90 06 00 14 */ stw r0, 0x14(r6)
+/* 803192AC 00314F0C 48 00 00 10 */ b lbl_803192BC
+lbl_803192B0:
+/* 803192B0 00314F10 80 06 00 14 */ lwz r0, 0x14(r6)
+/* 803192B4 00314F14 54 00 04 1C */ rlwinm r0, r0, 0, 0x10, 0xe
+/* 803192B8 00314F18 90 06 00 14 */ stw r0, 0x14(r6)
+lbl_803192BC:
+/* 803192BC 00314F1C 3D 60 80 58 */ lis r11, lbl_8057F5C8@ha
+/* 803192C0 00314F20 3D 20 80 32 */ lis r9, func_80319C00@ha
+/* 803192C4 00314F24 39 6B F5 C8 */ addi r11, r11, lbl_8057F5C8@l
+/* 803192C8 00314F28 39 40 00 00 */ li r10, 0
+/* 803192CC 00314F2C 3D 00 80 32 */ lis r8, func_80319DBC@ha
+/* 803192D0 00314F30 3C E0 80 32 */ lis r7, lbl_8031A024@ha
+/* 803192D4 00314F34 3C C0 80 32 */ lis r6, lbl_8031A058@ha
+/* 803192D8 00314F38 3C A0 80 32 */ lis r5, lbl_8031A0D4@ha
+/* 803192DC 00314F3C 3C 60 80 32 */ lis r3, lbl_8031A108@ha
+/* 803192E0 00314F40 39 29 9C 00 */ addi r9, r9, func_80319C00@l
+/* 803192E4 00314F44 39 08 9D BC */ addi r8, r8, func_80319DBC@l
+/* 803192E8 00314F48 38 E7 A0 24 */ addi r7, r7, lbl_8031A024@l
+/* 803192EC 00314F4C 38 C6 A0 58 */ addi r6, r6, lbl_8031A058@l
+/* 803192F0 00314F50 38 A5 A0 D4 */ addi r5, r5, lbl_8031A0D4@l
+/* 803192F4 00314F54 38 63 A1 08 */ addi r3, r3, lbl_8031A108@l
+/* 803192F8 00314F58 38 00 00 01 */ li r0, 1
+/* 803192FC 00314F5C 90 8B 00 18 */ stw r4, 0x18(r11)
+/* 80319300 00314F60 3B EB 00 48 */ addi r31, r11, 0x48
+/* 80319304 00314F64 3B C0 00 00 */ li r30, 0
+/* 80319308 00314F68 91 4B 00 1C */ stw r10, 0x1c(r11)
+/* 8031930C 00314F6C 91 4B 00 20 */ stw r10, 0x20(r11)
+/* 80319310 00314F70 90 0B 00 3C */ stw r0, 0x3c(r11)
+/* 80319314 00314F74 91 2B 00 24 */ stw r9, 0x24(r11)
+/* 80319318 00314F78 91 0B 00 28 */ stw r8, 0x28(r11)
+/* 8031931C 00314F7C 90 EB 00 2C */ stw r7, 0x2c(r11)
+/* 80319320 00314F80 90 CB 00 30 */ stw r6, 0x30(r11)
+/* 80319324 00314F84 90 AB 00 34 */ stw r5, 0x34(r11)
+/* 80319328 00314F88 90 6B 00 38 */ stw r3, 0x38(r11)
+lbl_8031932C:
+/* 8031932C 00314F8C 7F E3 FB 78 */ mr r3, r31
+/* 80319330 00314F90 38 80 00 00 */ li r4, 0
+/* 80319334 00314F94 38 A0 18 98 */ li r5, 0x1898
+/* 80319338 00314F98 4B FE BC 9D */ bl VFipf_memset
+/* 8031933C 00314F9C 3B DE 00 01 */ addi r30, r30, 1
+/* 80319340 00314FA0 3B FF 18 98 */ addi r31, r31, 0x1898
+/* 80319344 00314FA4 2C 1E 00 1A */ cmpwi r30, 0x1a
+/* 80319348 00314FA8 41 80 FF E4 */ blt lbl_8031932C
+/* 8031934C 00314FAC 48 00 10 C9 */ bl func_8031A414
+/* 80319350 00314FB0 38 60 00 00 */ li r3, 0
+lbl_80319354:
+/* 80319354 00314FB4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80319358 00314FB8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031935C 00314FBC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80319360 00314FC0 7C 08 03 A6 */ mtlr r0
+/* 80319364 00314FC4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80319368 00314FC8 4E 80 00 20 */ blr
+
+.global VFiPFVOL_CheckForRead
+VFiPFVOL_CheckForRead:
+/* 8031936C 00314FCC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80319370 00314FD0 7C 08 02 A6 */ mflr r0
+/* 80319374 00314FD4 2C 03 00 00 */ cmpwi r3, 0
+/* 80319378 00314FD8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031937C 00314FDC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80319380 00314FE0 7C 7F 1B 78 */ mr r31, r3
+/* 80319384 00314FE4 40 82 00 0C */ bne lbl_80319390
+/* 80319388 00314FE8 38 60 00 0A */ li r3, 0xa
+/* 8031938C 00314FEC 48 00 01 88 */ b lbl_80319514
+lbl_80319390:
+/* 80319390 00314FF0 4B FE C9 C1 */ bl VFiPFDRV_IsInserted
+/* 80319394 00314FF4 2C 03 00 00 */ cmpwi r3, 0
+/* 80319398 00314FF8 41 82 00 D0 */ beq lbl_80319468
+/* 8031939C 00314FFC 7F E3 FB 78 */ mr r3, r31
+/* 803193A0 00315000 4B FE C9 DD */ bl VFiPFDRV_IsDetected
+/* 803193A4 00315004 2C 03 00 00 */ cmpwi r3, 0
+/* 803193A8 00315008 41 82 01 48 */ beq lbl_803194F0
+/* 803193AC 0031500C A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 803193B0 00315010 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 803193B4 00315014 41 82 00 64 */ beq lbl_80319418
+/* 803193B8 00315018 7F E3 FB 78 */ mr r3, r31
+/* 803193BC 0031501C 4B FF B9 21 */ bl VFiPFFILE_FinalizeAllFiles
+/* 803193C0 00315020 7F E3 FB 78 */ mr r3, r31
+/* 803193C4 00315024 4B FF 1E 75 */ bl VFiPFDIR_FinalizeAllDirs
+/* 803193C8 00315028 7F E3 FB 78 */ mr r3, r31
+/* 803193CC 0031502C 4B FF 18 79 */ bl VFiPFCACHE_FreeAllCaches
+/* 803193D0 00315030 7F E3 FB 78 */ mr r3, r31
+/* 803193D4 00315034 38 80 00 01 */ li r4, 1
+/* 803193D8 00315038 4B FE CC 35 */ bl VFiPFDRV_unmount
+/* 803193DC 0031503C 2C 03 00 00 */ cmpwi r3, 0
+/* 803193E0 00315040 40 82 00 24 */ bne lbl_80319404
+/* 803193E4 00315044 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 803193E8 00315048 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 803193EC 0031504C 41 82 00 0C */ beq lbl_803193F8
+/* 803193F0 00315050 38 00 00 00 */ li r0, 0
+/* 803193F4 00315054 90 1F 16 18 */ stw r0, 0x1618(r31)
+lbl_803193F8:
+/* 803193F8 00315058 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 803193FC 0031505C 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
+/* 80319400 00315060 B0 1F 18 78 */ sth r0, 0x1878(r31)
+lbl_80319404:
+/* 80319404 00315064 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80319408 00315068 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 8031940C 0031506C 80 64 00 10 */ lwz r3, 0x10(r4)
+/* 80319410 00315070 38 03 FF FF */ addi r0, r3, -1
+/* 80319414 00315074 90 04 00 10 */ stw r0, 0x10(r4)
+lbl_80319418:
+/* 80319418 00315078 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 8031941C 0031507C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80319420 00315080 40 82 00 38 */ bne lbl_80319458
+/* 80319424 00315084 7F E3 FB 78 */ mr r3, r31
+/* 80319428 00315088 4B FF FC 39 */ bl VFiPFVOL_DoMountVolume
+/* 8031942C 0031508C 2C 03 00 00 */ cmpwi r3, 0
+/* 80319430 00315090 41 82 00 08 */ beq lbl_80319438
+/* 80319434 00315094 48 00 00 28 */ b lbl_8031945C
+lbl_80319438:
+/* 80319438 00315098 A0 1F 18 7C */ lhz r0, 0x187c(r31)
+/* 8031943C 0031509C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80319440 003150A0 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80319444 003150A4 54 00 04 38 */ rlwinm r0, r0, 0, 0x10, 0x1c
+/* 80319448 003150A8 B0 1F 18 7C */ sth r0, 0x187c(r31)
+/* 8031944C 003150AC 80 64 00 10 */ lwz r3, 0x10(r4)
+/* 80319450 003150B0 38 03 00 01 */ addi r0, r3, 1
+/* 80319454 003150B4 90 04 00 10 */ stw r0, 0x10(r4)
+lbl_80319458:
+/* 80319458 003150B8 38 60 00 00 */ li r3, 0
+lbl_8031945C:
+/* 8031945C 003150BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80319460 003150C0 41 82 00 90 */ beq lbl_803194F0
+/* 80319464 003150C4 48 00 00 90 */ b lbl_803194F4
+lbl_80319468:
+/* 80319468 003150C8 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 8031946C 003150CC 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80319470 003150D0 41 82 00 80 */ beq lbl_803194F0
+/* 80319474 003150D4 7F E3 FB 78 */ mr r3, r31
+/* 80319478 003150D8 4B FE C9 05 */ bl VFiPFDRV_IsDetected
+/* 8031947C 003150DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80319480 003150E0 41 82 00 64 */ beq lbl_803194E4
+/* 80319484 003150E4 7F E3 FB 78 */ mr r3, r31
+/* 80319488 003150E8 4B FF B8 55 */ bl VFiPFFILE_FinalizeAllFiles
+/* 8031948C 003150EC 7F E3 FB 78 */ mr r3, r31
+/* 80319490 003150F0 4B FF 1D A9 */ bl VFiPFDIR_FinalizeAllDirs
+/* 80319494 003150F4 7F E3 FB 78 */ mr r3, r31
+/* 80319498 003150F8 4B FF 17 AD */ bl VFiPFCACHE_FreeAllCaches
+/* 8031949C 003150FC 7F E3 FB 78 */ mr r3, r31
+/* 803194A0 00315100 38 80 00 01 */ li r4, 1
+/* 803194A4 00315104 4B FE CB 69 */ bl VFiPFDRV_unmount
+/* 803194A8 00315108 2C 03 00 00 */ cmpwi r3, 0
+/* 803194AC 0031510C 40 82 00 24 */ bne lbl_803194D0
+/* 803194B0 00315110 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 803194B4 00315114 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 803194B8 00315118 41 82 00 0C */ beq lbl_803194C4
+/* 803194BC 0031511C 38 00 00 00 */ li r0, 0
+/* 803194C0 00315120 90 1F 16 18 */ stw r0, 0x1618(r31)
+lbl_803194C4:
+/* 803194C4 00315124 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 803194C8 00315128 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
+/* 803194CC 0031512C B0 1F 18 78 */ sth r0, 0x1878(r31)
+lbl_803194D0:
+/* 803194D0 00315130 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 803194D4 00315134 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 803194D8 00315138 80 64 00 10 */ lwz r3, 0x10(r4)
+/* 803194DC 0031513C 38 03 FF FF */ addi r0, r3, -1
+/* 803194E0 00315140 90 04 00 10 */ stw r0, 0x10(r4)
+lbl_803194E4:
+/* 803194E4 00315144 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 803194E8 00315148 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
+/* 803194EC 0031514C B0 1F 18 78 */ sth r0, 0x1878(r31)
+lbl_803194F0:
+/* 803194F0 00315150 38 60 00 00 */ li r3, 0
+lbl_803194F4:
+/* 803194F4 00315154 2C 03 00 00 */ cmpwi r3, 0
+/* 803194F8 00315158 41 82 00 08 */ beq lbl_80319500
+/* 803194FC 0031515C 48 00 00 18 */ b lbl_80319514
+lbl_80319500:
+/* 80319500 00315160 A0 7F 18 78 */ lhz r3, 0x1878(r31)
+/* 80319504 00315164 38 00 00 09 */ li r0, 9
+/* 80319508 00315168 54 63 FF FE */ rlwinm r3, r3, 0x1f, 0x1f, 0x1f
+/* 8031950C 0031516C 7C 63 00 D0 */ neg r3, r3
+/* 80319510 00315170 7C 03 18 78 */ andc r3, r0, r3
+lbl_80319514:
+/* 80319514 00315174 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80319518 00315178 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031951C 0031517C 7C 08 03 A6 */ mtlr r0
+/* 80319520 00315180 38 21 00 10 */ addi r1, r1, 0x10
+/* 80319524 00315184 4E 80 00 20 */ blr
+
+.global VFiPFVOL_CheckForWrite
+VFiPFVOL_CheckForWrite:
+/* 80319528 00315188 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031952C 0031518C 7C 08 02 A6 */ mflr r0
+/* 80319530 00315190 2C 03 00 00 */ cmpwi r3, 0
+/* 80319534 00315194 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80319538 00315198 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031953C 0031519C 7C 7F 1B 78 */ mr r31, r3
+/* 80319540 003151A0 40 82 00 0C */ bne lbl_8031954C
+/* 80319544 003151A4 38 60 00 0A */ li r3, 0xa
+/* 80319548 003151A8 48 00 01 A0 */ b lbl_803196E8
+lbl_8031954C:
+/* 8031954C 003151AC 4B FE C8 05 */ bl VFiPFDRV_IsInserted
+/* 80319550 003151B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80319554 003151B4 41 82 00 D0 */ beq lbl_80319624
+/* 80319558 003151B8 7F E3 FB 78 */ mr r3, r31
+/* 8031955C 003151BC 4B FE C8 21 */ bl VFiPFDRV_IsDetected
+/* 80319560 003151C0 2C 03 00 00 */ cmpwi r3, 0
+/* 80319564 003151C4 41 82 01 48 */ beq lbl_803196AC
+/* 80319568 003151C8 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 8031956C 003151CC 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80319570 003151D0 41 82 00 64 */ beq lbl_803195D4
+/* 80319574 003151D4 7F E3 FB 78 */ mr r3, r31
+/* 80319578 003151D8 4B FF B7 65 */ bl VFiPFFILE_FinalizeAllFiles
+/* 8031957C 003151DC 7F E3 FB 78 */ mr r3, r31
+/* 80319580 003151E0 4B FF 1C B9 */ bl VFiPFDIR_FinalizeAllDirs
+/* 80319584 003151E4 7F E3 FB 78 */ mr r3, r31
+/* 80319588 003151E8 4B FF 16 BD */ bl VFiPFCACHE_FreeAllCaches
+/* 8031958C 003151EC 7F E3 FB 78 */ mr r3, r31
+/* 80319590 003151F0 38 80 00 01 */ li r4, 1
+/* 80319594 003151F4 4B FE CA 79 */ bl VFiPFDRV_unmount
+/* 80319598 003151F8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031959C 003151FC 40 82 00 24 */ bne lbl_803195C0
+/* 803195A0 00315200 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 803195A4 00315204 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 803195A8 00315208 41 82 00 0C */ beq lbl_803195B4
+/* 803195AC 0031520C 38 00 00 00 */ li r0, 0
+/* 803195B0 00315210 90 1F 16 18 */ stw r0, 0x1618(r31)
+lbl_803195B4:
+/* 803195B4 00315214 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 803195B8 00315218 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
+/* 803195BC 0031521C B0 1F 18 78 */ sth r0, 0x1878(r31)
+lbl_803195C0:
+/* 803195C0 00315220 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 803195C4 00315224 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 803195C8 00315228 80 64 00 10 */ lwz r3, 0x10(r4)
+/* 803195CC 0031522C 38 03 FF FF */ addi r0, r3, -1
+/* 803195D0 00315230 90 04 00 10 */ stw r0, 0x10(r4)
+lbl_803195D4:
+/* 803195D4 00315234 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 803195D8 00315238 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 803195DC 0031523C 40 82 00 38 */ bne lbl_80319614
+/* 803195E0 00315240 7F E3 FB 78 */ mr r3, r31
+/* 803195E4 00315244 4B FF FA 7D */ bl VFiPFVOL_DoMountVolume
+/* 803195E8 00315248 2C 03 00 00 */ cmpwi r3, 0
+/* 803195EC 0031524C 41 82 00 08 */ beq lbl_803195F4
+/* 803195F0 00315250 48 00 00 28 */ b lbl_80319618
+lbl_803195F4:
+/* 803195F4 00315254 A0 1F 18 7C */ lhz r0, 0x187c(r31)
+/* 803195F8 00315258 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 803195FC 0031525C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80319600 00315260 54 00 04 38 */ rlwinm r0, r0, 0, 0x10, 0x1c
+/* 80319604 00315264 B0 1F 18 7C */ sth r0, 0x187c(r31)
+/* 80319608 00315268 80 64 00 10 */ lwz r3, 0x10(r4)
+/* 8031960C 0031526C 38 03 00 01 */ addi r0, r3, 1
+/* 80319610 00315270 90 04 00 10 */ stw r0, 0x10(r4)
+lbl_80319614:
+/* 80319614 00315274 38 60 00 00 */ li r3, 0
+lbl_80319618:
+/* 80319618 00315278 2C 03 00 00 */ cmpwi r3, 0
+/* 8031961C 0031527C 41 82 00 90 */ beq lbl_803196AC
+/* 80319620 00315280 48 00 00 90 */ b lbl_803196B0
+lbl_80319624:
+/* 80319624 00315284 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 80319628 00315288 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 8031962C 0031528C 41 82 00 80 */ beq lbl_803196AC
+/* 80319630 00315290 7F E3 FB 78 */ mr r3, r31
+/* 80319634 00315294 4B FE C7 49 */ bl VFiPFDRV_IsDetected
+/* 80319638 00315298 2C 03 00 00 */ cmpwi r3, 0
+/* 8031963C 0031529C 41 82 00 64 */ beq lbl_803196A0
+/* 80319640 003152A0 7F E3 FB 78 */ mr r3, r31
+/* 80319644 003152A4 4B FF B6 99 */ bl VFiPFFILE_FinalizeAllFiles
+/* 80319648 003152A8 7F E3 FB 78 */ mr r3, r31
+/* 8031964C 003152AC 4B FF 1B ED */ bl VFiPFDIR_FinalizeAllDirs
+/* 80319650 003152B0 7F E3 FB 78 */ mr r3, r31
+/* 80319654 003152B4 4B FF 15 F1 */ bl VFiPFCACHE_FreeAllCaches
+/* 80319658 003152B8 7F E3 FB 78 */ mr r3, r31
+/* 8031965C 003152BC 38 80 00 01 */ li r4, 1
+/* 80319660 003152C0 4B FE C9 AD */ bl VFiPFDRV_unmount
+/* 80319664 003152C4 2C 03 00 00 */ cmpwi r3, 0
+/* 80319668 003152C8 40 82 00 24 */ bne lbl_8031968C
+/* 8031966C 003152CC A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 80319670 003152D0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80319674 003152D4 41 82 00 0C */ beq lbl_80319680
+/* 80319678 003152D8 38 00 00 00 */ li r0, 0
+/* 8031967C 003152DC 90 1F 16 18 */ stw r0, 0x1618(r31)
+lbl_80319680:
+/* 80319680 003152E0 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 80319684 003152E4 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
+/* 80319688 003152E8 B0 1F 18 78 */ sth r0, 0x1878(r31)
+lbl_8031968C:
+/* 8031968C 003152EC 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 80319690 003152F0 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 80319694 003152F4 80 64 00 10 */ lwz r3, 0x10(r4)
+/* 80319698 003152F8 38 03 FF FF */ addi r0, r3, -1
+/* 8031969C 003152FC 90 04 00 10 */ stw r0, 0x10(r4)
+lbl_803196A0:
+/* 803196A0 00315300 A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 803196A4 00315304 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
+/* 803196A8 00315308 B0 1F 18 78 */ sth r0, 0x1878(r31)
+lbl_803196AC:
+/* 803196AC 0031530C 38 60 00 00 */ li r3, 0
+lbl_803196B0:
+/* 803196B0 00315310 2C 03 00 00 */ cmpwi r3, 0
+/* 803196B4 00315314 41 82 00 08 */ beq lbl_803196BC
+/* 803196B8 00315318 48 00 00 30 */ b lbl_803196E8
+lbl_803196BC:
+/* 803196BC 0031531C A0 1F 18 78 */ lhz r0, 0x1878(r31)
+/* 803196C0 00315320 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 803196C4 00315324 40 82 00 0C */ bne lbl_803196D0
+/* 803196C8 00315328 38 60 00 09 */ li r3, 9
+/* 803196CC 0031532C 48 00 00 1C */ b lbl_803196E8
+lbl_803196D0:
+/* 803196D0 00315330 7F E3 FB 78 */ mr r3, r31
+/* 803196D4 00315334 4B FE C6 D5 */ bl VFiPFDRV_IsWProtected
+/* 803196D8 00315338 7C 03 00 D0 */ neg r0, r3
+/* 803196DC 0031533C 7C 00 1B 78 */ or r0, r0, r3
+/* 803196E0 00315340 7C 00 FE 70 */ srawi r0, r0, 0x1f
+/* 803196E4 00315344 70 03 00 0B */ andi. r3, r0, 0xb
+lbl_803196E8:
+/* 803196E8 00315348 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803196EC 0031534C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803196F0 00315350 7C 08 03 A6 */ mtlr r0
+/* 803196F4 00315354 38 21 00 10 */ addi r1, r1, 0x10
+/* 803196F8 00315358 4E 80 00 20 */ blr
+
+.global VFiPFVOL_GetCurrentDir
+VFiPFVOL_GetCurrentDir:
+/* 803196FC 0031535C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80319700 00315360 7C 08 02 A6 */ mflr r0
+/* 80319704 00315364 2C 03 00 00 */ cmpwi r3, 0
+/* 80319708 00315368 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031970C 0031536C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80319710 00315370 7C 9F 23 78 */ mr r31, r4
+/* 80319714 00315374 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80319718 00315378 7C 7E 1B 78 */ mr r30, r3
+/* 8031971C 0031537C 40 82 00 0C */ bne lbl_80319728
+/* 80319720 00315380 38 60 00 0A */ li r3, 0xa
+/* 80319724 00315384 48 00 01 7C */ b lbl_803198A0
+lbl_80319728:
+/* 80319728 00315388 A0 03 18 78 */ lhz r0, 0x1878(r3)
+/* 8031972C 0031538C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80319730 00315390 40 82 00 0C */ bne lbl_8031973C
+/* 80319734 00315394 38 60 00 09 */ li r3, 9
+/* 80319738 00315398 48 00 01 68 */ b lbl_803198A0
+lbl_8031973C:
+/* 8031973C 0031539C 38 61 00 08 */ addi r3, r1, 8
+/* 80319740 003153A0 48 00 0C ED */ bl MWInitializeMutex
+/* 80319744 003153A4 80 C1 00 08 */ lwz r6, 8(r1)
+/* 80319748 003153A8 38 7E 02 48 */ addi r3, r30, 0x248
+/* 8031974C 003153AC 38 E0 00 01 */ li r7, 1
+/* 80319750 003153B0 48 00 00 54 */ b lbl_803197A4
+lbl_80319754:
+/* 80319754 003153B4 80 03 16 18 */ lwz r0, 0x1618(r3)
+/* 80319758 003153B8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 8031975C 003153BC 41 82 00 40 */ beq lbl_8031979C
+/* 80319760 003153C0 80 03 16 1C */ lwz r0, 0x161c(r3)
+/* 80319764 003153C4 7C 06 00 00 */ cmpw r6, r0
+/* 80319768 003153C8 40 82 00 34 */ bne lbl_8031979C
+/* 8031976C 003153CC 1C 67 02 48 */ mulli r3, r7, 0x248
+/* 80319770 003153D0 38 00 00 48 */ li r0, 0x48
+/* 80319774 003153D4 38 BF FF FC */ addi r5, r31, -4
+/* 80319778 003153D8 7C 7E 1A 14 */ add r3, r30, r3
+/* 8031977C 003153DC 38 83 16 1C */ addi r4, r3, 0x161c
+/* 80319780 003153E0 7C 09 03 A6 */ mtctr r0
+lbl_80319784:
+/* 80319784 003153E4 80 64 00 04 */ lwz r3, 4(r4)
+/* 80319788 003153E8 84 04 00 08 */ lwzu r0, 8(r4)
+/* 8031978C 003153EC 90 65 00 04 */ stw r3, 4(r5)
+/* 80319790 003153F0 94 05 00 08 */ stwu r0, 8(r5)
+/* 80319794 003153F4 42 00 FF F0 */ bdnz lbl_80319784
+/* 80319798 003153F8 48 00 00 14 */ b lbl_803197AC
+lbl_8031979C:
+/* 8031979C 003153FC 38 63 02 48 */ addi r3, r3, 0x248
+/* 803197A0 00315400 38 E7 00 01 */ addi r7, r7, 1
+lbl_803197A4:
+/* 803197A4 00315404 28 07 00 01 */ cmplwi r7, 1
+/* 803197A8 00315408 41 80 FF AC */ blt lbl_80319754
+lbl_803197AC:
+/* 803197AC 0031540C 28 07 00 01 */ cmplwi r7, 1
+/* 803197B0 00315410 40 82 00 EC */ bne lbl_8031989C
+/* 803197B4 00315414 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 803197B8 00315418 38 80 00 01 */ li r4, 1
+/* 803197BC 0031541C 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 803197C0 00315420 38 63 00 08 */ addi r3, r3, 8
+/* 803197C4 00315424 48 00 00 30 */ b lbl_803197F4
+lbl_803197C8:
+/* 803197C8 00315428 80 03 00 40 */ lwz r0, 0x40(r3)
+/* 803197CC 0031542C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 803197D0 00315430 90 03 00 40 */ stw r0, 0x40(r3)
+/* 803197D4 00315434 41 82 00 18 */ beq lbl_803197EC
+/* 803197D8 00315438 80 03 00 44 */ lwz r0, 0x44(r3)
+/* 803197DC 0031543C 7C 06 00 00 */ cmpw r6, r0
+/* 803197E0 00315440 40 82 00 0C */ bne lbl_803197EC
+/* 803197E4 00315444 38 00 00 01 */ li r0, 1
+/* 803197E8 00315448 48 00 00 18 */ b lbl_80319800
+lbl_803197EC:
+/* 803197EC 0031544C 38 63 00 08 */ addi r3, r3, 8
+/* 803197F0 00315450 38 84 00 01 */ addi r4, r4, 1
+lbl_803197F4:
+/* 803197F4 00315454 28 04 00 01 */ cmplwi r4, 1
+/* 803197F8 00315458 41 80 FF D0 */ blt lbl_803197C8
+/* 803197FC 0031545C 38 00 00 00 */ li r0, 0
+lbl_80319800:
+/* 80319800 00315460 2C 00 00 00 */ cmpwi r0, 0
+/* 80319804 00315464 41 82 00 74 */ beq lbl_80319878
+/* 80319808 00315468 38 7E 02 48 */ addi r3, r30, 0x248
+/* 8031980C 0031546C 38 80 00 01 */ li r4, 1
+/* 80319810 00315470 48 00 00 5C */ b lbl_8031986C
+lbl_80319814:
+/* 80319814 00315474 80 03 16 18 */ lwz r0, 0x1618(r3)
+/* 80319818 00315478 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 8031981C 0031547C 40 82 00 48 */ bne lbl_80319864
+/* 80319820 00315480 1C 64 02 48 */ mulli r3, r4, 0x248
+/* 80319824 00315484 38 00 00 48 */ li r0, 0x48
+/* 80319828 00315488 38 BF FF FC */ addi r5, r31, -4
+/* 8031982C 0031548C 7C DE 1A 14 */ add r6, r30, r3
+/* 80319830 00315490 80 66 16 18 */ lwz r3, 0x1618(r6)
+/* 80319834 00315494 38 86 16 1C */ addi r4, r6, 0x161c
+/* 80319838 00315498 60 63 00 01 */ ori r3, r3, 1
+/* 8031983C 0031549C 90 66 16 18 */ stw r3, 0x1618(r6)
+/* 80319840 003154A0 80 61 00 08 */ lwz r3, 8(r1)
+/* 80319844 003154A4 90 66 16 1C */ stw r3, 0x161c(r6)
+/* 80319848 003154A8 7C 09 03 A6 */ mtctr r0
+lbl_8031984C:
+/* 8031984C 003154AC 80 64 00 04 */ lwz r3, 4(r4)
+/* 80319850 003154B0 84 04 00 08 */ lwzu r0, 8(r4)
+/* 80319854 003154B4 90 65 00 04 */ stw r3, 4(r5)
+/* 80319858 003154B8 94 05 00 08 */ stwu r0, 8(r5)
+/* 8031985C 003154BC 42 00 FF F0 */ bdnz lbl_8031984C
+/* 80319860 003154C0 48 00 00 3C */ b lbl_8031989C
+lbl_80319864:
+/* 80319864 003154C4 38 63 02 48 */ addi r3, r3, 0x248
+/* 80319868 003154C8 38 84 00 01 */ addi r4, r4, 1
+lbl_8031986C:
+/* 8031986C 003154CC 28 04 00 01 */ cmplwi r4, 1
+/* 80319870 003154D0 41 80 FF A4 */ blt lbl_80319814
+/* 80319874 003154D4 48 00 00 28 */ b lbl_8031989C
+lbl_80319878:
+/* 80319878 003154D8 38 00 00 48 */ li r0, 0x48
+/* 8031987C 003154DC 38 BF FF FC */ addi r5, r31, -4
+/* 80319880 003154E0 38 9E 16 1C */ addi r4, r30, 0x161c
+/* 80319884 003154E4 7C 09 03 A6 */ mtctr r0
+lbl_80319888:
+/* 80319888 003154E8 80 64 00 04 */ lwz r3, 4(r4)
+/* 8031988C 003154EC 84 04 00 08 */ lwzu r0, 8(r4)
+/* 80319890 003154F0 90 65 00 04 */ stw r3, 4(r5)
+/* 80319894 003154F4 94 05 00 08 */ stwu r0, 8(r5)
+/* 80319898 003154F8 42 00 FF F0 */ bdnz lbl_80319888
+lbl_8031989C:
+/* 8031989C 003154FC 38 60 00 00 */ li r3, 0
+lbl_803198A0:
+/* 803198A0 00315500 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803198A4 00315504 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803198A8 00315508 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 803198AC 0031550C 7C 08 03 A6 */ mtlr r0
+/* 803198B0 00315510 38 21 00 20 */ addi r1, r1, 0x20
+/* 803198B4 00315514 4E 80 00 20 */ blr
+
+.global VFiPFVOL_SetCurrentVolume
+VFiPFVOL_SetCurrentVolume:
+/* 803198B8 00315518 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803198BC 0031551C 7C 08 02 A6 */ mflr r0
+/* 803198C0 00315520 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803198C4 00315524 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 803198C8 00315528 7C 7F 1B 78 */ mr r31, r3
+/* 803198CC 0031552C 38 61 00 08 */ addi r3, r1, 8
+/* 803198D0 00315530 48 00 0B 5D */ bl MWInitializeMutex
+/* 803198D4 00315534 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 803198D8 00315538 80 A1 00 08 */ lwz r5, 8(r1)
+/* 803198DC 0031553C 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 803198E0 00315540 38 80 00 01 */ li r4, 1
+/* 803198E4 00315544 38 63 00 0C */ addi r3, r3, 0xc
+/* 803198E8 00315548 48 00 00 3C */ b lbl_80319924
+lbl_803198EC:
+/* 803198EC 0031554C 80 03 00 00 */ lwz r0, 0(r3)
+/* 803198F0 00315550 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 803198F4 00315554 41 82 00 28 */ beq lbl_8031991C
+/* 803198F8 00315558 80 03 00 04 */ lwz r0, 4(r3)
+/* 803198FC 0031555C 7C 05 00 00 */ cmpw r5, r0
+/* 80319900 00315560 40 82 00 1C */ bne lbl_8031991C
+/* 80319904 00315564 1C 04 00 0C */ mulli r0, r4, 0xc
+/* 80319908 00315568 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 8031990C 0031556C 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80319910 00315570 7C 63 02 14 */ add r3, r3, r0
+/* 80319914 00315574 93 E3 00 08 */ stw r31, 8(r3)
+/* 80319918 00315578 48 00 00 14 */ b lbl_8031992C
+lbl_8031991C:
+/* 8031991C 0031557C 38 63 00 0C */ addi r3, r3, 0xc
+/* 80319920 00315580 38 84 00 01 */ addi r4, r4, 1
+lbl_80319924:
+/* 80319924 00315584 28 04 00 01 */ cmplwi r4, 1
+/* 80319928 00315588 41 80 FF C4 */ blt lbl_803198EC
+lbl_8031992C:
+/* 8031992C 0031558C 28 04 00 01 */ cmplwi r4, 1
+/* 80319930 00315590 40 82 00 B4 */ bne lbl_803199E4
+/* 80319934 00315594 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80319938 00315598 38 80 00 01 */ li r4, 1
+/* 8031993C 0031559C 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80319940 003155A0 38 63 00 08 */ addi r3, r3, 8
+/* 80319944 003155A4 48 00 00 30 */ b lbl_80319974
+lbl_80319948:
+/* 80319948 003155A8 80 03 00 40 */ lwz r0, 0x40(r3)
+/* 8031994C 003155AC 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80319950 003155B0 90 03 00 40 */ stw r0, 0x40(r3)
+/* 80319954 003155B4 41 82 00 18 */ beq lbl_8031996C
+/* 80319958 003155B8 80 03 00 44 */ lwz r0, 0x44(r3)
+/* 8031995C 003155BC 7C 05 00 00 */ cmpw r5, r0
+/* 80319960 003155C0 40 82 00 0C */ bne lbl_8031996C
+/* 80319964 003155C4 38 00 00 01 */ li r0, 1
+/* 80319968 003155C8 48 00 00 18 */ b lbl_80319980
+lbl_8031996C:
+/* 8031996C 003155CC 38 63 00 08 */ addi r3, r3, 8
+/* 80319970 003155D0 38 84 00 01 */ addi r4, r4, 1
+lbl_80319974:
+/* 80319974 003155D4 28 04 00 01 */ cmplwi r4, 1
+/* 80319978 003155D8 41 80 FF D0 */ blt lbl_80319948
+/* 8031997C 003155DC 38 00 00 00 */ li r0, 0
+lbl_80319980:
+/* 80319980 003155E0 2C 00 00 00 */ cmpwi r0, 0
+/* 80319984 003155E4 41 82 00 60 */ beq lbl_803199E4
+/* 80319988 003155E8 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 8031998C 003155EC 38 80 00 01 */ li r4, 1
+/* 80319990 003155F0 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80319994 003155F4 38 63 00 0C */ addi r3, r3, 0xc
+/* 80319998 003155F8 48 00 00 44 */ b lbl_803199DC
+lbl_8031999C:
+/* 8031999C 003155FC 80 03 00 00 */ lwz r0, 0(r3)
+/* 803199A0 00315600 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 803199A4 00315604 40 82 00 30 */ bne lbl_803199D4
+/* 803199A8 00315608 1C C4 00 0C */ mulli r6, r4, 0xc
+/* 803199AC 0031560C 3C A0 80 58 */ lis r5, lbl_8057F5C8@ha
+/* 803199B0 00315610 80 01 00 08 */ lwz r0, 8(r1)
+/* 803199B4 00315614 38 A5 F5 C8 */ addi r5, r5, lbl_8057F5C8@l
+/* 803199B8 00315618 7C 85 30 2E */ lwzx r4, r5, r6
+/* 803199BC 0031561C 7C 65 32 14 */ add r3, r5, r6
+/* 803199C0 00315620 60 84 00 01 */ ori r4, r4, 1
+/* 803199C4 00315624 7C 85 31 2E */ stwx r4, r5, r6
+/* 803199C8 00315628 90 03 00 04 */ stw r0, 4(r3)
+/* 803199CC 0031562C 93 E3 00 08 */ stw r31, 8(r3)
+/* 803199D0 00315630 48 00 00 14 */ b lbl_803199E4
+lbl_803199D4:
+/* 803199D4 00315634 38 63 00 0C */ addi r3, r3, 0xc
+/* 803199D8 00315638 38 84 00 01 */ addi r4, r4, 1
+lbl_803199DC:
+/* 803199DC 0031563C 28 04 00 01 */ cmplwi r4, 1
+/* 803199E0 00315640 41 80 FF BC */ blt lbl_8031999C
+lbl_803199E4:
+/* 803199E4 00315644 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 803199E8 00315648 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 803199EC 0031564C 93 E3 00 08 */ stw r31, 8(r3)
+/* 803199F0 00315650 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803199F4 00315654 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803199F8 00315658 7C 08 03 A6 */ mtlr r0
+/* 803199FC 0031565C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80319A00 00315660 4E 80 00 20 */ blr
+
+.global VFiPFVOL_GetCurrentVolume
+VFiPFVOL_GetCurrentVolume:
+/* 80319A04 00315664 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80319A08 00315668 7C 08 02 A6 */ mflr r0
+/* 80319A0C 0031566C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80319A10 00315670 38 61 00 08 */ addi r3, r1, 8
+/* 80319A14 00315674 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80319A18 00315678 3B E0 00 00 */ li r31, 0
+/* 80319A1C 0031567C 48 00 0A 11 */ bl MWInitializeMutex
+/* 80319A20 00315680 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80319A24 00315684 80 A1 00 08 */ lwz r5, 8(r1)
+/* 80319A28 00315688 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80319A2C 0031568C 38 80 00 01 */ li r4, 1
+/* 80319A30 00315690 38 63 00 0C */ addi r3, r3, 0xc
+/* 80319A34 00315694 48 00 00 3C */ b lbl_80319A70
+lbl_80319A38:
+/* 80319A38 00315698 80 03 00 00 */ lwz r0, 0(r3)
+/* 80319A3C 0031569C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80319A40 003156A0 41 82 00 28 */ beq lbl_80319A68
+/* 80319A44 003156A4 80 03 00 04 */ lwz r0, 4(r3)
+/* 80319A48 003156A8 7C 05 00 00 */ cmpw r5, r0
+/* 80319A4C 003156AC 40 82 00 1C */ bne lbl_80319A68
+/* 80319A50 003156B0 1C 04 00 0C */ mulli r0, r4, 0xc
+/* 80319A54 003156B4 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80319A58 003156B8 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80319A5C 003156BC 7C 63 02 14 */ add r3, r3, r0
+/* 80319A60 003156C0 83 E3 00 08 */ lwz r31, 8(r3)
+/* 80319A64 003156C4 48 00 00 14 */ b lbl_80319A78
+lbl_80319A68:
+/* 80319A68 003156C8 38 63 00 0C */ addi r3, r3, 0xc
+/* 80319A6C 003156CC 38 84 00 01 */ addi r4, r4, 1
+lbl_80319A70:
+/* 80319A70 003156D0 28 04 00 01 */ cmplwi r4, 1
+/* 80319A74 003156D4 41 80 FF C4 */ blt lbl_80319A38
+lbl_80319A78:
+/* 80319A78 003156D8 28 04 00 01 */ cmplwi r4, 1
+/* 80319A7C 003156DC 40 82 00 C4 */ bne lbl_80319B40
+/* 80319A80 003156E0 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80319A84 003156E4 38 80 00 01 */ li r4, 1
+/* 80319A88 003156E8 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80319A8C 003156EC 38 63 00 08 */ addi r3, r3, 8
+/* 80319A90 003156F0 48 00 00 30 */ b lbl_80319AC0
+lbl_80319A94:
+/* 80319A94 003156F4 80 03 00 40 */ lwz r0, 0x40(r3)
+/* 80319A98 003156F8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80319A9C 003156FC 90 03 00 40 */ stw r0, 0x40(r3)
+/* 80319AA0 00315700 41 82 00 18 */ beq lbl_80319AB8
+/* 80319AA4 00315704 80 03 00 44 */ lwz r0, 0x44(r3)
+/* 80319AA8 00315708 7C 05 00 00 */ cmpw r5, r0
+/* 80319AAC 0031570C 40 82 00 0C */ bne lbl_80319AB8
+/* 80319AB0 00315710 38 00 00 01 */ li r0, 1
+/* 80319AB4 00315714 48 00 00 18 */ b lbl_80319ACC
+lbl_80319AB8:
+/* 80319AB8 00315718 38 63 00 08 */ addi r3, r3, 8
+/* 80319ABC 0031571C 38 84 00 01 */ addi r4, r4, 1
+lbl_80319AC0:
+/* 80319AC0 00315720 28 04 00 01 */ cmplwi r4, 1
+/* 80319AC4 00315724 41 80 FF D0 */ blt lbl_80319A94
+/* 80319AC8 00315728 38 00 00 00 */ li r0, 0
+lbl_80319ACC:
+/* 80319ACC 0031572C 2C 00 00 00 */ cmpwi r0, 0
+/* 80319AD0 00315730 41 82 00 64 */ beq lbl_80319B34
+/* 80319AD4 00315734 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80319AD8 00315738 38 80 00 01 */ li r4, 1
+/* 80319ADC 0031573C 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80319AE0 00315740 38 63 00 0C */ addi r3, r3, 0xc
+/* 80319AE4 00315744 48 00 00 44 */ b lbl_80319B28
+lbl_80319AE8:
+/* 80319AE8 00315748 80 03 00 00 */ lwz r0, 0(r3)
+/* 80319AEC 0031574C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80319AF0 00315750 40 82 00 30 */ bne lbl_80319B20
+/* 80319AF4 00315754 1C C4 00 0C */ mulli r6, r4, 0xc
+/* 80319AF8 00315758 3C A0 80 58 */ lis r5, lbl_8057F5C8@ha
+/* 80319AFC 0031575C 80 01 00 08 */ lwz r0, 8(r1)
+/* 80319B00 00315760 38 A5 F5 C8 */ addi r5, r5, lbl_8057F5C8@l
+/* 80319B04 00315764 7C 85 30 2E */ lwzx r4, r5, r6
+/* 80319B08 00315768 7C 65 32 14 */ add r3, r5, r6
+/* 80319B0C 0031576C 60 84 00 01 */ ori r4, r4, 1
+/* 80319B10 00315770 7C 85 31 2E */ stwx r4, r5, r6
+/* 80319B14 00315774 90 03 00 04 */ stw r0, 4(r3)
+/* 80319B18 00315778 83 E3 00 08 */ lwz r31, 8(r3)
+/* 80319B1C 0031577C 48 00 00 24 */ b lbl_80319B40
+lbl_80319B20:
+/* 80319B20 00315780 38 63 00 0C */ addi r3, r3, 0xc
+/* 80319B24 00315784 38 84 00 01 */ addi r4, r4, 1
+lbl_80319B28:
+/* 80319B28 00315788 28 04 00 01 */ cmplwi r4, 1
+/* 80319B2C 0031578C 41 80 FF BC */ blt lbl_80319AE8
+/* 80319B30 00315790 48 00 00 10 */ b lbl_80319B40
+lbl_80319B34:
+/* 80319B34 00315794 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80319B38 00315798 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80319B3C 0031579C 83 E3 00 08 */ lwz r31, 8(r3)
+lbl_80319B40:
+/* 80319B40 003157A0 7F E3 FB 78 */ mr r3, r31
+/* 80319B44 003157A4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80319B48 003157A8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80319B4C 003157AC 7C 08 03 A6 */ mtlr r0
+/* 80319B50 003157B0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80319B54 003157B4 4E 80 00 20 */ blr
+
+.global VFiPFVOL_GetVolumeFromDrvChar
+VFiPFVOL_GetVolumeFromDrvChar:
+/* 80319B58 003157B8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80319B5C 003157BC 7C 08 02 A6 */ mflr r0
+/* 80319B60 003157C0 7C 63 07 74 */ extsb r3, r3
+/* 80319B64 003157C4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80319B68 003157C8 4B FE B3 2D */ bl VFipf_toupper
+/* 80319B6C 003157CC 38 03 FF BF */ addi r0, r3, -65
+/* 80319B70 003157D0 7C 00 07 35 */ extsh. r0, r0
+/* 80319B74 003157D4 41 80 00 0C */ blt lbl_80319B80
+/* 80319B78 003157D8 2C 00 00 1A */ cmpwi r0, 0x1a
+/* 80319B7C 003157DC 41 80 00 0C */ blt lbl_80319B88
+lbl_80319B80:
+/* 80319B80 003157E0 38 60 00 00 */ li r3, 0
+/* 80319B84 003157E4 48 00 00 18 */ b lbl_80319B9C
+lbl_80319B88:
+/* 80319B88 003157E8 1C 00 18 98 */ mulli r0, r0, 0x1898
+/* 80319B8C 003157EC 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80319B90 003157F0 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80319B94 003157F4 7C 63 02 14 */ add r3, r3, r0
+/* 80319B98 003157F8 38 63 00 48 */ addi r3, r3, 0x48
+lbl_80319B9C:
+/* 80319B9C 003157FC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80319BA0 00315800 7C 08 03 A6 */ mtlr r0
+/* 80319BA4 00315804 38 21 00 10 */ addi r1, r1, 0x10
+/* 80319BA8 00315808 4E 80 00 20 */ blr
+
+.global VFiPFVOL_LoadVolumeLabelFromBuf
+VFiPFVOL_LoadVolumeLabelFromBuf:
+/* 80319BAC 0031580C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80319BB0 00315810 7C 08 02 A6 */ mflr r0
+/* 80319BB4 00315814 38 A0 00 0B */ li r5, 0xb
+/* 80319BB8 00315818 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80319BBC 0031581C 7C 60 1B 78 */ mr r0, r3
+/* 80319BC0 00315820 38 64 16 0C */ addi r3, r4, 0x160c
+/* 80319BC4 00315824 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80319BC8 00315828 7C 9F 23 78 */ mr r31, r4
+/* 80319BCC 0031582C 7C 04 03 78 */ mr r4, r0
+/* 80319BD0 00315830 4B FE B2 DD */ bl VFipf_memcpy
+/* 80319BD4 00315834 38 00 00 00 */ li r0, 0
+/* 80319BD8 00315838 98 1F 16 17 */ stb r0, 0x1617(r31)
+/* 80319BDC 0031583C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80319BE0 00315840 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80319BE4 00315844 7C 08 03 A6 */ mtlr r0
+/* 80319BE8 00315848 38 21 00 10 */ addi r1, r1, 0x10
+/* 80319BEC 0031584C 4E 80 00 20 */ blr
+
+.global VFiPFVOL_errnum
+VFiPFVOL_errnum:
+/* 80319BF0 00315850 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha
+/* 80319BF4 00315854 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l
+/* 80319BF8 00315858 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 80319BFC 0031585C 4E 80 00 20 */ blr