.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 VFiPFSYS_GetCurrentContextID /* 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, VFiPFCODE_CP932_OEM2Unicode@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, VFiPFCODE_CP932_Unicode2OEM@ha /* 803192D0 00314F30 3C E0 80 32 */ lis r7, VFiPFCODE_CP932_OEMCharWidth@ha /* 803192D4 00314F34 3C C0 80 32 */ lis r6, VFiPFCODE_CP932_isOEMMBchar@ha /* 803192D8 00314F38 3C A0 80 32 */ lis r5, VFiPFCODE_CP932_UnicodeCharWidth@ha /* 803192DC 00314F3C 3C 60 80 32 */ lis r3, VFiPFCODE_CP932_isUnicodeMBchar@ha /* 803192E0 00314F40 39 29 9C 00 */ addi r9, r9, VFiPFCODE_CP932_OEM2Unicode@l /* 803192E4 00314F44 39 08 9D BC */ addi r8, r8, VFiPFCODE_CP932_Unicode2OEM@l /* 803192E8 00314F48 38 E7 A0 24 */ addi r7, r7, VFiPFCODE_CP932_OEMCharWidth@l /* 803192EC 00314F4C 38 C6 A0 58 */ addi r6, r6, VFiPFCODE_CP932_isOEMMBchar@l /* 803192F0 00314F50 38 A5 A0 D4 */ addi r5, r5, VFiPFCODE_CP932_UnicodeCharWidth@l /* 803192F4 00314F54 38 63 A1 08 */ addi r3, r3, VFiPFCODE_CP932_isUnicodeMBchar@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 VFiPF_InitLockFile /* 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 VFiPFSYS_GetCurrentContextID /* 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 VFiPFSYS_GetCurrentContextID /* 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 VFiPFSYS_GetCurrentContextID /* 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