.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 dCommon_initDriveInfo /* 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 VFi_InitSDWrok /* 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 dCommon_setLastDeviceErrorToDisk 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 dCommon_setLastDeviceErrorToDisk 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 dCommon_setLastDeviceErrorToDisk 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 dCommon_setLastDeviceErrorToDisk 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 dCommon_setLastDeviceErrorToDisk 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 dCommon_setLastDeviceErrorToDisk 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 dCommon_getLastDeviceErrorFromDisk /* 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 dCommon_getLastDeviceErrorFromDisk lbl_8031B728: /* 8031B728 00317388 38 60 FF FF */ li r3, -1 /* 8031B72C 0031738C 4E 80 00 20 */ blr