diff options
-rw-r--r-- | asm/SDK/VF/d_vf.s | 444 | ||||
-rw-r--r-- | asm/SDK/VF/d_vf_sys.s | 1008 | ||||
-rw-r--r-- | asm/SDK/VF/pf_entry.s | 2 | ||||
-rw-r--r-- | asm/SDK/VF/pf_errnum.s | 15 | ||||
-rw-r--r-- | asm/SDK/VF/pf_fclose.s | 15 | ||||
-rw-r--r-- | asm/SDK/VF/pf_file.s | 4 | ||||
-rw-r--r-- | asm/SDK/VF/pf_filelock.s | 14 | ||||
-rw-r--r-- | asm/SDK/VF/pf_finfo.s | 15 | ||||
-rw-r--r-- | asm/SDK/VF/pf_fopen.s | 49 | ||||
-rw-r--r-- | asm/SDK/VF/pf_fread.s | 16 | ||||
-rw-r--r-- | asm/SDK/VF/pf_fseek.s | 15 | ||||
-rw-r--r-- | asm/SDK/VF/pf_fwrite.s | 16 | ||||
-rw-r--r-- | asm/SDK/VF/pf_init_prfile2.s | 23 | ||||
-rw-r--r-- | asm/SDK/VF/pf_system.s | 42 | ||||
-rw-r--r-- | asm/SDK/VF/pf_volume.s | 10 | ||||
-rw-r--r-- | asm/text_10.s | 6 | ||||
-rw-r--r-- | asm/text_9.s | 44 | ||||
-rw-r--r-- | asm/text_9_2.s | 1646 | ||||
-rw-r--r-- | obj_files.mk | 12 |
19 files changed, 1723 insertions, 1673 deletions
diff --git a/asm/SDK/VF/d_vf.s b/asm/SDK/VF/d_vf.s new file mode 100644 index 0000000..b748603 --- /dev/null +++ b/asm/SDK/VF/d_vf.s @@ -0,0 +1,444 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFIsAvailable
+VFIsAvailable:
+/* 8031A4A0 00316100 80 6D AF E8 */ lwz r3, lbl_806402A8-_SDA_BASE_(r13)
+/* 8031A4A4 00316104 7C 03 00 D0 */ neg r0, r3
+/* 8031A4A8 00316108 7C 00 1B 78 */ or r0, r0, r3
+/* 8031A4AC 0031610C 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8031A4B0 00316110 4E 80 00 20 */ blr
+
+.global VFInitEx
+VFInitEx:
+/* 8031A4B4 00316114 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A4B8 00316118 7C 08 02 A6 */ mflr r0
+/* 8031A4BC 0031611C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A4C0 00316120 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A4C4 00316124 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A4C8 00316128 40 82 00 18 */ bne lbl_8031A4E0
+/* 8031A4CC 0031612C 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A4D0 00316130 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A4D4 00316134 4B F5 54 3D */ bl OSInitMutex
+/* 8031A4D8 00316138 38 00 00 01 */ li r0, 1
+/* 8031A4DC 0031613C 90 0D AF EC */ stw r0, lbl_806402AC-_SDA_BASE_(r13)
+lbl_8031A4E0:
+/* 8031A4E0 00316140 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A4E4 00316144 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A4E8 00316148 41 82 00 10 */ beq lbl_8031A4F8
+/* 8031A4EC 0031614C 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A4F0 00316150 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A4F4 00316154 4B F5 54 55 */ bl OSLockMutex
+lbl_8031A4F8:
+/* 8031A4F8 00316158 80 0D AF E8 */ lwz r0, lbl_806402A8-_SDA_BASE_(r13)
+/* 8031A4FC 0031615C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A500 00316160 40 82 00 3C */ bne lbl_8031A53C
+/* 8031A504 00316164 38 00 00 01 */ li r0, 1
+/* 8031A508 00316168 3C 60 80 5A */ lis r3, lbl_805A75A0@ha
+/* 8031A50C 0031616C 3C 80 00 07 */ lis r4, 0x00068000@ha
+/* 8031A510 00316170 90 0D AF E8 */ stw r0, lbl_806402A8-_SDA_BASE_(r13)
+/* 8031A514 00316174 38 63 75 A0 */ addi r3, r3, lbl_805A75A0@l
+/* 8031A518 00316178 38 84 80 00 */ addi r4, r4, 0x00068000@l
+/* 8031A51C 0031617C 48 00 07 05 */ bl VFSysInit
+/* 8031A520 00316180 38 60 00 00 */ li r3, 0
+/* 8031A524 00316184 38 80 00 00 */ li r4, 0
+/* 8031A528 00316188 4B FE E8 89 */ bl VFipdm_init_diskmanager
+/* 8031A52C 0031618C 38 60 00 00 */ li r3, 0
+/* 8031A530 00316190 38 80 00 00 */ li r4, 0
+/* 8031A534 00316194 4B FF FE A1 */ bl VFipf2_init_prfile2
+/* 8031A538 00316198 48 00 13 25 */ bl func_8031B85C
+lbl_8031A53C:
+/* 8031A53C 0031619C 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A540 003161A0 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A544 003161A4 41 82 00 10 */ beq lbl_8031A554
+/* 8031A548 003161A8 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A54C 003161AC 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A550 003161B0 4B F5 54 D5 */ bl OSUnlockMutex
+lbl_8031A554:
+/* 8031A554 003161B4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A558 003161B8 7C 08 03 A6 */ mtlr r0
+/* 8031A55C 003161BC 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A560 003161C0 4E 80 00 20 */ blr
+
+.global VFFinalize
+VFFinalize:
+/* 8031A564 003161C4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A568 003161C8 7C 08 02 A6 */ mflr r0
+/* 8031A56C 003161CC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A570 003161D0 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A574 003161D4 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A578 003161D8 41 82 00 10 */ beq lbl_8031A588
+/* 8031A57C 003161DC 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A580 003161E0 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A584 003161E4 4B F5 53 C5 */ bl OSLockMutex
+lbl_8031A588:
+/* 8031A588 003161E8 80 0D AF E8 */ lwz r0, lbl_806402A8-_SDA_BASE_(r13)
+/* 8031A58C 003161EC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A590 003161F0 41 82 00 10 */ beq lbl_8031A5A0
+/* 8031A594 003161F4 48 00 08 11 */ bl VFSysFinalize
+/* 8031A598 003161F8 38 00 00 00 */ li r0, 0
+/* 8031A59C 003161FC 90 0D AF E8 */ stw r0, lbl_806402A8-_SDA_BASE_(r13)
+lbl_8031A5A0:
+/* 8031A5A0 00316200 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A5A4 00316204 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A5A8 00316208 41 82 00 10 */ beq lbl_8031A5B8
+/* 8031A5AC 0031620C 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A5B0 00316210 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A5B4 00316214 4B F5 54 71 */ bl OSUnlockMutex
+lbl_8031A5B8:
+/* 8031A5B8 00316218 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A5BC 0031621C 7C 08 03 A6 */ mtlr r0
+/* 8031A5C0 00316220 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A5C4 00316224 4E 80 00 20 */ blr
+
+.global VF_path2handleidx
+VF_path2handleidx:
+/* 8031A5C8 00316228 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031A5CC 0031622C 7C 08 02 A6 */ mflr r0
+/* 8031A5D0 00316230 38 A0 00 08 */ li r5, 8
+/* 8031A5D4 00316234 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031A5D8 00316238 38 00 FF FF */ li r0, -1
+/* 8031A5DC 0031623C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031A5E0 00316240 7C 9F 23 78 */ mr r31, r4
+/* 8031A5E4 00316244 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031A5E8 00316248 3B C0 00 00 */ li r30, 0
+/* 8031A5EC 0031624C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031A5F0 00316250 7C 9D 23 78 */ mr r29, r4
+/* 8031A5F4 00316254 38 80 00 00 */ li r4, 0
+/* 8031A5F8 00316258 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8031A5FC 0031625C 7C 7C 1B 78 */ mr r28, r3
+/* 8031A600 00316260 90 03 00 00 */ stw r0, 0(r3)
+/* 8031A604 00316264 38 61 00 08 */ addi r3, r1, 8
+/* 8031A608 00316268 4B FE A9 CD */ bl VFipf_memset
+/* 8031A60C 0031626C 38 61 00 08 */ addi r3, r1, 8
+/* 8031A610 00316270 48 00 00 64 */ b lbl_8031A674
+lbl_8031A614:
+/* 8031A614 00316274 7C 80 07 74 */ extsb r0, r4
+/* 8031A618 00316278 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 8031A61C 0031627C 41 82 00 64 */ beq lbl_8031A680
+/* 8031A620 00316280 2C 00 00 2F */ cmpwi r0, 0x2f
+/* 8031A624 00316284 41 82 00 5C */ beq lbl_8031A680
+/* 8031A628 00316288 2C 00 00 3A */ cmpwi r0, 0x3a
+/* 8031A62C 0031628C 40 82 00 30 */ bne lbl_8031A65C
+/* 8031A630 00316290 38 61 00 08 */ addi r3, r1, 8
+/* 8031A634 00316294 48 00 14 BD */ bl func_8031BAF0
+/* 8031A638 00316298 2C 03 FF FF */ cmpwi r3, -1
+/* 8031A63C 0031629C 90 7C 00 00 */ stw r3, 0(r28)
+/* 8031A640 003162A0 41 82 00 0C */ beq lbl_8031A64C
+/* 8031A644 003162A4 2C 1E 00 07 */ cmpwi r30, 7
+/* 8031A648 003162A8 40 81 00 0C */ ble lbl_8031A654
+lbl_8031A64C:
+/* 8031A64C 003162AC 3B A0 00 00 */ li r29, 0
+/* 8031A650 003162B0 48 00 00 30 */ b lbl_8031A680
+lbl_8031A654:
+/* 8031A654 003162B4 3B BF 00 01 */ addi r29, r31, 1
+/* 8031A658 003162B8 48 00 00 28 */ b lbl_8031A680
+lbl_8031A65C:
+/* 8031A65C 003162BC 2C 1E 00 07 */ cmpwi r30, 7
+/* 8031A660 003162C0 40 80 00 08 */ bge lbl_8031A668
+/* 8031A664 003162C4 98 83 00 00 */ stb r4, 0(r3)
+lbl_8031A668:
+/* 8031A668 003162C8 3B FF 00 01 */ addi r31, r31, 1
+/* 8031A66C 003162CC 38 63 00 01 */ addi r3, r3, 1
+/* 8031A670 003162D0 3B DE 00 01 */ addi r30, r30, 1
+lbl_8031A674:
+/* 8031A674 003162D4 88 9F 00 00 */ lbz r4, 0(r31)
+/* 8031A678 003162D8 7C 80 07 75 */ extsb. r0, r4
+/* 8031A67C 003162DC 40 82 FF 98 */ bne lbl_8031A614
+lbl_8031A680:
+/* 8031A680 003162E0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031A684 003162E4 7F A3 EB 78 */ mr r3, r29
+/* 8031A688 003162E8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031A68C 003162EC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031A690 003162F0 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8031A694 003162F4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031A698 003162F8 7C 08 03 A6 */ mtlr r0
+/* 8031A69C 003162FC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031A6A0 00316300 4E 80 00 20 */ blr
+
+.global VFOpenFile
+VFOpenFile:
+/* 8031A6A4 00316304 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031A6A8 00316308 7C 08 02 A6 */ mflr r0
+/* 8031A6AC 0031630C 38 A0 FF FF */ li r5, -1
+/* 8031A6B0 00316310 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031A6B4 00316314 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031A6B8 00316318 7C 9F 23 78 */ mr r31, r4
+/* 8031A6BC 0031631C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031A6C0 00316320 7C 7E 1B 78 */ mr r30, r3
+/* 8031A6C4 00316324 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A6C8 00316328 90 A1 00 08 */ stw r5, 8(r1)
+/* 8031A6CC 0031632C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A6D0 00316330 41 82 00 10 */ beq lbl_8031A6E0
+/* 8031A6D4 00316334 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A6D8 00316338 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A6DC 0031633C 4B F5 52 6D */ bl OSLockMutex
+lbl_8031A6E0:
+/* 8031A6E0 00316340 7F C4 F3 78 */ mr r4, r30
+/* 8031A6E4 00316344 38 61 00 08 */ addi r3, r1, 8
+/* 8031A6E8 00316348 4B FF FE E1 */ bl VF_path2handleidx
+/* 8031A6EC 0031634C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031A6F0 00316350 7C 64 1B 78 */ mr r4, r3
+/* 8031A6F4 00316354 40 82 00 30 */ bne lbl_8031A724
+/* 8031A6F8 00316358 3C 60 00 01 */ lis r3, 0x0000B003@ha
+/* 8031A6FC 0031635C 38 63 B0 03 */ addi r3, r3, 0x0000B003@l
+/* 8031A700 00316360 48 00 03 6D */ bl VFSysSetLastError
+/* 8031A704 00316364 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A708 00316368 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A70C 0031636C 41 82 00 10 */ beq lbl_8031A71C
+/* 8031A710 00316370 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A714 00316374 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A718 00316378 4B F5 53 0D */ bl OSUnlockMutex
+lbl_8031A71C:
+/* 8031A71C 0031637C 38 60 00 00 */ li r3, 0
+/* 8031A720 00316380 48 00 00 48 */ b lbl_8031A768
+lbl_8031A724:
+/* 8031A724 00316384 80 01 00 08 */ lwz r0, 8(r1)
+/* 8031A728 00316388 2C 00 FF FF */ cmpwi r0, -1
+/* 8031A72C 0031638C 41 82 00 14 */ beq lbl_8031A740
+/* 8031A730 00316390 7C 03 03 78 */ mr r3, r0
+/* 8031A734 00316394 7F E5 FB 78 */ mr r5, r31
+/* 8031A738 00316398 48 00 08 E5 */ bl VFSysOpenFile
+/* 8031A73C 0031639C 48 00 00 0C */ b lbl_8031A748
+lbl_8031A740:
+/* 8031A740 003163A0 7F E4 FB 78 */ mr r4, r31
+/* 8031A744 003163A4 48 00 07 ED */ bl VFSysOpenFile_current
+lbl_8031A748:
+/* 8031A748 003163A8 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A74C 003163AC 7C 7F 1B 78 */ mr r31, r3
+/* 8031A750 003163B0 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A754 003163B4 41 82 00 10 */ beq lbl_8031A764
+/* 8031A758 003163B8 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A75C 003163BC 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A760 003163C0 4B F5 52 C5 */ bl OSUnlockMutex
+lbl_8031A764:
+/* 8031A764 003163C4 7F E3 FB 78 */ mr r3, r31
+lbl_8031A768:
+/* 8031A768 003163C8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031A76C 003163CC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031A770 003163D0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031A774 003163D4 7C 08 03 A6 */ mtlr r0
+/* 8031A778 003163D8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031A77C 003163DC 4E 80 00 20 */ blr
+
+.global VFCloseFile
+VFCloseFile:
+/* 8031A780 003163E0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A784 003163E4 7C 08 02 A6 */ mflr r0
+/* 8031A788 003163E8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A78C 003163EC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031A790 003163F0 7C 7F 1B 78 */ mr r31, r3
+/* 8031A794 003163F4 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A798 003163F8 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A79C 003163FC 41 82 00 10 */ beq lbl_8031A7AC
+/* 8031A7A0 00316400 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A7A4 00316404 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A7A8 00316408 4B F5 51 A1 */ bl OSLockMutex
+lbl_8031A7AC:
+/* 8031A7AC 0031640C 7F E3 FB 78 */ mr r3, r31
+/* 8031A7B0 00316410 48 00 09 A9 */ bl VFSysCloseFile
+/* 8031A7B4 00316414 7C 7F 1B 78 */ mr r31, r3
+/* 8031A7B8 00316418 48 00 02 B5 */ bl VFSysSetLastError
+/* 8031A7BC 0031641C 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A7C0 00316420 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A7C4 00316424 41 82 00 10 */ beq lbl_8031A7D4
+/* 8031A7C8 00316428 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A7CC 0031642C 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A7D0 00316430 4B F5 52 55 */ bl OSUnlockMutex
+lbl_8031A7D4:
+/* 8031A7D4 00316434 7F E3 FB 78 */ mr r3, r31
+/* 8031A7D8 00316438 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031A7DC 0031643C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A7E0 00316440 7C 08 03 A6 */ mtlr r0
+/* 8031A7E4 00316444 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A7E8 00316448 4E 80 00 20 */ blr
+
+.global VFSeekFile
+VFSeekFile:
+/* 8031A7EC 0031644C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031A7F0 00316450 7C 08 02 A6 */ mflr r0
+/* 8031A7F4 00316454 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031A7F8 00316458 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031A7FC 0031645C 7C BF 2B 78 */ mr r31, r5
+/* 8031A800 00316460 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031A804 00316464 7C 9E 23 78 */ mr r30, r4
+/* 8031A808 00316468 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031A80C 0031646C 7C 7D 1B 78 */ mr r29, r3
+/* 8031A810 00316470 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A814 00316474 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A818 00316478 41 82 00 10 */ beq lbl_8031A828
+/* 8031A81C 0031647C 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A820 00316480 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A824 00316484 4B F5 51 25 */ bl OSLockMutex
+lbl_8031A828:
+/* 8031A828 00316488 7F A3 EB 78 */ mr r3, r29
+/* 8031A82C 0031648C 7F C4 F3 78 */ mr r4, r30
+/* 8031A830 00316490 7F E5 FB 78 */ mr r5, r31
+/* 8031A834 00316494 48 00 0A 0D */ bl VFSysSeekFile
+/* 8031A838 00316498 7C 7F 1B 78 */ mr r31, r3
+/* 8031A83C 0031649C 48 00 02 31 */ bl VFSysSetLastError
+/* 8031A840 003164A0 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A844 003164A4 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A848 003164A8 41 82 00 10 */ beq lbl_8031A858
+/* 8031A84C 003164AC 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A850 003164B0 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A854 003164B4 4B F5 51 D1 */ bl OSUnlockMutex
+lbl_8031A858:
+/* 8031A858 003164B8 7F E3 FB 78 */ mr r3, r31
+/* 8031A85C 003164BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031A860 003164C0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031A864 003164C4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031A868 003164C8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031A86C 003164CC 7C 08 03 A6 */ mtlr r0
+/* 8031A870 003164D0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031A874 003164D4 4E 80 00 20 */ blr
+
+.global VFReadFile
+VFReadFile:
+/* 8031A878 003164D8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031A87C 003164DC 7C 08 02 A6 */ mflr r0
+/* 8031A880 003164E0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031A884 003164E4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031A888 003164E8 7C DF 33 78 */ mr r31, r6
+/* 8031A88C 003164EC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031A890 003164F0 7C BE 2B 78 */ mr r30, r5
+/* 8031A894 003164F4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031A898 003164F8 7C 9D 23 78 */ mr r29, r4
+/* 8031A89C 003164FC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8031A8A0 00316500 7C 7C 1B 78 */ mr r28, r3
+/* 8031A8A4 00316504 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A8A8 00316508 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A8AC 0031650C 41 82 00 10 */ beq lbl_8031A8BC
+/* 8031A8B0 00316510 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A8B4 00316514 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A8B8 00316518 4B F5 50 91 */ bl OSLockMutex
+lbl_8031A8BC:
+/* 8031A8BC 0031651C 7F E3 FB 78 */ mr r3, r31
+/* 8031A8C0 00316520 7F A4 EB 78 */ mr r4, r29
+/* 8031A8C4 00316524 7F C5 F3 78 */ mr r5, r30
+/* 8031A8C8 00316528 7F 86 E3 78 */ mr r6, r28
+/* 8031A8CC 0031652C 48 00 0A 7D */ bl VFSysReadFile
+/* 8031A8D0 00316530 7C 7F 1B 78 */ mr r31, r3
+/* 8031A8D4 00316534 48 00 01 99 */ bl VFSysSetLastError
+/* 8031A8D8 00316538 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A8DC 0031653C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A8E0 00316540 41 82 00 10 */ beq lbl_8031A8F0
+/* 8031A8E4 00316544 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A8E8 00316548 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A8EC 0031654C 4B F5 51 39 */ bl OSUnlockMutex
+lbl_8031A8F0:
+/* 8031A8F0 00316550 7F E3 FB 78 */ mr r3, r31
+/* 8031A8F4 00316554 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031A8F8 00316558 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031A8FC 0031655C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031A900 00316560 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8031A904 00316564 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031A908 00316568 7C 08 03 A6 */ mtlr r0
+/* 8031A90C 0031656C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031A910 00316570 4E 80 00 20 */ blr
+
+.global VFWriteFile
+VFWriteFile:
+/* 8031A914 00316574 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031A918 00316578 7C 08 02 A6 */ mflr r0
+/* 8031A91C 0031657C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031A920 00316580 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031A924 00316584 7C BF 2B 78 */ mr r31, r5
+/* 8031A928 00316588 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031A92C 0031658C 7C 9E 23 78 */ mr r30, r4
+/* 8031A930 00316590 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031A934 00316594 7C 7D 1B 78 */ mr r29, r3
+/* 8031A938 00316598 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A93C 0031659C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A940 003165A0 41 82 00 10 */ beq lbl_8031A950
+/* 8031A944 003165A4 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A948 003165A8 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A94C 003165AC 4B F5 4F FD */ bl OSLockMutex
+lbl_8031A950:
+/* 8031A950 003165B0 7F C3 F3 78 */ mr r3, r30
+/* 8031A954 003165B4 7F E4 FB 78 */ mr r4, r31
+/* 8031A958 003165B8 7F A5 EB 78 */ mr r5, r29
+/* 8031A95C 003165BC 48 00 0B 65 */ bl VFSysWriteFile
+/* 8031A960 003165C0 7C 7F 1B 78 */ mr r31, r3
+/* 8031A964 003165C4 48 00 01 09 */ bl VFSysSetLastError
+/* 8031A968 003165C8 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A96C 003165CC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031A970 003165D0 41 82 00 10 */ beq lbl_8031A980
+/* 8031A974 003165D4 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031A978 003165D8 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031A97C 003165DC 4B F5 50 A9 */ bl OSUnlockMutex
+lbl_8031A980:
+/* 8031A980 003165E0 7F E3 FB 78 */ mr r3, r31
+/* 8031A984 003165E4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031A988 003165E8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031A98C 003165EC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031A990 003165F0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031A994 003165F4 7C 08 03 A6 */ mtlr r0
+/* 8031A998 003165F8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031A99C 003165FC 4E 80 00 20 */ blr
+
+.global VFGetFileSizeByFd
+VFGetFileSizeByFd:
+/* 8031A9A0 00316600 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A9A4 00316604 7C 08 02 A6 */ mflr r0
+/* 8031A9A8 00316608 7C 64 1B 78 */ mr r4, r3
+/* 8031A9AC 0031660C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A9B0 00316610 38 00 FF FF */ li r0, -1
+/* 8031A9B4 00316614 38 61 00 08 */ addi r3, r1, 8
+/* 8031A9B8 00316618 90 01 00 08 */ stw r0, 8(r1)
+/* 8031A9BC 0031661C 48 00 0C 11 */ bl VFSysGetFileSizeByFd
+/* 8031A9C0 00316620 2C 03 00 00 */ cmpwi r3, 0
+/* 8031A9C4 00316624 41 82 00 08 */ beq lbl_8031A9CC
+/* 8031A9C8 00316628 48 00 00 A5 */ bl VFSysSetLastError
+lbl_8031A9CC:
+/* 8031A9CC 0031662C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A9D0 00316630 80 61 00 08 */ lwz r3, 8(r1)
+/* 8031A9D4 00316634 7C 08 03 A6 */ mtlr r0
+/* 8031A9D8 00316638 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A9DC 0031663C 4E 80 00 20 */ blr
+
+.global VFGetLastError
+VFGetLastError:
+/* 8031A9E0 00316640 48 00 0C 54 */ b VFSysGetLastError
+
+.global VFGetLastDeviceError
+VFGetLastDeviceError:
+/* 8031A9E4 00316644 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A9E8 00316648 7C 08 02 A6 */ mflr r0
+/* 8031A9EC 0031664C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A9F0 00316650 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031A9F4 00316654 7C 7F 1B 78 */ mr r31, r3
+/* 8031A9F8 00316658 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031A9FC 0031665C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AA00 00316660 41 82 00 10 */ beq lbl_8031AA10
+/* 8031AA04 00316664 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031AA08 00316668 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031AA0C 0031666C 4B F5 4F 3D */ bl OSLockMutex
+lbl_8031AA10:
+/* 8031AA10 00316670 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031AA14 00316674 41 82 00 18 */ beq lbl_8031AA2C
+/* 8031AA18 00316678 7F E3 FB 78 */ mr r3, r31
+/* 8031AA1C 0031667C 48 00 10 D5 */ bl func_8031BAF0
+/* 8031AA20 00316680 48 00 0C C9 */ bl VFSysGetLastDeviceError
+/* 8031AA24 00316684 7C 7F 1B 78 */ mr r31, r3
+/* 8031AA28 00316688 48 00 00 0C */ b lbl_8031AA34
+lbl_8031AA2C:
+/* 8031AA2C 0031668C 48 00 0C 11 */ bl VFSysGetLastDeviceError_current
+/* 8031AA30 00316690 7C 7F 1B 78 */ mr r31, r3
+lbl_8031AA34:
+/* 8031AA34 00316694 7F E3 FB 78 */ mr r3, r31
+/* 8031AA38 00316698 48 00 00 35 */ bl VFSysSetLastError
+/* 8031AA3C 0031669C 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13)
+/* 8031AA40 003166A0 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AA44 003166A4 41 82 00 10 */ beq lbl_8031AA54
+/* 8031AA48 003166A8 3C 60 80 5A */ lis r3, lbl_805A7580@ha
+/* 8031AA4C 003166AC 38 63 75 80 */ addi r3, r3, lbl_805A7580@l
+/* 8031AA50 003166B0 4B F5 4F D5 */ bl OSUnlockMutex
+lbl_8031AA54:
+/* 8031AA54 003166B4 7F E3 FB 78 */ mr r3, r31
+/* 8031AA58 003166B8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031AA5C 003166BC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031AA60 003166C0 7C 08 03 A6 */ mtlr r0
+/* 8031AA64 003166C4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031AA68 003166C8 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/d_vf_sys.s b/asm/SDK/VF/d_vf_sys.s new file mode 100644 index 0000000..f788c34 --- /dev/null +++ b/asm/SDK/VF/d_vf_sys.s @@ -0,0 +1,1008 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFSysSetLastError
+VFSysSetLastError:
+/* 8031AA6C 003166CC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AA70 003166D0 4D 82 00 20 */ beqlr
+/* 8031AA74 003166D4 90 6D AF F4 */ stw r3, lbl_806402B4-_SDA_BASE_(r13)
+/* 8031AA78 003166D8 4E 80 00 20 */ blr
+
+.global VFSysGetHandleP
+VFSysGetHandleP:
+/* 8031AA7C 003166DC 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AA80 003166E0 7C 03 00 40 */ cmplw r3, r0
+/* 8031AA84 003166E4 40 80 00 1C */ bge lbl_8031AAA0
+/* 8031AA88 003166E8 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031AA8C 003166EC 2C 04 00 00 */ cmpwi r4, 0
+/* 8031AA90 003166F0 41 82 00 10 */ beq lbl_8031AAA0
+/* 8031AA94 003166F4 1C 03 01 40 */ mulli r0, r3, 0x140
+/* 8031AA98 003166F8 7C 64 02 14 */ add r3, r4, r0
+/* 8031AA9C 003166FC 4E 80 00 20 */ blr
+lbl_8031AAA0:
+/* 8031AAA0 00316700 38 60 00 00 */ li r3, 0
+/* 8031AAA4 00316704 4E 80 00 20 */ blr
+
+.global VFSysHandleP2Idx
+VFSysHandleP2Idx:
+/* 8031AAA8 00316708 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AAAC 0031670C 41 82 00 54 */ beq lbl_8031AB00
+/* 8031AAB0 00316710 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AAB4 00316714 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AAB8 00316718 41 82 00 14 */ beq lbl_8031AACC
+/* 8031AABC 0031671C 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031AAC0 00316720 2C 04 00 00 */ cmpwi r4, 0
+/* 8031AAC4 00316724 41 82 00 08 */ beq lbl_8031AACC
+/* 8031AAC8 00316728 48 00 00 08 */ b lbl_8031AAD0
+lbl_8031AACC:
+/* 8031AACC 0031672C 38 80 00 00 */ li r4, 0
+lbl_8031AAD0:
+/* 8031AAD0 00316730 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031AAD4 00316734 38 A0 00 00 */ li r5, 0
+/* 8031AAD8 00316738 7C 04 02 14 */ add r0, r4, r0
+/* 8031AADC 0031673C 48 00 00 1C */ b lbl_8031AAF8
+lbl_8031AAE0:
+/* 8031AAE0 00316740 7C 03 20 40 */ cmplw r3, r4
+/* 8031AAE4 00316744 40 82 00 0C */ bne lbl_8031AAF0
+/* 8031AAE8 00316748 7C A3 2B 78 */ mr r3, r5
+/* 8031AAEC 0031674C 4E 80 00 20 */ blr
+lbl_8031AAF0:
+/* 8031AAF0 00316750 38 84 01 40 */ addi r4, r4, 0x140
+/* 8031AAF4 00316754 38 A5 00 01 */ addi r5, r5, 1
+lbl_8031AAF8:
+/* 8031AAF8 00316758 7C 04 00 40 */ cmplw r4, r0
+/* 8031AAFC 0031675C 40 82 FF E4 */ bne lbl_8031AAE0
+lbl_8031AB00:
+/* 8031AB00 00316760 38 60 FF FF */ li r3, -1
+/* 8031AB04 00316764 4E 80 00 20 */ blr
+
+.global VFSysVol2HandleP
+VFSysVol2HandleP:
+/* 8031AB08 00316768 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AB0C 0031676C 41 82 00 68 */ beq lbl_8031AB74
+/* 8031AB10 00316770 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AB14 00316774 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AB18 00316778 41 82 00 14 */ beq lbl_8031AB2C
+/* 8031AB1C 0031677C 80 AD B0 00 */ lwz r5, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031AB20 00316780 2C 05 00 00 */ cmpwi r5, 0
+/* 8031AB24 00316784 41 82 00 08 */ beq lbl_8031AB2C
+/* 8031AB28 00316788 48 00 00 08 */ b lbl_8031AB30
+lbl_8031AB2C:
+/* 8031AB2C 0031678C 38 A0 00 00 */ li r5, 0
+lbl_8031AB30:
+/* 8031AB30 00316790 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031AB34 00316794 7C C5 02 14 */ add r6, r5, r0
+/* 8031AB38 00316798 48 00 00 34 */ b lbl_8031AB6C
+lbl_8031AB3C:
+/* 8031AB3C 0031679C 80 05 00 00 */ lwz r0, 0(r5)
+/* 8031AB40 003167A0 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AB44 003167A4 41 82 00 24 */ beq lbl_8031AB68
+/* 8031AB48 003167A8 88 85 00 14 */ lbz r4, 0x14(r5)
+/* 8031AB4C 003167AC 88 03 18 7A */ lbz r0, 0x187a(r3)
+/* 8031AB50 003167B0 7C 84 07 74 */ extsb r4, r4
+/* 8031AB54 003167B4 7C 00 07 74 */ extsb r0, r0
+/* 8031AB58 003167B8 7C 04 00 00 */ cmpw r4, r0
+/* 8031AB5C 003167BC 40 82 00 0C */ bne lbl_8031AB68
+/* 8031AB60 003167C0 7C A3 2B 78 */ mr r3, r5
+/* 8031AB64 003167C4 4E 80 00 20 */ blr
+lbl_8031AB68:
+/* 8031AB68 003167C8 38 A5 01 40 */ addi r5, r5, 0x140
+lbl_8031AB6C:
+/* 8031AB6C 003167CC 7C 05 30 40 */ cmplw r5, r6
+/* 8031AB70 003167D0 40 82 FF CC */ bne lbl_8031AB3C
+lbl_8031AB74:
+/* 8031AB74 003167D4 38 60 00 00 */ li r3, 0
+/* 8031AB78 003167D8 4E 80 00 20 */ blr
+
+.global VFSysPDMDisk2HandleIdx
+VFSysPDMDisk2HandleIdx:
+/* 8031AB7C 003167DC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AB80 003167E0 38 80 FF FF */ li r4, -1
+/* 8031AB84 003167E4 41 82 00 54 */ beq lbl_8031ABD8
+/* 8031AB88 003167E8 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AB8C 003167EC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AB90 003167F0 41 82 00 14 */ beq lbl_8031ABA4
+/* 8031AB94 003167F4 80 AD B0 00 */ lwz r5, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031AB98 003167F8 2C 05 00 00 */ cmpwi r5, 0
+/* 8031AB9C 003167FC 41 82 00 08 */ beq lbl_8031ABA4
+/* 8031ABA0 00316800 48 00 00 08 */ b lbl_8031ABA8
+lbl_8031ABA4:
+/* 8031ABA4 00316804 38 A0 00 00 */ li r5, 0
+lbl_8031ABA8:
+/* 8031ABA8 00316808 38 C0 00 00 */ li r6, 0
+/* 8031ABAC 0031680C 7C 09 03 A6 */ mtctr r0
+/* 8031ABB0 00316810 28 00 00 00 */ cmplwi r0, 0
+/* 8031ABB4 00316814 40 81 00 24 */ ble lbl_8031ABD8
+lbl_8031ABB8:
+/* 8031ABB8 00316818 80 05 00 08 */ lwz r0, 8(r5)
+/* 8031ABBC 0031681C 7C 03 00 40 */ cmplw r3, r0
+/* 8031ABC0 00316820 40 82 00 0C */ bne lbl_8031ABCC
+/* 8031ABC4 00316824 7C C4 33 78 */ mr r4, r6
+/* 8031ABC8 00316828 48 00 00 10 */ b lbl_8031ABD8
+lbl_8031ABCC:
+/* 8031ABCC 0031682C 38 A5 01 40 */ addi r5, r5, 0x140
+/* 8031ABD0 00316830 38 C6 00 01 */ addi r6, r6, 1
+/* 8031ABD4 00316834 42 00 FF E4 */ bdnz lbl_8031ABB8
+lbl_8031ABD8:
+/* 8031ABD8 00316838 7C 83 23 78 */ mr r3, r4
+/* 8031ABDC 0031683C 4E 80 00 20 */ blr
+
+.global VFSysGetDriveP
+VFSysGetDriveP:
+/* 8031ABE0 00316840 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031ABE4 00316844 7C 03 00 40 */ cmplw r3, r0
+/* 8031ABE8 00316848 40 80 00 1C */ bge lbl_8031AC04
+/* 8031ABEC 0031684C 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031ABF0 00316850 2C 04 00 00 */ cmpwi r4, 0
+/* 8031ABF4 00316854 41 82 00 10 */ beq lbl_8031AC04
+/* 8031ABF8 00316858 1C 03 01 40 */ mulli r0, r3, 0x140
+/* 8031ABFC 0031685C 7C 64 02 14 */ add r3, r4, r0
+/* 8031AC00 00316860 48 00 00 08 */ b lbl_8031AC08
+lbl_8031AC04:
+/* 8031AC04 00316864 38 60 00 00 */ li r3, 0
+lbl_8031AC08:
+/* 8031AC08 00316868 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AC0C 0031686C 41 82 00 0C */ beq lbl_8031AC18
+/* 8031AC10 00316870 38 63 00 04 */ addi r3, r3, 4
+/* 8031AC14 00316874 4E 80 00 20 */ blr
+lbl_8031AC18:
+/* 8031AC18 00316878 38 60 00 00 */ li r3, 0
+/* 8031AC1C 0031687C 4E 80 00 20 */ blr
+
+.global VFSysInit
+VFSysInit:
+/* 8031AC20 00316880 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031AC24 00316884 7C 08 02 A6 */ mflr r0
+/* 8031AC28 00316888 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AC2C 0031688C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031AC30 00316890 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031AC34 00316894 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031AC38 00316898 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031AC3C 0031689C 54 9D 93 BE */ srwi r29, r4, 0xe
+/* 8031AC40 003168A0 41 82 00 24 */ beq lbl_8031AC64
+/* 8031AC44 003168A4 2C 04 00 00 */ cmpwi r4, 0
+/* 8031AC48 003168A8 41 82 00 1C */ beq lbl_8031AC64
+/* 8031AC4C 003168AC 80 0D AF F8 */ lwz r0, lbl_806402B8-_SDA_BASE_(r13)
+/* 8031AC50 003168B0 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AC54 003168B4 40 82 00 10 */ bne lbl_8031AC64
+/* 8031AC58 003168B8 38 A0 00 00 */ li r5, 0
+/* 8031AC5C 003168BC 4B F7 C1 ED */ bl MEMCreateExpHeapEx
+/* 8031AC60 003168C0 90 6D AF F8 */ stw r3, lbl_806402B8-_SDA_BASE_(r13)
+lbl_8031AC64:
+/* 8031AC64 003168C4 28 1D 00 1A */ cmplwi r29, 0x1a
+/* 8031AC68 003168C8 38 80 00 1A */ li r4, 0x1a
+/* 8031AC6C 003168CC 41 81 00 08 */ bgt lbl_8031AC74
+/* 8031AC70 003168D0 7F A4 EB 78 */ mr r4, r29
+lbl_8031AC74:
+/* 8031AC74 003168D4 80 0D B0 00 */ lwz r0, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031AC78 003168D8 90 8D AF F0 */ stw r4, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AC7C 003168DC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AC80 003168E0 40 82 00 28 */ bne lbl_8031ACA8
+/* 8031AC84 003168E4 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13)
+/* 8031AC88 003168E8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AC8C 003168EC 40 82 00 0C */ bne lbl_8031AC98
+/* 8031AC90 003168F0 38 60 00 00 */ li r3, 0
+/* 8031AC94 003168F4 48 00 00 10 */ b lbl_8031ACA4
+lbl_8031AC98:
+/* 8031AC98 003168F8 1C 84 01 40 */ mulli r4, r4, 0x140
+/* 8031AC9C 003168FC 38 A0 00 20 */ li r5, 0x20
+/* 8031ACA0 00316900 4B F7 C2 89 */ bl MEMAllocFromExpHeapEx
+lbl_8031ACA4:
+/* 8031ACA4 00316904 90 6D B0 00 */ stw r3, lbl_806402C0-_SDA_BASE_(r13)
+lbl_8031ACA8:
+/* 8031ACA8 00316908 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031ACAC 0031690C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031ACB0 00316910 41 82 00 14 */ beq lbl_8031ACC4
+/* 8031ACB4 00316914 83 AD B0 00 */ lwz r29, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031ACB8 00316918 2C 1D 00 00 */ cmpwi r29, 0
+/* 8031ACBC 0031691C 41 82 00 08 */ beq lbl_8031ACC4
+/* 8031ACC0 00316920 48 00 00 08 */ b lbl_8031ACC8
+lbl_8031ACC4:
+/* 8031ACC4 00316924 3B A0 00 00 */ li r29, 0
+lbl_8031ACC8:
+/* 8031ACC8 00316928 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031ACCC 0031692C 3B E0 00 00 */ li r31, 0
+/* 8031ACD0 00316930 7F DD 02 14 */ add r30, r29, r0
+/* 8031ACD4 00316934 48 00 00 30 */ b lbl_8031AD04
+lbl_8031ACD8:
+/* 8031ACD8 00316938 7F A3 EB 78 */ mr r3, r29
+/* 8031ACDC 0031693C 38 80 00 00 */ li r4, 0
+/* 8031ACE0 00316940 38 A0 01 40 */ li r5, 0x140
+/* 8031ACE4 00316944 4B FE A2 F1 */ bl VFipf_memset
+/* 8031ACE8 00316948 34 1D 00 1C */ addic. r0, r29, 0x1c
+/* 8031ACEC 0031694C 41 82 00 14 */ beq lbl_8031AD00
+/* 8031ACF0 00316950 93 FD 00 1C */ stw r31, 0x1c(r29)
+/* 8031ACF4 00316954 93 FD 00 20 */ stw r31, 0x20(r29)
+/* 8031ACF8 00316958 93 FD 00 24 */ stw r31, 0x24(r29)
+/* 8031ACFC 0031695C 93 FD 00 28 */ stw r31, 0x28(r29)
+lbl_8031AD00:
+/* 8031AD00 00316960 3B BD 01 40 */ addi r29, r29, 0x140
+lbl_8031AD04:
+/* 8031AD04 00316964 7C 1D F0 40 */ cmplw r29, r30
+/* 8031AD08 00316968 40 82 FF D0 */ bne lbl_8031ACD8
+/* 8031AD0C 0031696C 80 0D AF FC */ lwz r0, lbl_806402BC-_SDA_BASE_(r13)
+/* 8031AD10 00316970 83 CD AF F0 */ lwz r30, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AD14 00316974 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AD18 00316978 40 82 00 50 */ bne lbl_8031AD68
+/* 8031AD1C 0031697C 3F A0 80 61 */ lis r29, lbl_8060F5A0@ha
+/* 8031AD20 00316980 3B E0 00 00 */ li r31, 0
+/* 8031AD24 00316984 3B BD F5 A0 */ addi r29, r29, lbl_8060F5A0@l
+/* 8031AD28 00316988 48 00 00 30 */ b lbl_8031AD58
+lbl_8031AD2C:
+/* 8031AD2C 0031698C 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13)
+/* 8031AD30 00316990 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AD34 00316994 40 82 00 0C */ bne lbl_8031AD40
+/* 8031AD38 00316998 38 60 00 00 */ li r3, 0
+/* 8031AD3C 0031699C 48 00 00 10 */ b lbl_8031AD4C
+lbl_8031AD40:
+/* 8031AD40 003169A0 38 80 00 A0 */ li r4, 0xa0
+/* 8031AD44 003169A4 38 A0 00 20 */ li r5, 0x20
+/* 8031AD48 003169A8 4B F7 C1 E1 */ bl MEMAllocFromExpHeapEx
+lbl_8031AD4C:
+/* 8031AD4C 003169AC 90 7D 00 00 */ stw r3, 0(r29)
+/* 8031AD50 003169B0 3B BD 00 04 */ addi r29, r29, 4
+/* 8031AD54 003169B4 3B FF 00 01 */ addi r31, r31, 1
+lbl_8031AD58:
+/* 8031AD58 003169B8 7C 1F F0 40 */ cmplw r31, r30
+/* 8031AD5C 003169BC 41 80 FF D0 */ blt lbl_8031AD2C
+/* 8031AD60 003169C0 38 00 00 01 */ li r0, 1
+/* 8031AD64 003169C4 90 0D AF FC */ stw r0, lbl_806402BC-_SDA_BASE_(r13)
+lbl_8031AD68:
+/* 8031AD68 003169C8 48 00 0E 79 */ bl func_8031BBE0
+/* 8031AD6C 003169CC 38 80 00 00 */ li r4, 0
+/* 8031AD70 003169D0 38 60 00 02 */ li r3, 2
+/* 8031AD74 003169D4 38 00 00 08 */ li r0, 8
+/* 8031AD78 003169D8 90 8D AF F4 */ stw r4, lbl_806402B4-_SDA_BASE_(r13)
+/* 8031AD7C 003169DC 90 6D B0 0C */ stw r3, lbl_806402CC-_SDA_BASE_(r13)
+/* 8031AD80 003169E0 90 0D B0 08 */ stw r0, lbl_806402C8-_SDA_BASE_(r13)
+/* 8031AD84 003169E4 48 00 13 9D */ bl func_8031C120
+/* 8031AD88 003169E8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031AD8C 003169EC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031AD90 003169F0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031AD94 003169F4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031AD98 003169F8 7C 08 03 A6 */ mtlr r0
+/* 8031AD9C 003169FC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031ADA0 00316A00 4E 80 00 20 */ blr
+
+.global VFSysFinalize
+VFSysFinalize:
+/* 8031ADA4 00316A04 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031ADA8 00316A08 7C 08 02 A6 */ mflr r0
+/* 8031ADAC 00316A0C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031ADB0 00316A10 39 61 00 20 */ addi r11, r1, 0x20
+/* 8031ADB4 00316A14 4B EA C3 75 */ bl _savegpr_27
+/* 8031ADB8 00316A18 83 6D B0 00 */ lwz r27, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031ADBC 00316A1C 2C 9B 00 00 */ cmpwi cr1, r27, 0
+/* 8031ADC0 00316A20 41 86 00 DC */ beq cr1, lbl_8031AE9C
+/* 8031ADC4 00316A24 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031ADC8 00316A28 2C 00 00 00 */ cmpwi r0, 0
+/* 8031ADCC 00316A2C 41 82 00 0C */ beq lbl_8031ADD8
+/* 8031ADD0 00316A30 41 86 00 08 */ beq cr1, lbl_8031ADD8
+/* 8031ADD4 00316A34 48 00 00 08 */ b lbl_8031ADDC
+lbl_8031ADD8:
+/* 8031ADD8 00316A38 3B 60 00 00 */ li r27, 0
+lbl_8031ADDC:
+/* 8031ADDC 00316A3C 2C 1B 00 00 */ cmpwi r27, 0
+/* 8031ADE0 00316A40 41 82 00 A0 */ beq lbl_8031AE80
+/* 8031ADE4 00316A44 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031ADE8 00316A48 3B E0 00 00 */ li r31, 0
+/* 8031ADEC 00316A4C 7F DB 02 14 */ add r30, r27, r0
+/* 8031ADF0 00316A50 48 00 00 88 */ b lbl_8031AE78
+lbl_8031ADF4:
+/* 8031ADF4 00316A54 2C 1B 00 00 */ cmpwi r27, 0
+/* 8031ADF8 00316A58 41 82 00 7C */ beq lbl_8031AE74
+/* 8031ADFC 00316A5C 37 BB 00 1C */ addic. r29, r27, 0x1c
+/* 8031AE00 00316A60 83 9D 00 00 */ lwz r28, 0(r29)
+/* 8031AE04 00316A64 41 82 00 54 */ beq lbl_8031AE58
+/* 8031AE08 00316A68 80 9D 00 08 */ lwz r4, 8(r29)
+/* 8031AE0C 00316A6C 2C 04 00 00 */ cmpwi r4, 0
+/* 8031AE10 00316A70 41 82 00 14 */ beq lbl_8031AE24
+/* 8031AE14 00316A74 2C 1C 00 00 */ cmpwi r28, 0
+/* 8031AE18 00316A78 41 82 00 0C */ beq lbl_8031AE24
+/* 8031AE1C 00316A7C 7F 83 E3 78 */ mr r3, r28
+/* 8031AE20 00316A80 4B F7 C3 A5 */ bl MEMFreeToExpHeap
+lbl_8031AE24:
+/* 8031AE24 00316A84 80 9D 00 0C */ lwz r4, 0xc(r29)
+/* 8031AE28 00316A88 2C 04 00 00 */ cmpwi r4, 0
+/* 8031AE2C 00316A8C 41 82 00 14 */ beq lbl_8031AE40
+/* 8031AE30 00316A90 80 7D 00 00 */ lwz r3, 0(r29)
+/* 8031AE34 00316A94 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AE38 00316A98 41 82 00 08 */ beq lbl_8031AE40
+/* 8031AE3C 00316A9C 4B F7 C3 89 */ bl MEMFreeToExpHeap
+lbl_8031AE40:
+/* 8031AE40 00316AA0 2C 1D 00 00 */ cmpwi r29, 0
+/* 8031AE44 00316AA4 41 82 00 14 */ beq lbl_8031AE58
+/* 8031AE48 00316AA8 93 FD 00 00 */ stw r31, 0(r29)
+/* 8031AE4C 00316AAC 93 FD 00 04 */ stw r31, 4(r29)
+/* 8031AE50 00316AB0 93 FD 00 08 */ stw r31, 8(r29)
+/* 8031AE54 00316AB4 93 FD 00 0C */ stw r31, 0xc(r29)
+lbl_8031AE58:
+/* 8031AE58 00316AB8 80 0D AF F8 */ lwz r0, lbl_806402B8-_SDA_BASE_(r13)
+/* 8031AE5C 00316ABC 7C 1C 00 40 */ cmplw r28, r0
+/* 8031AE60 00316AC0 41 82 00 14 */ beq lbl_8031AE74
+/* 8031AE64 00316AC4 2C 1C 00 00 */ cmpwi r28, 0
+/* 8031AE68 00316AC8 41 82 00 0C */ beq lbl_8031AE74
+/* 8031AE6C 00316ACC 7F 83 E3 78 */ mr r3, r28
+/* 8031AE70 00316AD0 4B F7 C0 89 */ bl MEMDestroyExpHeap
+lbl_8031AE74:
+/* 8031AE74 00316AD4 3B 7B 01 40 */ addi r27, r27, 0x140
+lbl_8031AE78:
+/* 8031AE78 00316AD8 7C 1B F0 40 */ cmplw r27, r30
+/* 8031AE7C 00316ADC 40 82 FF 78 */ bne lbl_8031ADF4
+lbl_8031AE80:
+/* 8031AE80 00316AE0 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13)
+/* 8031AE84 00316AE4 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031AE88 00316AE8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AE8C 00316AEC 41 82 00 08 */ beq lbl_8031AE94
+/* 8031AE90 00316AF0 4B F7 C3 35 */ bl MEMFreeToExpHeap
+lbl_8031AE94:
+/* 8031AE94 00316AF4 38 00 00 00 */ li r0, 0
+/* 8031AE98 00316AF8 90 0D B0 00 */ stw r0, lbl_806402C0-_SDA_BASE_(r13)
+lbl_8031AE9C:
+/* 8031AE9C 00316AFC 80 0D AF FC */ lwz r0, lbl_806402BC-_SDA_BASE_(r13)
+/* 8031AEA0 00316B00 83 AD AF F0 */ lwz r29, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AEA4 00316B04 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AEA8 00316B08 41 82 00 50 */ beq lbl_8031AEF8
+/* 8031AEAC 00316B0C 3F 80 80 61 */ lis r28, lbl_8060F5A0@ha
+/* 8031AEB0 00316B10 3B C0 00 00 */ li r30, 0
+/* 8031AEB4 00316B14 3B 9C F5 A0 */ addi r28, r28, lbl_8060F5A0@l
+/* 8031AEB8 00316B18 3B E0 00 00 */ li r31, 0
+/* 8031AEBC 00316B1C 48 00 00 2C */ b lbl_8031AEE8
+lbl_8031AEC0:
+/* 8031AEC0 00316B20 80 9C 00 00 */ lwz r4, 0(r28)
+/* 8031AEC4 00316B24 2C 04 00 00 */ cmpwi r4, 0
+/* 8031AEC8 00316B28 41 82 00 18 */ beq lbl_8031AEE0
+/* 8031AECC 00316B2C 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13)
+/* 8031AED0 00316B30 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AED4 00316B34 41 82 00 08 */ beq lbl_8031AEDC
+/* 8031AED8 00316B38 4B F7 C2 ED */ bl MEMFreeToExpHeap
+lbl_8031AEDC:
+/* 8031AEDC 00316B3C 93 FC 00 00 */ stw r31, 0(r28)
+lbl_8031AEE0:
+/* 8031AEE0 00316B40 3B 9C 00 04 */ addi r28, r28, 4
+/* 8031AEE4 00316B44 3B DE 00 01 */ addi r30, r30, 1
+lbl_8031AEE8:
+/* 8031AEE8 00316B48 7C 1E E8 40 */ cmplw r30, r29
+/* 8031AEEC 00316B4C 41 80 FF D4 */ blt lbl_8031AEC0
+/* 8031AEF0 00316B50 38 00 00 00 */ li r0, 0
+/* 8031AEF4 00316B54 90 0D AF FC */ stw r0, lbl_806402BC-_SDA_BASE_(r13)
+lbl_8031AEF8:
+/* 8031AEF8 00316B58 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13)
+/* 8031AEFC 00316B5C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AF00 00316B60 41 82 00 10 */ beq lbl_8031AF10
+/* 8031AF04 00316B64 4B F7 BF F5 */ bl MEMDestroyExpHeap
+/* 8031AF08 00316B68 38 00 00 00 */ li r0, 0
+/* 8031AF0C 00316B6C 90 0D AF F8 */ stw r0, lbl_806402B8-_SDA_BASE_(r13)
+lbl_8031AF10:
+/* 8031AF10 00316B70 38 00 00 00 */ li r0, 0
+/* 8031AF14 00316B74 39 61 00 20 */ addi r11, r1, 0x20
+/* 8031AF18 00316B78 90 0D AF F0 */ stw r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AF1C 00316B7C 4B EA C2 59 */ bl _restgpr_27
+/* 8031AF20 00316B80 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031AF24 00316B84 7C 08 03 A6 */ mtlr r0
+/* 8031AF28 00316B88 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031AF2C 00316B8C 4E 80 00 20 */ blr
+
+.global VFSysOpenFile_current
+VFSysOpenFile_current:
+/* 8031AF30 00316B90 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031AF34 00316B94 7C 08 02 A6 */ mflr r0
+/* 8031AF38 00316B98 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031AF3C 00316B9C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031AF40 00316BA0 7C 9F 23 78 */ mr r31, r4
+/* 8031AF44 00316BA4 93 C1 00 08 */ stw r30, 8(r1)
+/* 8031AF48 00316BA8 7C 7E 1B 78 */ mr r30, r3
+/* 8031AF4C 00316BAC 4B FF EA B9 */ bl VFiPFVOL_GetCurrentVolume
+/* 8031AF50 00316BB0 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AF54 00316BB4 41 82 00 64 */ beq lbl_8031AFB8
+/* 8031AF58 00316BB8 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031AF5C 00316BBC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AF60 00316BC0 41 82 00 14 */ beq lbl_8031AF74
+/* 8031AF64 00316BC4 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031AF68 00316BC8 2C 06 00 00 */ cmpwi r6, 0
+/* 8031AF6C 00316BCC 41 82 00 08 */ beq lbl_8031AF74
+/* 8031AF70 00316BD0 48 00 00 08 */ b lbl_8031AF78
+lbl_8031AF74:
+/* 8031AF74 00316BD4 38 C0 00 00 */ li r6, 0
+lbl_8031AF78:
+/* 8031AF78 00316BD8 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031AF7C 00316BDC 7C A6 02 14 */ add r5, r6, r0
+/* 8031AF80 00316BE0 48 00 00 30 */ b lbl_8031AFB0
+lbl_8031AF84:
+/* 8031AF84 00316BE4 80 06 00 00 */ lwz r0, 0(r6)
+/* 8031AF88 00316BE8 2C 00 00 00 */ cmpwi r0, 0
+/* 8031AF8C 00316BEC 41 82 00 20 */ beq lbl_8031AFAC
+/* 8031AF90 00316BF0 88 86 00 14 */ lbz r4, 0x14(r6)
+/* 8031AF94 00316BF4 88 03 18 7A */ lbz r0, 0x187a(r3)
+/* 8031AF98 00316BF8 7C 84 07 74 */ extsb r4, r4
+/* 8031AF9C 00316BFC 7C 00 07 74 */ extsb r0, r0
+/* 8031AFA0 00316C00 7C 04 00 00 */ cmpw r4, r0
+/* 8031AFA4 00316C04 40 82 00 08 */ bne lbl_8031AFAC
+/* 8031AFA8 00316C08 48 00 00 14 */ b lbl_8031AFBC
+lbl_8031AFAC:
+/* 8031AFAC 00316C0C 38 C6 01 40 */ addi r6, r6, 0x140
+lbl_8031AFB0:
+/* 8031AFB0 00316C10 7C 06 28 40 */ cmplw r6, r5
+/* 8031AFB4 00316C14 40 82 FF D0 */ bne lbl_8031AF84
+lbl_8031AFB8:
+/* 8031AFB8 00316C18 38 C0 00 00 */ li r6, 0
+lbl_8031AFBC:
+/* 8031AFBC 00316C1C 2C 06 00 00 */ cmpwi r6, 0
+/* 8031AFC0 00316C20 41 82 00 18 */ beq lbl_8031AFD8
+/* 8031AFC4 00316C24 80 66 00 08 */ lwz r3, 8(r6)
+/* 8031AFC8 00316C28 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AFCC 00316C2C 41 82 00 0C */ beq lbl_8031AFD8
+/* 8031AFD0 00316C30 38 80 00 00 */ li r4, 0
+/* 8031AFD4 00316C34 48 00 0D 4D */ bl func_8031BD20
+lbl_8031AFD8:
+/* 8031AFD8 00316C38 7F C3 F3 78 */ mr r3, r30
+/* 8031AFDC 00316C3C 7F E4 FB 78 */ mr r4, r31
+/* 8031AFE0 00316C40 4B FF F2 E5 */ bl VFipf2_fopen
+/* 8031AFE4 00316C44 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AFE8 00316C48 7C 7F 1B 78 */ mr r31, r3
+/* 8031AFEC 00316C4C 40 82 00 14 */ bne lbl_8031B000
+/* 8031AFF0 00316C50 4B FF F2 69 */ bl VFipf2_errnum
+/* 8031AFF4 00316C54 2C 03 00 00 */ cmpwi r3, 0
+/* 8031AFF8 00316C58 41 82 00 08 */ beq lbl_8031B000
+/* 8031AFFC 00316C5C 90 6D AF F4 */ stw r3, lbl_806402B4-_SDA_BASE_(r13)
+lbl_8031B000:
+/* 8031B000 00316C60 7F E3 FB 78 */ mr r3, r31
+/* 8031B004 00316C64 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031B008 00316C68 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8031B00C 00316C6C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031B010 00316C70 7C 08 03 A6 */ mtlr r0
+/* 8031B014 00316C74 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031B018 00316C78 4E 80 00 20 */ blr
+
+.global VFSysOpenFile
+VFSysOpenFile:
+/* 8031B01C 00316C7C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031B020 00316C80 7C 08 02 A6 */ mflr r0
+/* 8031B024 00316C84 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031B028 00316C88 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031B02C 00316C8C 7C BF 2B 78 */ mr r31, r5
+/* 8031B030 00316C90 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031B034 00316C94 7C 9E 23 78 */ mr r30, r4
+/* 8031B038 00316C98 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031B03C 00316C9C 7C 7D 1B 78 */ mr r29, r3
+/* 8031B040 00316CA0 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B044 00316CA4 7C 03 00 40 */ cmplw r3, r0
+/* 8031B048 00316CA8 40 80 00 1C */ bge lbl_8031B064
+/* 8031B04C 00316CAC 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B050 00316CB0 2C 04 00 00 */ cmpwi r4, 0
+/* 8031B054 00316CB4 41 82 00 10 */ beq lbl_8031B064
+/* 8031B058 00316CB8 1C 03 01 40 */ mulli r0, r3, 0x140
+/* 8031B05C 00316CBC 7C 64 02 14 */ add r3, r4, r0
+/* 8031B060 00316CC0 48 00 00 08 */ b lbl_8031B068
+lbl_8031B064:
+/* 8031B064 00316CC4 38 60 00 00 */ li r3, 0
+lbl_8031B068:
+/* 8031B068 00316CC8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B06C 00316CCC 41 82 00 3C */ beq lbl_8031B0A8
+/* 8031B070 00316CD0 88 03 00 14 */ lbz r0, 0x14(r3)
+/* 8031B074 00316CD4 7C 03 07 74 */ extsb r3, r0
+/* 8031B078 00316CD8 4B FF EA E1 */ bl VFiPFVOL_GetVolumeFromDrvChar
+/* 8031B07C 00316CDC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B080 00316CE0 41 82 00 10 */ beq lbl_8031B090
+/* 8031B084 00316CE4 4B FF E8 35 */ bl VFiPFVOL_SetCurrentVolume
+/* 8031B088 00316CE8 38 60 00 00 */ li r3, 0
+/* 8031B08C 00316CEC 48 00 00 24 */ b lbl_8031B0B0
+lbl_8031B090:
+/* 8031B090 00316CF0 4B FF F1 C9 */ bl VFipf2_errnum
+/* 8031B094 00316CF4 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B098 00316CF8 40 82 00 18 */ bne lbl_8031B0B0
+/* 8031B09C 00316CFC 38 60 FF FF */ li r3, -1
+/* 8031B0A0 00316D00 48 00 00 10 */ b lbl_8031B0B0
+/* 8031B0A4 00316D04 48 00 00 0C */ b lbl_8031B0B0
+lbl_8031B0A8:
+/* 8031B0A8 00316D08 3C 60 00 01 */ lis r3, 0x0000B003@ha
+/* 8031B0AC 00316D0C 38 63 B0 03 */ addi r3, r3, 0x0000B003@l
+lbl_8031B0B0:
+/* 8031B0B0 00316D10 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B0B4 00316D14 40 82 00 7C */ bne lbl_8031B130
+/* 8031B0B8 00316D18 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B0BC 00316D1C 7C 1D 00 40 */ cmplw r29, r0
+/* 8031B0C0 00316D20 40 80 00 1C */ bge lbl_8031B0DC
+/* 8031B0C4 00316D24 80 6D B0 00 */ lwz r3, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B0C8 00316D28 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B0CC 00316D2C 41 82 00 10 */ beq lbl_8031B0DC
+/* 8031B0D0 00316D30 1C 1D 01 40 */ mulli r0, r29, 0x140
+/* 8031B0D4 00316D34 7C 63 02 14 */ add r3, r3, r0
+/* 8031B0D8 00316D38 48 00 00 08 */ b lbl_8031B0E0
+lbl_8031B0DC:
+/* 8031B0DC 00316D3C 38 60 00 00 */ li r3, 0
+lbl_8031B0E0:
+/* 8031B0E0 00316D40 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B0E4 00316D44 41 82 00 1C */ beq lbl_8031B100
+/* 8031B0E8 00316D48 41 82 00 18 */ beq lbl_8031B100
+/* 8031B0EC 00316D4C 80 63 00 08 */ lwz r3, 8(r3)
+/* 8031B0F0 00316D50 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B0F4 00316D54 41 82 00 0C */ beq lbl_8031B100
+/* 8031B0F8 00316D58 38 80 00 00 */ li r4, 0
+/* 8031B0FC 00316D5C 48 00 0C 25 */ bl func_8031BD20
+lbl_8031B100:
+/* 8031B100 00316D60 7F C3 F3 78 */ mr r3, r30
+/* 8031B104 00316D64 7F E4 FB 78 */ mr r4, r31
+/* 8031B108 00316D68 4B FF F1 BD */ bl VFipf2_fopen
+/* 8031B10C 00316D6C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B110 00316D70 7C 7F 1B 78 */ mr r31, r3
+/* 8031B114 00316D74 40 82 00 14 */ bne lbl_8031B128
+/* 8031B118 00316D78 4B FF F1 41 */ bl VFipf2_errnum
+/* 8031B11C 00316D7C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B120 00316D80 41 82 00 08 */ beq lbl_8031B128
+/* 8031B124 00316D84 90 6D AF F4 */ stw r3, lbl_806402B4-_SDA_BASE_(r13)
+lbl_8031B128:
+/* 8031B128 00316D88 7F E3 FB 78 */ mr r3, r31
+/* 8031B12C 00316D8C 48 00 00 10 */ b lbl_8031B13C
+lbl_8031B130:
+/* 8031B130 00316D90 41 82 00 08 */ beq lbl_8031B138
+/* 8031B134 00316D94 90 6D AF F4 */ stw r3, lbl_806402B4-_SDA_BASE_(r13)
+lbl_8031B138:
+/* 8031B138 00316D98 38 60 00 00 */ li r3, 0
+lbl_8031B13C:
+/* 8031B13C 00316D9C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031B140 00316DA0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031B144 00316DA4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031B148 00316DA8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031B14C 00316DAC 7C 08 03 A6 */ mtlr r0
+/* 8031B150 00316DB0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031B154 00316DB4 4E 80 00 20 */ blr
+
+.global VFSysCloseFile
+VFSysCloseFile:
+/* 8031B158 00316DB8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031B15C 00316DBC 7C 08 02 A6 */ mflr r0
+/* 8031B160 00316DC0 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B164 00316DC4 38 C0 00 00 */ li r6, 0
+/* 8031B168 00316DC8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031B16C 00316DCC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031B170 00316DD0 7C 7F 1B 78 */ mr r31, r3
+/* 8031B174 00316DD4 41 82 00 80 */ beq lbl_8031B1F4
+/* 8031B178 00316DD8 80 63 00 08 */ lwz r3, 8(r3)
+/* 8031B17C 00316DDC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B180 00316DE0 41 82 00 74 */ beq lbl_8031B1F4
+/* 8031B184 00316DE4 80 83 00 38 */ lwz r4, 0x38(r3)
+/* 8031B188 00316DE8 2C 04 00 00 */ cmpwi r4, 0
+/* 8031B18C 00316DEC 41 82 00 64 */ beq lbl_8031B1F0
+/* 8031B190 00316DF0 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B194 00316DF4 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B198 00316DF8 41 82 00 14 */ beq lbl_8031B1AC
+/* 8031B19C 00316DFC 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B1A0 00316E00 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B1A4 00316E04 41 82 00 08 */ beq lbl_8031B1AC
+/* 8031B1A8 00316E08 48 00 00 08 */ b lbl_8031B1B0
+lbl_8031B1AC:
+/* 8031B1AC 00316E0C 38 C0 00 00 */ li r6, 0
+lbl_8031B1B0:
+/* 8031B1B0 00316E10 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031B1B4 00316E14 7C A6 02 14 */ add r5, r6, r0
+/* 8031B1B8 00316E18 48 00 00 30 */ b lbl_8031B1E8
+lbl_8031B1BC:
+/* 8031B1BC 00316E1C 80 06 00 00 */ lwz r0, 0(r6)
+/* 8031B1C0 00316E20 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B1C4 00316E24 41 82 00 20 */ beq lbl_8031B1E4
+/* 8031B1C8 00316E28 88 66 00 14 */ lbz r3, 0x14(r6)
+/* 8031B1CC 00316E2C 88 04 18 7A */ lbz r0, 0x187a(r4)
+/* 8031B1D0 00316E30 7C 63 07 74 */ extsb r3, r3
+/* 8031B1D4 00316E34 7C 00 07 74 */ extsb r0, r0
+/* 8031B1D8 00316E38 7C 03 00 00 */ cmpw r3, r0
+/* 8031B1DC 00316E3C 40 82 00 08 */ bne lbl_8031B1E4
+/* 8031B1E0 00316E40 48 00 00 14 */ b lbl_8031B1F4
+lbl_8031B1E4:
+/* 8031B1E4 00316E44 38 C6 01 40 */ addi r6, r6, 0x140
+lbl_8031B1E8:
+/* 8031B1E8 00316E48 7C 06 28 40 */ cmplw r6, r5
+/* 8031B1EC 00316E4C 40 82 FF D0 */ bne lbl_8031B1BC
+lbl_8031B1F0:
+/* 8031B1F0 00316E50 38 C0 00 00 */ li r6, 0
+lbl_8031B1F4:
+/* 8031B1F4 00316E54 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B1F8 00316E58 41 82 00 18 */ beq lbl_8031B210
+/* 8031B1FC 00316E5C 80 66 00 08 */ lwz r3, 8(r6)
+/* 8031B200 00316E60 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B204 00316E64 41 82 00 0C */ beq lbl_8031B210
+/* 8031B208 00316E68 38 80 00 00 */ li r4, 0
+/* 8031B20C 00316E6C 48 00 0B 15 */ bl func_8031BD20
+lbl_8031B210:
+/* 8031B210 00316E70 7F E3 FB 78 */ mr r3, r31
+/* 8031B214 00316E74 4B FF F0 69 */ bl VFipf2_fclose
+/* 8031B218 00316E78 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B21C 00316E7C 40 82 00 0C */ bne lbl_8031B228
+/* 8031B220 00316E80 38 60 00 00 */ li r3, 0
+/* 8031B224 00316E84 48 00 00 08 */ b lbl_8031B22C
+lbl_8031B228:
+/* 8031B228 00316E88 4B FF F0 31 */ bl VFipf2_errnum
+lbl_8031B22C:
+/* 8031B22C 00316E8C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031B230 00316E90 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031B234 00316E94 7C 08 03 A6 */ mtlr r0
+/* 8031B238 00316E98 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031B23C 00316E9C 4E 80 00 20 */ blr
+
+.global VFSysSeekFile
+VFSysSeekFile:
+/* 8031B240 00316EA0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031B244 00316EA4 7C 08 02 A6 */ mflr r0
+/* 8031B248 00316EA8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B24C 00316EAC 38 C0 00 00 */ li r6, 0
+/* 8031B250 00316EB0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031B254 00316EB4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031B258 00316EB8 7C BF 2B 78 */ mr r31, r5
+/* 8031B25C 00316EBC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031B260 00316EC0 7C 9E 23 78 */ mr r30, r4
+/* 8031B264 00316EC4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031B268 00316EC8 7C 7D 1B 78 */ mr r29, r3
+/* 8031B26C 00316ECC 41 82 00 80 */ beq lbl_8031B2EC
+/* 8031B270 00316ED0 80 63 00 08 */ lwz r3, 8(r3)
+/* 8031B274 00316ED4 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B278 00316ED8 41 82 00 74 */ beq lbl_8031B2EC
+/* 8031B27C 00316EDC 80 83 00 38 */ lwz r4, 0x38(r3)
+/* 8031B280 00316EE0 2C 04 00 00 */ cmpwi r4, 0
+/* 8031B284 00316EE4 41 82 00 64 */ beq lbl_8031B2E8
+/* 8031B288 00316EE8 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B28C 00316EEC 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B290 00316EF0 41 82 00 14 */ beq lbl_8031B2A4
+/* 8031B294 00316EF4 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B298 00316EF8 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B29C 00316EFC 41 82 00 08 */ beq lbl_8031B2A4
+/* 8031B2A0 00316F00 48 00 00 08 */ b lbl_8031B2A8
+lbl_8031B2A4:
+/* 8031B2A4 00316F04 38 C0 00 00 */ li r6, 0
+lbl_8031B2A8:
+/* 8031B2A8 00316F08 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031B2AC 00316F0C 7C A6 02 14 */ add r5, r6, r0
+/* 8031B2B0 00316F10 48 00 00 30 */ b lbl_8031B2E0
+lbl_8031B2B4:
+/* 8031B2B4 00316F14 80 06 00 00 */ lwz r0, 0(r6)
+/* 8031B2B8 00316F18 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B2BC 00316F1C 41 82 00 20 */ beq lbl_8031B2DC
+/* 8031B2C0 00316F20 88 66 00 14 */ lbz r3, 0x14(r6)
+/* 8031B2C4 00316F24 88 04 18 7A */ lbz r0, 0x187a(r4)
+/* 8031B2C8 00316F28 7C 63 07 74 */ extsb r3, r3
+/* 8031B2CC 00316F2C 7C 00 07 74 */ extsb r0, r0
+/* 8031B2D0 00316F30 7C 03 00 00 */ cmpw r3, r0
+/* 8031B2D4 00316F34 40 82 00 08 */ bne lbl_8031B2DC
+/* 8031B2D8 00316F38 48 00 00 14 */ b lbl_8031B2EC
+lbl_8031B2DC:
+/* 8031B2DC 00316F3C 38 C6 01 40 */ addi r6, r6, 0x140
+lbl_8031B2E0:
+/* 8031B2E0 00316F40 7C 06 28 40 */ cmplw r6, r5
+/* 8031B2E4 00316F44 40 82 FF D0 */ bne lbl_8031B2B4
+lbl_8031B2E8:
+/* 8031B2E8 00316F48 38 C0 00 00 */ li r6, 0
+lbl_8031B2EC:
+/* 8031B2EC 00316F4C 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B2F0 00316F50 41 82 00 18 */ beq lbl_8031B308
+/* 8031B2F4 00316F54 80 66 00 08 */ lwz r3, 8(r6)
+/* 8031B2F8 00316F58 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B2FC 00316F5C 41 82 00 0C */ beq lbl_8031B308
+/* 8031B300 00316F60 38 80 00 00 */ li r4, 0
+/* 8031B304 00316F64 48 00 0A 1D */ bl func_8031BD20
+lbl_8031B308:
+/* 8031B308 00316F68 7F A3 EB 78 */ mr r3, r29
+/* 8031B30C 00316F6C 7F C4 F3 78 */ mr r4, r30
+/* 8031B310 00316F70 7F E5 FB 78 */ mr r5, r31
+/* 8031B314 00316F74 4B FF F0 75 */ bl VFipf2_fseek
+/* 8031B318 00316F78 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B31C 00316F7C 40 82 00 0C */ bne lbl_8031B328
+/* 8031B320 00316F80 38 60 00 00 */ li r3, 0
+/* 8031B324 00316F84 48 00 00 08 */ b lbl_8031B32C
+lbl_8031B328:
+/* 8031B328 00316F88 4B FF EF 31 */ bl VFipf2_errnum
+lbl_8031B32C:
+/* 8031B32C 00316F8C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031B330 00316F90 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031B334 00316F94 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031B338 00316F98 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031B33C 00316F9C 7C 08 03 A6 */ mtlr r0
+/* 8031B340 00316FA0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031B344 00316FA4 4E 80 00 20 */ blr
+
+.global VFSysReadFile
+VFSysReadFile:
+/* 8031B348 00316FA8 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8031B34C 00316FAC 7C 08 02 A6 */ mflr r0
+/* 8031B350 00316FB0 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8031B354 00316FB4 39 61 00 40 */ addi r11, r1, 0x40
+/* 8031B358 00316FB8 4B EA BD D1 */ bl _savegpr_27
+/* 8031B35C 00316FBC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B360 00316FC0 7C 7C 1B 78 */ mr r28, r3
+/* 8031B364 00316FC4 7C 9D 23 78 */ mr r29, r4
+/* 8031B368 00316FC8 7C BE 2B 78 */ mr r30, r5
+/* 8031B36C 00316FCC 7C DF 33 78 */ mr r31, r6
+/* 8031B370 00316FD0 41 82 00 0C */ beq lbl_8031B37C
+/* 8031B374 00316FD4 38 00 00 00 */ li r0, 0
+/* 8031B378 00316FD8 90 03 00 00 */ stw r0, 0(r3)
+lbl_8031B37C:
+/* 8031B37C 00316FDC 7F E3 FB 78 */ mr r3, r31
+/* 8031B380 00316FE0 38 81 00 08 */ addi r4, r1, 8
+/* 8031B384 00316FE4 4B FF EF 1D */ bl VFipf2_finfo
+/* 8031B388 00316FE8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B38C 00316FEC 40 82 01 18 */ bne lbl_8031B4A4
+/* 8031B390 00316FF0 80 7F 00 1C */ lwz r3, 0x1c(r31)
+/* 8031B394 00316FF4 80 01 00 08 */ lwz r0, 8(r1)
+/* 8031B398 00316FF8 7F 63 00 50 */ subf r27, r3, r0
+/* 8031B39C 00316FFC 7C 1E D8 40 */ cmplw r30, r27
+/* 8031B3A0 00317000 40 81 00 18 */ ble lbl_8031B3B8
+/* 8031B3A4 00317004 7F A3 EB 78 */ mr r3, r29
+/* 8031B3A8 00317008 7F C5 F3 78 */ mr r5, r30
+/* 8031B3AC 0031700C 38 80 00 00 */ li r4, 0
+/* 8031B3B0 00317010 4B FE 9C 25 */ bl VFipf_memset
+/* 8031B3B4 00317014 7F 7E DB 78 */ mr r30, r27
+lbl_8031B3B8:
+/* 8031B3B8 00317018 2C 1F 00 00 */ cmpwi r31, 0
+/* 8031B3BC 0031701C 38 C0 00 00 */ li r6, 0
+/* 8031B3C0 00317020 41 82 00 80 */ beq lbl_8031B440
+/* 8031B3C4 00317024 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8031B3C8 00317028 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B3CC 0031702C 41 82 00 74 */ beq lbl_8031B440
+/* 8031B3D0 00317030 80 83 00 38 */ lwz r4, 0x38(r3)
+/* 8031B3D4 00317034 2C 04 00 00 */ cmpwi r4, 0
+/* 8031B3D8 00317038 41 82 00 64 */ beq lbl_8031B43C
+/* 8031B3DC 0031703C 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B3E0 00317040 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B3E4 00317044 41 82 00 14 */ beq lbl_8031B3F8
+/* 8031B3E8 00317048 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B3EC 0031704C 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B3F0 00317050 41 82 00 08 */ beq lbl_8031B3F8
+/* 8031B3F4 00317054 48 00 00 08 */ b lbl_8031B3FC
+lbl_8031B3F8:
+/* 8031B3F8 00317058 38 C0 00 00 */ li r6, 0
+lbl_8031B3FC:
+/* 8031B3FC 0031705C 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031B400 00317060 7C A6 02 14 */ add r5, r6, r0
+/* 8031B404 00317064 48 00 00 30 */ b lbl_8031B434
+lbl_8031B408:
+/* 8031B408 00317068 80 06 00 00 */ lwz r0, 0(r6)
+/* 8031B40C 0031706C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B410 00317070 41 82 00 20 */ beq lbl_8031B430
+/* 8031B414 00317074 88 66 00 14 */ lbz r3, 0x14(r6)
+/* 8031B418 00317078 88 04 18 7A */ lbz r0, 0x187a(r4)
+/* 8031B41C 0031707C 7C 63 07 74 */ extsb r3, r3
+/* 8031B420 00317080 7C 00 07 74 */ extsb r0, r0
+/* 8031B424 00317084 7C 03 00 00 */ cmpw r3, r0
+/* 8031B428 00317088 40 82 00 08 */ bne lbl_8031B430
+/* 8031B42C 0031708C 48 00 00 14 */ b lbl_8031B440
+lbl_8031B430:
+/* 8031B430 00317090 38 C6 01 40 */ addi r6, r6, 0x140
+lbl_8031B434:
+/* 8031B434 00317094 7C 06 28 40 */ cmplw r6, r5
+/* 8031B438 00317098 40 82 FF D0 */ bne lbl_8031B408
+lbl_8031B43C:
+/* 8031B43C 0031709C 38 C0 00 00 */ li r6, 0
+lbl_8031B440:
+/* 8031B440 003170A0 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B444 003170A4 41 82 00 18 */ beq lbl_8031B45C
+/* 8031B448 003170A8 80 66 00 08 */ lwz r3, 8(r6)
+/* 8031B44C 003170AC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B450 003170B0 41 82 00 0C */ beq lbl_8031B45C
+/* 8031B454 003170B4 38 80 00 00 */ li r4, 0
+/* 8031B458 003170B8 48 00 08 C9 */ bl func_8031BD20
+lbl_8031B45C:
+/* 8031B45C 003170BC 2C 1E 00 00 */ cmpwi r30, 0
+/* 8031B460 003170C0 41 82 00 3C */ beq lbl_8031B49C
+/* 8031B464 003170C4 7F A3 EB 78 */ mr r3, r29
+/* 8031B468 003170C8 7F C4 F3 78 */ mr r4, r30
+/* 8031B46C 003170CC 7F E6 FB 78 */ mr r6, r31
+/* 8031B470 003170D0 38 A0 00 01 */ li r5, 1
+/* 8031B474 003170D4 4B FF EE ED */ bl VFipf2_fread
+/* 8031B478 003170D8 28 03 00 01 */ cmplwi r3, 1
+/* 8031B47C 003170DC 40 82 00 18 */ bne lbl_8031B494
+/* 8031B480 003170E0 2C 1C 00 00 */ cmpwi r28, 0
+/* 8031B484 003170E4 41 82 00 08 */ beq lbl_8031B48C
+/* 8031B488 003170E8 93 DC 00 00 */ stw r30, 0(r28)
+lbl_8031B48C:
+/* 8031B48C 003170EC 38 60 00 00 */ li r3, 0
+/* 8031B490 003170F0 48 00 00 18 */ b lbl_8031B4A8
+lbl_8031B494:
+/* 8031B494 003170F4 4B FF ED C5 */ bl VFipf2_errnum
+/* 8031B498 003170F8 48 00 00 10 */ b lbl_8031B4A8
+lbl_8031B49C:
+/* 8031B49C 003170FC 38 60 00 00 */ li r3, 0
+/* 8031B4A0 00317100 48 00 00 08 */ b lbl_8031B4A8
+lbl_8031B4A4:
+/* 8031B4A4 00317104 4B FF ED B5 */ bl VFipf2_errnum
+lbl_8031B4A8:
+/* 8031B4A8 00317108 39 61 00 40 */ addi r11, r1, 0x40
+/* 8031B4AC 0031710C 4B EA BC C9 */ bl _restgpr_27
+/* 8031B4B0 00317110 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8031B4B4 00317114 7C 08 03 A6 */ mtlr r0
+/* 8031B4B8 00317118 38 21 00 40 */ addi r1, r1, 0x40
+/* 8031B4BC 0031711C 4E 80 00 20 */ blr
+
+.global VFSysWriteFile
+VFSysWriteFile:
+/* 8031B4C0 00317120 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8031B4C4 00317124 7C 08 02 A6 */ mflr r0
+/* 8031B4C8 00317128 2C 05 00 00 */ cmpwi r5, 0
+/* 8031B4CC 0031712C 38 C0 00 00 */ li r6, 0
+/* 8031B4D0 00317130 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8031B4D4 00317134 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8031B4D8 00317138 7C BF 2B 78 */ mr r31, r5
+/* 8031B4DC 0031713C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8031B4E0 00317140 7C 9E 23 78 */ mr r30, r4
+/* 8031B4E4 00317144 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8031B4E8 00317148 7C 7D 1B 78 */ mr r29, r3
+/* 8031B4EC 0031714C 41 82 00 80 */ beq lbl_8031B56C
+/* 8031B4F0 00317150 80 65 00 08 */ lwz r3, 8(r5)
+/* 8031B4F4 00317154 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B4F8 00317158 41 82 00 74 */ beq lbl_8031B56C
+/* 8031B4FC 0031715C 80 83 00 38 */ lwz r4, 0x38(r3)
+/* 8031B500 00317160 2C 04 00 00 */ cmpwi r4, 0
+/* 8031B504 00317164 41 82 00 64 */ beq lbl_8031B568
+/* 8031B508 00317168 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B50C 0031716C 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B510 00317170 41 82 00 14 */ beq lbl_8031B524
+/* 8031B514 00317174 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B518 00317178 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B51C 0031717C 41 82 00 08 */ beq lbl_8031B524
+/* 8031B520 00317180 48 00 00 08 */ b lbl_8031B528
+lbl_8031B524:
+/* 8031B524 00317184 38 C0 00 00 */ li r6, 0
+lbl_8031B528:
+/* 8031B528 00317188 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031B52C 0031718C 7C A6 02 14 */ add r5, r6, r0
+/* 8031B530 00317190 48 00 00 30 */ b lbl_8031B560
+lbl_8031B534:
+/* 8031B534 00317194 80 06 00 00 */ lwz r0, 0(r6)
+/* 8031B538 00317198 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B53C 0031719C 41 82 00 20 */ beq lbl_8031B55C
+/* 8031B540 003171A0 88 66 00 14 */ lbz r3, 0x14(r6)
+/* 8031B544 003171A4 88 04 18 7A */ lbz r0, 0x187a(r4)
+/* 8031B548 003171A8 7C 63 07 74 */ extsb r3, r3
+/* 8031B54C 003171AC 7C 00 07 74 */ extsb r0, r0
+/* 8031B550 003171B0 7C 03 00 00 */ cmpw r3, r0
+/* 8031B554 003171B4 40 82 00 08 */ bne lbl_8031B55C
+/* 8031B558 003171B8 48 00 00 14 */ b lbl_8031B56C
+lbl_8031B55C:
+/* 8031B55C 003171BC 38 C6 01 40 */ addi r6, r6, 0x140
+lbl_8031B560:
+/* 8031B560 003171C0 7C 06 28 40 */ cmplw r6, r5
+/* 8031B564 003171C4 40 82 FF D0 */ bne lbl_8031B534
+lbl_8031B568:
+/* 8031B568 003171C8 38 C0 00 00 */ li r6, 0
+lbl_8031B56C:
+/* 8031B56C 003171CC 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B570 003171D0 41 82 00 18 */ beq lbl_8031B588
+/* 8031B574 003171D4 80 66 00 08 */ lwz r3, 8(r6)
+/* 8031B578 003171D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B57C 003171DC 41 82 00 0C */ beq lbl_8031B588
+/* 8031B580 003171E0 38 80 00 00 */ li r4, 0
+/* 8031B584 003171E4 48 00 07 9D */ bl func_8031BD20
+lbl_8031B588:
+/* 8031B588 003171E8 7F A3 EB 78 */ mr r3, r29
+/* 8031B58C 003171EC 7F C4 F3 78 */ mr r4, r30
+/* 8031B590 003171F0 7F E6 FB 78 */ mr r6, r31
+/* 8031B594 003171F4 38 A0 00 01 */ li r5, 1
+/* 8031B598 003171F8 4B FF EE 15 */ bl VFipf2_fwrite
+/* 8031B59C 003171FC 28 03 00 01 */ cmplwi r3, 1
+/* 8031B5A0 00317200 40 82 00 0C */ bne lbl_8031B5AC
+/* 8031B5A4 00317204 38 60 00 00 */ li r3, 0
+/* 8031B5A8 00317208 48 00 00 08 */ b lbl_8031B5B0
+lbl_8031B5AC:
+/* 8031B5AC 0031720C 4B FF EC AD */ bl VFipf2_errnum
+lbl_8031B5B0:
+/* 8031B5B0 00317210 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8031B5B4 00317214 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8031B5B8 00317218 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8031B5BC 0031721C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8031B5C0 00317220 7C 08 03 A6 */ mtlr r0
+/* 8031B5C4 00317224 38 21 00 20 */ addi r1, r1, 0x20
+/* 8031B5C8 00317228 4E 80 00 20 */ blr
+
+.global VFSysGetFileSizeByFd
+VFSysGetFileSizeByFd:
+/* 8031B5CC 0031722C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8031B5D0 00317230 7C 08 02 A6 */ mflr r0
+/* 8031B5D4 00317234 2C 04 00 00 */ cmpwi r4, 0
+/* 8031B5D8 00317238 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8031B5DC 0031723C 38 00 FF FF */ li r0, -1
+/* 8031B5E0 00317240 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8031B5E4 00317244 7C 7F 1B 78 */ mr r31, r3
+/* 8031B5E8 00317248 90 03 00 00 */ stw r0, 0(r3)
+/* 8031B5EC 0031724C 41 82 00 30 */ beq lbl_8031B61C
+/* 8031B5F0 00317250 7C 83 23 78 */ mr r3, r4
+/* 8031B5F4 00317254 38 81 00 08 */ addi r4, r1, 8
+/* 8031B5F8 00317258 4B FF EC A9 */ bl VFipf2_finfo
+/* 8031B5FC 0031725C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B600 00317260 40 82 00 14 */ bne lbl_8031B614
+/* 8031B604 00317264 80 01 00 08 */ lwz r0, 8(r1)
+/* 8031B608 00317268 38 60 00 00 */ li r3, 0
+/* 8031B60C 0031726C 90 1F 00 00 */ stw r0, 0(r31)
+/* 8031B610 00317270 48 00 00 10 */ b lbl_8031B620
+lbl_8031B614:
+/* 8031B614 00317274 4B FF EC 45 */ bl VFipf2_errnum
+/* 8031B618 00317278 48 00 00 08 */ b lbl_8031B620
+lbl_8031B61C:
+/* 8031B61C 0031727C 38 60 FF FF */ li r3, -1
+lbl_8031B620:
+/* 8031B620 00317280 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8031B624 00317284 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8031B628 00317288 7C 08 03 A6 */ mtlr r0
+/* 8031B62C 0031728C 38 21 00 30 */ addi r1, r1, 0x30
+/* 8031B630 00317290 4E 80 00 20 */ blr
+
+.global VFSysGetLastError
+VFSysGetLastError:
+/* 8031B634 00317294 80 6D AF F4 */ lwz r3, lbl_806402B4-_SDA_BASE_(r13)
+/* 8031B638 00317298 4E 80 00 20 */ blr
+
+.global VFSysGetLastDeviceError_current
+VFSysGetLastDeviceError_current:
+/* 8031B63C 0031729C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031B640 003172A0 7C 08 02 A6 */ mflr r0
+/* 8031B644 003172A4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031B648 003172A8 4B FF E3 BD */ bl VFiPFVOL_GetCurrentVolume
+/* 8031B64C 003172AC 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B650 003172B0 41 82 00 64 */ beq lbl_8031B6B4
+/* 8031B654 003172B4 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B658 003172B8 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B65C 003172BC 41 82 00 14 */ beq lbl_8031B670
+/* 8031B660 003172C0 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B664 003172C4 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B668 003172C8 41 82 00 08 */ beq lbl_8031B670
+/* 8031B66C 003172CC 48 00 00 08 */ b lbl_8031B674
+lbl_8031B670:
+/* 8031B670 003172D0 38 C0 00 00 */ li r6, 0
+lbl_8031B674:
+/* 8031B674 003172D4 1C 00 01 40 */ mulli r0, r0, 0x140
+/* 8031B678 003172D8 7C A6 02 14 */ add r5, r6, r0
+/* 8031B67C 003172DC 48 00 00 30 */ b lbl_8031B6AC
+lbl_8031B680:
+/* 8031B680 003172E0 80 06 00 00 */ lwz r0, 0(r6)
+/* 8031B684 003172E4 2C 00 00 00 */ cmpwi r0, 0
+/* 8031B688 003172E8 41 82 00 20 */ beq lbl_8031B6A8
+/* 8031B68C 003172EC 88 86 00 14 */ lbz r4, 0x14(r6)
+/* 8031B690 003172F0 88 03 18 7A */ lbz r0, 0x187a(r3)
+/* 8031B694 003172F4 7C 84 07 74 */ extsb r4, r4
+/* 8031B698 003172F8 7C 00 07 74 */ extsb r0, r0
+/* 8031B69C 003172FC 7C 04 00 00 */ cmpw r4, r0
+/* 8031B6A0 00317300 40 82 00 08 */ bne lbl_8031B6A8
+/* 8031B6A4 00317304 48 00 00 14 */ b lbl_8031B6B8
+lbl_8031B6A8:
+/* 8031B6A8 00317308 38 C6 01 40 */ addi r6, r6, 0x140
+lbl_8031B6AC:
+/* 8031B6AC 0031730C 7C 06 28 40 */ cmplw r6, r5
+/* 8031B6B0 00317310 40 82 FF D0 */ bne lbl_8031B680
+lbl_8031B6B4:
+/* 8031B6B4 00317314 38 C0 00 00 */ li r6, 0
+lbl_8031B6B8:
+/* 8031B6B8 00317318 2C 06 00 00 */ cmpwi r6, 0
+/* 8031B6BC 0031731C 41 82 00 18 */ beq lbl_8031B6D4
+/* 8031B6C0 00317320 80 66 00 08 */ lwz r3, 8(r6)
+/* 8031B6C4 00317324 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B6C8 00317328 41 82 00 0C */ beq lbl_8031B6D4
+/* 8031B6CC 0031732C 48 00 06 01 */ bl func_8031BCCC
+/* 8031B6D0 00317330 48 00 00 08 */ b lbl_8031B6D8
+lbl_8031B6D4:
+/* 8031B6D4 00317334 38 60 FF FF */ li r3, -1
+lbl_8031B6D8:
+/* 8031B6D8 00317338 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031B6DC 0031733C 7C 08 03 A6 */ mtlr r0
+/* 8031B6E0 00317340 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031B6E4 00317344 4E 80 00 20 */ blr
+
+.global VFSysGetLastDeviceError
+VFSysGetLastDeviceError:
+/* 8031B6E8 00317348 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13)
+/* 8031B6EC 0031734C 7C 03 00 40 */ cmplw r3, r0
+/* 8031B6F0 00317350 40 80 00 1C */ bge lbl_8031B70C
+/* 8031B6F4 00317354 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13)
+/* 8031B6F8 00317358 2C 04 00 00 */ cmpwi r4, 0
+/* 8031B6FC 0031735C 41 82 00 10 */ beq lbl_8031B70C
+/* 8031B700 00317360 1C 03 01 40 */ mulli r0, r3, 0x140
+/* 8031B704 00317364 7C 64 02 14 */ add r3, r4, r0
+/* 8031B708 00317368 48 00 00 08 */ b lbl_8031B710
+lbl_8031B70C:
+/* 8031B70C 0031736C 38 60 00 00 */ li r3, 0
+lbl_8031B710:
+/* 8031B710 00317370 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B714 00317374 41 82 00 14 */ beq lbl_8031B728
+/* 8031B718 00317378 80 63 00 08 */ lwz r3, 8(r3)
+/* 8031B71C 0031737C 2C 03 00 00 */ cmpwi r3, 0
+/* 8031B720 00317380 41 82 00 08 */ beq lbl_8031B728
+/* 8031B724 00317384 48 00 05 A8 */ b func_8031BCCC
+lbl_8031B728:
+/* 8031B728 00317388 38 60 FF FF */ li r3, -1
+/* 8031B72C 0031738C 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_entry.s b/asm/SDK/VF/pf_entry.s index eb2c835..bf99267 100644 --- a/asm/SDK/VF/pf_entry.s +++ b/asm/SDK/VF/pf_entry.s @@ -1792,7 +1792,7 @@ VFiPFENT_getcurrentDateTimeForEnt: /* 8030CB90 003087F0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8030CB94 003087F4 7C 7E 1B 78 */ mr r30, r3
/* 8030CB98 003087F8 38 61 00 10 */ addi r3, r1, 0x10
-/* 8030CB9C 003087FC 48 00 D8 A1 */ bl func_8031A43C
+/* 8030CB9C 003087FC 48 00 D8 A1 */ bl VFiPFSYS_TimeStamp
/* 8030CBA0 00308800 A0 61 00 10 */ lhz r3, 0x10(r1)
/* 8030CBA4 00308804 A0 81 00 14 */ lhz r4, 0x14(r1)
/* 8030CBA8 00308808 38 03 F8 44 */ addi r0, r3, -1980
diff --git a/asm/SDK/VF/pf_errnum.s b/asm/SDK/VF/pf_errnum.s new file mode 100644 index 0000000..63938b6 --- /dev/null +++ b/asm/SDK/VF/pf_errnum.s @@ -0,0 +1,15 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_errnum
+VFipf2_errnum:
+/* 8031A258 00315EB8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A25C 00315EBC 7C 08 02 A6 */ mflr r0
+/* 8031A260 00315EC0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A264 00315EC4 4B FF F9 8D */ bl VFiPFVOL_errnum
+/* 8031A268 00315EC8 4B FF FF 79 */ bl VFiPFAPI_convertError
+/* 8031A26C 00315ECC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A270 00315ED0 7C 08 03 A6 */ mtlr r0
+/* 8031A274 00315ED4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A278 00315ED8 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_fclose.s b/asm/SDK/VF/pf_fclose.s new file mode 100644 index 0000000..86de7b2 --- /dev/null +++ b/asm/SDK/VF/pf_fclose.s @@ -0,0 +1,15 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_fclose
+VFipf2_fclose:
+/* 8031A27C 00315EDC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A280 00315EE0 7C 08 02 A6 */ mflr r0
+/* 8031A284 00315EE4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A288 00315EE8 4B FF AC 31 */ bl VFiPFFILE_fclose
+/* 8031A28C 00315EEC 4B FF FF A5 */ bl VFiPFAPI_convertReturnValue
+/* 8031A290 00315EF0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A294 00315EF4 7C 08 03 A6 */ mtlr r0
+/* 8031A298 00315EF8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A29C 00315EFC 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_file.s b/asm/SDK/VF/pf_file.s index c78f06a..d1cb8fe 100644 --- a/asm/SDK/VF/pf_file.s +++ b/asm/SDK/VF/pf_file.s @@ -2950,7 +2950,7 @@ lbl_80315068: /* 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
+/* 803150AC 00310D0C 48 00 53 75 */ bl VFiPF_UnLockFile
lbl_803150B0:
/* 803150B0 00310D10 80 7D 00 08 */ lwz r3, 8(r29)
/* 803150B4 00310D14 A0 03 02 7C */ lhz r0, 0x27c(r3)
@@ -2970,7 +2970,7 @@ lbl_803150D8: /* 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
+/* 803150F0 00310D50 48 00 53 31 */ bl VFiPF_UnLockFile
/* 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
diff --git a/asm/SDK/VF/pf_filelock.s b/asm/SDK/VF/pf_filelock.s new file mode 100644 index 0000000..799b762 --- /dev/null +++ b/asm/SDK/VF/pf_filelock.s @@ -0,0 +1,14 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFiPF_InitLockFile
+VFiPF_InitLockFile:
+/* 8031A414 00316074 38 00 00 00 */ li r0, 0
+/* 8031A418 00316078 90 0D AF E0 */ stw r0, lbl_806402A0-_SDA_BASE_(r13)
+/* 8031A41C 0031607C 4E 80 00 20 */ blr
+
+.global VFiPF_UnLockFile
+VFiPF_UnLockFile:
+/* 8031A420 00316080 38 60 FF FF */ li r3, -1
+/* 8031A424 00316084 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_finfo.s b/asm/SDK/VF/pf_finfo.s new file mode 100644 index 0000000..5ba08d7 --- /dev/null +++ b/asm/SDK/VF/pf_finfo.s @@ -0,0 +1,15 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_finfo
+VFipf2_finfo:
+/* 8031A2A0 00315F00 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A2A4 00315F04 7C 08 02 A6 */ mflr r0
+/* 8031A2A8 00315F08 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A2AC 00315F0C 4B FF B7 4D */ bl VFiPFFILE_finfo
+/* 8031A2B0 00315F10 4B FF FF 81 */ bl VFiPFAPI_convertReturnValue
+/* 8031A2B4 00315F14 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A2B8 00315F18 7C 08 03 A6 */ mtlr r0
+/* 8031A2BC 00315F1C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A2C0 00315F20 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_fopen.s b/asm/SDK/VF/pf_fopen.s new file mode 100644 index 0000000..c1a1651 --- /dev/null +++ b/asm/SDK/VF/pf_fopen.s @@ -0,0 +1,49 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_fopen
+VFipf2_fopen:
+/* 8031A2C4 00315F24 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8031A2C8 00315F28 7C 08 02 A6 */ mflr r0
+/* 8031A2CC 00315F2C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8031A2D0 00315F30 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8031A2D4 00315F34 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8031A2D8 00315F38 7C 7E 1B 78 */ mr r30, r3
+/* 8031A2DC 00315F3C 7C 83 23 78 */ mr r3, r4
+/* 8031A2E0 00315F40 4B FF FE 31 */ bl VFiPFAPI_ParseOpenModeString
+/* 8031A2E4 00315F44 2C 03 00 00 */ cmpwi r3, 0
+/* 8031A2E8 00315F48 7C 7F 1B 78 */ mr r31, r3
+/* 8031A2EC 00315F4C 40 82 00 1C */ bne lbl_8031A308
+/* 8031A2F0 00315F50 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 8031A2F4 00315F54 38 00 00 0A */ li r0, 0xa
+/* 8031A2F8 00315F58 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 8031A2FC 00315F5C 38 60 00 00 */ li r3, 0
+/* 8031A300 00315F60 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 8031A304 00315F64 48 00 00 44 */ b lbl_8031A348
+lbl_8031A308:
+/* 8031A308 00315F68 7F C4 F3 78 */ mr r4, r30
+/* 8031A30C 00315F6C 38 61 00 10 */ addi r3, r1, 0x10
+/* 8031A310 00315F70 38 A0 00 01 */ li r5, 1
+/* 8031A314 00315F74 4B FE B1 09 */ bl VFiPFSTR_InitStr
+/* 8031A318 00315F78 2C 03 00 00 */ cmpwi r3, 0
+/* 8031A31C 00315F7C 40 82 00 18 */ bne lbl_8031A334
+/* 8031A320 00315F80 7F E4 FB 78 */ mr r4, r31
+/* 8031A324 00315F84 38 61 00 10 */ addi r3, r1, 0x10
+/* 8031A328 00315F88 38 A1 00 08 */ addi r5, r1, 8
+/* 8031A32C 00315F8C 4B FF AA 59 */ bl VFiPFFILE_fopen
+/* 8031A330 00315F90 48 00 00 10 */ b lbl_8031A340
+lbl_8031A334:
+/* 8031A334 00315F94 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha
+/* 8031A338 00315F98 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l
+/* 8031A33C 00315F9C 90 64 00 1C */ stw r3, 0x1c(r4)
+lbl_8031A340:
+/* 8031A340 00315FA0 80 81 00 08 */ lwz r4, 8(r1)
+/* 8031A344 00315FA4 4B FF FE FD */ bl VFiPFAPI_convertReturnValue2NULL
+lbl_8031A348:
+/* 8031A348 00315FA8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8031A34C 00315FAC 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8031A350 00315FB0 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8031A354 00315FB4 7C 08 03 A6 */ mtlr r0
+/* 8031A358 00315FB8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8031A35C 00315FBC 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_fread.s b/asm/SDK/VF/pf_fread.s new file mode 100644 index 0000000..582df31 --- /dev/null +++ b/asm/SDK/VF/pf_fread.s @@ -0,0 +1,16 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_fread
+VFipf2_fread:
+/* 8031A360 00315FC0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A364 00315FC4 7C 08 02 A6 */ mflr r0
+/* 8031A368 00315FC8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A36C 00315FCC 38 E1 00 08 */ addi r7, r1, 8
+/* 8031A370 00315FD0 4B FF AE A5 */ bl VFiPFFILE_fread
+/* 8031A374 00315FD4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A378 00315FD8 80 61 00 08 */ lwz r3, 8(r1)
+/* 8031A37C 00315FDC 7C 08 03 A6 */ mtlr r0
+/* 8031A380 00315FE0 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A384 00315FE4 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_fseek.s b/asm/SDK/VF/pf_fseek.s new file mode 100644 index 0000000..d100a96 --- /dev/null +++ b/asm/SDK/VF/pf_fseek.s @@ -0,0 +1,15 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_fseek
+VFipf2_fseek:
+/* 8031A388 00315FE8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A38C 00315FEC 7C 08 02 A6 */ mflr r0
+/* 8031A390 00315FF0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A394 00315FF4 4B FF B2 F1 */ bl VFiPFFILE_fseek
+/* 8031A398 00315FF8 4B FF FE 99 */ bl VFiPFAPI_convertReturnValue
+/* 8031A39C 00315FFC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A3A0 00316000 7C 08 03 A6 */ mtlr r0
+/* 8031A3A4 00316004 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A3A8 00316008 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_fwrite.s b/asm/SDK/VF/pf_fwrite.s new file mode 100644 index 0000000..3694637 --- /dev/null +++ b/asm/SDK/VF/pf_fwrite.s @@ -0,0 +1,16 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_fwrite
+VFipf2_fwrite:
+/* 8031A3AC 0031600C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A3B0 00316010 7C 08 02 A6 */ mflr r0
+/* 8031A3B4 00316014 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A3B8 00316018 38 E1 00 08 */ addi r7, r1, 8
+/* 8031A3BC 0031601C 4B FF B0 71 */ bl VFiPFFILE_fwrite
+/* 8031A3C0 00316020 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A3C4 00316024 80 61 00 08 */ lwz r3, 8(r1)
+/* 8031A3C8 00316028 7C 08 03 A6 */ mtlr r0
+/* 8031A3CC 0031602C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A3D0 00316030 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_init_prfile2.s b/asm/SDK/VF/pf_init_prfile2.s new file mode 100644 index 0000000..4dc383d --- /dev/null +++ b/asm/SDK/VF/pf_init_prfile2.s @@ -0,0 +1,23 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFipf2_init_prfile2
+VFipf2_init_prfile2:
+/* 8031A3D4 00316034 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A3D8 00316038 7C 08 02 A6 */ mflr r0
+/* 8031A3DC 0031603C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A3E0 00316040 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031A3E4 00316044 4B FF 84 2D */ bl VFiPFFATFS_initializeFATFS
+/* 8031A3E8 00316048 2C 03 00 00 */ cmpwi r3, 0
+/* 8031A3EC 0031604C 7C 7F 1B 78 */ mr r31, r3
+/* 8031A3F0 00316050 40 82 00 08 */ bne lbl_8031A3F8
+/* 8031A3F4 00316054 48 00 00 35 */ bl VFiPFSYS_initializeSYS
+lbl_8031A3F8:
+/* 8031A3F8 00316058 7F E3 FB 78 */ mr r3, r31
+/* 8031A3FC 0031605C 4B FF FE 35 */ bl VFiPFAPI_convertReturnValue
+/* 8031A400 00316060 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A404 00316064 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031A408 00316068 7C 08 03 A6 */ mtlr r0
+/* 8031A40C 0031606C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A410 00316070 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_system.s b/asm/SDK/VF/pf_system.s new file mode 100644 index 0000000..feaebde --- /dev/null +++ b/asm/SDK/VF/pf_system.s @@ -0,0 +1,42 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFiPFSYS_initializeSYS
+VFiPFSYS_initializeSYS:
+/* 8031A428 00316088 4E 80 00 20 */ blr
+
+.global VFiPFSYS_GetCurrentContextID
+VFiPFSYS_GetCurrentContextID:
+/* 8031A42C 0031608C 38 00 00 00 */ li r0, 0
+/* 8031A430 00316090 90 03 00 00 */ stw r0, 0(r3)
+/* 8031A434 00316094 38 60 00 00 */ li r3, 0
+/* 8031A438 00316098 4E 80 00 20 */ blr
+
+.global VFiPFSYS_TimeStamp
+VFiPFSYS_TimeStamp:
+/* 8031A43C 0031609C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8031A440 003160A0 7C 08 02 A6 */ mflr r0
+/* 8031A444 003160A4 38 A0 00 04 */ li r5, 4
+/* 8031A448 003160A8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8031A44C 003160AC 38 00 07 D0 */ li r0, 0x7d0
+/* 8031A450 003160B0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8031A454 003160B4 3B E0 00 01 */ li r31, 1
+/* 8031A458 003160B8 93 C1 00 08 */ stw r30, 8(r1)
+/* 8031A45C 003160BC 7C 9E 23 78 */ mr r30, r4
+/* 8031A460 003160C0 B0 03 00 00 */ sth r0, 0(r3)
+/* 8031A464 003160C4 38 00 00 00 */ li r0, 0
+/* 8031A468 003160C8 B0 A3 00 02 */ sth r5, 2(r3)
+/* 8031A46C 003160CC B3 E3 00 04 */ sth r31, 4(r3)
+/* 8031A470 003160D0 B0 04 00 00 */ sth r0, 0(r4)
+/* 8031A474 003160D4 B0 04 00 02 */ sth r0, 2(r4)
+/* 8031A478 003160D8 B0 04 00 04 */ sth r0, 4(r4)
+/* 8031A47C 003160DC B3 E4 00 06 */ sth r31, 6(r4)
+/* 8031A480 003160E0 48 00 16 D1 */ bl func_8031BB50
+/* 8031A484 003160E4 B3 FE 00 06 */ sth r31, 6(r30)
+/* 8031A488 003160E8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8031A48C 003160EC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8031A490 003160F0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8031A494 003160F4 7C 08 03 A6 */ mtlr r0
+/* 8031A498 003160F8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8031A49C 003160FC 4E 80 00 20 */ blr
diff --git a/asm/SDK/VF/pf_volume.s b/asm/SDK/VF/pf_volume.s index 7ddacbf..8b69c99 100644 --- a/asm/SDK/VF/pf_volume.s +++ b/asm/SDK/VF/pf_volume.s @@ -38,7 +38,7 @@ lbl_803190B4: /* 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
+/* 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
@@ -215,7 +215,7 @@ lbl_8031932C: /* 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
+/* 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)
@@ -511,7 +511,7 @@ lbl_80319728: /* 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
+/* 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
@@ -631,7 +631,7 @@ VFiPFVOL_SetCurrentVolume: /* 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
+/* 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
@@ -729,7 +729,7 @@ VFiPFVOL_GetCurrentVolume: /* 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
+/* 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
diff --git a/asm/text_10.s b/asm/text_10.s index 4351940..794544e 100644 --- a/asm/text_10.s +++ b/asm/text_10.s @@ -10031,7 +10031,7 @@ func_803318F4: /* 80331910 0032D570 3B 9C 9B A0 */ addi r28, r28, lbl_80449BA0@l /* 80331914 0032D574 2C 00 00 00 */ cmpwi r0, 0 /* 80331918 0032D578 40 82 01 14 */ bne lbl_80331A2C -/* 8033191C 0032D57C 4B FE 8B 85 */ bl func_8031A4A0 +/* 8033191C 0032D57C 4B FE 8B 85 */ bl VFIsAvailable /* 80331920 0032D580 7C 7D 1B 78 */ mr r29, r3 /* 80331924 0032D584 38 60 00 03 */ li r3, 3 /* 80331928 0032D588 38 80 40 00 */ li r4, 0x4000 @@ -10042,7 +10042,7 @@ func_803318F4: /* 8033193C 0032D59C 90 0D B0 78 */ stw r0, lbl_80640338-_SDA_BASE_(r13) /* 80331940 0032D5A0 7C 7A 1B 78 */ mr r26, r3 /* 80331944 0032D5A4 41 82 00 08 */ beq lbl_8033194C -/* 80331948 0032D5A8 4B FE 8B 6D */ bl func_8031A4B4 +/* 80331948 0032D5A8 4B FE 8B 6D */ bl VFInitEx lbl_8033194C: /* 8033194C 0032D5AC 3C 60 10 62 */ lis r3, 0x10624DD3@ha /* 80331950 0032D5B0 3F E0 80 00 */ lis r31, 0x8000 @@ -10102,7 +10102,7 @@ lbl_80331A04: lbl_80331A10: /* 80331A10 0032D670 2C 1D 00 01 */ cmpwi r29, 1 /* 80331A14 0032D674 41 82 00 08 */ beq lbl_80331A1C -/* 80331A18 0032D678 4B FE 8B 4D */ bl func_8031A564 +/* 80331A18 0032D678 4B FE 8B 4D */ bl VFFinalize lbl_80331A1C: /* 80331A1C 0032D67C 7F 44 D3 78 */ mr r4, r26 /* 80331A20 0032D680 38 60 00 03 */ li r3, 3 diff --git a/asm/text_9.s b/asm/text_9.s index 1cdfbba..3bd0d45 100644 --- a/asm/text_9.s +++ b/asm/text_9.s @@ -2228,11 +2228,11 @@ lbl_80301DD8: /* 80301DD8 002FDA38 7C 83 23 78 */ mr r3, r4
/* 80301DDC 002FDA3C 7F E4 FB 78 */ mr r4, r31
/* 80301DE0 002FDA40 38 A0 00 00 */ li r5, 0
-/* 80301DE4 002FDA44 48 01 88 C1 */ bl func_8031A6A4
+/* 80301DE4 002FDA44 48 01 88 C1 */ bl VFOpenFile
/* 80301DE8 002FDA48 2C 03 00 00 */ cmpwi r3, 0
/* 80301DEC 002FDA4C 90 7D 00 98 */ stw r3, 0x98(r29)
/* 80301DF0 002FDA50 40 82 00 88 */ bne lbl_80301E78
-/* 80301DF4 002FDA54 48 01 8B ED */ bl func_8031A9E0
+/* 80301DF4 002FDA54 48 01 8B ED */ bl VFGetLastError
/* 80301DF8 002FDA58 28 1E 01 09 */ cmplwi r30, 0x109
/* 80301DFC 002FDA5C 40 82 00 0C */ bne lbl_80301E08
/* 80301E00 002FDA60 38 00 00 00 */ li r0, 0
@@ -2249,7 +2249,7 @@ lbl_80301E24: /* 80301E24 002FDA84 2C 03 00 05 */ cmpwi r3, 5
/* 80301E28 002FDA88 40 82 00 48 */ bne lbl_80301E70
/* 80301E2C 002FDA8C 38 6D 8C 88 */ addi r3, r13, lbl_8063DF48-_SDA_BASE_
-/* 80301E30 002FDA90 48 01 8B B5 */ bl func_8031A9E4
+/* 80301E30 002FDA90 48 01 8B B5 */ bl VFGetLastDeviceError
/* 80301E34 002FDA94 2C 03 FF FB */ cmpwi r3, -5
/* 80301E38 002FDA98 41 82 00 20 */ beq lbl_80301E58
/* 80301E3C 002FDA9C 40 80 00 10 */ bge lbl_80301E4C
@@ -2308,13 +2308,13 @@ lbl_80301EDC: /* 80301EE0 002FDB40 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17
/* 80301EE4 002FDB44 41 82 00 70 */ beq lbl_80301F54
/* 80301EE8 002FDB48 80 7E 00 98 */ lwz r3, 0x98(r30)
-/* 80301EEC 002FDB4C 48 01 88 95 */ bl func_8031A780
+/* 80301EEC 002FDB4C 48 01 88 95 */ bl VFCloseFile
/* 80301EF0 002FDB50 2C 03 00 00 */ cmpwi r3, 0
/* 80301EF4 002FDB54 41 82 00 58 */ beq lbl_80301F4C
/* 80301EF8 002FDB58 2C 03 00 05 */ cmpwi r3, 5
/* 80301EFC 002FDB5C 40 82 00 48 */ bne lbl_80301F44
/* 80301F00 002FDB60 38 6D 8C 88 */ addi r3, r13, lbl_8063DF48-_SDA_BASE_
-/* 80301F04 002FDB64 48 01 8A E1 */ bl func_8031A9E4
+/* 80301F04 002FDB64 48 01 8A E1 */ bl VFGetLastDeviceError
/* 80301F08 002FDB68 2C 03 FF FB */ cmpwi r3, -5
/* 80301F0C 002FDB6C 41 82 00 20 */ beq lbl_80301F2C
/* 80301F10 002FDB70 40 80 00 10 */ bge lbl_80301F20
@@ -2433,13 +2433,13 @@ lbl_80302060: /* 80302084 002FDCE4 41 82 00 74 */ beq lbl_803020F8
/* 80302088 002FDCE8 80 63 00 98 */ lwz r3, 0x98(r3)
/* 8030208C 002FDCEC 7F E5 FB 78 */ mr r5, r31
-/* 80302090 002FDCF0 48 01 87 5D */ bl func_8031A7EC
+/* 80302090 002FDCF0 48 01 87 5D */ bl VFSeekFile
/* 80302094 002FDCF4 2C 03 00 00 */ cmpwi r3, 0
/* 80302098 002FDCF8 41 82 00 58 */ beq lbl_803020F0
/* 8030209C 002FDCFC 2C 03 00 05 */ cmpwi r3, 5
/* 803020A0 002FDD00 40 82 00 48 */ bne lbl_803020E8
/* 803020A4 002FDD04 38 6D 8C 88 */ addi r3, r13, lbl_8063DF48-_SDA_BASE_
-/* 803020A8 002FDD08 48 01 89 3D */ bl func_8031A9E4
+/* 803020A8 002FDD08 48 01 89 3D */ bl VFGetLastDeviceError
/* 803020AC 002FDD0C 2C 03 FF FB */ cmpwi r3, -5
/* 803020B0 002FDD10 41 82 00 20 */ beq lbl_803020D0
/* 803020B4 002FDD14 40 80 00 10 */ bge lbl_803020C4
@@ -2478,13 +2478,13 @@ lbl_80302118: /* 80302118 002FDD78 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17
/* 8030211C 002FDD7C 41 82 00 70 */ beq lbl_8030218C
/* 80302120 002FDD80 80 63 00 98 */ lwz r3, 0x98(r3)
-/* 80302124 002FDD84 48 01 86 C9 */ bl func_8031A7EC
+/* 80302124 002FDD84 48 01 86 C9 */ bl VFSeekFile
/* 80302128 002FDD88 2C 03 00 00 */ cmpwi r3, 0
/* 8030212C 002FDD8C 41 82 00 58 */ beq lbl_80302184
/* 80302130 002FDD90 2C 03 00 05 */ cmpwi r3, 5
/* 80302134 002FDD94 40 82 00 48 */ bne lbl_8030217C
/* 80302138 002FDD98 38 6D 8C 88 */ addi r3, r13, lbl_8063DF48-_SDA_BASE_
-/* 8030213C 002FDD9C 48 01 88 A9 */ bl func_8031A9E4
+/* 8030213C 002FDD9C 48 01 88 A9 */ bl VFGetLastDeviceError
/* 80302140 002FDDA0 2C 03 FF FB */ cmpwi r3, -5
/* 80302144 002FDDA4 41 82 00 20 */ beq lbl_80302164
/* 80302148 002FDDA8 40 80 00 10 */ bge lbl_80302158
@@ -2594,13 +2594,13 @@ lbl_80302294: /* 803022A0 002FDF00 7E E4 BB 78 */ mr r4, r23
/* 803022A4 002FDF04 7F 05 C3 78 */ mr r5, r24
/* 803022A8 002FDF08 38 C0 00 00 */ li r6, 0
-/* 803022AC 002FDF0C 48 01 85 CD */ bl func_8031A878
+/* 803022AC 002FDF0C 48 01 85 CD */ bl VFReadFile
/* 803022B0 002FDF10 2C 03 00 00 */ cmpwi r3, 0
/* 803022B4 002FDF14 41 82 00 58 */ beq lbl_8030230C
/* 803022B8 002FDF18 2C 03 00 05 */ cmpwi r3, 5
/* 803022BC 002FDF1C 40 82 00 48 */ bne lbl_80302304
/* 803022C0 002FDF20 38 6D 8C 88 */ addi r3, r13, lbl_8063DF48-_SDA_BASE_
-/* 803022C4 002FDF24 48 01 87 21 */ bl func_8031A9E4
+/* 803022C4 002FDF24 48 01 87 21 */ bl VFGetLastDeviceError
/* 803022C8 002FDF28 2C 03 FF FB */ cmpwi r3, -5
/* 803022CC 002FDF2C 41 82 00 20 */ beq lbl_803022EC
/* 803022D0 002FDF30 40 80 00 10 */ bge lbl_803022E0
@@ -2731,13 +2731,13 @@ lbl_80302460: /* 80302468 002FE0C8 80 65 00 98 */ lwz r3, 0x98(r5)
/* 8030246C 002FE0CC 7E E4 BB 78 */ mr r4, r23
/* 80302470 002FE0D0 7F 05 C3 78 */ mr r5, r24
-/* 80302474 002FE0D4 48 01 84 A1 */ bl func_8031A914
+/* 80302474 002FE0D4 48 01 84 A1 */ bl VFWriteFile
/* 80302478 002FE0D8 2C 03 00 00 */ cmpwi r3, 0
/* 8030247C 002FE0DC 41 82 00 58 */ beq lbl_803024D4
/* 80302480 002FE0E0 2C 03 00 05 */ cmpwi r3, 5
/* 80302484 002FE0E4 40 82 00 48 */ bne lbl_803024CC
/* 80302488 002FE0E8 38 6D 8C 88 */ addi r3, r13, lbl_8063DF48-_SDA_BASE_
-/* 8030248C 002FE0EC 48 01 85 59 */ bl func_8031A9E4
+/* 8030248C 002FE0EC 48 01 85 59 */ bl VFGetLastDeviceError
/* 80302490 002FE0F0 2C 03 FF FB */ cmpwi r3, -5
/* 80302494 002FE0F4 41 82 00 20 */ beq lbl_803024B4
/* 80302498 002FE0F8 40 80 00 10 */ bge lbl_803024A8
@@ -2840,13 +2840,13 @@ func_803025B8: /* 803025D0 002FE230 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17
/* 803025D4 002FE234 41 82 00 74 */ beq lbl_80302648
/* 803025D8 002FE238 80 63 00 98 */ lwz r3, 0x98(r3)
-/* 803025DC 002FE23C 48 01 83 C5 */ bl func_8031A9A0
+/* 803025DC 002FE23C 48 01 83 C5 */ bl VFGetFileSizeByFd
/* 803025E0 002FE240 2C 03 00 00 */ cmpwi r3, 0
/* 803025E4 002FE244 40 80 00 58 */ bge lbl_8030263C
/* 803025E8 002FE248 2C 03 00 05 */ cmpwi r3, 5
/* 803025EC 002FE24C 40 82 00 48 */ bne lbl_80302634
/* 803025F0 002FE250 38 6D 8C 88 */ addi r3, r13, lbl_8063DF48-_SDA_BASE_
-/* 803025F4 002FE254 48 01 83 F1 */ bl func_8031A9E4
+/* 803025F4 002FE254 48 01 83 F1 */ bl VFGetLastDeviceError
/* 803025F8 002FE258 2C 03 FF FB */ cmpwi r3, -5
/* 803025FC 002FE25C 41 82 00 20 */ beq lbl_8030261C
/* 80302600 002FE260 40 80 00 10 */ bge lbl_80302610
@@ -2928,13 +2928,13 @@ lbl_803026C8: /* 803026FC 002FE35C 80 77 00 98 */ lwz r3, 0x98(r23)
/* 80302700 002FE360 7F 84 E3 78 */ mr r4, r28
/* 80302704 002FE364 38 A0 02 00 */ li r5, 0x200
-/* 80302708 002FE368 48 01 82 0D */ bl func_8031A914
+/* 80302708 002FE368 48 01 82 0D */ bl VFWriteFile
/* 8030270C 002FE36C 2C 03 00 00 */ cmpwi r3, 0
/* 80302710 002FE370 41 82 00 CC */ beq lbl_803027DC
/* 80302714 002FE374 2C 03 00 05 */ cmpwi r3, 5
/* 80302718 002FE378 40 82 00 48 */ bne lbl_80302760
/* 8030271C 002FE37C 38 6D 8C 88 */ addi r3, r13, lbl_8063DF48-_SDA_BASE_
-/* 80302720 002FE380 48 01 82 C5 */ bl func_8031A9E4
+/* 80302720 002FE380 48 01 82 C5 */ bl VFGetLastDeviceError
/* 80302724 002FE384 2C 03 FF FB */ cmpwi r3, -5
/* 80302728 002FE388 41 82 00 20 */ beq lbl_80302748
/* 8030272C 002FE38C 40 80 00 10 */ bge lbl_8030273C
@@ -3037,13 +3037,13 @@ lbl_80302854: /* 80302868 002FE4C8 80 63 00 98 */ lwz r3, 0x98(r3)
/* 8030286C 002FE4CC 7F C4 F3 78 */ mr r4, r30
/* 80302870 002FE4D0 7F E5 FB 78 */ mr r5, r31
-/* 80302874 002FE4D4 48 01 80 A1 */ bl func_8031A914
+/* 80302874 002FE4D4 48 01 80 A1 */ bl VFWriteFile
/* 80302878 002FE4D8 2C 03 00 00 */ cmpwi r3, 0
/* 8030287C 002FE4DC 41 82 00 54 */ beq lbl_803028D0
/* 80302880 002FE4E0 2C 03 00 05 */ cmpwi r3, 5
/* 80302884 002FE4E4 40 82 00 48 */ bne lbl_803028CC
/* 80302888 002FE4E8 38 6D 8C 88 */ addi r3, r13, lbl_8063DF48-_SDA_BASE_
-/* 8030288C 002FE4EC 48 01 81 59 */ bl func_8031A9E4
+/* 8030288C 002FE4EC 48 01 81 59 */ bl VFGetLastDeviceError
/* 80302890 002FE4F0 2C 03 FF FB */ cmpwi r3, -5
/* 80302894 002FE4F4 41 82 00 20 */ beq lbl_803028B4
/* 80302898 002FE4F8 40 80 00 10 */ bge lbl_803028A8
@@ -3163,13 +3163,13 @@ lbl_80302A04: /* 80302A14 002FE674 7E 84 A3 78 */ mr r4, r20
/* 80302A18 002FE678 7F 05 C3 78 */ mr r5, r24
/* 80302A1C 002FE67C 38 C1 00 08 */ addi r6, r1, 8
-/* 80302A20 002FE680 48 01 7E 59 */ bl func_8031A878
+/* 80302A20 002FE680 48 01 7E 59 */ bl VFReadFile
/* 80302A24 002FE684 2C 03 00 00 */ cmpwi r3, 0
/* 80302A28 002FE688 41 82 00 58 */ beq lbl_80302A80
/* 80302A2C 002FE68C 2C 03 00 05 */ cmpwi r3, 5
/* 80302A30 002FE690 40 82 00 48 */ bne lbl_80302A78
/* 80302A34 002FE694 38 6D 8C 88 */ addi r3, r13, lbl_8063DF48-_SDA_BASE_
-/* 80302A38 002FE698 48 01 7F AD */ bl func_8031A9E4
+/* 80302A38 002FE698 48 01 7F AD */ bl VFGetLastDeviceError
/* 80302A3C 002FE69C 2C 03 FF FB */ cmpwi r3, -5
/* 80302A40 002FE6A0 41 82 00 20 */ beq lbl_80302A60
/* 80302A44 002FE6A4 40 80 00 10 */ bge lbl_80302A54
@@ -3663,7 +3663,7 @@ lbl_803030AC: /* 803030C8 002FED28 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803030CC 002FED2C 7C 9D 23 78 */ mr r29, r4
/* 803030D0 002FED30 90 0D AF 9C */ stw r0, lbl_8064025C-_SDA_BASE_(r13)
-/* 803030D4 002FED34 48 01 73 CD */ bl func_8031A4A0
+/* 803030D4 002FED34 48 01 73 CD */ bl VFIsAvailable
/* 803030D8 002FED38 2C 03 00 00 */ cmpwi r3, 0
/* 803030DC 002FED3C 40 82 00 0C */ bne lbl_803030E8
/* 803030E0 002FED40 38 60 FF FF */ li r3, -1
diff --git a/asm/text_9_2.s b/asm/text_9_2.s index 7f042ab..e2e4fa7 100644 --- a/asm/text_9_2.s +++ b/asm/text_9_2.s @@ -2,1640 +2,6 @@ .section .text, "ax" # 0x80006980 - 0x803E1E60 -.global VFipf2_errnum -VFipf2_errnum: -/* 8031A258 00315EB8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A25C 00315EBC 7C 08 02 A6 */ mflr r0 -/* 8031A260 00315EC0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A264 00315EC4 4B FF F9 8D */ bl VFiPFVOL_errnum -/* 8031A268 00315EC8 4B FF FF 79 */ bl VFiPFAPI_convertError -/* 8031A26C 00315ECC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031A270 00315ED0 7C 08 03 A6 */ mtlr r0 -/* 8031A274 00315ED4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031A278 00315ED8 4E 80 00 20 */ blr - -.global VFipf2_fclose -VFipf2_fclose: -/* 8031A27C 00315EDC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A280 00315EE0 7C 08 02 A6 */ mflr r0 -/* 8031A284 00315EE4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A288 00315EE8 4B FF AC 31 */ bl VFiPFFILE_fclose -/* 8031A28C 00315EEC 4B FF FF A5 */ bl VFiPFAPI_convertReturnValue -/* 8031A290 00315EF0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031A294 00315EF4 7C 08 03 A6 */ mtlr r0 -/* 8031A298 00315EF8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031A29C 00315EFC 4E 80 00 20 */ blr - -.global VFipf2_finfo -VFipf2_finfo: -/* 8031A2A0 00315F00 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A2A4 00315F04 7C 08 02 A6 */ mflr r0 -/* 8031A2A8 00315F08 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A2AC 00315F0C 4B FF B7 4D */ bl VFiPFFILE_finfo -/* 8031A2B0 00315F10 4B FF FF 81 */ bl VFiPFAPI_convertReturnValue -/* 8031A2B4 00315F14 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031A2B8 00315F18 7C 08 03 A6 */ mtlr r0 -/* 8031A2BC 00315F1C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031A2C0 00315F20 4E 80 00 20 */ blr - -.global VFipf2_fopen -VFipf2_fopen: -/* 8031A2C4 00315F24 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8031A2C8 00315F28 7C 08 02 A6 */ mflr r0 -/* 8031A2CC 00315F2C 90 01 00 34 */ stw r0, 0x34(r1) -/* 8031A2D0 00315F30 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 8031A2D4 00315F34 93 C1 00 28 */ stw r30, 0x28(r1) -/* 8031A2D8 00315F38 7C 7E 1B 78 */ mr r30, r3 -/* 8031A2DC 00315F3C 7C 83 23 78 */ mr r3, r4 -/* 8031A2E0 00315F40 4B FF FE 31 */ bl VFiPFAPI_ParseOpenModeString -/* 8031A2E4 00315F44 2C 03 00 00 */ cmpwi r3, 0 -/* 8031A2E8 00315F48 7C 7F 1B 78 */ mr r31, r3 -/* 8031A2EC 00315F4C 40 82 00 1C */ bne lbl_8031A308 -/* 8031A2F0 00315F50 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha -/* 8031A2F4 00315F54 38 00 00 0A */ li r0, 0xa -/* 8031A2F8 00315F58 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l -/* 8031A2FC 00315F5C 38 60 00 00 */ li r3, 0 -/* 8031A300 00315F60 90 04 00 1C */ stw r0, 0x1c(r4) -/* 8031A304 00315F64 48 00 00 44 */ b lbl_8031A348 -lbl_8031A308: -/* 8031A308 00315F68 7F C4 F3 78 */ mr r4, r30 -/* 8031A30C 00315F6C 38 61 00 10 */ addi r3, r1, 0x10 -/* 8031A310 00315F70 38 A0 00 01 */ li r5, 1 -/* 8031A314 00315F74 4B FE B1 09 */ bl VFiPFSTR_InitStr -/* 8031A318 00315F78 2C 03 00 00 */ cmpwi r3, 0 -/* 8031A31C 00315F7C 40 82 00 18 */ bne lbl_8031A334 -/* 8031A320 00315F80 7F E4 FB 78 */ mr r4, r31 -/* 8031A324 00315F84 38 61 00 10 */ addi r3, r1, 0x10 -/* 8031A328 00315F88 38 A1 00 08 */ addi r5, r1, 8 -/* 8031A32C 00315F8C 4B FF AA 59 */ bl VFiPFFILE_fopen -/* 8031A330 00315F90 48 00 00 10 */ b lbl_8031A340 -lbl_8031A334: -/* 8031A334 00315F94 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha -/* 8031A338 00315F98 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l -/* 8031A33C 00315F9C 90 64 00 1C */ stw r3, 0x1c(r4) -lbl_8031A340: -/* 8031A340 00315FA0 80 81 00 08 */ lwz r4, 8(r1) -/* 8031A344 00315FA4 4B FF FE FD */ bl VFiPFAPI_convertReturnValue2NULL -lbl_8031A348: -/* 8031A348 00315FA8 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8031A34C 00315FAC 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 8031A350 00315FB0 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 8031A354 00315FB4 7C 08 03 A6 */ mtlr r0 -/* 8031A358 00315FB8 38 21 00 30 */ addi r1, r1, 0x30 -/* 8031A35C 00315FBC 4E 80 00 20 */ blr - -.global VFipf2_fread -VFipf2_fread: -/* 8031A360 00315FC0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A364 00315FC4 7C 08 02 A6 */ mflr r0 -/* 8031A368 00315FC8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A36C 00315FCC 38 E1 00 08 */ addi r7, r1, 8 -/* 8031A370 00315FD0 4B FF AE A5 */ bl VFiPFFILE_fread -/* 8031A374 00315FD4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031A378 00315FD8 80 61 00 08 */ lwz r3, 8(r1) -/* 8031A37C 00315FDC 7C 08 03 A6 */ mtlr r0 -/* 8031A380 00315FE0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031A384 00315FE4 4E 80 00 20 */ blr - -.global VFipf2_fseek -VFipf2_fseek: -/* 8031A388 00315FE8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A38C 00315FEC 7C 08 02 A6 */ mflr r0 -/* 8031A390 00315FF0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A394 00315FF4 4B FF B2 F1 */ bl VFiPFFILE_fseek -/* 8031A398 00315FF8 4B FF FE 99 */ bl VFiPFAPI_convertReturnValue -/* 8031A39C 00315FFC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031A3A0 00316000 7C 08 03 A6 */ mtlr r0 -/* 8031A3A4 00316004 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031A3A8 00316008 4E 80 00 20 */ blr - -.global VFipf2_fwrite -VFipf2_fwrite: -/* 8031A3AC 0031600C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A3B0 00316010 7C 08 02 A6 */ mflr r0 -/* 8031A3B4 00316014 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A3B8 00316018 38 E1 00 08 */ addi r7, r1, 8 -/* 8031A3BC 0031601C 4B FF B0 71 */ bl VFiPFFILE_fwrite -/* 8031A3C0 00316020 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031A3C4 00316024 80 61 00 08 */ lwz r3, 8(r1) -/* 8031A3C8 00316028 7C 08 03 A6 */ mtlr r0 -/* 8031A3CC 0031602C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031A3D0 00316030 4E 80 00 20 */ blr - -.global VFipf2_init_prfile2 -VFipf2_init_prfile2: -/* 8031A3D4 00316034 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A3D8 00316038 7C 08 02 A6 */ mflr r0 -/* 8031A3DC 0031603C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A3E0 00316040 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8031A3E4 00316044 4B FF 84 2D */ bl VFiPFFATFS_initializeFATFS -/* 8031A3E8 00316048 2C 03 00 00 */ cmpwi r3, 0 -/* 8031A3EC 0031604C 7C 7F 1B 78 */ mr r31, r3 -/* 8031A3F0 00316050 40 82 00 08 */ bne lbl_8031A3F8 -/* 8031A3F4 00316054 48 00 00 35 */ bl func_8031A428 -lbl_8031A3F8: -/* 8031A3F8 00316058 7F E3 FB 78 */ mr r3, r31 -/* 8031A3FC 0031605C 4B FF FE 35 */ bl VFiPFAPI_convertReturnValue -/* 8031A400 00316060 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031A404 00316064 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8031A408 00316068 7C 08 03 A6 */ mtlr r0 -/* 8031A40C 0031606C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031A410 00316070 4E 80 00 20 */ blr - -.global func_8031A414 -func_8031A414: -/* 8031A414 00316074 38 00 00 00 */ li r0, 0 -/* 8031A418 00316078 90 0D AF E0 */ stw r0, lbl_806402A0-_SDA_BASE_(r13) -/* 8031A41C 0031607C 4E 80 00 20 */ blr - -.global func_8031A420 -func_8031A420: -/* 8031A420 00316080 38 60 FF FF */ li r3, -1 -/* 8031A424 00316084 4E 80 00 20 */ blr - -.global func_8031A428 -func_8031A428: -/* 8031A428 00316088 4E 80 00 20 */ blr - -.global MWInitializeMutex -MWInitializeMutex: -/* 8031A42C 0031608C 38 00 00 00 */ li r0, 0 -/* 8031A430 00316090 90 03 00 00 */ stw r0, 0(r3) -/* 8031A434 00316094 38 60 00 00 */ li r3, 0 -/* 8031A438 00316098 4E 80 00 20 */ blr - -.global func_8031A43C -func_8031A43C: -/* 8031A43C 0031609C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A440 003160A0 7C 08 02 A6 */ mflr r0 -/* 8031A444 003160A4 38 A0 00 04 */ li r5, 4 -/* 8031A448 003160A8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A44C 003160AC 38 00 07 D0 */ li r0, 0x7d0 -/* 8031A450 003160B0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8031A454 003160B4 3B E0 00 01 */ li r31, 1 -/* 8031A458 003160B8 93 C1 00 08 */ stw r30, 8(r1) -/* 8031A45C 003160BC 7C 9E 23 78 */ mr r30, r4 -/* 8031A460 003160C0 B0 03 00 00 */ sth r0, 0(r3) -/* 8031A464 003160C4 38 00 00 00 */ li r0, 0 -/* 8031A468 003160C8 B0 A3 00 02 */ sth r5, 2(r3) -/* 8031A46C 003160CC B3 E3 00 04 */ sth r31, 4(r3) -/* 8031A470 003160D0 B0 04 00 00 */ sth r0, 0(r4) -/* 8031A474 003160D4 B0 04 00 02 */ sth r0, 2(r4) -/* 8031A478 003160D8 B0 04 00 04 */ sth r0, 4(r4) -/* 8031A47C 003160DC B3 E4 00 06 */ sth r31, 6(r4) -/* 8031A480 003160E0 48 00 16 D1 */ bl func_8031BB50 -/* 8031A484 003160E4 B3 FE 00 06 */ sth r31, 6(r30) -/* 8031A488 003160E8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8031A48C 003160EC 83 C1 00 08 */ lwz r30, 8(r1) -/* 8031A490 003160F0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031A494 003160F4 7C 08 03 A6 */ mtlr r0 -/* 8031A498 003160F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031A49C 003160FC 4E 80 00 20 */ blr - -.global func_8031A4A0 -func_8031A4A0: -/* 8031A4A0 00316100 80 6D AF E8 */ lwz r3, lbl_806402A8-_SDA_BASE_(r13) -/* 8031A4A4 00316104 7C 03 00 D0 */ neg r0, r3 -/* 8031A4A8 00316108 7C 00 1B 78 */ or r0, r0, r3 -/* 8031A4AC 0031610C 54 03 0F FE */ srwi r3, r0, 0x1f -/* 8031A4B0 00316110 4E 80 00 20 */ blr - -.global func_8031A4B4 -func_8031A4B4: -/* 8031A4B4 00316114 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A4B8 00316118 7C 08 02 A6 */ mflr r0 -/* 8031A4BC 0031611C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A4C0 00316120 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A4C4 00316124 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A4C8 00316128 40 82 00 18 */ bne lbl_8031A4E0 -/* 8031A4CC 0031612C 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A4D0 00316130 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A4D4 00316134 4B F5 54 3D */ bl OSInitMutex -/* 8031A4D8 00316138 38 00 00 01 */ li r0, 1 -/* 8031A4DC 0031613C 90 0D AF EC */ stw r0, lbl_806402AC-_SDA_BASE_(r13) -lbl_8031A4E0: -/* 8031A4E0 00316140 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A4E4 00316144 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A4E8 00316148 41 82 00 10 */ beq lbl_8031A4F8 -/* 8031A4EC 0031614C 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A4F0 00316150 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A4F4 00316154 4B F5 54 55 */ bl OSLockMutex -lbl_8031A4F8: -/* 8031A4F8 00316158 80 0D AF E8 */ lwz r0, lbl_806402A8-_SDA_BASE_(r13) -/* 8031A4FC 0031615C 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A500 00316160 40 82 00 3C */ bne lbl_8031A53C -/* 8031A504 00316164 38 00 00 01 */ li r0, 1 -/* 8031A508 00316168 3C 60 80 5A */ lis r3, lbl_805A75A0@ha -/* 8031A50C 0031616C 3C 80 00 07 */ lis r4, 0x00068000@ha -/* 8031A510 00316170 90 0D AF E8 */ stw r0, lbl_806402A8-_SDA_BASE_(r13) -/* 8031A514 00316174 38 63 75 A0 */ addi r3, r3, lbl_805A75A0@l -/* 8031A518 00316178 38 84 80 00 */ addi r4, r4, 0x00068000@l -/* 8031A51C 0031617C 48 00 07 05 */ bl func_8031AC20 -/* 8031A520 00316180 38 60 00 00 */ li r3, 0 -/* 8031A524 00316184 38 80 00 00 */ li r4, 0 -/* 8031A528 00316188 4B FE E8 89 */ bl VFipdm_init_diskmanager -/* 8031A52C 0031618C 38 60 00 00 */ li r3, 0 -/* 8031A530 00316190 38 80 00 00 */ li r4, 0 -/* 8031A534 00316194 4B FF FE A1 */ bl VFipf2_init_prfile2 -/* 8031A538 00316198 48 00 13 25 */ bl func_8031B85C -lbl_8031A53C: -/* 8031A53C 0031619C 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A540 003161A0 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A544 003161A4 41 82 00 10 */ beq lbl_8031A554 -/* 8031A548 003161A8 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A54C 003161AC 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A550 003161B0 4B F5 54 D5 */ bl OSUnlockMutex -lbl_8031A554: -/* 8031A554 003161B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031A558 003161B8 7C 08 03 A6 */ mtlr r0 -/* 8031A55C 003161BC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031A560 003161C0 4E 80 00 20 */ blr - -.global func_8031A564 -func_8031A564: -/* 8031A564 003161C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A568 003161C8 7C 08 02 A6 */ mflr r0 -/* 8031A56C 003161CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A570 003161D0 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A574 003161D4 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A578 003161D8 41 82 00 10 */ beq lbl_8031A588 -/* 8031A57C 003161DC 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A580 003161E0 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A584 003161E4 4B F5 53 C5 */ bl OSLockMutex -lbl_8031A588: -/* 8031A588 003161E8 80 0D AF E8 */ lwz r0, lbl_806402A8-_SDA_BASE_(r13) -/* 8031A58C 003161EC 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A590 003161F0 41 82 00 10 */ beq lbl_8031A5A0 -/* 8031A594 003161F4 48 00 08 11 */ bl func_8031ADA4 -/* 8031A598 003161F8 38 00 00 00 */ li r0, 0 -/* 8031A59C 003161FC 90 0D AF E8 */ stw r0, lbl_806402A8-_SDA_BASE_(r13) -lbl_8031A5A0: -/* 8031A5A0 00316200 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A5A4 00316204 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A5A8 00316208 41 82 00 10 */ beq lbl_8031A5B8 -/* 8031A5AC 0031620C 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A5B0 00316210 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A5B4 00316214 4B F5 54 71 */ bl OSUnlockMutex -lbl_8031A5B8: -/* 8031A5B8 00316218 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031A5BC 0031621C 7C 08 03 A6 */ mtlr r0 -/* 8031A5C0 00316220 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031A5C4 00316224 4E 80 00 20 */ blr - -.global func_8031A5C8 -func_8031A5C8: -/* 8031A5C8 00316228 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8031A5CC 0031622C 7C 08 02 A6 */ mflr r0 -/* 8031A5D0 00316230 38 A0 00 08 */ li r5, 8 -/* 8031A5D4 00316234 90 01 00 24 */ stw r0, 0x24(r1) -/* 8031A5D8 00316238 38 00 FF FF */ li r0, -1 -/* 8031A5DC 0031623C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8031A5E0 00316240 7C 9F 23 78 */ mr r31, r4 -/* 8031A5E4 00316244 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8031A5E8 00316248 3B C0 00 00 */ li r30, 0 -/* 8031A5EC 0031624C 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8031A5F0 00316250 7C 9D 23 78 */ mr r29, r4 -/* 8031A5F4 00316254 38 80 00 00 */ li r4, 0 -/* 8031A5F8 00316258 93 81 00 10 */ stw r28, 0x10(r1) -/* 8031A5FC 0031625C 7C 7C 1B 78 */ mr r28, r3 -/* 8031A600 00316260 90 03 00 00 */ stw r0, 0(r3) -/* 8031A604 00316264 38 61 00 08 */ addi r3, r1, 8 -/* 8031A608 00316268 4B FE A9 CD */ bl VFipf_memset -/* 8031A60C 0031626C 38 61 00 08 */ addi r3, r1, 8 -/* 8031A610 00316270 48 00 00 64 */ b lbl_8031A674 -lbl_8031A614: -/* 8031A614 00316274 7C 80 07 74 */ extsb r0, r4 -/* 8031A618 00316278 2C 00 00 5C */ cmpwi r0, 0x5c -/* 8031A61C 0031627C 41 82 00 64 */ beq lbl_8031A680 -/* 8031A620 00316280 2C 00 00 2F */ cmpwi r0, 0x2f -/* 8031A624 00316284 41 82 00 5C */ beq lbl_8031A680 -/* 8031A628 00316288 2C 00 00 3A */ cmpwi r0, 0x3a -/* 8031A62C 0031628C 40 82 00 30 */ bne lbl_8031A65C -/* 8031A630 00316290 38 61 00 08 */ addi r3, r1, 8 -/* 8031A634 00316294 48 00 14 BD */ bl func_8031BAF0 -/* 8031A638 00316298 2C 03 FF FF */ cmpwi r3, -1 -/* 8031A63C 0031629C 90 7C 00 00 */ stw r3, 0(r28) -/* 8031A640 003162A0 41 82 00 0C */ beq lbl_8031A64C -/* 8031A644 003162A4 2C 1E 00 07 */ cmpwi r30, 7 -/* 8031A648 003162A8 40 81 00 0C */ ble lbl_8031A654 -lbl_8031A64C: -/* 8031A64C 003162AC 3B A0 00 00 */ li r29, 0 -/* 8031A650 003162B0 48 00 00 30 */ b lbl_8031A680 -lbl_8031A654: -/* 8031A654 003162B4 3B BF 00 01 */ addi r29, r31, 1 -/* 8031A658 003162B8 48 00 00 28 */ b lbl_8031A680 -lbl_8031A65C: -/* 8031A65C 003162BC 2C 1E 00 07 */ cmpwi r30, 7 -/* 8031A660 003162C0 40 80 00 08 */ bge lbl_8031A668 -/* 8031A664 003162C4 98 83 00 00 */ stb r4, 0(r3) -lbl_8031A668: -/* 8031A668 003162C8 3B FF 00 01 */ addi r31, r31, 1 -/* 8031A66C 003162CC 38 63 00 01 */ addi r3, r3, 1 -/* 8031A670 003162D0 3B DE 00 01 */ addi r30, r30, 1 -lbl_8031A674: -/* 8031A674 003162D4 88 9F 00 00 */ lbz r4, 0(r31) -/* 8031A678 003162D8 7C 80 07 75 */ extsb. r0, r4 -/* 8031A67C 003162DC 40 82 FF 98 */ bne lbl_8031A614 -lbl_8031A680: -/* 8031A680 003162E0 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8031A684 003162E4 7F A3 EB 78 */ mr r3, r29 -/* 8031A688 003162E8 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8031A68C 003162EC 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8031A690 003162F0 83 81 00 10 */ lwz r28, 0x10(r1) -/* 8031A694 003162F4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8031A698 003162F8 7C 08 03 A6 */ mtlr r0 -/* 8031A69C 003162FC 38 21 00 20 */ addi r1, r1, 0x20 -/* 8031A6A0 00316300 4E 80 00 20 */ blr - -.global func_8031A6A4 -func_8031A6A4: -/* 8031A6A4 00316304 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8031A6A8 00316308 7C 08 02 A6 */ mflr r0 -/* 8031A6AC 0031630C 38 A0 FF FF */ li r5, -1 -/* 8031A6B0 00316310 90 01 00 24 */ stw r0, 0x24(r1) -/* 8031A6B4 00316314 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8031A6B8 00316318 7C 9F 23 78 */ mr r31, r4 -/* 8031A6BC 0031631C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8031A6C0 00316320 7C 7E 1B 78 */ mr r30, r3 -/* 8031A6C4 00316324 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A6C8 00316328 90 A1 00 08 */ stw r5, 8(r1) -/* 8031A6CC 0031632C 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A6D0 00316330 41 82 00 10 */ beq lbl_8031A6E0 -/* 8031A6D4 00316334 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A6D8 00316338 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A6DC 0031633C 4B F5 52 6D */ bl OSLockMutex -lbl_8031A6E0: -/* 8031A6E0 00316340 7F C4 F3 78 */ mr r4, r30 -/* 8031A6E4 00316344 38 61 00 08 */ addi r3, r1, 8 -/* 8031A6E8 00316348 4B FF FE E1 */ bl func_8031A5C8 -/* 8031A6EC 0031634C 2C 03 00 00 */ cmpwi r3, 0 -/* 8031A6F0 00316350 7C 64 1B 78 */ mr r4, r3 -/* 8031A6F4 00316354 40 82 00 30 */ bne lbl_8031A724 -/* 8031A6F8 00316358 3C 60 00 01 */ lis r3, 0x0000B003@ha -/* 8031A6FC 0031635C 38 63 B0 03 */ addi r3, r3, 0x0000B003@l -/* 8031A700 00316360 48 00 03 6D */ bl func_8031AA6C -/* 8031A704 00316364 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A708 00316368 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A70C 0031636C 41 82 00 10 */ beq lbl_8031A71C -/* 8031A710 00316370 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A714 00316374 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A718 00316378 4B F5 53 0D */ bl OSUnlockMutex -lbl_8031A71C: -/* 8031A71C 0031637C 38 60 00 00 */ li r3, 0 -/* 8031A720 00316380 48 00 00 48 */ b lbl_8031A768 -lbl_8031A724: -/* 8031A724 00316384 80 01 00 08 */ lwz r0, 8(r1) -/* 8031A728 00316388 2C 00 FF FF */ cmpwi r0, -1 -/* 8031A72C 0031638C 41 82 00 14 */ beq lbl_8031A740 -/* 8031A730 00316390 7C 03 03 78 */ mr r3, r0 -/* 8031A734 00316394 7F E5 FB 78 */ mr r5, r31 -/* 8031A738 00316398 48 00 08 E5 */ bl func_8031B01C -/* 8031A73C 0031639C 48 00 00 0C */ b lbl_8031A748 -lbl_8031A740: -/* 8031A740 003163A0 7F E4 FB 78 */ mr r4, r31 -/* 8031A744 003163A4 48 00 07 ED */ bl func_8031AF30 -lbl_8031A748: -/* 8031A748 003163A8 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A74C 003163AC 7C 7F 1B 78 */ mr r31, r3 -/* 8031A750 003163B0 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A754 003163B4 41 82 00 10 */ beq lbl_8031A764 -/* 8031A758 003163B8 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A75C 003163BC 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A760 003163C0 4B F5 52 C5 */ bl OSUnlockMutex -lbl_8031A764: -/* 8031A764 003163C4 7F E3 FB 78 */ mr r3, r31 -lbl_8031A768: -/* 8031A768 003163C8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8031A76C 003163CC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8031A770 003163D0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8031A774 003163D4 7C 08 03 A6 */ mtlr r0 -/* 8031A778 003163D8 38 21 00 20 */ addi r1, r1, 0x20 -/* 8031A77C 003163DC 4E 80 00 20 */ blr - -.global func_8031A780 -func_8031A780: -/* 8031A780 003163E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A784 003163E4 7C 08 02 A6 */ mflr r0 -/* 8031A788 003163E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A78C 003163EC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8031A790 003163F0 7C 7F 1B 78 */ mr r31, r3 -/* 8031A794 003163F4 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A798 003163F8 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A79C 003163FC 41 82 00 10 */ beq lbl_8031A7AC -/* 8031A7A0 00316400 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A7A4 00316404 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A7A8 00316408 4B F5 51 A1 */ bl OSLockMutex -lbl_8031A7AC: -/* 8031A7AC 0031640C 7F E3 FB 78 */ mr r3, r31 -/* 8031A7B0 00316410 48 00 09 A9 */ bl func_8031B158 -/* 8031A7B4 00316414 7C 7F 1B 78 */ mr r31, r3 -/* 8031A7B8 00316418 48 00 02 B5 */ bl func_8031AA6C -/* 8031A7BC 0031641C 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A7C0 00316420 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A7C4 00316424 41 82 00 10 */ beq lbl_8031A7D4 -/* 8031A7C8 00316428 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A7CC 0031642C 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A7D0 00316430 4B F5 52 55 */ bl OSUnlockMutex -lbl_8031A7D4: -/* 8031A7D4 00316434 7F E3 FB 78 */ mr r3, r31 -/* 8031A7D8 00316438 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8031A7DC 0031643C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031A7E0 00316440 7C 08 03 A6 */ mtlr r0 -/* 8031A7E4 00316444 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031A7E8 00316448 4E 80 00 20 */ blr - -.global func_8031A7EC -func_8031A7EC: -/* 8031A7EC 0031644C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8031A7F0 00316450 7C 08 02 A6 */ mflr r0 -/* 8031A7F4 00316454 90 01 00 24 */ stw r0, 0x24(r1) -/* 8031A7F8 00316458 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8031A7FC 0031645C 7C BF 2B 78 */ mr r31, r5 -/* 8031A800 00316460 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8031A804 00316464 7C 9E 23 78 */ mr r30, r4 -/* 8031A808 00316468 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8031A80C 0031646C 7C 7D 1B 78 */ mr r29, r3 -/* 8031A810 00316470 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A814 00316474 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A818 00316478 41 82 00 10 */ beq lbl_8031A828 -/* 8031A81C 0031647C 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A820 00316480 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A824 00316484 4B F5 51 25 */ bl OSLockMutex -lbl_8031A828: -/* 8031A828 00316488 7F A3 EB 78 */ mr r3, r29 -/* 8031A82C 0031648C 7F C4 F3 78 */ mr r4, r30 -/* 8031A830 00316490 7F E5 FB 78 */ mr r5, r31 -/* 8031A834 00316494 48 00 0A 0D */ bl func_8031B240 -/* 8031A838 00316498 7C 7F 1B 78 */ mr r31, r3 -/* 8031A83C 0031649C 48 00 02 31 */ bl func_8031AA6C -/* 8031A840 003164A0 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A844 003164A4 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A848 003164A8 41 82 00 10 */ beq lbl_8031A858 -/* 8031A84C 003164AC 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A850 003164B0 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A854 003164B4 4B F5 51 D1 */ bl OSUnlockMutex -lbl_8031A858: -/* 8031A858 003164B8 7F E3 FB 78 */ mr r3, r31 -/* 8031A85C 003164BC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8031A860 003164C0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8031A864 003164C4 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8031A868 003164C8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8031A86C 003164CC 7C 08 03 A6 */ mtlr r0 -/* 8031A870 003164D0 38 21 00 20 */ addi r1, r1, 0x20 -/* 8031A874 003164D4 4E 80 00 20 */ blr - -.global func_8031A878 -func_8031A878: -/* 8031A878 003164D8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8031A87C 003164DC 7C 08 02 A6 */ mflr r0 -/* 8031A880 003164E0 90 01 00 24 */ stw r0, 0x24(r1) -/* 8031A884 003164E4 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8031A888 003164E8 7C DF 33 78 */ mr r31, r6 -/* 8031A88C 003164EC 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8031A890 003164F0 7C BE 2B 78 */ mr r30, r5 -/* 8031A894 003164F4 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8031A898 003164F8 7C 9D 23 78 */ mr r29, r4 -/* 8031A89C 003164FC 93 81 00 10 */ stw r28, 0x10(r1) -/* 8031A8A0 00316500 7C 7C 1B 78 */ mr r28, r3 -/* 8031A8A4 00316504 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A8A8 00316508 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A8AC 0031650C 41 82 00 10 */ beq lbl_8031A8BC -/* 8031A8B0 00316510 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A8B4 00316514 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A8B8 00316518 4B F5 50 91 */ bl OSLockMutex -lbl_8031A8BC: -/* 8031A8BC 0031651C 7F E3 FB 78 */ mr r3, r31 -/* 8031A8C0 00316520 7F A4 EB 78 */ mr r4, r29 -/* 8031A8C4 00316524 7F C5 F3 78 */ mr r5, r30 -/* 8031A8C8 00316528 7F 86 E3 78 */ mr r6, r28 -/* 8031A8CC 0031652C 48 00 0A 7D */ bl func_8031B348 -/* 8031A8D0 00316530 7C 7F 1B 78 */ mr r31, r3 -/* 8031A8D4 00316534 48 00 01 99 */ bl func_8031AA6C -/* 8031A8D8 00316538 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A8DC 0031653C 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A8E0 00316540 41 82 00 10 */ beq lbl_8031A8F0 -/* 8031A8E4 00316544 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A8E8 00316548 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A8EC 0031654C 4B F5 51 39 */ bl OSUnlockMutex -lbl_8031A8F0: -/* 8031A8F0 00316550 7F E3 FB 78 */ mr r3, r31 -/* 8031A8F4 00316554 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8031A8F8 00316558 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8031A8FC 0031655C 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8031A900 00316560 83 81 00 10 */ lwz r28, 0x10(r1) -/* 8031A904 00316564 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8031A908 00316568 7C 08 03 A6 */ mtlr r0 -/* 8031A90C 0031656C 38 21 00 20 */ addi r1, r1, 0x20 -/* 8031A910 00316570 4E 80 00 20 */ blr - -.global func_8031A914 -func_8031A914: -/* 8031A914 00316574 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8031A918 00316578 7C 08 02 A6 */ mflr r0 -/* 8031A91C 0031657C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8031A920 00316580 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8031A924 00316584 7C BF 2B 78 */ mr r31, r5 -/* 8031A928 00316588 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8031A92C 0031658C 7C 9E 23 78 */ mr r30, r4 -/* 8031A930 00316590 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8031A934 00316594 7C 7D 1B 78 */ mr r29, r3 -/* 8031A938 00316598 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A93C 0031659C 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A940 003165A0 41 82 00 10 */ beq lbl_8031A950 -/* 8031A944 003165A4 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A948 003165A8 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A94C 003165AC 4B F5 4F FD */ bl OSLockMutex -lbl_8031A950: -/* 8031A950 003165B0 7F C3 F3 78 */ mr r3, r30 -/* 8031A954 003165B4 7F E4 FB 78 */ mr r4, r31 -/* 8031A958 003165B8 7F A5 EB 78 */ mr r5, r29 -/* 8031A95C 003165BC 48 00 0B 65 */ bl func_8031B4C0 -/* 8031A960 003165C0 7C 7F 1B 78 */ mr r31, r3 -/* 8031A964 003165C4 48 00 01 09 */ bl func_8031AA6C -/* 8031A968 003165C8 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A96C 003165CC 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A970 003165D0 41 82 00 10 */ beq lbl_8031A980 -/* 8031A974 003165D4 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031A978 003165D8 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031A97C 003165DC 4B F5 50 A9 */ bl OSUnlockMutex -lbl_8031A980: -/* 8031A980 003165E0 7F E3 FB 78 */ mr r3, r31 -/* 8031A984 003165E4 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8031A988 003165E8 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8031A98C 003165EC 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8031A990 003165F0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8031A994 003165F4 7C 08 03 A6 */ mtlr r0 -/* 8031A998 003165F8 38 21 00 20 */ addi r1, r1, 0x20 -/* 8031A99C 003165FC 4E 80 00 20 */ blr - -.global func_8031A9A0 -func_8031A9A0: -/* 8031A9A0 00316600 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A9A4 00316604 7C 08 02 A6 */ mflr r0 -/* 8031A9A8 00316608 7C 64 1B 78 */ mr r4, r3 -/* 8031A9AC 0031660C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A9B0 00316610 38 00 FF FF */ li r0, -1 -/* 8031A9B4 00316614 38 61 00 08 */ addi r3, r1, 8 -/* 8031A9B8 00316618 90 01 00 08 */ stw r0, 8(r1) -/* 8031A9BC 0031661C 48 00 0C 11 */ bl func_8031B5CC -/* 8031A9C0 00316620 2C 03 00 00 */ cmpwi r3, 0 -/* 8031A9C4 00316624 41 82 00 08 */ beq lbl_8031A9CC -/* 8031A9C8 00316628 48 00 00 A5 */ bl func_8031AA6C -lbl_8031A9CC: -/* 8031A9CC 0031662C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031A9D0 00316630 80 61 00 08 */ lwz r3, 8(r1) -/* 8031A9D4 00316634 7C 08 03 A6 */ mtlr r0 -/* 8031A9D8 00316638 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031A9DC 0031663C 4E 80 00 20 */ blr - -.global func_8031A9E0 -func_8031A9E0: -/* 8031A9E0 00316640 48 00 0C 54 */ b lbl_8031B634 - -.global func_8031A9E4 -func_8031A9E4: -/* 8031A9E4 00316644 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A9E8 00316648 7C 08 02 A6 */ mflr r0 -/* 8031A9EC 0031664C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A9F0 00316650 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8031A9F4 00316654 7C 7F 1B 78 */ mr r31, r3 -/* 8031A9F8 00316658 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031A9FC 0031665C 2C 00 00 00 */ cmpwi r0, 0 -/* 8031AA00 00316660 41 82 00 10 */ beq lbl_8031AA10 -/* 8031AA04 00316664 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031AA08 00316668 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031AA0C 0031666C 4B F5 4F 3D */ bl OSLockMutex -lbl_8031AA10: -/* 8031AA10 00316670 2C 1F 00 00 */ cmpwi r31, 0 -/* 8031AA14 00316674 41 82 00 18 */ beq lbl_8031AA2C -/* 8031AA18 00316678 7F E3 FB 78 */ mr r3, r31 -/* 8031AA1C 0031667C 48 00 10 D5 */ bl func_8031BAF0 -/* 8031AA20 00316680 48 00 0C C9 */ bl func_8031B6E8 -/* 8031AA24 00316684 7C 7F 1B 78 */ mr r31, r3 -/* 8031AA28 00316688 48 00 00 0C */ b lbl_8031AA34 -lbl_8031AA2C: -/* 8031AA2C 0031668C 48 00 0C 11 */ bl func_8031B63C -/* 8031AA30 00316690 7C 7F 1B 78 */ mr r31, r3 -lbl_8031AA34: -/* 8031AA34 00316694 7F E3 FB 78 */ mr r3, r31 -/* 8031AA38 00316698 48 00 00 35 */ bl func_8031AA6C -/* 8031AA3C 0031669C 80 0D AF EC */ lwz r0, lbl_806402AC-_SDA_BASE_(r13) -/* 8031AA40 003166A0 2C 00 00 00 */ cmpwi r0, 0 -/* 8031AA44 003166A4 41 82 00 10 */ beq lbl_8031AA54 -/* 8031AA48 003166A8 3C 60 80 5A */ lis r3, lbl_805A7580@ha -/* 8031AA4C 003166AC 38 63 75 80 */ addi r3, r3, lbl_805A7580@l -/* 8031AA50 003166B0 4B F5 4F D5 */ bl OSUnlockMutex -lbl_8031AA54: -/* 8031AA54 003166B4 7F E3 FB 78 */ mr r3, r31 -/* 8031AA58 003166B8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8031AA5C 003166BC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031AA60 003166C0 7C 08 03 A6 */ mtlr r0 -/* 8031AA64 003166C4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031AA68 003166C8 4E 80 00 20 */ blr - -.global func_8031AA6C -func_8031AA6C: -/* 8031AA6C 003166CC 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AA70 003166D0 4D 82 00 20 */ beqlr -/* 8031AA74 003166D4 90 6D AF F4 */ stw r3, lbl_806402B4-_SDA_BASE_(r13) -/* 8031AA78 003166D8 4E 80 00 20 */ blr - -.global func_8031AA7C -func_8031AA7C: -/* 8031AA7C 003166DC 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031AA80 003166E0 7C 03 00 40 */ cmplw r3, r0 -/* 8031AA84 003166E4 40 80 00 1C */ bge lbl_8031AAA0 -/* 8031AA88 003166E8 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13) -/* 8031AA8C 003166EC 2C 04 00 00 */ cmpwi r4, 0 -/* 8031AA90 003166F0 41 82 00 10 */ beq lbl_8031AAA0 -/* 8031AA94 003166F4 1C 03 01 40 */ mulli r0, r3, 0x140 -/* 8031AA98 003166F8 7C 64 02 14 */ add r3, r4, r0 -/* 8031AA9C 003166FC 4E 80 00 20 */ blr -lbl_8031AAA0: -/* 8031AAA0 00316700 38 60 00 00 */ li r3, 0 -/* 8031AAA4 00316704 4E 80 00 20 */ blr - -.global func_8031AAA8 -func_8031AAA8: -/* 8031AAA8 00316708 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AAAC 0031670C 41 82 00 54 */ beq lbl_8031AB00 -/* 8031AAB0 00316710 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031AAB4 00316714 2C 00 00 00 */ cmpwi r0, 0 -/* 8031AAB8 00316718 41 82 00 14 */ beq lbl_8031AACC -/* 8031AABC 0031671C 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13) -/* 8031AAC0 00316720 2C 04 00 00 */ cmpwi r4, 0 -/* 8031AAC4 00316724 41 82 00 08 */ beq lbl_8031AACC -/* 8031AAC8 00316728 48 00 00 08 */ b lbl_8031AAD0 -lbl_8031AACC: -/* 8031AACC 0031672C 38 80 00 00 */ li r4, 0 -lbl_8031AAD0: -/* 8031AAD0 00316730 1C 00 01 40 */ mulli r0, r0, 0x140 -/* 8031AAD4 00316734 38 A0 00 00 */ li r5, 0 -/* 8031AAD8 00316738 7C 04 02 14 */ add r0, r4, r0 -/* 8031AADC 0031673C 48 00 00 1C */ b lbl_8031AAF8 -lbl_8031AAE0: -/* 8031AAE0 00316740 7C 03 20 40 */ cmplw r3, r4 -/* 8031AAE4 00316744 40 82 00 0C */ bne lbl_8031AAF0 -/* 8031AAE8 00316748 7C A3 2B 78 */ mr r3, r5 -/* 8031AAEC 0031674C 4E 80 00 20 */ blr -lbl_8031AAF0: -/* 8031AAF0 00316750 38 84 01 40 */ addi r4, r4, 0x140 -/* 8031AAF4 00316754 38 A5 00 01 */ addi r5, r5, 1 -lbl_8031AAF8: -/* 8031AAF8 00316758 7C 04 00 40 */ cmplw r4, r0 -/* 8031AAFC 0031675C 40 82 FF E4 */ bne lbl_8031AAE0 -lbl_8031AB00: -/* 8031AB00 00316760 38 60 FF FF */ li r3, -1 -/* 8031AB04 00316764 4E 80 00 20 */ blr - -.global func_8031AB08 -func_8031AB08: -/* 8031AB08 00316768 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AB0C 0031676C 41 82 00 68 */ beq lbl_8031AB74 -/* 8031AB10 00316770 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031AB14 00316774 2C 00 00 00 */ cmpwi r0, 0 -/* 8031AB18 00316778 41 82 00 14 */ beq lbl_8031AB2C -/* 8031AB1C 0031677C 80 AD B0 00 */ lwz r5, lbl_806402C0-_SDA_BASE_(r13) -/* 8031AB20 00316780 2C 05 00 00 */ cmpwi r5, 0 -/* 8031AB24 00316784 41 82 00 08 */ beq lbl_8031AB2C -/* 8031AB28 00316788 48 00 00 08 */ b lbl_8031AB30 -lbl_8031AB2C: -/* 8031AB2C 0031678C 38 A0 00 00 */ li r5, 0 -lbl_8031AB30: -/* 8031AB30 00316790 1C 00 01 40 */ mulli r0, r0, 0x140 -/* 8031AB34 00316794 7C C5 02 14 */ add r6, r5, r0 -/* 8031AB38 00316798 48 00 00 34 */ b lbl_8031AB6C -lbl_8031AB3C: -/* 8031AB3C 0031679C 80 05 00 00 */ lwz r0, 0(r5) -/* 8031AB40 003167A0 2C 00 00 00 */ cmpwi r0, 0 -/* 8031AB44 003167A4 41 82 00 24 */ beq lbl_8031AB68 -/* 8031AB48 003167A8 88 85 00 14 */ lbz r4, 0x14(r5) -/* 8031AB4C 003167AC 88 03 18 7A */ lbz r0, 0x187a(r3) -/* 8031AB50 003167B0 7C 84 07 74 */ extsb r4, r4 -/* 8031AB54 003167B4 7C 00 07 74 */ extsb r0, r0 -/* 8031AB58 003167B8 7C 04 00 00 */ cmpw r4, r0 -/* 8031AB5C 003167BC 40 82 00 0C */ bne lbl_8031AB68 -/* 8031AB60 003167C0 7C A3 2B 78 */ mr r3, r5 -/* 8031AB64 003167C4 4E 80 00 20 */ blr -lbl_8031AB68: -/* 8031AB68 003167C8 38 A5 01 40 */ addi r5, r5, 0x140 -lbl_8031AB6C: -/* 8031AB6C 003167CC 7C 05 30 40 */ cmplw r5, r6 -/* 8031AB70 003167D0 40 82 FF CC */ bne lbl_8031AB3C -lbl_8031AB74: -/* 8031AB74 003167D4 38 60 00 00 */ li r3, 0 -/* 8031AB78 003167D8 4E 80 00 20 */ blr - -.global func_8031AB7C -func_8031AB7C: -/* 8031AB7C 003167DC 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AB80 003167E0 38 80 FF FF */ li r4, -1 -/* 8031AB84 003167E4 41 82 00 54 */ beq lbl_8031ABD8 -/* 8031AB88 003167E8 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031AB8C 003167EC 2C 00 00 00 */ cmpwi r0, 0 -/* 8031AB90 003167F0 41 82 00 14 */ beq lbl_8031ABA4 -/* 8031AB94 003167F4 80 AD B0 00 */ lwz r5, lbl_806402C0-_SDA_BASE_(r13) -/* 8031AB98 003167F8 2C 05 00 00 */ cmpwi r5, 0 -/* 8031AB9C 003167FC 41 82 00 08 */ beq lbl_8031ABA4 -/* 8031ABA0 00316800 48 00 00 08 */ b lbl_8031ABA8 -lbl_8031ABA4: -/* 8031ABA4 00316804 38 A0 00 00 */ li r5, 0 -lbl_8031ABA8: -/* 8031ABA8 00316808 38 C0 00 00 */ li r6, 0 -/* 8031ABAC 0031680C 7C 09 03 A6 */ mtctr r0 -/* 8031ABB0 00316810 28 00 00 00 */ cmplwi r0, 0 -/* 8031ABB4 00316814 40 81 00 24 */ ble lbl_8031ABD8 -lbl_8031ABB8: -/* 8031ABB8 00316818 80 05 00 08 */ lwz r0, 8(r5) -/* 8031ABBC 0031681C 7C 03 00 40 */ cmplw r3, r0 -/* 8031ABC0 00316820 40 82 00 0C */ bne lbl_8031ABCC -/* 8031ABC4 00316824 7C C4 33 78 */ mr r4, r6 -/* 8031ABC8 00316828 48 00 00 10 */ b lbl_8031ABD8 -lbl_8031ABCC: -/* 8031ABCC 0031682C 38 A5 01 40 */ addi r5, r5, 0x140 -/* 8031ABD0 00316830 38 C6 00 01 */ addi r6, r6, 1 -/* 8031ABD4 00316834 42 00 FF E4 */ bdnz lbl_8031ABB8 -lbl_8031ABD8: -/* 8031ABD8 00316838 7C 83 23 78 */ mr r3, r4 -/* 8031ABDC 0031683C 4E 80 00 20 */ blr - -.global func_8031ABE0 -func_8031ABE0: -/* 8031ABE0 00316840 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031ABE4 00316844 7C 03 00 40 */ cmplw r3, r0 -/* 8031ABE8 00316848 40 80 00 1C */ bge lbl_8031AC04 -/* 8031ABEC 0031684C 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13) -/* 8031ABF0 00316850 2C 04 00 00 */ cmpwi r4, 0 -/* 8031ABF4 00316854 41 82 00 10 */ beq lbl_8031AC04 -/* 8031ABF8 00316858 1C 03 01 40 */ mulli r0, r3, 0x140 -/* 8031ABFC 0031685C 7C 64 02 14 */ add r3, r4, r0 -/* 8031AC00 00316860 48 00 00 08 */ b lbl_8031AC08 -lbl_8031AC04: -/* 8031AC04 00316864 38 60 00 00 */ li r3, 0 -lbl_8031AC08: -/* 8031AC08 00316868 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AC0C 0031686C 41 82 00 0C */ beq lbl_8031AC18 -/* 8031AC10 00316870 38 63 00 04 */ addi r3, r3, 4 -/* 8031AC14 00316874 4E 80 00 20 */ blr -lbl_8031AC18: -/* 8031AC18 00316878 38 60 00 00 */ li r3, 0 -/* 8031AC1C 0031687C 4E 80 00 20 */ blr - -.global func_8031AC20 -func_8031AC20: -/* 8031AC20 00316880 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8031AC24 00316884 7C 08 02 A6 */ mflr r0 -/* 8031AC28 00316888 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AC2C 0031688C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8031AC30 00316890 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8031AC34 00316894 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8031AC38 00316898 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8031AC3C 0031689C 54 9D 93 BE */ srwi r29, r4, 0xe -/* 8031AC40 003168A0 41 82 00 24 */ beq lbl_8031AC64 -/* 8031AC44 003168A4 2C 04 00 00 */ cmpwi r4, 0 -/* 8031AC48 003168A8 41 82 00 1C */ beq lbl_8031AC64 -/* 8031AC4C 003168AC 80 0D AF F8 */ lwz r0, lbl_806402B8-_SDA_BASE_(r13) -/* 8031AC50 003168B0 2C 00 00 00 */ cmpwi r0, 0 -/* 8031AC54 003168B4 40 82 00 10 */ bne lbl_8031AC64 -/* 8031AC58 003168B8 38 A0 00 00 */ li r5, 0 -/* 8031AC5C 003168BC 4B F7 C1 ED */ bl MEMCreateExpHeapEx -/* 8031AC60 003168C0 90 6D AF F8 */ stw r3, lbl_806402B8-_SDA_BASE_(r13) -lbl_8031AC64: -/* 8031AC64 003168C4 28 1D 00 1A */ cmplwi r29, 0x1a -/* 8031AC68 003168C8 38 80 00 1A */ li r4, 0x1a -/* 8031AC6C 003168CC 41 81 00 08 */ bgt lbl_8031AC74 -/* 8031AC70 003168D0 7F A4 EB 78 */ mr r4, r29 -lbl_8031AC74: -/* 8031AC74 003168D4 80 0D B0 00 */ lwz r0, lbl_806402C0-_SDA_BASE_(r13) -/* 8031AC78 003168D8 90 8D AF F0 */ stw r4, lbl_806402B0-_SDA_BASE_(r13) -/* 8031AC7C 003168DC 2C 00 00 00 */ cmpwi r0, 0 -/* 8031AC80 003168E0 40 82 00 28 */ bne lbl_8031ACA8 -/* 8031AC84 003168E4 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13) -/* 8031AC88 003168E8 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AC8C 003168EC 40 82 00 0C */ bne lbl_8031AC98 -/* 8031AC90 003168F0 38 60 00 00 */ li r3, 0 -/* 8031AC94 003168F4 48 00 00 10 */ b lbl_8031ACA4 -lbl_8031AC98: -/* 8031AC98 003168F8 1C 84 01 40 */ mulli r4, r4, 0x140 -/* 8031AC9C 003168FC 38 A0 00 20 */ li r5, 0x20 -/* 8031ACA0 00316900 4B F7 C2 89 */ bl MEMAllocFromExpHeapEx -lbl_8031ACA4: -/* 8031ACA4 00316904 90 6D B0 00 */ stw r3, lbl_806402C0-_SDA_BASE_(r13) -lbl_8031ACA8: -/* 8031ACA8 00316908 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031ACAC 0031690C 2C 00 00 00 */ cmpwi r0, 0 -/* 8031ACB0 00316910 41 82 00 14 */ beq lbl_8031ACC4 -/* 8031ACB4 00316914 83 AD B0 00 */ lwz r29, lbl_806402C0-_SDA_BASE_(r13) -/* 8031ACB8 00316918 2C 1D 00 00 */ cmpwi r29, 0 -/* 8031ACBC 0031691C 41 82 00 08 */ beq lbl_8031ACC4 -/* 8031ACC0 00316920 48 00 00 08 */ b lbl_8031ACC8 -lbl_8031ACC4: -/* 8031ACC4 00316924 3B A0 00 00 */ li r29, 0 -lbl_8031ACC8: -/* 8031ACC8 00316928 1C 00 01 40 */ mulli r0, r0, 0x140 -/* 8031ACCC 0031692C 3B E0 00 00 */ li r31, 0 -/* 8031ACD0 00316930 7F DD 02 14 */ add r30, r29, r0 -/* 8031ACD4 00316934 48 00 00 30 */ b lbl_8031AD04 -lbl_8031ACD8: -/* 8031ACD8 00316938 7F A3 EB 78 */ mr r3, r29 -/* 8031ACDC 0031693C 38 80 00 00 */ li r4, 0 -/* 8031ACE0 00316940 38 A0 01 40 */ li r5, 0x140 -/* 8031ACE4 00316944 4B FE A2 F1 */ bl VFipf_memset -/* 8031ACE8 00316948 34 1D 00 1C */ addic. r0, r29, 0x1c -/* 8031ACEC 0031694C 41 82 00 14 */ beq lbl_8031AD00 -/* 8031ACF0 00316950 93 FD 00 1C */ stw r31, 0x1c(r29) -/* 8031ACF4 00316954 93 FD 00 20 */ stw r31, 0x20(r29) -/* 8031ACF8 00316958 93 FD 00 24 */ stw r31, 0x24(r29) -/* 8031ACFC 0031695C 93 FD 00 28 */ stw r31, 0x28(r29) -lbl_8031AD00: -/* 8031AD00 00316960 3B BD 01 40 */ addi r29, r29, 0x140 -lbl_8031AD04: -/* 8031AD04 00316964 7C 1D F0 40 */ cmplw r29, r30 -/* 8031AD08 00316968 40 82 FF D0 */ bne lbl_8031ACD8 -/* 8031AD0C 0031696C 80 0D AF FC */ lwz r0, lbl_806402BC-_SDA_BASE_(r13) -/* 8031AD10 00316970 83 CD AF F0 */ lwz r30, lbl_806402B0-_SDA_BASE_(r13) -/* 8031AD14 00316974 2C 00 00 00 */ cmpwi r0, 0 -/* 8031AD18 00316978 40 82 00 50 */ bne lbl_8031AD68 -/* 8031AD1C 0031697C 3F A0 80 61 */ lis r29, lbl_8060F5A0@ha -/* 8031AD20 00316980 3B E0 00 00 */ li r31, 0 -/* 8031AD24 00316984 3B BD F5 A0 */ addi r29, r29, lbl_8060F5A0@l -/* 8031AD28 00316988 48 00 00 30 */ b lbl_8031AD58 -lbl_8031AD2C: -/* 8031AD2C 0031698C 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13) -/* 8031AD30 00316990 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AD34 00316994 40 82 00 0C */ bne lbl_8031AD40 -/* 8031AD38 00316998 38 60 00 00 */ li r3, 0 -/* 8031AD3C 0031699C 48 00 00 10 */ b lbl_8031AD4C -lbl_8031AD40: -/* 8031AD40 003169A0 38 80 00 A0 */ li r4, 0xa0 -/* 8031AD44 003169A4 38 A0 00 20 */ li r5, 0x20 -/* 8031AD48 003169A8 4B F7 C1 E1 */ bl MEMAllocFromExpHeapEx -lbl_8031AD4C: -/* 8031AD4C 003169AC 90 7D 00 00 */ stw r3, 0(r29) -/* 8031AD50 003169B0 3B BD 00 04 */ addi r29, r29, 4 -/* 8031AD54 003169B4 3B FF 00 01 */ addi r31, r31, 1 -lbl_8031AD58: -/* 8031AD58 003169B8 7C 1F F0 40 */ cmplw r31, r30 -/* 8031AD5C 003169BC 41 80 FF D0 */ blt lbl_8031AD2C -/* 8031AD60 003169C0 38 00 00 01 */ li r0, 1 -/* 8031AD64 003169C4 90 0D AF FC */ stw r0, lbl_806402BC-_SDA_BASE_(r13) -lbl_8031AD68: -/* 8031AD68 003169C8 48 00 0E 79 */ bl func_8031BBE0 -/* 8031AD6C 003169CC 38 80 00 00 */ li r4, 0 -/* 8031AD70 003169D0 38 60 00 02 */ li r3, 2 -/* 8031AD74 003169D4 38 00 00 08 */ li r0, 8 -/* 8031AD78 003169D8 90 8D AF F4 */ stw r4, lbl_806402B4-_SDA_BASE_(r13) -/* 8031AD7C 003169DC 90 6D B0 0C */ stw r3, lbl_806402CC-_SDA_BASE_(r13) -/* 8031AD80 003169E0 90 0D B0 08 */ stw r0, lbl_806402C8-_SDA_BASE_(r13) -/* 8031AD84 003169E4 48 00 13 9D */ bl func_8031C120 -/* 8031AD88 003169E8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8031AD8C 003169EC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8031AD90 003169F0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8031AD94 003169F4 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8031AD98 003169F8 7C 08 03 A6 */ mtlr r0 -/* 8031AD9C 003169FC 38 21 00 20 */ addi r1, r1, 0x20 -/* 8031ADA0 00316A00 4E 80 00 20 */ blr - -.global func_8031ADA4 -func_8031ADA4: -/* 8031ADA4 00316A04 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8031ADA8 00316A08 7C 08 02 A6 */ mflr r0 -/* 8031ADAC 00316A0C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8031ADB0 00316A10 39 61 00 20 */ addi r11, r1, 0x20 -/* 8031ADB4 00316A14 4B EA C3 75 */ bl _savegpr_27 -/* 8031ADB8 00316A18 83 6D B0 00 */ lwz r27, lbl_806402C0-_SDA_BASE_(r13) -/* 8031ADBC 00316A1C 2C 9B 00 00 */ cmpwi cr1, r27, 0 -/* 8031ADC0 00316A20 41 86 00 DC */ beq cr1, lbl_8031AE9C -/* 8031ADC4 00316A24 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031ADC8 00316A28 2C 00 00 00 */ cmpwi r0, 0 -/* 8031ADCC 00316A2C 41 82 00 0C */ beq lbl_8031ADD8 -/* 8031ADD0 00316A30 41 86 00 08 */ beq cr1, lbl_8031ADD8 -/* 8031ADD4 00316A34 48 00 00 08 */ b lbl_8031ADDC -lbl_8031ADD8: -/* 8031ADD8 00316A38 3B 60 00 00 */ li r27, 0 -lbl_8031ADDC: -/* 8031ADDC 00316A3C 2C 1B 00 00 */ cmpwi r27, 0 -/* 8031ADE0 00316A40 41 82 00 A0 */ beq lbl_8031AE80 -/* 8031ADE4 00316A44 1C 00 01 40 */ mulli r0, r0, 0x140 -/* 8031ADE8 00316A48 3B E0 00 00 */ li r31, 0 -/* 8031ADEC 00316A4C 7F DB 02 14 */ add r30, r27, r0 -/* 8031ADF0 00316A50 48 00 00 88 */ b lbl_8031AE78 -lbl_8031ADF4: -/* 8031ADF4 00316A54 2C 1B 00 00 */ cmpwi r27, 0 -/* 8031ADF8 00316A58 41 82 00 7C */ beq lbl_8031AE74 -/* 8031ADFC 00316A5C 37 BB 00 1C */ addic. r29, r27, 0x1c -/* 8031AE00 00316A60 83 9D 00 00 */ lwz r28, 0(r29) -/* 8031AE04 00316A64 41 82 00 54 */ beq lbl_8031AE58 -/* 8031AE08 00316A68 80 9D 00 08 */ lwz r4, 8(r29) -/* 8031AE0C 00316A6C 2C 04 00 00 */ cmpwi r4, 0 -/* 8031AE10 00316A70 41 82 00 14 */ beq lbl_8031AE24 -/* 8031AE14 00316A74 2C 1C 00 00 */ cmpwi r28, 0 -/* 8031AE18 00316A78 41 82 00 0C */ beq lbl_8031AE24 -/* 8031AE1C 00316A7C 7F 83 E3 78 */ mr r3, r28 -/* 8031AE20 00316A80 4B F7 C3 A5 */ bl MEMFreeToExpHeap -lbl_8031AE24: -/* 8031AE24 00316A84 80 9D 00 0C */ lwz r4, 0xc(r29) -/* 8031AE28 00316A88 2C 04 00 00 */ cmpwi r4, 0 -/* 8031AE2C 00316A8C 41 82 00 14 */ beq lbl_8031AE40 -/* 8031AE30 00316A90 80 7D 00 00 */ lwz r3, 0(r29) -/* 8031AE34 00316A94 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AE38 00316A98 41 82 00 08 */ beq lbl_8031AE40 -/* 8031AE3C 00316A9C 4B F7 C3 89 */ bl MEMFreeToExpHeap -lbl_8031AE40: -/* 8031AE40 00316AA0 2C 1D 00 00 */ cmpwi r29, 0 -/* 8031AE44 00316AA4 41 82 00 14 */ beq lbl_8031AE58 -/* 8031AE48 00316AA8 93 FD 00 00 */ stw r31, 0(r29) -/* 8031AE4C 00316AAC 93 FD 00 04 */ stw r31, 4(r29) -/* 8031AE50 00316AB0 93 FD 00 08 */ stw r31, 8(r29) -/* 8031AE54 00316AB4 93 FD 00 0C */ stw r31, 0xc(r29) -lbl_8031AE58: -/* 8031AE58 00316AB8 80 0D AF F8 */ lwz r0, lbl_806402B8-_SDA_BASE_(r13) -/* 8031AE5C 00316ABC 7C 1C 00 40 */ cmplw r28, r0 -/* 8031AE60 00316AC0 41 82 00 14 */ beq lbl_8031AE74 -/* 8031AE64 00316AC4 2C 1C 00 00 */ cmpwi r28, 0 -/* 8031AE68 00316AC8 41 82 00 0C */ beq lbl_8031AE74 -/* 8031AE6C 00316ACC 7F 83 E3 78 */ mr r3, r28 -/* 8031AE70 00316AD0 4B F7 C0 89 */ bl MEMDestroyExpHeap -lbl_8031AE74: -/* 8031AE74 00316AD4 3B 7B 01 40 */ addi r27, r27, 0x140 -lbl_8031AE78: -/* 8031AE78 00316AD8 7C 1B F0 40 */ cmplw r27, r30 -/* 8031AE7C 00316ADC 40 82 FF 78 */ bne lbl_8031ADF4 -lbl_8031AE80: -/* 8031AE80 00316AE0 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13) -/* 8031AE84 00316AE4 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13) -/* 8031AE88 00316AE8 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AE8C 00316AEC 41 82 00 08 */ beq lbl_8031AE94 -/* 8031AE90 00316AF0 4B F7 C3 35 */ bl MEMFreeToExpHeap -lbl_8031AE94: -/* 8031AE94 00316AF4 38 00 00 00 */ li r0, 0 -/* 8031AE98 00316AF8 90 0D B0 00 */ stw r0, lbl_806402C0-_SDA_BASE_(r13) -lbl_8031AE9C: -/* 8031AE9C 00316AFC 80 0D AF FC */ lwz r0, lbl_806402BC-_SDA_BASE_(r13) -/* 8031AEA0 00316B00 83 AD AF F0 */ lwz r29, lbl_806402B0-_SDA_BASE_(r13) -/* 8031AEA4 00316B04 2C 00 00 00 */ cmpwi r0, 0 -/* 8031AEA8 00316B08 41 82 00 50 */ beq lbl_8031AEF8 -/* 8031AEAC 00316B0C 3F 80 80 61 */ lis r28, lbl_8060F5A0@ha -/* 8031AEB0 00316B10 3B C0 00 00 */ li r30, 0 -/* 8031AEB4 00316B14 3B 9C F5 A0 */ addi r28, r28, lbl_8060F5A0@l -/* 8031AEB8 00316B18 3B E0 00 00 */ li r31, 0 -/* 8031AEBC 00316B1C 48 00 00 2C */ b lbl_8031AEE8 -lbl_8031AEC0: -/* 8031AEC0 00316B20 80 9C 00 00 */ lwz r4, 0(r28) -/* 8031AEC4 00316B24 2C 04 00 00 */ cmpwi r4, 0 -/* 8031AEC8 00316B28 41 82 00 18 */ beq lbl_8031AEE0 -/* 8031AECC 00316B2C 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13) -/* 8031AED0 00316B30 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AED4 00316B34 41 82 00 08 */ beq lbl_8031AEDC -/* 8031AED8 00316B38 4B F7 C2 ED */ bl MEMFreeToExpHeap -lbl_8031AEDC: -/* 8031AEDC 00316B3C 93 FC 00 00 */ stw r31, 0(r28) -lbl_8031AEE0: -/* 8031AEE0 00316B40 3B 9C 00 04 */ addi r28, r28, 4 -/* 8031AEE4 00316B44 3B DE 00 01 */ addi r30, r30, 1 -lbl_8031AEE8: -/* 8031AEE8 00316B48 7C 1E E8 40 */ cmplw r30, r29 -/* 8031AEEC 00316B4C 41 80 FF D4 */ blt lbl_8031AEC0 -/* 8031AEF0 00316B50 38 00 00 00 */ li r0, 0 -/* 8031AEF4 00316B54 90 0D AF FC */ stw r0, lbl_806402BC-_SDA_BASE_(r13) -lbl_8031AEF8: -/* 8031AEF8 00316B58 80 6D AF F8 */ lwz r3, lbl_806402B8-_SDA_BASE_(r13) -/* 8031AEFC 00316B5C 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AF00 00316B60 41 82 00 10 */ beq lbl_8031AF10 -/* 8031AF04 00316B64 4B F7 BF F5 */ bl MEMDestroyExpHeap -/* 8031AF08 00316B68 38 00 00 00 */ li r0, 0 -/* 8031AF0C 00316B6C 90 0D AF F8 */ stw r0, lbl_806402B8-_SDA_BASE_(r13) -lbl_8031AF10: -/* 8031AF10 00316B70 38 00 00 00 */ li r0, 0 -/* 8031AF14 00316B74 39 61 00 20 */ addi r11, r1, 0x20 -/* 8031AF18 00316B78 90 0D AF F0 */ stw r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031AF1C 00316B7C 4B EA C2 59 */ bl _restgpr_27 -/* 8031AF20 00316B80 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8031AF24 00316B84 7C 08 03 A6 */ mtlr r0 -/* 8031AF28 00316B88 38 21 00 20 */ addi r1, r1, 0x20 -/* 8031AF2C 00316B8C 4E 80 00 20 */ blr - -.global func_8031AF30 -func_8031AF30: -/* 8031AF30 00316B90 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031AF34 00316B94 7C 08 02 A6 */ mflr r0 -/* 8031AF38 00316B98 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031AF3C 00316B9C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8031AF40 00316BA0 7C 9F 23 78 */ mr r31, r4 -/* 8031AF44 00316BA4 93 C1 00 08 */ stw r30, 8(r1) -/* 8031AF48 00316BA8 7C 7E 1B 78 */ mr r30, r3 -/* 8031AF4C 00316BAC 4B FF EA B9 */ bl VFiPFVOL_GetCurrentVolume -/* 8031AF50 00316BB0 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AF54 00316BB4 41 82 00 64 */ beq lbl_8031AFB8 -/* 8031AF58 00316BB8 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031AF5C 00316BBC 2C 00 00 00 */ cmpwi r0, 0 -/* 8031AF60 00316BC0 41 82 00 14 */ beq lbl_8031AF74 -/* 8031AF64 00316BC4 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13) -/* 8031AF68 00316BC8 2C 06 00 00 */ cmpwi r6, 0 -/* 8031AF6C 00316BCC 41 82 00 08 */ beq lbl_8031AF74 -/* 8031AF70 00316BD0 48 00 00 08 */ b lbl_8031AF78 -lbl_8031AF74: -/* 8031AF74 00316BD4 38 C0 00 00 */ li r6, 0 -lbl_8031AF78: -/* 8031AF78 00316BD8 1C 00 01 40 */ mulli r0, r0, 0x140 -/* 8031AF7C 00316BDC 7C A6 02 14 */ add r5, r6, r0 -/* 8031AF80 00316BE0 48 00 00 30 */ b lbl_8031AFB0 -lbl_8031AF84: -/* 8031AF84 00316BE4 80 06 00 00 */ lwz r0, 0(r6) -/* 8031AF88 00316BE8 2C 00 00 00 */ cmpwi r0, 0 -/* 8031AF8C 00316BEC 41 82 00 20 */ beq lbl_8031AFAC -/* 8031AF90 00316BF0 88 86 00 14 */ lbz r4, 0x14(r6) -/* 8031AF94 00316BF4 88 03 18 7A */ lbz r0, 0x187a(r3) -/* 8031AF98 00316BF8 7C 84 07 74 */ extsb r4, r4 -/* 8031AF9C 00316BFC 7C 00 07 74 */ extsb r0, r0 -/* 8031AFA0 00316C00 7C 04 00 00 */ cmpw r4, r0 -/* 8031AFA4 00316C04 40 82 00 08 */ bne lbl_8031AFAC -/* 8031AFA8 00316C08 48 00 00 14 */ b lbl_8031AFBC -lbl_8031AFAC: -/* 8031AFAC 00316C0C 38 C6 01 40 */ addi r6, r6, 0x140 -lbl_8031AFB0: -/* 8031AFB0 00316C10 7C 06 28 40 */ cmplw r6, r5 -/* 8031AFB4 00316C14 40 82 FF D0 */ bne lbl_8031AF84 -lbl_8031AFB8: -/* 8031AFB8 00316C18 38 C0 00 00 */ li r6, 0 -lbl_8031AFBC: -/* 8031AFBC 00316C1C 2C 06 00 00 */ cmpwi r6, 0 -/* 8031AFC0 00316C20 41 82 00 18 */ beq lbl_8031AFD8 -/* 8031AFC4 00316C24 80 66 00 08 */ lwz r3, 8(r6) -/* 8031AFC8 00316C28 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AFCC 00316C2C 41 82 00 0C */ beq lbl_8031AFD8 -/* 8031AFD0 00316C30 38 80 00 00 */ li r4, 0 -/* 8031AFD4 00316C34 48 00 0D 4D */ bl func_8031BD20 -lbl_8031AFD8: -/* 8031AFD8 00316C38 7F C3 F3 78 */ mr r3, r30 -/* 8031AFDC 00316C3C 7F E4 FB 78 */ mr r4, r31 -/* 8031AFE0 00316C40 4B FF F2 E5 */ bl VFipf2_fopen -/* 8031AFE4 00316C44 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AFE8 00316C48 7C 7F 1B 78 */ mr r31, r3 -/* 8031AFEC 00316C4C 40 82 00 14 */ bne lbl_8031B000 -/* 8031AFF0 00316C50 4B FF F2 69 */ bl VFipf2_errnum -/* 8031AFF4 00316C54 2C 03 00 00 */ cmpwi r3, 0 -/* 8031AFF8 00316C58 41 82 00 08 */ beq lbl_8031B000 -/* 8031AFFC 00316C5C 90 6D AF F4 */ stw r3, lbl_806402B4-_SDA_BASE_(r13) -lbl_8031B000: -/* 8031B000 00316C60 7F E3 FB 78 */ mr r3, r31 -/* 8031B004 00316C64 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8031B008 00316C68 83 C1 00 08 */ lwz r30, 8(r1) -/* 8031B00C 00316C6C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031B010 00316C70 7C 08 03 A6 */ mtlr r0 -/* 8031B014 00316C74 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031B018 00316C78 4E 80 00 20 */ blr - -.global func_8031B01C -func_8031B01C: -/* 8031B01C 00316C7C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8031B020 00316C80 7C 08 02 A6 */ mflr r0 -/* 8031B024 00316C84 90 01 00 24 */ stw r0, 0x24(r1) -/* 8031B028 00316C88 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8031B02C 00316C8C 7C BF 2B 78 */ mr r31, r5 -/* 8031B030 00316C90 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8031B034 00316C94 7C 9E 23 78 */ mr r30, r4 -/* 8031B038 00316C98 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8031B03C 00316C9C 7C 7D 1B 78 */ mr r29, r3 -/* 8031B040 00316CA0 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031B044 00316CA4 7C 03 00 40 */ cmplw r3, r0 -/* 8031B048 00316CA8 40 80 00 1C */ bge lbl_8031B064 -/* 8031B04C 00316CAC 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13) -/* 8031B050 00316CB0 2C 04 00 00 */ cmpwi r4, 0 -/* 8031B054 00316CB4 41 82 00 10 */ beq lbl_8031B064 -/* 8031B058 00316CB8 1C 03 01 40 */ mulli r0, r3, 0x140 -/* 8031B05C 00316CBC 7C 64 02 14 */ add r3, r4, r0 -/* 8031B060 00316CC0 48 00 00 08 */ b lbl_8031B068 -lbl_8031B064: -/* 8031B064 00316CC4 38 60 00 00 */ li r3, 0 -lbl_8031B068: -/* 8031B068 00316CC8 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B06C 00316CCC 41 82 00 3C */ beq lbl_8031B0A8 -/* 8031B070 00316CD0 88 03 00 14 */ lbz r0, 0x14(r3) -/* 8031B074 00316CD4 7C 03 07 74 */ extsb r3, r0 -/* 8031B078 00316CD8 4B FF EA E1 */ bl VFiPFVOL_GetVolumeFromDrvChar -/* 8031B07C 00316CDC 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B080 00316CE0 41 82 00 10 */ beq lbl_8031B090 -/* 8031B084 00316CE4 4B FF E8 35 */ bl VFiPFVOL_SetCurrentVolume -/* 8031B088 00316CE8 38 60 00 00 */ li r3, 0 -/* 8031B08C 00316CEC 48 00 00 24 */ b lbl_8031B0B0 -lbl_8031B090: -/* 8031B090 00316CF0 4B FF F1 C9 */ bl VFipf2_errnum -/* 8031B094 00316CF4 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B098 00316CF8 40 82 00 18 */ bne lbl_8031B0B0 -/* 8031B09C 00316CFC 38 60 FF FF */ li r3, -1 -/* 8031B0A0 00316D00 48 00 00 10 */ b lbl_8031B0B0 -/* 8031B0A4 00316D04 48 00 00 0C */ b lbl_8031B0B0 -lbl_8031B0A8: -/* 8031B0A8 00316D08 3C 60 00 01 */ lis r3, 0x0000B003@ha -/* 8031B0AC 00316D0C 38 63 B0 03 */ addi r3, r3, 0x0000B003@l -lbl_8031B0B0: -/* 8031B0B0 00316D10 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B0B4 00316D14 40 82 00 7C */ bne lbl_8031B130 -/* 8031B0B8 00316D18 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031B0BC 00316D1C 7C 1D 00 40 */ cmplw r29, r0 -/* 8031B0C0 00316D20 40 80 00 1C */ bge lbl_8031B0DC -/* 8031B0C4 00316D24 80 6D B0 00 */ lwz r3, lbl_806402C0-_SDA_BASE_(r13) -/* 8031B0C8 00316D28 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B0CC 00316D2C 41 82 00 10 */ beq lbl_8031B0DC -/* 8031B0D0 00316D30 1C 1D 01 40 */ mulli r0, r29, 0x140 -/* 8031B0D4 00316D34 7C 63 02 14 */ add r3, r3, r0 -/* 8031B0D8 00316D38 48 00 00 08 */ b lbl_8031B0E0 -lbl_8031B0DC: -/* 8031B0DC 00316D3C 38 60 00 00 */ li r3, 0 -lbl_8031B0E0: -/* 8031B0E0 00316D40 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B0E4 00316D44 41 82 00 1C */ beq lbl_8031B100 -/* 8031B0E8 00316D48 41 82 00 18 */ beq lbl_8031B100 -/* 8031B0EC 00316D4C 80 63 00 08 */ lwz r3, 8(r3) -/* 8031B0F0 00316D50 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B0F4 00316D54 41 82 00 0C */ beq lbl_8031B100 -/* 8031B0F8 00316D58 38 80 00 00 */ li r4, 0 -/* 8031B0FC 00316D5C 48 00 0C 25 */ bl func_8031BD20 -lbl_8031B100: -/* 8031B100 00316D60 7F C3 F3 78 */ mr r3, r30 -/* 8031B104 00316D64 7F E4 FB 78 */ mr r4, r31 -/* 8031B108 00316D68 4B FF F1 BD */ bl VFipf2_fopen -/* 8031B10C 00316D6C 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B110 00316D70 7C 7F 1B 78 */ mr r31, r3 -/* 8031B114 00316D74 40 82 00 14 */ bne lbl_8031B128 -/* 8031B118 00316D78 4B FF F1 41 */ bl VFipf2_errnum -/* 8031B11C 00316D7C 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B120 00316D80 41 82 00 08 */ beq lbl_8031B128 -/* 8031B124 00316D84 90 6D AF F4 */ stw r3, lbl_806402B4-_SDA_BASE_(r13) -lbl_8031B128: -/* 8031B128 00316D88 7F E3 FB 78 */ mr r3, r31 -/* 8031B12C 00316D8C 48 00 00 10 */ b lbl_8031B13C -lbl_8031B130: -/* 8031B130 00316D90 41 82 00 08 */ beq lbl_8031B138 -/* 8031B134 00316D94 90 6D AF F4 */ stw r3, lbl_806402B4-_SDA_BASE_(r13) -lbl_8031B138: -/* 8031B138 00316D98 38 60 00 00 */ li r3, 0 -lbl_8031B13C: -/* 8031B13C 00316D9C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8031B140 00316DA0 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8031B144 00316DA4 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8031B148 00316DA8 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8031B14C 00316DAC 7C 08 03 A6 */ mtlr r0 -/* 8031B150 00316DB0 38 21 00 20 */ addi r1, r1, 0x20 -/* 8031B154 00316DB4 4E 80 00 20 */ blr - -.global func_8031B158 -func_8031B158: -/* 8031B158 00316DB8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031B15C 00316DBC 7C 08 02 A6 */ mflr r0 -/* 8031B160 00316DC0 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B164 00316DC4 38 C0 00 00 */ li r6, 0 -/* 8031B168 00316DC8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031B16C 00316DCC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8031B170 00316DD0 7C 7F 1B 78 */ mr r31, r3 -/* 8031B174 00316DD4 41 82 00 80 */ beq lbl_8031B1F4 -/* 8031B178 00316DD8 80 63 00 08 */ lwz r3, 8(r3) -/* 8031B17C 00316DDC 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B180 00316DE0 41 82 00 74 */ beq lbl_8031B1F4 -/* 8031B184 00316DE4 80 83 00 38 */ lwz r4, 0x38(r3) -/* 8031B188 00316DE8 2C 04 00 00 */ cmpwi r4, 0 -/* 8031B18C 00316DEC 41 82 00 64 */ beq lbl_8031B1F0 -/* 8031B190 00316DF0 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031B194 00316DF4 2C 00 00 00 */ cmpwi r0, 0 -/* 8031B198 00316DF8 41 82 00 14 */ beq lbl_8031B1AC -/* 8031B19C 00316DFC 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13) -/* 8031B1A0 00316E00 2C 06 00 00 */ cmpwi r6, 0 -/* 8031B1A4 00316E04 41 82 00 08 */ beq lbl_8031B1AC -/* 8031B1A8 00316E08 48 00 00 08 */ b lbl_8031B1B0 -lbl_8031B1AC: -/* 8031B1AC 00316E0C 38 C0 00 00 */ li r6, 0 -lbl_8031B1B0: -/* 8031B1B0 00316E10 1C 00 01 40 */ mulli r0, r0, 0x140 -/* 8031B1B4 00316E14 7C A6 02 14 */ add r5, r6, r0 -/* 8031B1B8 00316E18 48 00 00 30 */ b lbl_8031B1E8 -lbl_8031B1BC: -/* 8031B1BC 00316E1C 80 06 00 00 */ lwz r0, 0(r6) -/* 8031B1C0 00316E20 2C 00 00 00 */ cmpwi r0, 0 -/* 8031B1C4 00316E24 41 82 00 20 */ beq lbl_8031B1E4 -/* 8031B1C8 00316E28 88 66 00 14 */ lbz r3, 0x14(r6) -/* 8031B1CC 00316E2C 88 04 18 7A */ lbz r0, 0x187a(r4) -/* 8031B1D0 00316E30 7C 63 07 74 */ extsb r3, r3 -/* 8031B1D4 00316E34 7C 00 07 74 */ extsb r0, r0 -/* 8031B1D8 00316E38 7C 03 00 00 */ cmpw r3, r0 -/* 8031B1DC 00316E3C 40 82 00 08 */ bne lbl_8031B1E4 -/* 8031B1E0 00316E40 48 00 00 14 */ b lbl_8031B1F4 -lbl_8031B1E4: -/* 8031B1E4 00316E44 38 C6 01 40 */ addi r6, r6, 0x140 -lbl_8031B1E8: -/* 8031B1E8 00316E48 7C 06 28 40 */ cmplw r6, r5 -/* 8031B1EC 00316E4C 40 82 FF D0 */ bne lbl_8031B1BC -lbl_8031B1F0: -/* 8031B1F0 00316E50 38 C0 00 00 */ li r6, 0 -lbl_8031B1F4: -/* 8031B1F4 00316E54 2C 06 00 00 */ cmpwi r6, 0 -/* 8031B1F8 00316E58 41 82 00 18 */ beq lbl_8031B210 -/* 8031B1FC 00316E5C 80 66 00 08 */ lwz r3, 8(r6) -/* 8031B200 00316E60 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B204 00316E64 41 82 00 0C */ beq lbl_8031B210 -/* 8031B208 00316E68 38 80 00 00 */ li r4, 0 -/* 8031B20C 00316E6C 48 00 0B 15 */ bl func_8031BD20 -lbl_8031B210: -/* 8031B210 00316E70 7F E3 FB 78 */ mr r3, r31 -/* 8031B214 00316E74 4B FF F0 69 */ bl VFipf2_fclose -/* 8031B218 00316E78 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B21C 00316E7C 40 82 00 0C */ bne lbl_8031B228 -/* 8031B220 00316E80 38 60 00 00 */ li r3, 0 -/* 8031B224 00316E84 48 00 00 08 */ b lbl_8031B22C -lbl_8031B228: -/* 8031B228 00316E88 4B FF F0 31 */ bl VFipf2_errnum -lbl_8031B22C: -/* 8031B22C 00316E8C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031B230 00316E90 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8031B234 00316E94 7C 08 03 A6 */ mtlr r0 -/* 8031B238 00316E98 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031B23C 00316E9C 4E 80 00 20 */ blr - -.global func_8031B240 -func_8031B240: -/* 8031B240 00316EA0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8031B244 00316EA4 7C 08 02 A6 */ mflr r0 -/* 8031B248 00316EA8 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B24C 00316EAC 38 C0 00 00 */ li r6, 0 -/* 8031B250 00316EB0 90 01 00 24 */ stw r0, 0x24(r1) -/* 8031B254 00316EB4 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8031B258 00316EB8 7C BF 2B 78 */ mr r31, r5 -/* 8031B25C 00316EBC 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8031B260 00316EC0 7C 9E 23 78 */ mr r30, r4 -/* 8031B264 00316EC4 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8031B268 00316EC8 7C 7D 1B 78 */ mr r29, r3 -/* 8031B26C 00316ECC 41 82 00 80 */ beq lbl_8031B2EC -/* 8031B270 00316ED0 80 63 00 08 */ lwz r3, 8(r3) -/* 8031B274 00316ED4 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B278 00316ED8 41 82 00 74 */ beq lbl_8031B2EC -/* 8031B27C 00316EDC 80 83 00 38 */ lwz r4, 0x38(r3) -/* 8031B280 00316EE0 2C 04 00 00 */ cmpwi r4, 0 -/* 8031B284 00316EE4 41 82 00 64 */ beq lbl_8031B2E8 -/* 8031B288 00316EE8 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031B28C 00316EEC 2C 00 00 00 */ cmpwi r0, 0 -/* 8031B290 00316EF0 41 82 00 14 */ beq lbl_8031B2A4 -/* 8031B294 00316EF4 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13) -/* 8031B298 00316EF8 2C 06 00 00 */ cmpwi r6, 0 -/* 8031B29C 00316EFC 41 82 00 08 */ beq lbl_8031B2A4 -/* 8031B2A0 00316F00 48 00 00 08 */ b lbl_8031B2A8 -lbl_8031B2A4: -/* 8031B2A4 00316F04 38 C0 00 00 */ li r6, 0 -lbl_8031B2A8: -/* 8031B2A8 00316F08 1C 00 01 40 */ mulli r0, r0, 0x140 -/* 8031B2AC 00316F0C 7C A6 02 14 */ add r5, r6, r0 -/* 8031B2B0 00316F10 48 00 00 30 */ b lbl_8031B2E0 -lbl_8031B2B4: -/* 8031B2B4 00316F14 80 06 00 00 */ lwz r0, 0(r6) -/* 8031B2B8 00316F18 2C 00 00 00 */ cmpwi r0, 0 -/* 8031B2BC 00316F1C 41 82 00 20 */ beq lbl_8031B2DC -/* 8031B2C0 00316F20 88 66 00 14 */ lbz r3, 0x14(r6) -/* 8031B2C4 00316F24 88 04 18 7A */ lbz r0, 0x187a(r4) -/* 8031B2C8 00316F28 7C 63 07 74 */ extsb r3, r3 -/* 8031B2CC 00316F2C 7C 00 07 74 */ extsb r0, r0 -/* 8031B2D0 00316F30 7C 03 00 00 */ cmpw r3, r0 -/* 8031B2D4 00316F34 40 82 00 08 */ bne lbl_8031B2DC -/* 8031B2D8 00316F38 48 00 00 14 */ b lbl_8031B2EC -lbl_8031B2DC: -/* 8031B2DC 00316F3C 38 C6 01 40 */ addi r6, r6, 0x140 -lbl_8031B2E0: -/* 8031B2E0 00316F40 7C 06 28 40 */ cmplw r6, r5 -/* 8031B2E4 00316F44 40 82 FF D0 */ bne lbl_8031B2B4 -lbl_8031B2E8: -/* 8031B2E8 00316F48 38 C0 00 00 */ li r6, 0 -lbl_8031B2EC: -/* 8031B2EC 00316F4C 2C 06 00 00 */ cmpwi r6, 0 -/* 8031B2F0 00316F50 41 82 00 18 */ beq lbl_8031B308 -/* 8031B2F4 00316F54 80 66 00 08 */ lwz r3, 8(r6) -/* 8031B2F8 00316F58 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B2FC 00316F5C 41 82 00 0C */ beq lbl_8031B308 -/* 8031B300 00316F60 38 80 00 00 */ li r4, 0 -/* 8031B304 00316F64 48 00 0A 1D */ bl func_8031BD20 -lbl_8031B308: -/* 8031B308 00316F68 7F A3 EB 78 */ mr r3, r29 -/* 8031B30C 00316F6C 7F C4 F3 78 */ mr r4, r30 -/* 8031B310 00316F70 7F E5 FB 78 */ mr r5, r31 -/* 8031B314 00316F74 4B FF F0 75 */ bl VFipf2_fseek -/* 8031B318 00316F78 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B31C 00316F7C 40 82 00 0C */ bne lbl_8031B328 -/* 8031B320 00316F80 38 60 00 00 */ li r3, 0 -/* 8031B324 00316F84 48 00 00 08 */ b lbl_8031B32C -lbl_8031B328: -/* 8031B328 00316F88 4B FF EF 31 */ bl VFipf2_errnum -lbl_8031B32C: -/* 8031B32C 00316F8C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8031B330 00316F90 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8031B334 00316F94 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8031B338 00316F98 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8031B33C 00316F9C 7C 08 03 A6 */ mtlr r0 -/* 8031B340 00316FA0 38 21 00 20 */ addi r1, r1, 0x20 -/* 8031B344 00316FA4 4E 80 00 20 */ blr - -.global func_8031B348 -func_8031B348: -/* 8031B348 00316FA8 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8031B34C 00316FAC 7C 08 02 A6 */ mflr r0 -/* 8031B350 00316FB0 90 01 00 44 */ stw r0, 0x44(r1) -/* 8031B354 00316FB4 39 61 00 40 */ addi r11, r1, 0x40 -/* 8031B358 00316FB8 4B EA BD D1 */ bl _savegpr_27 -/* 8031B35C 00316FBC 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B360 00316FC0 7C 7C 1B 78 */ mr r28, r3 -/* 8031B364 00316FC4 7C 9D 23 78 */ mr r29, r4 -/* 8031B368 00316FC8 7C BE 2B 78 */ mr r30, r5 -/* 8031B36C 00316FCC 7C DF 33 78 */ mr r31, r6 -/* 8031B370 00316FD0 41 82 00 0C */ beq lbl_8031B37C -/* 8031B374 00316FD4 38 00 00 00 */ li r0, 0 -/* 8031B378 00316FD8 90 03 00 00 */ stw r0, 0(r3) -lbl_8031B37C: -/* 8031B37C 00316FDC 7F E3 FB 78 */ mr r3, r31 -/* 8031B380 00316FE0 38 81 00 08 */ addi r4, r1, 8 -/* 8031B384 00316FE4 4B FF EF 1D */ bl VFipf2_finfo -/* 8031B388 00316FE8 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B38C 00316FEC 40 82 01 18 */ bne lbl_8031B4A4 -/* 8031B390 00316FF0 80 7F 00 1C */ lwz r3, 0x1c(r31) -/* 8031B394 00316FF4 80 01 00 08 */ lwz r0, 8(r1) -/* 8031B398 00316FF8 7F 63 00 50 */ subf r27, r3, r0 -/* 8031B39C 00316FFC 7C 1E D8 40 */ cmplw r30, r27 -/* 8031B3A0 00317000 40 81 00 18 */ ble lbl_8031B3B8 -/* 8031B3A4 00317004 7F A3 EB 78 */ mr r3, r29 -/* 8031B3A8 00317008 7F C5 F3 78 */ mr r5, r30 -/* 8031B3AC 0031700C 38 80 00 00 */ li r4, 0 -/* 8031B3B0 00317010 4B FE 9C 25 */ bl VFipf_memset -/* 8031B3B4 00317014 7F 7E DB 78 */ mr r30, r27 -lbl_8031B3B8: -/* 8031B3B8 00317018 2C 1F 00 00 */ cmpwi r31, 0 -/* 8031B3BC 0031701C 38 C0 00 00 */ li r6, 0 -/* 8031B3C0 00317020 41 82 00 80 */ beq lbl_8031B440 -/* 8031B3C4 00317024 80 7F 00 08 */ lwz r3, 8(r31) -/* 8031B3C8 00317028 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B3CC 0031702C 41 82 00 74 */ beq lbl_8031B440 -/* 8031B3D0 00317030 80 83 00 38 */ lwz r4, 0x38(r3) -/* 8031B3D4 00317034 2C 04 00 00 */ cmpwi r4, 0 -/* 8031B3D8 00317038 41 82 00 64 */ beq lbl_8031B43C -/* 8031B3DC 0031703C 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031B3E0 00317040 2C 00 00 00 */ cmpwi r0, 0 -/* 8031B3E4 00317044 41 82 00 14 */ beq lbl_8031B3F8 -/* 8031B3E8 00317048 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13) -/* 8031B3EC 0031704C 2C 06 00 00 */ cmpwi r6, 0 -/* 8031B3F0 00317050 41 82 00 08 */ beq lbl_8031B3F8 -/* 8031B3F4 00317054 48 00 00 08 */ b lbl_8031B3FC -lbl_8031B3F8: -/* 8031B3F8 00317058 38 C0 00 00 */ li r6, 0 -lbl_8031B3FC: -/* 8031B3FC 0031705C 1C 00 01 40 */ mulli r0, r0, 0x140 -/* 8031B400 00317060 7C A6 02 14 */ add r5, r6, r0 -/* 8031B404 00317064 48 00 00 30 */ b lbl_8031B434 -lbl_8031B408: -/* 8031B408 00317068 80 06 00 00 */ lwz r0, 0(r6) -/* 8031B40C 0031706C 2C 00 00 00 */ cmpwi r0, 0 -/* 8031B410 00317070 41 82 00 20 */ beq lbl_8031B430 -/* 8031B414 00317074 88 66 00 14 */ lbz r3, 0x14(r6) -/* 8031B418 00317078 88 04 18 7A */ lbz r0, 0x187a(r4) -/* 8031B41C 0031707C 7C 63 07 74 */ extsb r3, r3 -/* 8031B420 00317080 7C 00 07 74 */ extsb r0, r0 -/* 8031B424 00317084 7C 03 00 00 */ cmpw r3, r0 -/* 8031B428 00317088 40 82 00 08 */ bne lbl_8031B430 -/* 8031B42C 0031708C 48 00 00 14 */ b lbl_8031B440 -lbl_8031B430: -/* 8031B430 00317090 38 C6 01 40 */ addi r6, r6, 0x140 -lbl_8031B434: -/* 8031B434 00317094 7C 06 28 40 */ cmplw r6, r5 -/* 8031B438 00317098 40 82 FF D0 */ bne lbl_8031B408 -lbl_8031B43C: -/* 8031B43C 0031709C 38 C0 00 00 */ li r6, 0 -lbl_8031B440: -/* 8031B440 003170A0 2C 06 00 00 */ cmpwi r6, 0 -/* 8031B444 003170A4 41 82 00 18 */ beq lbl_8031B45C -/* 8031B448 003170A8 80 66 00 08 */ lwz r3, 8(r6) -/* 8031B44C 003170AC 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B450 003170B0 41 82 00 0C */ beq lbl_8031B45C -/* 8031B454 003170B4 38 80 00 00 */ li r4, 0 -/* 8031B458 003170B8 48 00 08 C9 */ bl func_8031BD20 -lbl_8031B45C: -/* 8031B45C 003170BC 2C 1E 00 00 */ cmpwi r30, 0 -/* 8031B460 003170C0 41 82 00 3C */ beq lbl_8031B49C -/* 8031B464 003170C4 7F A3 EB 78 */ mr r3, r29 -/* 8031B468 003170C8 7F C4 F3 78 */ mr r4, r30 -/* 8031B46C 003170CC 7F E6 FB 78 */ mr r6, r31 -/* 8031B470 003170D0 38 A0 00 01 */ li r5, 1 -/* 8031B474 003170D4 4B FF EE ED */ bl VFipf2_fread -/* 8031B478 003170D8 28 03 00 01 */ cmplwi r3, 1 -/* 8031B47C 003170DC 40 82 00 18 */ bne lbl_8031B494 -/* 8031B480 003170E0 2C 1C 00 00 */ cmpwi r28, 0 -/* 8031B484 003170E4 41 82 00 08 */ beq lbl_8031B48C -/* 8031B488 003170E8 93 DC 00 00 */ stw r30, 0(r28) -lbl_8031B48C: -/* 8031B48C 003170EC 38 60 00 00 */ li r3, 0 -/* 8031B490 003170F0 48 00 00 18 */ b lbl_8031B4A8 -lbl_8031B494: -/* 8031B494 003170F4 4B FF ED C5 */ bl VFipf2_errnum -/* 8031B498 003170F8 48 00 00 10 */ b lbl_8031B4A8 -lbl_8031B49C: -/* 8031B49C 003170FC 38 60 00 00 */ li r3, 0 -/* 8031B4A0 00317100 48 00 00 08 */ b lbl_8031B4A8 -lbl_8031B4A4: -/* 8031B4A4 00317104 4B FF ED B5 */ bl VFipf2_errnum -lbl_8031B4A8: -/* 8031B4A8 00317108 39 61 00 40 */ addi r11, r1, 0x40 -/* 8031B4AC 0031710C 4B EA BC C9 */ bl _restgpr_27 -/* 8031B4B0 00317110 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8031B4B4 00317114 7C 08 03 A6 */ mtlr r0 -/* 8031B4B8 00317118 38 21 00 40 */ addi r1, r1, 0x40 -/* 8031B4BC 0031711C 4E 80 00 20 */ blr - -.global func_8031B4C0 -func_8031B4C0: -/* 8031B4C0 00317120 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8031B4C4 00317124 7C 08 02 A6 */ mflr r0 -/* 8031B4C8 00317128 2C 05 00 00 */ cmpwi r5, 0 -/* 8031B4CC 0031712C 38 C0 00 00 */ li r6, 0 -/* 8031B4D0 00317130 90 01 00 24 */ stw r0, 0x24(r1) -/* 8031B4D4 00317134 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8031B4D8 00317138 7C BF 2B 78 */ mr r31, r5 -/* 8031B4DC 0031713C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8031B4E0 00317140 7C 9E 23 78 */ mr r30, r4 -/* 8031B4E4 00317144 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8031B4E8 00317148 7C 7D 1B 78 */ mr r29, r3 -/* 8031B4EC 0031714C 41 82 00 80 */ beq lbl_8031B56C -/* 8031B4F0 00317150 80 65 00 08 */ lwz r3, 8(r5) -/* 8031B4F4 00317154 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B4F8 00317158 41 82 00 74 */ beq lbl_8031B56C -/* 8031B4FC 0031715C 80 83 00 38 */ lwz r4, 0x38(r3) -/* 8031B500 00317160 2C 04 00 00 */ cmpwi r4, 0 -/* 8031B504 00317164 41 82 00 64 */ beq lbl_8031B568 -/* 8031B508 00317168 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031B50C 0031716C 2C 00 00 00 */ cmpwi r0, 0 -/* 8031B510 00317170 41 82 00 14 */ beq lbl_8031B524 -/* 8031B514 00317174 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13) -/* 8031B518 00317178 2C 06 00 00 */ cmpwi r6, 0 -/* 8031B51C 0031717C 41 82 00 08 */ beq lbl_8031B524 -/* 8031B520 00317180 48 00 00 08 */ b lbl_8031B528 -lbl_8031B524: -/* 8031B524 00317184 38 C0 00 00 */ li r6, 0 -lbl_8031B528: -/* 8031B528 00317188 1C 00 01 40 */ mulli r0, r0, 0x140 -/* 8031B52C 0031718C 7C A6 02 14 */ add r5, r6, r0 -/* 8031B530 00317190 48 00 00 30 */ b lbl_8031B560 -lbl_8031B534: -/* 8031B534 00317194 80 06 00 00 */ lwz r0, 0(r6) -/* 8031B538 00317198 2C 00 00 00 */ cmpwi r0, 0 -/* 8031B53C 0031719C 41 82 00 20 */ beq lbl_8031B55C -/* 8031B540 003171A0 88 66 00 14 */ lbz r3, 0x14(r6) -/* 8031B544 003171A4 88 04 18 7A */ lbz r0, 0x187a(r4) -/* 8031B548 003171A8 7C 63 07 74 */ extsb r3, r3 -/* 8031B54C 003171AC 7C 00 07 74 */ extsb r0, r0 -/* 8031B550 003171B0 7C 03 00 00 */ cmpw r3, r0 -/* 8031B554 003171B4 40 82 00 08 */ bne lbl_8031B55C -/* 8031B558 003171B8 48 00 00 14 */ b lbl_8031B56C -lbl_8031B55C: -/* 8031B55C 003171BC 38 C6 01 40 */ addi r6, r6, 0x140 -lbl_8031B560: -/* 8031B560 003171C0 7C 06 28 40 */ cmplw r6, r5 -/* 8031B564 003171C4 40 82 FF D0 */ bne lbl_8031B534 -lbl_8031B568: -/* 8031B568 003171C8 38 C0 00 00 */ li r6, 0 -lbl_8031B56C: -/* 8031B56C 003171CC 2C 06 00 00 */ cmpwi r6, 0 -/* 8031B570 003171D0 41 82 00 18 */ beq lbl_8031B588 -/* 8031B574 003171D4 80 66 00 08 */ lwz r3, 8(r6) -/* 8031B578 003171D8 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B57C 003171DC 41 82 00 0C */ beq lbl_8031B588 -/* 8031B580 003171E0 38 80 00 00 */ li r4, 0 -/* 8031B584 003171E4 48 00 07 9D */ bl func_8031BD20 -lbl_8031B588: -/* 8031B588 003171E8 7F A3 EB 78 */ mr r3, r29 -/* 8031B58C 003171EC 7F C4 F3 78 */ mr r4, r30 -/* 8031B590 003171F0 7F E6 FB 78 */ mr r6, r31 -/* 8031B594 003171F4 38 A0 00 01 */ li r5, 1 -/* 8031B598 003171F8 4B FF EE 15 */ bl VFipf2_fwrite -/* 8031B59C 003171FC 28 03 00 01 */ cmplwi r3, 1 -/* 8031B5A0 00317200 40 82 00 0C */ bne lbl_8031B5AC -/* 8031B5A4 00317204 38 60 00 00 */ li r3, 0 -/* 8031B5A8 00317208 48 00 00 08 */ b lbl_8031B5B0 -lbl_8031B5AC: -/* 8031B5AC 0031720C 4B FF EC AD */ bl VFipf2_errnum -lbl_8031B5B0: -/* 8031B5B0 00317210 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8031B5B4 00317214 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8031B5B8 00317218 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8031B5BC 0031721C 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8031B5C0 00317220 7C 08 03 A6 */ mtlr r0 -/* 8031B5C4 00317224 38 21 00 20 */ addi r1, r1, 0x20 -/* 8031B5C8 00317228 4E 80 00 20 */ blr - -.global func_8031B5CC -func_8031B5CC: -/* 8031B5CC 0031722C 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8031B5D0 00317230 7C 08 02 A6 */ mflr r0 -/* 8031B5D4 00317234 2C 04 00 00 */ cmpwi r4, 0 -/* 8031B5D8 00317238 90 01 00 34 */ stw r0, 0x34(r1) -/* 8031B5DC 0031723C 38 00 FF FF */ li r0, -1 -/* 8031B5E0 00317240 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 8031B5E4 00317244 7C 7F 1B 78 */ mr r31, r3 -/* 8031B5E8 00317248 90 03 00 00 */ stw r0, 0(r3) -/* 8031B5EC 0031724C 41 82 00 30 */ beq lbl_8031B61C -/* 8031B5F0 00317250 7C 83 23 78 */ mr r3, r4 -/* 8031B5F4 00317254 38 81 00 08 */ addi r4, r1, 8 -/* 8031B5F8 00317258 4B FF EC A9 */ bl VFipf2_finfo -/* 8031B5FC 0031725C 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B600 00317260 40 82 00 14 */ bne lbl_8031B614 -/* 8031B604 00317264 80 01 00 08 */ lwz r0, 8(r1) -/* 8031B608 00317268 38 60 00 00 */ li r3, 0 -/* 8031B60C 0031726C 90 1F 00 00 */ stw r0, 0(r31) -/* 8031B610 00317270 48 00 00 10 */ b lbl_8031B620 -lbl_8031B614: -/* 8031B614 00317274 4B FF EC 45 */ bl VFipf2_errnum -/* 8031B618 00317278 48 00 00 08 */ b lbl_8031B620 -lbl_8031B61C: -/* 8031B61C 0031727C 38 60 FF FF */ li r3, -1 -lbl_8031B620: -/* 8031B620 00317280 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8031B624 00317284 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 8031B628 00317288 7C 08 03 A6 */ mtlr r0 -/* 8031B62C 0031728C 38 21 00 30 */ addi r1, r1, 0x30 -/* 8031B630 00317290 4E 80 00 20 */ blr -lbl_8031B634: -/* 8031B634 00317294 80 6D AF F4 */ lwz r3, lbl_806402B4-_SDA_BASE_(r13) -/* 8031B638 00317298 4E 80 00 20 */ blr - -.global func_8031B63C -func_8031B63C: -/* 8031B63C 0031729C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031B640 003172A0 7C 08 02 A6 */ mflr r0 -/* 8031B644 003172A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031B648 003172A8 4B FF E3 BD */ bl VFiPFVOL_GetCurrentVolume -/* 8031B64C 003172AC 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B650 003172B0 41 82 00 64 */ beq lbl_8031B6B4 -/* 8031B654 003172B4 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031B658 003172B8 2C 00 00 00 */ cmpwi r0, 0 -/* 8031B65C 003172BC 41 82 00 14 */ beq lbl_8031B670 -/* 8031B660 003172C0 80 CD B0 00 */ lwz r6, lbl_806402C0-_SDA_BASE_(r13) -/* 8031B664 003172C4 2C 06 00 00 */ cmpwi r6, 0 -/* 8031B668 003172C8 41 82 00 08 */ beq lbl_8031B670 -/* 8031B66C 003172CC 48 00 00 08 */ b lbl_8031B674 -lbl_8031B670: -/* 8031B670 003172D0 38 C0 00 00 */ li r6, 0 -lbl_8031B674: -/* 8031B674 003172D4 1C 00 01 40 */ mulli r0, r0, 0x140 -/* 8031B678 003172D8 7C A6 02 14 */ add r5, r6, r0 -/* 8031B67C 003172DC 48 00 00 30 */ b lbl_8031B6AC -lbl_8031B680: -/* 8031B680 003172E0 80 06 00 00 */ lwz r0, 0(r6) -/* 8031B684 003172E4 2C 00 00 00 */ cmpwi r0, 0 -/* 8031B688 003172E8 41 82 00 20 */ beq lbl_8031B6A8 -/* 8031B68C 003172EC 88 86 00 14 */ lbz r4, 0x14(r6) -/* 8031B690 003172F0 88 03 18 7A */ lbz r0, 0x187a(r3) -/* 8031B694 003172F4 7C 84 07 74 */ extsb r4, r4 -/* 8031B698 003172F8 7C 00 07 74 */ extsb r0, r0 -/* 8031B69C 003172FC 7C 04 00 00 */ cmpw r4, r0 -/* 8031B6A0 00317300 40 82 00 08 */ bne lbl_8031B6A8 -/* 8031B6A4 00317304 48 00 00 14 */ b lbl_8031B6B8 -lbl_8031B6A8: -/* 8031B6A8 00317308 38 C6 01 40 */ addi r6, r6, 0x140 -lbl_8031B6AC: -/* 8031B6AC 0031730C 7C 06 28 40 */ cmplw r6, r5 -/* 8031B6B0 00317310 40 82 FF D0 */ bne lbl_8031B680 -lbl_8031B6B4: -/* 8031B6B4 00317314 38 C0 00 00 */ li r6, 0 -lbl_8031B6B8: -/* 8031B6B8 00317318 2C 06 00 00 */ cmpwi r6, 0 -/* 8031B6BC 0031731C 41 82 00 18 */ beq lbl_8031B6D4 -/* 8031B6C0 00317320 80 66 00 08 */ lwz r3, 8(r6) -/* 8031B6C4 00317324 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B6C8 00317328 41 82 00 0C */ beq lbl_8031B6D4 -/* 8031B6CC 0031732C 48 00 06 01 */ bl func_8031BCCC -/* 8031B6D0 00317330 48 00 00 08 */ b lbl_8031B6D8 -lbl_8031B6D4: -/* 8031B6D4 00317334 38 60 FF FF */ li r3, -1 -lbl_8031B6D8: -/* 8031B6D8 00317338 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031B6DC 0031733C 7C 08 03 A6 */ mtlr r0 -/* 8031B6E0 00317340 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031B6E4 00317344 4E 80 00 20 */ blr - -.global func_8031B6E8 -func_8031B6E8: -/* 8031B6E8 00317348 80 0D AF F0 */ lwz r0, lbl_806402B0-_SDA_BASE_(r13) -/* 8031B6EC 0031734C 7C 03 00 40 */ cmplw r3, r0 -/* 8031B6F0 00317350 40 80 00 1C */ bge lbl_8031B70C -/* 8031B6F4 00317354 80 8D B0 00 */ lwz r4, lbl_806402C0-_SDA_BASE_(r13) -/* 8031B6F8 00317358 2C 04 00 00 */ cmpwi r4, 0 -/* 8031B6FC 0031735C 41 82 00 10 */ beq lbl_8031B70C -/* 8031B700 00317360 1C 03 01 40 */ mulli r0, r3, 0x140 -/* 8031B704 00317364 7C 64 02 14 */ add r3, r4, r0 -/* 8031B708 00317368 48 00 00 08 */ b lbl_8031B710 -lbl_8031B70C: -/* 8031B70C 0031736C 38 60 00 00 */ li r3, 0 -lbl_8031B710: -/* 8031B710 00317370 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B714 00317374 41 82 00 14 */ beq lbl_8031B728 -/* 8031B718 00317378 80 63 00 08 */ lwz r3, 8(r3) -/* 8031B71C 0031737C 2C 03 00 00 */ cmpwi r3, 0 -/* 8031B720 00317380 41 82 00 08 */ beq lbl_8031B728 -/* 8031B724 00317384 48 00 05 A8 */ b func_8031BCCC -lbl_8031B728: -/* 8031B728 00317388 38 60 FF FF */ li r3, -1 -/* 8031B72C 0031738C 4E 80 00 20 */ blr - .global func_8031B730 func_8031B730: /* 8031B730 00317390 94 21 FF D0 */ stwu r1, -0x30(r1) @@ -2051,7 +417,7 @@ func_8031BCCC: /* 8031BCCC 0031792C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8031BCD0 00317930 7C 08 02 A6 */ mflr r0 /* 8031BCD4 00317934 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031BCD8 00317938 4B FF EE A5 */ bl func_8031AB7C +/* 8031BCD8 00317938 4B FF EE A5 */ bl VFSysPDMDisk2HandleIdx /* 8031BCDC 0031793C 28 03 00 1A */ cmplwi r3, 0x1a /* 8031BCE0 00317940 40 80 00 18 */ bge lbl_8031BCF8 /* 8031BCE4 00317944 1C 03 00 14 */ mulli r0, r3, 0x14 @@ -2081,7 +447,7 @@ func_8031BD20: /* 8031BD28 00317988 90 01 00 14 */ stw r0, 0x14(r1) /* 8031BD2C 0031798C 93 E1 00 0C */ stw r31, 0xc(r1) /* 8031BD30 00317990 7C 9F 23 78 */ mr r31, r4 -/* 8031BD34 00317994 4B FF EE 49 */ bl func_8031AB7C +/* 8031BD34 00317994 4B FF EE 49 */ bl VFSysPDMDisk2HandleIdx /* 8031BD38 00317998 28 03 00 1A */ cmplwi r3, 0x1a /* 8031BD3C 0031799C 40 80 00 18 */ bge lbl_8031BD54 /* 8031BD40 003179A0 1C 03 00 14 */ mulli r0, r3, 0x14 @@ -2123,7 +489,7 @@ func_8031BDA0: /* 8031BDAC 00317A0C 93 E1 00 0C */ stw r31, 0xc(r1) /* 8031BDB0 00317A10 93 C1 00 08 */ stw r30, 8(r1) /* 8031BDB4 00317A14 7C 9E 23 78 */ mr r30, r4 -/* 8031BDB8 00317A18 4B FF ED 51 */ bl func_8031AB08 +/* 8031BDB8 00317A18 4B FF ED 51 */ bl VFSysVol2HandleP /* 8031BDBC 00317A1C 2C 03 00 00 */ cmpwi r3, 0 /* 8031BDC0 00317A20 3B E0 FF FF */ li r31, -1 /* 8031BDC4 00317A24 41 82 00 3C */ beq lbl_8031BE00 @@ -2133,7 +499,7 @@ func_8031BDA0: /* 8031BDD4 00317A34 80 04 00 08 */ lwz r0, 8(r4) /* 8031BDD8 00317A38 2C 00 00 00 */ cmpwi r0, 0 /* 8031BDDC 00317A3C 40 82 00 20 */ bne lbl_8031BDFC -/* 8031BDE0 00317A40 4B FF EC C9 */ bl func_8031AAA8 +/* 8031BDE0 00317A40 4B FF EC C9 */ bl VFSysHandleP2Idx /* 8031BDE4 00317A44 2C 03 FF FF */ cmpwi r3, -1 /* 8031BDE8 00317A48 41 82 00 18 */ beq lbl_8031BE00 /* 8031BDEC 00317A4C 7F C4 F3 78 */ mr r4, r30 @@ -2160,10 +526,10 @@ func_8031BE1C: /* 8031BE2C 00317A8C 4B EA B2 ED */ bl _savegpr_23 /* 8031BE30 00317A90 7C 7A 1B 78 */ mr r26, r3 /* 8031BE34 00317A94 7C 9B 23 78 */ mr r27, r4 -/* 8031BE38 00317A98 4B FF ED A9 */ bl func_8031ABE0 +/* 8031BE38 00317A98 4B FF ED A9 */ bl VFSysGetDriveP /* 8031BE3C 00317A9C 7C 77 1B 78 */ mr r23, r3 /* 8031BE40 00317AA0 7F 43 D3 78 */ mr r3, r26 -/* 8031BE44 00317AA4 4B FF EC 39 */ bl func_8031AA7C +/* 8031BE44 00317AA4 4B FF EC 39 */ bl VFSysGetHandleP /* 8031BE48 00317AA8 2C 03 00 00 */ cmpwi r3, 0 /* 8031BE4C 00317AAC 41 82 00 24 */ beq lbl_8031BE70 /* 8031BE50 00317AB0 80 63 00 00 */ lwz r3, 0(r3) diff --git a/obj_files.mk b/obj_files.mk index 6b305b8..600b257 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -376,6 +376,18 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/SDK/VF/pf_volume.o \ $(BUILD_DIR)/asm/SDK/VF/pf_cp932.o \ $(BUILD_DIR)/asm/SDK/VF/pf_api_util.o \ + $(BUILD_DIR)/asm/SDK/VF/pf_errnum.o \ + $(BUILD_DIR)/asm/SDK/VF/pf_fclose.o \ + $(BUILD_DIR)/asm/SDK/VF/pf_finfo.o \ + $(BUILD_DIR)/asm/SDK/VF/pf_fopen.o \ + $(BUILD_DIR)/asm/SDK/VF/pf_fread.o \ + $(BUILD_DIR)/asm/SDK/VF/pf_fseek.o \ + $(BUILD_DIR)/asm/SDK/VF/pf_fwrite.o \ + $(BUILD_DIR)/asm/SDK/VF/pf_init_prfile2.o \ + $(BUILD_DIR)/asm/SDK/VF/pf_filelock.o \ + $(BUILD_DIR)/asm/SDK/VF/pf_system.o \ + $(BUILD_DIR)/asm/SDK/VF/d_vf.o \ + $(BUILD_DIR)/asm/SDK/VF/d_vf_sys.o \ $(BUILD_DIR)/asm/text_9_2.o \ $(BUILD_DIR)/asm/text_10.o \ $(BUILD_DIR)/src/GameSpy/darray.o \ |