.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global VFiPFFILE_Cursor_AdvanceToRead VFiPFFILE_Cursor_AdvanceToRead: /* 80312814 0030E474 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80312818 0030E478 7C 08 02 A6 */ mflr r0 /* 8031281C 0030E47C 2C 03 00 00 */ cmpwi r3, 0 /* 80312820 0030E480 90 01 00 14 */ stw r0, 0x14(r1) /* 80312824 0030E484 93 E1 00 0C */ stw r31, 0xc(r1) /* 80312828 0030E488 3B E0 00 01 */ li r31, 1 /* 8031282C 0030E48C 40 82 00 0C */ bne lbl_80312838 /* 80312830 0030E490 39 20 00 00 */ li r9, 0 /* 80312834 0030E494 48 00 00 0C */ b lbl_80312840 lbl_80312838: /* 80312838 0030E498 80 C3 00 08 */ lwz r6, 8(r3) /* 8031283C 0030E49C 81 26 02 68 */ lwz r9, 0x268(r6) lbl_80312840: /* 80312840 0030E4A0 80 C3 00 08 */ lwz r6, 8(r3) /* 80312844 0030E4A4 80 03 00 1C */ lwz r0, 0x1c(r3) /* 80312848 0030E4A8 A1 03 00 28 */ lhz r8, 0x28(r3) /* 8031284C 0030E4AC 81 46 02 64 */ lwz r10, 0x264(r6) /* 80312850 0030E4B0 7C 00 22 14 */ add r0, r0, r4 /* 80312854 0030E4B4 88 E9 00 20 */ lbz r7, 0x20(r9) /* 80312858 0030E4B8 7D 08 22 14 */ add r8, r8, r4 /* 8031285C 0030E4BC 7C 00 50 40 */ cmplw r0, r10 /* 80312860 0030E4C0 7D 00 3C 30 */ srw r0, r8, r7 /* 80312864 0030E4C4 7C E5 02 14 */ add r7, r5, r0 /* 80312868 0030E4C8 40 80 00 34 */ bge lbl_8031289C /* 8031286C 0030E4CC A0 A9 00 00 */ lhz r5, 0(r9) /* 80312870 0030E4D0 38 05 FF FF */ addi r0, r5, -1 /* 80312874 0030E4D4 7C 00 40 39 */ and. r0, r0, r8 /* 80312878 0030E4D8 41 82 00 0C */ beq lbl_80312884 /* 8031287C 0030E4DC 90 E3 00 20 */ stw r7, 0x20(r3) /* 80312880 0030E4E0 48 00 00 0C */ b lbl_8031288C lbl_80312884: /* 80312884 0030E4E4 38 00 FF FF */ li r0, -1 /* 80312888 0030E4E8 90 03 00 20 */ stw r0, 0x20(r3) lbl_8031288C: /* 8031288C 0030E4EC 80 03 00 1C */ lwz r0, 0x1c(r3) /* 80312890 0030E4F0 7C 00 22 14 */ add r0, r0, r4 /* 80312894 0030E4F4 90 03 00 1C */ stw r0, 0x1c(r3) /* 80312898 0030E4F8 48 00 00 40 */ b lbl_803128D8 lbl_8031289C: /* 8031289C 0030E4FC 2C 0A 00 00 */ cmpwi r10, 0 /* 803128A0 0030E500 40 82 00 24 */ bne lbl_803128C4 /* 803128A4 0030E504 38 A0 FF FF */ li r5, -1 /* 803128A8 0030E508 38 00 00 00 */ li r0, 0 /* 803128AC 0030E50C 2C 04 00 00 */ cmpwi r4, 0 /* 803128B0 0030E510 90 A3 00 20 */ stw r5, 0x20(r3) /* 803128B4 0030E514 90 03 00 1C */ stw r0, 0x1c(r3) /* 803128B8 0030E518 41 82 00 20 */ beq lbl_803128D8 /* 803128BC 0030E51C 3B E0 00 00 */ li r31, 0 /* 803128C0 0030E520 48 00 00 18 */ b lbl_803128D8 lbl_803128C4: /* 803128C4 0030E524 38 00 FF FF */ li r0, -1 /* 803128C8 0030E528 3B E0 00 00 */ li r31, 0 /* 803128CC 0030E52C 90 03 00 20 */ stw r0, 0x20(r3) /* 803128D0 0030E530 80 06 02 64 */ lwz r0, 0x264(r6) /* 803128D4 0030E534 90 03 00 1C */ stw r0, 0x1c(r3) lbl_803128D8: /* 803128D8 0030E538 2C 03 00 00 */ cmpwi r3, 0 /* 803128DC 0030E53C 40 82 00 0C */ bne lbl_803128E8 /* 803128E0 0030E540 38 A0 00 00 */ li r5, 0 /* 803128E4 0030E544 48 00 00 0C */ b lbl_803128F0 lbl_803128E8: /* 803128E8 0030E548 80 83 00 08 */ lwz r4, 8(r3) /* 803128EC 0030E54C 80 A4 02 68 */ lwz r5, 0x268(r4) lbl_803128F0: /* 803128F0 0030E550 80 C3 00 1C */ lwz r6, 0x1c(r3) /* 803128F4 0030E554 7C E4 3B 78 */ mr r4, r7 /* 803128F8 0030E558 88 05 00 20 */ lbz r0, 0x20(r5) /* 803128FC 0030E55C 7C C0 04 30 */ srw r0, r6, r0 /* 80312900 0030E560 90 03 00 24 */ stw r0, 0x24(r3) /* 80312904 0030E564 A0 A5 00 00 */ lhz r5, 0(r5) /* 80312908 0030E568 38 05 FF FF */ addi r0, r5, -1 /* 8031290C 0030E56C 7C C0 00 38 */ and r0, r6, r0 /* 80312910 0030E570 B0 03 00 28 */ sth r0, 0x28(r3) /* 80312914 0030E574 4B FF 84 6D */ bl VFiPFCLUSTER_UpdateLastAccessCluster /* 80312918 0030E578 7F E3 FB 78 */ mr r3, r31 /* 8031291C 0030E57C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80312920 0030E580 80 01 00 14 */ lwz r0, 0x14(r1) /* 80312924 0030E584 7C 08 03 A6 */ mtlr r0 /* 80312928 0030E588 38 21 00 10 */ addi r1, r1, 0x10 /* 8031292C 0030E58C 4E 80 00 20 */ blr .global VFiPFFILE_Cursor_ReadHeadSector VFiPFFILE_Cursor_ReadHeadSector: /* 80312930 0030E590 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80312934 0030E594 7C 08 02 A6 */ mflr r0 /* 80312938 0030E598 90 01 00 34 */ stw r0, 0x34(r1) /* 8031293C 0030E59C 39 61 00 30 */ addi r11, r1, 0x30 /* 80312940 0030E5A0 4B EB 47 E9 */ bl _savegpr_27 /* 80312944 0030E5A4 38 00 00 00 */ li r0, 0 /* 80312948 0030E5A8 7C BD 2B 78 */ mr r29, r5 /* 8031294C 0030E5AC 90 07 00 00 */ stw r0, 0(r7) /* 80312950 0030E5B0 7C 7B 1B 78 */ mr r27, r3 /* 80312954 0030E5B4 7C 9C 23 78 */ mr r28, r4 /* 80312958 0030E5B8 7C DE 33 78 */ mr r30, r6 /* 8031295C 0030E5BC A0 A4 00 28 */ lhz r5, 0x28(r4) /* 80312960 0030E5C0 7C FF 3B 78 */ mr r31, r7 /* 80312964 0030E5C4 2C 05 00 00 */ cmpwi r5, 0 /* 80312968 0030E5C8 40 82 00 0C */ bne lbl_80312974 /* 8031296C 0030E5CC 38 60 00 00 */ li r3, 0 /* 80312970 0030E5D0 48 00 02 40 */ b lbl_80312BB0 lbl_80312974: /* 80312974 0030E5D4 A0 03 00 00 */ lhz r0, 0(r3) /* 80312978 0030E5D8 7C E5 00 50 */ subf r7, r5, r0 /* 8031297C 0030E5DC 7C 06 38 40 */ cmplw r6, r7 /* 80312980 0030E5E0 40 81 00 08 */ ble lbl_80312988 /* 80312984 0030E5E4 7C FE 3B 78 */ mr r30, r7 lbl_80312988: /* 80312988 0030E5E8 80 C4 00 08 */ lwz r6, 8(r4) /* 8031298C 0030E5EC 80 64 00 1C */ lwz r3, 0x1c(r4) /* 80312990 0030E5F0 80 A6 02 64 */ lwz r5, 0x264(r6) /* 80312994 0030E5F4 7C 03 F2 14 */ add r0, r3, r30 /* 80312998 0030E5F8 7C 00 28 40 */ cmplw r0, r5 /* 8031299C 0030E5FC 40 81 00 18 */ ble lbl_803129B4 /* 803129A0 0030E600 7F C3 28 50 */ subf r30, r3, r5 /* 803129A4 0030E604 7C 1E 38 40 */ cmplw r30, r7 /* 803129A8 0030E608 40 80 00 0C */ bge lbl_803129B4 /* 803129AC 0030E60C 38 60 00 00 */ li r3, 0 /* 803129B0 0030E610 48 00 02 00 */ b lbl_80312BB0 lbl_803129B4: /* 803129B4 0030E614 80 A4 00 20 */ lwz r5, 0x20(r4) /* 803129B8 0030E618 3C 05 00 01 */ addis r0, r5, 1 /* 803129BC 0030E61C 28 00 FF FF */ cmplwi r0, 0xffff /* 803129C0 0030E620 40 82 01 A0 */ bne lbl_80312B60 /* 803129C4 0030E624 80 84 00 24 */ lwz r4, 0x24(r4) /* 803129C8 0030E628 38 66 00 04 */ addi r3, r6, 4 /* 803129CC 0030E62C 38 DC 00 20 */ addi r6, r28, 0x20 /* 803129D0 0030E630 38 A0 00 00 */ li r5, 0 /* 803129D4 0030E634 4B FF D5 95 */ bl VFiPFFAT_GetSectorSpecified /* 803129D8 0030E638 2C 03 00 00 */ cmpwi r3, 0 /* 803129DC 0030E63C 41 82 00 08 */ beq lbl_803129E4 /* 803129E0 0030E640 48 00 01 D0 */ b lbl_80312BB0 lbl_803129E4: /* 803129E4 0030E644 80 BC 00 20 */ lwz r5, 0x20(r28) /* 803129E8 0030E648 3C 05 00 01 */ addis r0, r5, 1 /* 803129EC 0030E64C 28 00 FF FF */ cmplwi r0, 0xffff /* 803129F0 0030E650 40 82 00 B4 */ bne lbl_80312AA4 /* 803129F4 0030E654 80 7C 00 08 */ lwz r3, 8(r28) /* 803129F8 0030E658 2C 1C 00 00 */ cmpwi r28, 0 /* 803129FC 0030E65C 81 03 02 64 */ lwz r8, 0x264(r3) /* 80312A00 0030E660 40 82 00 0C */ bne lbl_80312A0C /* 80312A04 0030E664 38 80 00 00 */ li r4, 0 /* 80312A08 0030E668 48 00 00 08 */ b lbl_80312A10 lbl_80312A0C: /* 80312A0C 0030E66C 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80312A10: /* 80312A10 0030E670 A0 64 00 00 */ lhz r3, 0(r4) /* 80312A14 0030E674 80 1C 00 1C */ lwz r0, 0x1c(r28) /* 80312A18 0030E678 38 63 FF FF */ addi r3, r3, -1 /* 80312A1C 0030E67C 88 84 00 20 */ lbz r4, 0x20(r4) /* 80312A20 0030E680 7C 07 18 38 */ and r7, r0, r3 /* 80312A24 0030E684 7C 05 24 30 */ srw r5, r0, r4 /* 80312A28 0030E688 7D 03 18 38 */ and r3, r8, r3 /* 80312A2C 0030E68C 7C C7 00 D0 */ neg r6, r7 /* 80312A30 0030E690 7D 04 24 30 */ srw r4, r8, r4 /* 80312A34 0030E694 7C 03 00 D0 */ neg r0, r3 /* 80312A38 0030E698 7C 00 1B 78 */ or r0, r0, r3 /* 80312A3C 0030E69C 7C C6 3B 78 */ or r6, r6, r7 /* 80312A40 0030E6A0 54 C3 0F FE */ srwi r3, r6, 0x1f /* 80312A44 0030E6A4 54 00 0F FE */ srwi r0, r0, 0x1f /* 80312A48 0030E6A8 7C 65 1A 14 */ add r3, r5, r3 /* 80312A4C 0030E6AC 7C 04 02 14 */ add r0, r4, r0 /* 80312A50 0030E6B0 7C 03 00 40 */ cmplw r3, r0 /* 80312A54 0030E6B4 41 82 00 0C */ beq lbl_80312A60 /* 80312A58 0030E6B8 38 00 FF FF */ li r0, -1 /* 80312A5C 0030E6BC 90 1C 00 20 */ stw r0, 0x20(r28) lbl_80312A60: /* 80312A60 0030E6C0 2C 1C 00 00 */ cmpwi r28, 0 /* 80312A64 0030E6C4 91 1C 00 1C */ stw r8, 0x1c(r28) /* 80312A68 0030E6C8 40 82 00 0C */ bne lbl_80312A74 /* 80312A6C 0030E6CC 38 80 00 00 */ li r4, 0 /* 80312A70 0030E6D0 48 00 00 0C */ b lbl_80312A7C lbl_80312A74: /* 80312A74 0030E6D4 80 7C 00 08 */ lwz r3, 8(r28) /* 80312A78 0030E6D8 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80312A7C: /* 80312A7C 0030E6DC 80 BC 00 1C */ lwz r5, 0x1c(r28) /* 80312A80 0030E6E0 38 60 00 1C */ li r3, 0x1c /* 80312A84 0030E6E4 88 04 00 20 */ lbz r0, 0x20(r4) /* 80312A88 0030E6E8 7C A0 04 30 */ srw r0, r5, r0 /* 80312A8C 0030E6EC 90 1C 00 24 */ stw r0, 0x24(r28) /* 80312A90 0030E6F0 A0 84 00 00 */ lhz r4, 0(r4) /* 80312A94 0030E6F4 38 04 FF FF */ addi r0, r4, -1 /* 80312A98 0030E6F8 7C A0 00 38 */ and r0, r5, r0 /* 80312A9C 0030E6FC B0 1C 00 28 */ sth r0, 0x28(r28) /* 80312AA0 0030E700 48 00 01 10 */ b lbl_80312BB0 lbl_80312AA4: /* 80312AA4 0030E704 80 7C 00 08 */ lwz r3, 8(r28) /* 80312AA8 0030E708 80 DC 00 1C */ lwz r6, 0x1c(r28) /* 80312AAC 0030E70C 81 03 02 64 */ lwz r8, 0x264(r3) /* 80312AB0 0030E710 7C 06 F2 14 */ add r0, r6, r30 /* 80312AB4 0030E714 7C 00 40 40 */ cmplw r0, r8 /* 80312AB8 0030E718 40 81 00 A8 */ ble lbl_80312B60 /* 80312ABC 0030E71C 2C 1C 00 00 */ cmpwi r28, 0 /* 80312AC0 0030E720 40 82 00 0C */ bne lbl_80312ACC /* 80312AC4 0030E724 38 80 00 00 */ li r4, 0 /* 80312AC8 0030E728 48 00 00 08 */ b lbl_80312AD0 lbl_80312ACC: /* 80312ACC 0030E72C 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80312AD0: /* 80312AD0 0030E730 A0 64 00 00 */ lhz r3, 0(r4) /* 80312AD4 0030E734 88 84 00 20 */ lbz r4, 0x20(r4) /* 80312AD8 0030E738 38 03 FF FF */ addi r0, r3, -1 /* 80312ADC 0030E73C 7C C7 00 38 */ and r7, r6, r0 /* 80312AE0 0030E740 7C C5 24 30 */ srw r5, r6, r4 /* 80312AE4 0030E744 7D 03 00 38 */ and r3, r8, r0 /* 80312AE8 0030E748 7D 04 24 30 */ srw r4, r8, r4 /* 80312AEC 0030E74C 7C C7 00 D0 */ neg r6, r7 /* 80312AF0 0030E750 7C 03 00 D0 */ neg r0, r3 /* 80312AF4 0030E754 7C 00 1B 78 */ or r0, r0, r3 /* 80312AF8 0030E758 7C C6 3B 78 */ or r6, r6, r7 /* 80312AFC 0030E75C 54 C3 0F FE */ srwi r3, r6, 0x1f /* 80312B00 0030E760 54 00 0F FE */ srwi r0, r0, 0x1f /* 80312B04 0030E764 7C 65 1A 14 */ add r3, r5, r3 /* 80312B08 0030E768 7C 04 02 14 */ add r0, r4, r0 /* 80312B0C 0030E76C 7C 03 00 40 */ cmplw r3, r0 /* 80312B10 0030E770 41 82 00 0C */ beq lbl_80312B1C /* 80312B14 0030E774 38 00 FF FF */ li r0, -1 /* 80312B18 0030E778 90 1C 00 20 */ stw r0, 0x20(r28) lbl_80312B1C: /* 80312B1C 0030E77C 2C 1C 00 00 */ cmpwi r28, 0 /* 80312B20 0030E780 91 1C 00 1C */ stw r8, 0x1c(r28) /* 80312B24 0030E784 40 82 00 0C */ bne lbl_80312B30 /* 80312B28 0030E788 38 80 00 00 */ li r4, 0 /* 80312B2C 0030E78C 48 00 00 0C */ b lbl_80312B38 lbl_80312B30: /* 80312B30 0030E790 80 7C 00 08 */ lwz r3, 8(r28) /* 80312B34 0030E794 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80312B38: /* 80312B38 0030E798 80 BC 00 1C */ lwz r5, 0x1c(r28) /* 80312B3C 0030E79C 38 60 00 1B */ li r3, 0x1b /* 80312B40 0030E7A0 88 04 00 20 */ lbz r0, 0x20(r4) /* 80312B44 0030E7A4 7C A0 04 30 */ srw r0, r5, r0 /* 80312B48 0030E7A8 90 1C 00 24 */ stw r0, 0x24(r28) /* 80312B4C 0030E7AC A0 84 00 00 */ lhz r4, 0(r4) /* 80312B50 0030E7B0 38 04 FF FF */ addi r0, r4, -1 /* 80312B54 0030E7B4 7C A0 00 38 */ and r0, r5, r0 /* 80312B58 0030E7B8 B0 1C 00 28 */ sth r0, 0x28(r28) /* 80312B5C 0030E7BC 48 00 00 54 */ b lbl_80312BB0 lbl_80312B60: /* 80312B60 0030E7C0 A0 DC 00 28 */ lhz r6, 0x28(r28) /* 80312B64 0030E7C4 7F 63 DB 78 */ mr r3, r27 /* 80312B68 0030E7C8 7F A4 EB 78 */ mr r4, r29 /* 80312B6C 0030E7CC 7F C7 F3 78 */ mr r7, r30 /* 80312B70 0030E7D0 39 01 00 08 */ addi r8, r1, 8 /* 80312B74 0030E7D4 39 20 00 01 */ li r9, 1 /* 80312B78 0030E7D8 48 00 5E B1 */ bl VFiPFSEC_ReadData /* 80312B7C 0030E7DC 2C 03 00 00 */ cmpwi r3, 0 /* 80312B80 0030E7E0 41 82 00 14 */ beq lbl_80312B94 /* 80312B84 0030E7E4 80 01 00 08 */ lwz r0, 8(r1) /* 80312B88 0030E7E8 2C 00 00 00 */ cmpwi r0, 0 /* 80312B8C 0030E7EC 40 82 00 08 */ bne lbl_80312B94 /* 80312B90 0030E7F0 48 00 00 20 */ b lbl_80312BB0 lbl_80312B94: /* 80312B94 0030E7F4 80 01 00 08 */ lwz r0, 8(r1) /* 80312B98 0030E7F8 7F 83 E3 78 */ mr r3, r28 /* 80312B9C 0030E7FC 90 1F 00 00 */ stw r0, 0(r31) /* 80312BA0 0030E800 80 81 00 08 */ lwz r4, 8(r1) /* 80312BA4 0030E804 80 BC 00 20 */ lwz r5, 0x20(r28) /* 80312BA8 0030E808 4B FF FC 6D */ bl VFiPFFILE_Cursor_AdvanceToRead /* 80312BAC 0030E80C 38 60 00 00 */ li r3, 0 lbl_80312BB0: /* 80312BB0 0030E810 39 61 00 30 */ addi r11, r1, 0x30 /* 80312BB4 0030E814 4B EB 45 C1 */ bl _restgpr_27 /* 80312BB8 0030E818 80 01 00 34 */ lwz r0, 0x34(r1) /* 80312BBC 0030E81C 7C 08 03 A6 */ mtlr r0 /* 80312BC0 0030E820 38 21 00 30 */ addi r1, r1, 0x30 /* 80312BC4 0030E824 4E 80 00 20 */ blr .global VFiPFFILE_Cursor_ReadBodySectors VFiPFFILE_Cursor_ReadBodySectors: /* 80312BC8 0030E828 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80312BCC 0030E82C 7C 08 02 A6 */ mflr r0 /* 80312BD0 0030E830 90 01 00 34 */ stw r0, 0x34(r1) /* 80312BD4 0030E834 39 61 00 30 */ addi r11, r1, 0x30 /* 80312BD8 0030E838 4B EB 45 51 */ bl _savegpr_27 /* 80312BDC 0030E83C 38 00 00 00 */ li r0, 0 /* 80312BE0 0030E840 7C 7B 1B 78 */ mr r27, r3 /* 80312BE4 0030E844 90 07 00 00 */ stw r0, 0(r7) /* 80312BE8 0030E848 7C FE 3B 78 */ mr r30, r7 /* 80312BEC 0030E84C 7C 9F 23 78 */ mr r31, r4 /* 80312BF0 0030E850 7C DD 33 78 */ mr r29, r6 /* 80312BF4 0030E854 90 01 00 0C */ stw r0, 0xc(r1) /* 80312BF8 0030E858 7C BC 2B 78 */ mr r28, r5 /* 80312BFC 0030E85C 7F A5 EB 78 */ mr r5, r29 /* 80312C00 0030E860 38 DF 00 20 */ addi r6, r31, 0x20 /* 80312C04 0030E864 80 64 00 08 */ lwz r3, 8(r4) /* 80312C08 0030E868 38 E1 00 0C */ addi r7, r1, 0xc /* 80312C0C 0030E86C 80 84 00 24 */ lwz r4, 0x24(r4) /* 80312C10 0030E870 38 63 00 04 */ addi r3, r3, 4 /* 80312C14 0030E874 4B FF D5 01 */ bl VFiPFFAT_GetContinuousSector /* 80312C18 0030E878 2C 03 00 00 */ cmpwi r3, 0 /* 80312C1C 0030E87C 41 82 00 08 */ beq lbl_80312C24 /* 80312C20 0030E880 48 00 01 68 */ b lbl_80312D88 lbl_80312C24: /* 80312C24 0030E884 80 BF 00 20 */ lwz r5, 0x20(r31) /* 80312C28 0030E888 3C 05 00 01 */ addis r0, r5, 1 /* 80312C2C 0030E88C 28 00 FF FF */ cmplwi r0, 0xffff /* 80312C30 0030E890 40 82 00 B4 */ bne lbl_80312CE4 /* 80312C34 0030E894 80 7F 00 08 */ lwz r3, 8(r31) /* 80312C38 0030E898 2C 1F 00 00 */ cmpwi r31, 0 /* 80312C3C 0030E89C 81 03 02 64 */ lwz r8, 0x264(r3) /* 80312C40 0030E8A0 40 82 00 0C */ bne lbl_80312C4C /* 80312C44 0030E8A4 38 80 00 00 */ li r4, 0 /* 80312C48 0030E8A8 48 00 00 08 */ b lbl_80312C50 lbl_80312C4C: /* 80312C4C 0030E8AC 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80312C50: /* 80312C50 0030E8B0 A0 64 00 00 */ lhz r3, 0(r4) /* 80312C54 0030E8B4 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 80312C58 0030E8B8 38 63 FF FF */ addi r3, r3, -1 /* 80312C5C 0030E8BC 88 84 00 20 */ lbz r4, 0x20(r4) /* 80312C60 0030E8C0 7C 07 18 38 */ and r7, r0, r3 /* 80312C64 0030E8C4 7C 05 24 30 */ srw r5, r0, r4 /* 80312C68 0030E8C8 7D 03 18 38 */ and r3, r8, r3 /* 80312C6C 0030E8CC 7C C7 00 D0 */ neg r6, r7 /* 80312C70 0030E8D0 7D 04 24 30 */ srw r4, r8, r4 /* 80312C74 0030E8D4 7C 03 00 D0 */ neg r0, r3 /* 80312C78 0030E8D8 7C 00 1B 78 */ or r0, r0, r3 /* 80312C7C 0030E8DC 7C C6 3B 78 */ or r6, r6, r7 /* 80312C80 0030E8E0 54 C3 0F FE */ srwi r3, r6, 0x1f /* 80312C84 0030E8E4 54 00 0F FE */ srwi r0, r0, 0x1f /* 80312C88 0030E8E8 7C 65 1A 14 */ add r3, r5, r3 /* 80312C8C 0030E8EC 7C 04 02 14 */ add r0, r4, r0 /* 80312C90 0030E8F0 7C 03 00 40 */ cmplw r3, r0 /* 80312C94 0030E8F4 41 82 00 0C */ beq lbl_80312CA0 /* 80312C98 0030E8F8 38 00 FF FF */ li r0, -1 /* 80312C9C 0030E8FC 90 1F 00 20 */ stw r0, 0x20(r31) lbl_80312CA0: /* 80312CA0 0030E900 2C 1F 00 00 */ cmpwi r31, 0 /* 80312CA4 0030E904 91 1F 00 1C */ stw r8, 0x1c(r31) /* 80312CA8 0030E908 40 82 00 0C */ bne lbl_80312CB4 /* 80312CAC 0030E90C 38 80 00 00 */ li r4, 0 /* 80312CB0 0030E910 48 00 00 0C */ b lbl_80312CBC lbl_80312CB4: /* 80312CB4 0030E914 80 7F 00 08 */ lwz r3, 8(r31) /* 80312CB8 0030E918 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80312CBC: /* 80312CBC 0030E91C 80 BF 00 1C */ lwz r5, 0x1c(r31) /* 80312CC0 0030E920 38 60 00 1C */ li r3, 0x1c /* 80312CC4 0030E924 88 04 00 20 */ lbz r0, 0x20(r4) /* 80312CC8 0030E928 7C A0 04 30 */ srw r0, r5, r0 /* 80312CCC 0030E92C 90 1F 00 24 */ stw r0, 0x24(r31) /* 80312CD0 0030E930 A0 84 00 00 */ lhz r4, 0(r4) /* 80312CD4 0030E934 38 04 FF FF */ addi r0, r4, -1 /* 80312CD8 0030E938 7C A0 00 38 */ and r0, r5, r0 /* 80312CDC 0030E93C B0 1F 00 28 */ sth r0, 0x28(r31) /* 80312CE0 0030E940 48 00 00 A8 */ b lbl_80312D88 lbl_80312CE4: /* 80312CE4 0030E944 80 61 00 0C */ lwz r3, 0xc(r1) /* 80312CE8 0030E948 88 1B 00 20 */ lbz r0, 0x20(r27) /* 80312CEC 0030E94C 7C 60 00 30 */ slw r0, r3, r0 /* 80312CF0 0030E950 7C 1D 00 40 */ cmplw r29, r0 /* 80312CF4 0030E954 40 81 00 08 */ ble lbl_80312CFC /* 80312CF8 0030E958 7C 1D 03 78 */ mr r29, r0 lbl_80312CFC: /* 80312CFC 0030E95C 80 7F 00 08 */ lwz r3, 8(r31) /* 80312D00 0030E960 80 9F 00 1C */ lwz r4, 0x1c(r31) /* 80312D04 0030E964 80 63 02 64 */ lwz r3, 0x264(r3) /* 80312D08 0030E968 7C 04 EA 14 */ add r0, r4, r29 /* 80312D0C 0030E96C 7C 00 18 40 */ cmplw r0, r3 /* 80312D10 0030E970 40 81 00 28 */ ble lbl_80312D38 /* 80312D14 0030E974 A0 DB 00 00 */ lhz r6, 0(r27) /* 80312D18 0030E978 7F A4 18 50 */ subf r29, r4, r3 /* 80312D1C 0030E97C 38 06 FF FF */ addi r0, r6, -1 /* 80312D20 0030E980 7F A0 00 38 */ and r0, r29, r0 /* 80312D24 0030E984 7F A0 E8 50 */ subf r29, r0, r29 /* 80312D28 0030E988 7C 1D 30 40 */ cmplw r29, r6 /* 80312D2C 0030E98C 40 80 00 0C */ bge lbl_80312D38 /* 80312D30 0030E990 38 60 00 00 */ li r3, 0 /* 80312D34 0030E994 48 00 00 54 */ b lbl_80312D88 lbl_80312D38: /* 80312D38 0030E998 A0 DF 00 28 */ lhz r6, 0x28(r31) /* 80312D3C 0030E99C 7F 63 DB 78 */ mr r3, r27 /* 80312D40 0030E9A0 7F 84 E3 78 */ mr r4, r28 /* 80312D44 0030E9A4 7F A7 EB 78 */ mr r7, r29 /* 80312D48 0030E9A8 39 01 00 08 */ addi r8, r1, 8 /* 80312D4C 0030E9AC 39 20 00 01 */ li r9, 1 /* 80312D50 0030E9B0 48 00 5C D9 */ bl VFiPFSEC_ReadData /* 80312D54 0030E9B4 2C 03 00 00 */ cmpwi r3, 0 /* 80312D58 0030E9B8 41 82 00 14 */ beq lbl_80312D6C /* 80312D5C 0030E9BC 80 01 00 08 */ lwz r0, 8(r1) /* 80312D60 0030E9C0 2C 00 00 00 */ cmpwi r0, 0 /* 80312D64 0030E9C4 40 82 00 08 */ bne lbl_80312D6C /* 80312D68 0030E9C8 48 00 00 20 */ b lbl_80312D88 lbl_80312D6C: /* 80312D6C 0030E9CC 80 01 00 08 */ lwz r0, 8(r1) /* 80312D70 0030E9D0 7F E3 FB 78 */ mr r3, r31 /* 80312D74 0030E9D4 90 1E 00 00 */ stw r0, 0(r30) /* 80312D78 0030E9D8 80 81 00 08 */ lwz r4, 8(r1) /* 80312D7C 0030E9DC 80 BF 00 20 */ lwz r5, 0x20(r31) /* 80312D80 0030E9E0 4B FF FA 95 */ bl VFiPFFILE_Cursor_AdvanceToRead /* 80312D84 0030E9E4 38 60 00 00 */ li r3, 0 lbl_80312D88: /* 80312D88 0030E9E8 39 61 00 30 */ addi r11, r1, 0x30 /* 80312D8C 0030E9EC 4B EB 43 E9 */ bl _restgpr_27 /* 80312D90 0030E9F0 80 01 00 34 */ lwz r0, 0x34(r1) /* 80312D94 0030E9F4 7C 08 03 A6 */ mtlr r0 /* 80312D98 0030E9F8 38 21 00 30 */ addi r1, r1, 0x30 /* 80312D9C 0030E9FC 4E 80 00 20 */ blr .global VFiPFFILE_Cursor_ReadTailSector VFiPFFILE_Cursor_ReadTailSector: /* 80312DA0 0030EA00 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80312DA4 0030EA04 7C 08 02 A6 */ mflr r0 /* 80312DA8 0030EA08 90 01 00 34 */ stw r0, 0x34(r1) /* 80312DAC 0030EA0C 39 61 00 30 */ addi r11, r1, 0x30 /* 80312DB0 0030EA10 4B EB 43 79 */ bl _savegpr_27 /* 80312DB4 0030EA14 38 00 00 00 */ li r0, 0 /* 80312DB8 0030EA18 2C 06 00 00 */ cmpwi r6, 0 /* 80312DBC 0030EA1C 90 07 00 00 */ stw r0, 0(r7) /* 80312DC0 0030EA20 7C 7B 1B 78 */ mr r27, r3 /* 80312DC4 0030EA24 7C 9F 23 78 */ mr r31, r4 /* 80312DC8 0030EA28 7C BC 2B 78 */ mr r28, r5 /* 80312DCC 0030EA2C 7C DD 33 78 */ mr r29, r6 /* 80312DD0 0030EA30 7C FE 3B 78 */ mr r30, r7 /* 80312DD4 0030EA34 40 82 00 0C */ bne lbl_80312DE0 /* 80312DD8 0030EA38 38 60 00 00 */ li r3, 0 /* 80312DDC 0030EA3C 48 00 02 28 */ b lbl_80313004 lbl_80312DE0: /* 80312DE0 0030EA40 80 E4 00 08 */ lwz r7, 8(r4) /* 80312DE4 0030EA44 80 64 00 1C */ lwz r3, 0x1c(r4) /* 80312DE8 0030EA48 80 A7 02 64 */ lwz r5, 0x264(r7) /* 80312DEC 0030EA4C 7C 03 32 14 */ add r0, r3, r6 /* 80312DF0 0030EA50 7C 00 28 40 */ cmplw r0, r5 /* 80312DF4 0030EA54 40 81 00 14 */ ble lbl_80312E08 /* 80312DF8 0030EA58 7F A3 28 51 */ subf. r29, r3, r5 /* 80312DFC 0030EA5C 40 82 00 0C */ bne lbl_80312E08 /* 80312E00 0030EA60 38 60 00 00 */ li r3, 0 /* 80312E04 0030EA64 48 00 02 00 */ b lbl_80313004 lbl_80312E08: /* 80312E08 0030EA68 80 A4 00 20 */ lwz r5, 0x20(r4) /* 80312E0C 0030EA6C 3C 05 00 01 */ addis r0, r5, 1 /* 80312E10 0030EA70 28 00 FF FF */ cmplwi r0, 0xffff /* 80312E14 0030EA74 40 82 01 A0 */ bne lbl_80312FB4 /* 80312E18 0030EA78 80 84 00 24 */ lwz r4, 0x24(r4) /* 80312E1C 0030EA7C 38 67 00 04 */ addi r3, r7, 4 /* 80312E20 0030EA80 38 DF 00 20 */ addi r6, r31, 0x20 /* 80312E24 0030EA84 38 A0 00 00 */ li r5, 0 /* 80312E28 0030EA88 4B FF D1 41 */ bl VFiPFFAT_GetSectorSpecified /* 80312E2C 0030EA8C 2C 03 00 00 */ cmpwi r3, 0 /* 80312E30 0030EA90 41 82 00 08 */ beq lbl_80312E38 /* 80312E34 0030EA94 48 00 01 D0 */ b lbl_80313004 lbl_80312E38: /* 80312E38 0030EA98 80 BF 00 20 */ lwz r5, 0x20(r31) /* 80312E3C 0030EA9C 3C 05 00 01 */ addis r0, r5, 1 /* 80312E40 0030EAA0 28 00 FF FF */ cmplwi r0, 0xffff /* 80312E44 0030EAA4 40 82 00 B4 */ bne lbl_80312EF8 /* 80312E48 0030EAA8 80 7F 00 08 */ lwz r3, 8(r31) /* 80312E4C 0030EAAC 2C 1F 00 00 */ cmpwi r31, 0 /* 80312E50 0030EAB0 81 03 02 64 */ lwz r8, 0x264(r3) /* 80312E54 0030EAB4 40 82 00 0C */ bne lbl_80312E60 /* 80312E58 0030EAB8 38 80 00 00 */ li r4, 0 /* 80312E5C 0030EABC 48 00 00 08 */ b lbl_80312E64 lbl_80312E60: /* 80312E60 0030EAC0 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80312E64: /* 80312E64 0030EAC4 A0 64 00 00 */ lhz r3, 0(r4) /* 80312E68 0030EAC8 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 80312E6C 0030EACC 38 63 FF FF */ addi r3, r3, -1 /* 80312E70 0030EAD0 88 84 00 20 */ lbz r4, 0x20(r4) /* 80312E74 0030EAD4 7C 07 18 38 */ and r7, r0, r3 /* 80312E78 0030EAD8 7C 05 24 30 */ srw r5, r0, r4 /* 80312E7C 0030EADC 7D 03 18 38 */ and r3, r8, r3 /* 80312E80 0030EAE0 7C C7 00 D0 */ neg r6, r7 /* 80312E84 0030EAE4 7D 04 24 30 */ srw r4, r8, r4 /* 80312E88 0030EAE8 7C 03 00 D0 */ neg r0, r3 /* 80312E8C 0030EAEC 7C 00 1B 78 */ or r0, r0, r3 /* 80312E90 0030EAF0 7C C6 3B 78 */ or r6, r6, r7 /* 80312E94 0030EAF4 54 C3 0F FE */ srwi r3, r6, 0x1f /* 80312E98 0030EAF8 54 00 0F FE */ srwi r0, r0, 0x1f /* 80312E9C 0030EAFC 7C 65 1A 14 */ add r3, r5, r3 /* 80312EA0 0030EB00 7C 04 02 14 */ add r0, r4, r0 /* 80312EA4 0030EB04 7C 03 00 40 */ cmplw r3, r0 /* 80312EA8 0030EB08 41 82 00 0C */ beq lbl_80312EB4 /* 80312EAC 0030EB0C 38 00 FF FF */ li r0, -1 /* 80312EB0 0030EB10 90 1F 00 20 */ stw r0, 0x20(r31) lbl_80312EB4: /* 80312EB4 0030EB14 2C 1F 00 00 */ cmpwi r31, 0 /* 80312EB8 0030EB18 91 1F 00 1C */ stw r8, 0x1c(r31) /* 80312EBC 0030EB1C 40 82 00 0C */ bne lbl_80312EC8 /* 80312EC0 0030EB20 38 80 00 00 */ li r4, 0 /* 80312EC4 0030EB24 48 00 00 0C */ b lbl_80312ED0 lbl_80312EC8: /* 80312EC8 0030EB28 80 7F 00 08 */ lwz r3, 8(r31) /* 80312ECC 0030EB2C 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80312ED0: /* 80312ED0 0030EB30 80 BF 00 1C */ lwz r5, 0x1c(r31) /* 80312ED4 0030EB34 38 60 00 1C */ li r3, 0x1c /* 80312ED8 0030EB38 88 04 00 20 */ lbz r0, 0x20(r4) /* 80312EDC 0030EB3C 7C A0 04 30 */ srw r0, r5, r0 /* 80312EE0 0030EB40 90 1F 00 24 */ stw r0, 0x24(r31) /* 80312EE4 0030EB44 A0 84 00 00 */ lhz r4, 0(r4) /* 80312EE8 0030EB48 38 04 FF FF */ addi r0, r4, -1 /* 80312EEC 0030EB4C 7C A0 00 38 */ and r0, r5, r0 /* 80312EF0 0030EB50 B0 1F 00 28 */ sth r0, 0x28(r31) /* 80312EF4 0030EB54 48 00 01 10 */ b lbl_80313004 lbl_80312EF8: /* 80312EF8 0030EB58 80 7F 00 08 */ lwz r3, 8(r31) /* 80312EFC 0030EB5C 80 DF 00 1C */ lwz r6, 0x1c(r31) /* 80312F00 0030EB60 81 03 02 64 */ lwz r8, 0x264(r3) /* 80312F04 0030EB64 7C 06 EA 14 */ add r0, r6, r29 /* 80312F08 0030EB68 7C 00 40 40 */ cmplw r0, r8 /* 80312F0C 0030EB6C 40 81 00 A8 */ ble lbl_80312FB4 /* 80312F10 0030EB70 2C 1F 00 00 */ cmpwi r31, 0 /* 80312F14 0030EB74 40 82 00 0C */ bne lbl_80312F20 /* 80312F18 0030EB78 38 80 00 00 */ li r4, 0 /* 80312F1C 0030EB7C 48 00 00 08 */ b lbl_80312F24 lbl_80312F20: /* 80312F20 0030EB80 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80312F24: /* 80312F24 0030EB84 A0 64 00 00 */ lhz r3, 0(r4) /* 80312F28 0030EB88 88 84 00 20 */ lbz r4, 0x20(r4) /* 80312F2C 0030EB8C 38 03 FF FF */ addi r0, r3, -1 /* 80312F30 0030EB90 7C C7 00 38 */ and r7, r6, r0 /* 80312F34 0030EB94 7C C5 24 30 */ srw r5, r6, r4 /* 80312F38 0030EB98 7D 03 00 38 */ and r3, r8, r0 /* 80312F3C 0030EB9C 7D 04 24 30 */ srw r4, r8, r4 /* 80312F40 0030EBA0 7C C7 00 D0 */ neg r6, r7 /* 80312F44 0030EBA4 7C 03 00 D0 */ neg r0, r3 /* 80312F48 0030EBA8 7C 00 1B 78 */ or r0, r0, r3 /* 80312F4C 0030EBAC 7C C6 3B 78 */ or r6, r6, r7 /* 80312F50 0030EBB0 54 C3 0F FE */ srwi r3, r6, 0x1f /* 80312F54 0030EBB4 54 00 0F FE */ srwi r0, r0, 0x1f /* 80312F58 0030EBB8 7C 65 1A 14 */ add r3, r5, r3 /* 80312F5C 0030EBBC 7C 04 02 14 */ add r0, r4, r0 /* 80312F60 0030EBC0 7C 03 00 40 */ cmplw r3, r0 /* 80312F64 0030EBC4 41 82 00 0C */ beq lbl_80312F70 /* 80312F68 0030EBC8 38 00 FF FF */ li r0, -1 /* 80312F6C 0030EBCC 90 1F 00 20 */ stw r0, 0x20(r31) lbl_80312F70: /* 80312F70 0030EBD0 2C 1F 00 00 */ cmpwi r31, 0 /* 80312F74 0030EBD4 91 1F 00 1C */ stw r8, 0x1c(r31) /* 80312F78 0030EBD8 40 82 00 0C */ bne lbl_80312F84 /* 80312F7C 0030EBDC 38 80 00 00 */ li r4, 0 /* 80312F80 0030EBE0 48 00 00 0C */ b lbl_80312F8C lbl_80312F84: /* 80312F84 0030EBE4 80 7F 00 08 */ lwz r3, 8(r31) /* 80312F88 0030EBE8 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80312F8C: /* 80312F8C 0030EBEC 80 BF 00 1C */ lwz r5, 0x1c(r31) /* 80312F90 0030EBF0 38 60 00 1B */ li r3, 0x1b /* 80312F94 0030EBF4 88 04 00 20 */ lbz r0, 0x20(r4) /* 80312F98 0030EBF8 7C A0 04 30 */ srw r0, r5, r0 /* 80312F9C 0030EBFC 90 1F 00 24 */ stw r0, 0x24(r31) /* 80312FA0 0030EC00 A0 84 00 00 */ lhz r4, 0(r4) /* 80312FA4 0030EC04 38 04 FF FF */ addi r0, r4, -1 /* 80312FA8 0030EC08 7C A0 00 38 */ and r0, r5, r0 /* 80312FAC 0030EC0C B0 1F 00 28 */ sth r0, 0x28(r31) /* 80312FB0 0030EC10 48 00 00 54 */ b lbl_80313004 lbl_80312FB4: /* 80312FB4 0030EC14 A0 DF 00 28 */ lhz r6, 0x28(r31) /* 80312FB8 0030EC18 7F 63 DB 78 */ mr r3, r27 /* 80312FBC 0030EC1C 7F 84 E3 78 */ mr r4, r28 /* 80312FC0 0030EC20 7F A7 EB 78 */ mr r7, r29 /* 80312FC4 0030EC24 39 01 00 08 */ addi r8, r1, 8 /* 80312FC8 0030EC28 39 20 00 01 */ li r9, 1 /* 80312FCC 0030EC2C 48 00 5A 5D */ bl VFiPFSEC_ReadData /* 80312FD0 0030EC30 2C 03 00 00 */ cmpwi r3, 0 /* 80312FD4 0030EC34 41 82 00 14 */ beq lbl_80312FE8 /* 80312FD8 0030EC38 80 01 00 08 */ lwz r0, 8(r1) /* 80312FDC 0030EC3C 2C 00 00 00 */ cmpwi r0, 0 /* 80312FE0 0030EC40 40 82 00 08 */ bne lbl_80312FE8 /* 80312FE4 0030EC44 48 00 00 20 */ b lbl_80313004 lbl_80312FE8: /* 80312FE8 0030EC48 80 01 00 08 */ lwz r0, 8(r1) /* 80312FEC 0030EC4C 7F E3 FB 78 */ mr r3, r31 /* 80312FF0 0030EC50 90 1E 00 00 */ stw r0, 0(r30) /* 80312FF4 0030EC54 80 81 00 08 */ lwz r4, 8(r1) /* 80312FF8 0030EC58 80 BF 00 20 */ lwz r5, 0x20(r31) /* 80312FFC 0030EC5C 4B FF F8 19 */ bl VFiPFFILE_Cursor_AdvanceToRead /* 80313000 0030EC60 38 60 00 00 */ li r3, 0 lbl_80313004: /* 80313004 0030EC64 39 61 00 30 */ addi r11, r1, 0x30 /* 80313008 0030EC68 4B EB 41 6D */ bl _restgpr_27 /* 8031300C 0030EC6C 80 01 00 34 */ lwz r0, 0x34(r1) /* 80313010 0030EC70 7C 08 03 A6 */ mtlr r0 /* 80313014 0030EC74 38 21 00 30 */ addi r1, r1, 0x30 /* 80313018 0030EC78 4E 80 00 20 */ blr .global VFiPFFILE_Cursor_Read VFiPFFILE_Cursor_Read: /* 8031301C 0030EC7C 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80313020 0030EC80 7C 08 02 A6 */ mflr r0 /* 80313024 0030EC84 90 01 00 34 */ stw r0, 0x34(r1) /* 80313028 0030EC88 39 61 00 30 */ addi r11, r1, 0x30 /* 8031302C 0030EC8C 4B EB 40 FD */ bl _savegpr_27 /* 80313030 0030EC90 80 E3 00 08 */ lwz r7, 8(r3) /* 80313034 0030EC94 39 03 00 0C */ addi r8, r3, 0xc /* 80313038 0030EC98 2C 03 00 00 */ cmpwi r3, 0 /* 8031303C 0030EC9C 38 00 00 00 */ li r0, 0 /* 80313040 0030ECA0 91 07 00 34 */ stw r8, 0x34(r7) /* 80313044 0030ECA4 7C 7C 1B 78 */ mr r28, r3 /* 80313048 0030ECA8 7C 9D 23 78 */ mr r29, r4 /* 8031304C 0030ECAC 7C BE 2B 78 */ mr r30, r5 /* 80313050 0030ECB0 90 06 00 00 */ stw r0, 0(r6) /* 80313054 0030ECB4 7C DF 33 78 */ mr r31, r6 /* 80313058 0030ECB8 40 82 00 0C */ bne lbl_80313064 /* 8031305C 0030ECBC 3B 60 00 00 */ li r27, 0 /* 80313060 0030ECC0 48 00 00 0C */ b lbl_8031306C lbl_80313064: /* 80313064 0030ECC4 80 63 00 08 */ lwz r3, 8(r3) /* 80313068 0030ECC8 83 63 02 68 */ lwz r27, 0x268(r3) lbl_8031306C: /* 8031306C 0030ECCC 7F 63 DB 78 */ mr r3, r27 /* 80313070 0030ECD0 7F 84 E3 78 */ mr r4, r28 /* 80313074 0030ECD4 7F A5 EB 78 */ mr r5, r29 /* 80313078 0030ECD8 7F C6 F3 78 */ mr r6, r30 /* 8031307C 0030ECDC 38 E1 00 08 */ addi r7, r1, 8 /* 80313080 0030ECE0 4B FF F8 B1 */ bl VFiPFFILE_Cursor_ReadHeadSector /* 80313084 0030ECE4 80 9F 00 00 */ lwz r4, 0(r31) /* 80313088 0030ECE8 2C 03 00 00 */ cmpwi r3, 0 /* 8031308C 0030ECEC 80 01 00 08 */ lwz r0, 8(r1) /* 80313090 0030ECF0 7C 04 02 14 */ add r0, r4, r0 /* 80313094 0030ECF4 90 1F 00 00 */ stw r0, 0(r31) /* 80313098 0030ECF8 41 82 00 08 */ beq lbl_803130A0 /* 8031309C 0030ECFC 48 00 00 B0 */ b lbl_8031314C lbl_803130A0: /* 803130A0 0030ED00 80 01 00 08 */ lwz r0, 8(r1) /* 803130A4 0030ED04 7C 00 F0 40 */ cmplw r0, r30 /* 803130A8 0030ED08 41 80 00 0C */ blt lbl_803130B4 /* 803130AC 0030ED0C 38 60 00 00 */ li r3, 0 /* 803130B0 0030ED10 48 00 00 9C */ b lbl_8031314C lbl_803130B4: /* 803130B4 0030ED14 7F C0 F0 50 */ subf r30, r0, r30 /* 803130B8 0030ED18 48 00 00 4C */ b lbl_80313104 lbl_803130BC: /* 803130BC 0030ED1C 80 1F 00 00 */ lwz r0, 0(r31) /* 803130C0 0030ED20 7F 63 DB 78 */ mr r3, r27 /* 803130C4 0030ED24 7F 84 E3 78 */ mr r4, r28 /* 803130C8 0030ED28 7F C6 F3 78 */ mr r6, r30 /* 803130CC 0030ED2C 7C BD 02 14 */ add r5, r29, r0 /* 803130D0 0030ED30 38 E1 00 08 */ addi r7, r1, 8 /* 803130D4 0030ED34 4B FF FA F5 */ bl VFiPFFILE_Cursor_ReadBodySectors /* 803130D8 0030ED38 80 9F 00 00 */ lwz r4, 0(r31) /* 803130DC 0030ED3C 2C 03 00 00 */ cmpwi r3, 0 /* 803130E0 0030ED40 80 01 00 08 */ lwz r0, 8(r1) /* 803130E4 0030ED44 7C 04 02 14 */ add r0, r4, r0 /* 803130E8 0030ED48 90 1F 00 00 */ stw r0, 0(r31) /* 803130EC 0030ED4C 41 82 00 08 */ beq lbl_803130F4 /* 803130F0 0030ED50 48 00 00 5C */ b lbl_8031314C lbl_803130F4: /* 803130F4 0030ED54 80 01 00 08 */ lwz r0, 8(r1) /* 803130F8 0030ED58 2C 00 00 00 */ cmpwi r0, 0 /* 803130FC 0030ED5C 41 82 00 14 */ beq lbl_80313110 /* 80313100 0030ED60 7F C0 F0 50 */ subf r30, r0, r30 lbl_80313104: /* 80313104 0030ED64 A0 1B 00 00 */ lhz r0, 0(r27) /* 80313108 0030ED68 7C 1E 00 40 */ cmplw r30, r0 /* 8031310C 0030ED6C 40 80 FF B0 */ bge lbl_803130BC lbl_80313110: /* 80313110 0030ED70 80 1F 00 00 */ lwz r0, 0(r31) /* 80313114 0030ED74 7F 63 DB 78 */ mr r3, r27 /* 80313118 0030ED78 7F 84 E3 78 */ mr r4, r28 /* 8031311C 0030ED7C 7F C6 F3 78 */ mr r6, r30 /* 80313120 0030ED80 7C BD 02 14 */ add r5, r29, r0 /* 80313124 0030ED84 38 E1 00 08 */ addi r7, r1, 8 /* 80313128 0030ED88 4B FF FC 79 */ bl VFiPFFILE_Cursor_ReadTailSector /* 8031312C 0030ED8C 80 9F 00 00 */ lwz r4, 0(r31) /* 80313130 0030ED90 2C 03 00 00 */ cmpwi r3, 0 /* 80313134 0030ED94 80 01 00 08 */ lwz r0, 8(r1) /* 80313138 0030ED98 7C 04 02 14 */ add r0, r4, r0 /* 8031313C 0030ED9C 90 1F 00 00 */ stw r0, 0(r31) /* 80313140 0030EDA0 41 82 00 08 */ beq lbl_80313148 /* 80313144 0030EDA4 48 00 00 08 */ b lbl_8031314C lbl_80313148: /* 80313148 0030EDA8 38 60 00 00 */ li r3, 0 lbl_8031314C: /* 8031314C 0030EDAC 39 61 00 30 */ addi r11, r1, 0x30 /* 80313150 0030EDB0 4B EB 40 25 */ bl _restgpr_27 /* 80313154 0030EDB4 80 01 00 34 */ lwz r0, 0x34(r1) /* 80313158 0030EDB8 7C 08 03 A6 */ mtlr r0 /* 8031315C 0030EDBC 38 21 00 30 */ addi r1, r1, 0x30 /* 80313160 0030EDC0 4E 80 00 20 */ blr .global VFiPFFILE_Cursor_WriteHeadSector VFiPFFILE_Cursor_WriteHeadSector: /* 80313164 0030EDC4 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80313168 0030EDC8 7C 08 02 A6 */ mflr r0 /* 8031316C 0030EDCC 90 01 00 34 */ stw r0, 0x34(r1) /* 80313170 0030EDD0 39 61 00 30 */ addi r11, r1, 0x30 /* 80313174 0030EDD4 4B EB 3F B5 */ bl _savegpr_27 /* 80313178 0030EDD8 38 00 00 00 */ li r0, 0 /* 8031317C 0030EDDC 7C BC 2B 78 */ mr r28, r5 /* 80313180 0030EDE0 90 07 00 00 */ stw r0, 0(r7) /* 80313184 0030EDE4 7C 7B 1B 78 */ mr r27, r3 /* 80313188 0030EDE8 7C 9F 23 78 */ mr r31, r4 /* 8031318C 0030EDEC 7C DD 33 78 */ mr r29, r6 /* 80313190 0030EDF0 A0 A4 00 28 */ lhz r5, 0x28(r4) /* 80313194 0030EDF4 7C FE 3B 78 */ mr r30, r7 /* 80313198 0030EDF8 2C 05 00 00 */ cmpwi r5, 0 /* 8031319C 0030EDFC 40 82 00 0C */ bne lbl_803131A8 /* 803131A0 0030EE00 38 60 00 00 */ li r3, 0 /* 803131A4 0030EE04 48 00 02 00 */ b lbl_803133A4 lbl_803131A8: /* 803131A8 0030EE08 A0 03 00 00 */ lhz r0, 0(r3) /* 803131AC 0030EE0C 7C 05 00 50 */ subf r0, r5, r0 /* 803131B0 0030EE10 7C 06 00 40 */ cmplw r6, r0 /* 803131B4 0030EE14 40 81 00 08 */ ble lbl_803131BC /* 803131B8 0030EE18 7C 1D 03 78 */ mr r29, r0 lbl_803131BC: /* 803131BC 0030EE1C 80 A4 00 20 */ lwz r5, 0x20(r4) /* 803131C0 0030EE20 3C 05 00 01 */ addis r0, r5, 1 /* 803131C4 0030EE24 28 00 FF FF */ cmplwi r0, 0xffff /* 803131C8 0030EE28 40 82 00 E8 */ bne lbl_803132B0 /* 803131CC 0030EE2C 80 64 00 08 */ lwz r3, 8(r4) /* 803131D0 0030EE30 38 DF 00 20 */ addi r6, r31, 0x20 /* 803131D4 0030EE34 80 84 00 24 */ lwz r4, 0x24(r4) /* 803131D8 0030EE38 38 A0 00 00 */ li r5, 0 /* 803131DC 0030EE3C 38 63 00 04 */ addi r3, r3, 4 /* 803131E0 0030EE40 4B FF CD 89 */ bl VFiPFFAT_GetSectorSpecified /* 803131E4 0030EE44 2C 03 00 00 */ cmpwi r3, 0 /* 803131E8 0030EE48 41 82 00 08 */ beq lbl_803131F0 /* 803131EC 0030EE4C 48 00 01 B8 */ b lbl_803133A4 lbl_803131F0: /* 803131F0 0030EE50 80 BF 00 20 */ lwz r5, 0x20(r31) /* 803131F4 0030EE54 3C 05 00 01 */ addis r0, r5, 1 /* 803131F8 0030EE58 28 00 FF FF */ cmplwi r0, 0xffff /* 803131FC 0030EE5C 40 82 00 B4 */ bne lbl_803132B0 /* 80313200 0030EE60 80 7F 00 08 */ lwz r3, 8(r31) /* 80313204 0030EE64 2C 1F 00 00 */ cmpwi r31, 0 /* 80313208 0030EE68 81 03 02 64 */ lwz r8, 0x264(r3) /* 8031320C 0030EE6C 40 82 00 0C */ bne lbl_80313218 /* 80313210 0030EE70 38 80 00 00 */ li r4, 0 /* 80313214 0030EE74 48 00 00 08 */ b lbl_8031321C lbl_80313218: /* 80313218 0030EE78 80 83 02 68 */ lwz r4, 0x268(r3) lbl_8031321C: /* 8031321C 0030EE7C A0 64 00 00 */ lhz r3, 0(r4) /* 80313220 0030EE80 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 80313224 0030EE84 38 63 FF FF */ addi r3, r3, -1 /* 80313228 0030EE88 88 84 00 20 */ lbz r4, 0x20(r4) /* 8031322C 0030EE8C 7C 07 18 38 */ and r7, r0, r3 /* 80313230 0030EE90 7C 05 24 30 */ srw r5, r0, r4 /* 80313234 0030EE94 7D 03 18 38 */ and r3, r8, r3 /* 80313238 0030EE98 7C C7 00 D0 */ neg r6, r7 /* 8031323C 0030EE9C 7D 04 24 30 */ srw r4, r8, r4 /* 80313240 0030EEA0 7C 03 00 D0 */ neg r0, r3 /* 80313244 0030EEA4 7C 00 1B 78 */ or r0, r0, r3 /* 80313248 0030EEA8 7C C6 3B 78 */ or r6, r6, r7 /* 8031324C 0030EEAC 54 C3 0F FE */ srwi r3, r6, 0x1f /* 80313250 0030EEB0 54 00 0F FE */ srwi r0, r0, 0x1f /* 80313254 0030EEB4 7C 65 1A 14 */ add r3, r5, r3 /* 80313258 0030EEB8 7C 04 02 14 */ add r0, r4, r0 /* 8031325C 0030EEBC 7C 03 00 40 */ cmplw r3, r0 /* 80313260 0030EEC0 41 82 00 0C */ beq lbl_8031326C /* 80313264 0030EEC4 38 00 FF FF */ li r0, -1 /* 80313268 0030EEC8 90 1F 00 20 */ stw r0, 0x20(r31) lbl_8031326C: /* 8031326C 0030EECC 2C 1F 00 00 */ cmpwi r31, 0 /* 80313270 0030EED0 91 1F 00 1C */ stw r8, 0x1c(r31) /* 80313274 0030EED4 40 82 00 0C */ bne lbl_80313280 /* 80313278 0030EED8 38 80 00 00 */ li r4, 0 /* 8031327C 0030EEDC 48 00 00 0C */ b lbl_80313288 lbl_80313280: /* 80313280 0030EEE0 80 7F 00 08 */ lwz r3, 8(r31) /* 80313284 0030EEE4 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80313288: /* 80313288 0030EEE8 80 BF 00 1C */ lwz r5, 0x1c(r31) /* 8031328C 0030EEEC 38 60 00 1C */ li r3, 0x1c /* 80313290 0030EEF0 88 04 00 20 */ lbz r0, 0x20(r4) /* 80313294 0030EEF4 7C A0 04 30 */ srw r0, r5, r0 /* 80313298 0030EEF8 90 1F 00 24 */ stw r0, 0x24(r31) /* 8031329C 0030EEFC A0 84 00 00 */ lhz r4, 0(r4) /* 803132A0 0030EF00 38 04 FF FF */ addi r0, r4, -1 /* 803132A4 0030EF04 7C A0 00 38 */ and r0, r5, r0 /* 803132A8 0030EF08 B0 1F 00 28 */ sth r0, 0x28(r31) /* 803132AC 0030EF0C 48 00 00 F8 */ b lbl_803133A4 lbl_803132B0: /* 803132B0 0030EF10 A0 DF 00 28 */ lhz r6, 0x28(r31) /* 803132B4 0030EF14 7F 63 DB 78 */ mr r3, r27 /* 803132B8 0030EF18 7F 84 E3 78 */ mr r4, r28 /* 803132BC 0030EF1C 7F A7 EB 78 */ mr r7, r29 /* 803132C0 0030EF20 39 01 00 08 */ addi r8, r1, 8 /* 803132C4 0030EF24 39 20 00 01 */ li r9, 1 /* 803132C8 0030EF28 48 00 5B 21 */ bl VFiPFSEC_WriteData /* 803132CC 0030EF2C 2C 03 00 00 */ cmpwi r3, 0 /* 803132D0 0030EF30 41 82 00 14 */ beq lbl_803132E4 /* 803132D4 0030EF34 80 01 00 08 */ lwz r0, 8(r1) /* 803132D8 0030EF38 2C 00 00 00 */ cmpwi r0, 0 /* 803132DC 0030EF3C 40 82 00 08 */ bne lbl_803132E4 /* 803132E0 0030EF40 48 00 00 C4 */ b lbl_803133A4 lbl_803132E4: /* 803132E4 0030EF44 80 01 00 08 */ lwz r0, 8(r1) /* 803132E8 0030EF48 2C 1F 00 00 */ cmpwi r31, 0 /* 803132EC 0030EF4C 90 1E 00 00 */ stw r0, 0(r30) /* 803132F0 0030EF50 80 DF 00 20 */ lwz r6, 0x20(r31) /* 803132F4 0030EF54 80 A1 00 08 */ lwz r5, 8(r1) /* 803132F8 0030EF58 40 82 00 0C */ bne lbl_80313304 /* 803132FC 0030EF5C 38 80 00 00 */ li r4, 0 /* 80313300 0030EF60 48 00 00 0C */ b lbl_8031330C lbl_80313304: /* 80313304 0030EF64 80 7F 00 08 */ lwz r3, 8(r31) /* 80313308 0030EF68 80 83 02 68 */ lwz r4, 0x268(r3) lbl_8031330C: /* 8031330C 0030EF6C A0 1F 00 28 */ lhz r0, 0x28(r31) /* 80313310 0030EF70 A0 64 00 00 */ lhz r3, 0(r4) /* 80313314 0030EF74 7C E0 2A 14 */ add r7, r0, r5 /* 80313318 0030EF78 88 84 00 20 */ lbz r4, 0x20(r4) /* 8031331C 0030EF7C 38 03 FF FF */ addi r0, r3, -1 /* 80313320 0030EF80 7C 00 38 39 */ and. r0, r0, r7 /* 80313324 0030EF84 7C E0 24 30 */ srw r0, r7, r4 /* 80313328 0030EF88 7C 86 02 14 */ add r4, r6, r0 /* 8031332C 0030EF8C 41 82 00 0C */ beq lbl_80313338 /* 80313330 0030EF90 90 9F 00 20 */ stw r4, 0x20(r31) /* 80313334 0030EF94 48 00 00 0C */ b lbl_80313340 lbl_80313338: /* 80313338 0030EF98 38 00 FF FF */ li r0, -1 /* 8031333C 0030EF9C 90 1F 00 20 */ stw r0, 0x20(r31) lbl_80313340: /* 80313340 0030EFA0 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 80313344 0030EFA4 80 7F 00 08 */ lwz r3, 8(r31) /* 80313348 0030EFA8 7C A0 2A 14 */ add r5, r0, r5 /* 8031334C 0030EFAC 90 BF 00 1C */ stw r5, 0x1c(r31) /* 80313350 0030EFB0 80 03 02 64 */ lwz r0, 0x264(r3) /* 80313354 0030EFB4 7C 05 00 40 */ cmplw r5, r0 /* 80313358 0030EFB8 40 81 00 08 */ ble lbl_80313360 /* 8031335C 0030EFBC 90 A3 02 64 */ stw r5, 0x264(r3) lbl_80313360: /* 80313360 0030EFC0 2C 1F 00 00 */ cmpwi r31, 0 /* 80313364 0030EFC4 40 82 00 0C */ bne lbl_80313370 /* 80313368 0030EFC8 38 A0 00 00 */ li r5, 0 /* 8031336C 0030EFCC 48 00 00 0C */ b lbl_80313378 lbl_80313370: /* 80313370 0030EFD0 80 7F 00 08 */ lwz r3, 8(r31) /* 80313374 0030EFD4 80 A3 02 68 */ lwz r5, 0x268(r3) lbl_80313378: /* 80313378 0030EFD8 80 DF 00 1C */ lwz r6, 0x1c(r31) /* 8031337C 0030EFDC 7F E3 FB 78 */ mr r3, r31 /* 80313380 0030EFE0 88 05 00 20 */ lbz r0, 0x20(r5) /* 80313384 0030EFE4 7C C0 04 30 */ srw r0, r6, r0 /* 80313388 0030EFE8 90 1F 00 24 */ stw r0, 0x24(r31) /* 8031338C 0030EFEC A0 A5 00 00 */ lhz r5, 0(r5) /* 80313390 0030EFF0 38 05 FF FF */ addi r0, r5, -1 /* 80313394 0030EFF4 7C C0 00 38 */ and r0, r6, r0 /* 80313398 0030EFF8 B0 1F 00 28 */ sth r0, 0x28(r31) /* 8031339C 0030EFFC 4B FF 79 E5 */ bl VFiPFCLUSTER_UpdateLastAccessCluster /* 803133A0 0030F000 38 60 00 00 */ li r3, 0 lbl_803133A4: /* 803133A4 0030F004 39 61 00 30 */ addi r11, r1, 0x30 /* 803133A8 0030F008 4B EB 3D CD */ bl _restgpr_27 /* 803133AC 0030F00C 80 01 00 34 */ lwz r0, 0x34(r1) /* 803133B0 0030F010 7C 08 03 A6 */ mtlr r0 /* 803133B4 0030F014 38 21 00 30 */ addi r1, r1, 0x30 /* 803133B8 0030F018 4E 80 00 20 */ blr .global VFiPFFILE_Cursor_WriteTailSector VFiPFFILE_Cursor_WriteTailSector: /* 803133BC 0030F01C 94 21 FF D0 */ stwu r1, -0x30(r1) /* 803133C0 0030F020 7C 08 02 A6 */ mflr r0 /* 803133C4 0030F024 90 01 00 34 */ stw r0, 0x34(r1) /* 803133C8 0030F028 38 00 00 00 */ li r0, 0 /* 803133CC 0030F02C 93 E1 00 2C */ stw r31, 0x2c(r1) /* 803133D0 0030F030 7C 9F 23 78 */ mr r31, r4 /* 803133D4 0030F034 93 C1 00 28 */ stw r30, 0x28(r1) /* 803133D8 0030F038 7D 1E 43 78 */ mr r30, r8 /* 803133DC 0030F03C 93 A1 00 24 */ stw r29, 0x24(r1) /* 803133E0 0030F040 7C BD 2B 78 */ mr r29, r5 /* 803133E4 0030F044 93 81 00 20 */ stw r28, 0x20(r1) /* 803133E8 0030F048 7C 7C 1B 78 */ mr r28, r3 /* 803133EC 0030F04C 90 C1 00 08 */ stw r6, 8(r1) /* 803133F0 0030F050 90 08 00 00 */ stw r0, 0(r8) /* 803133F4 0030F054 80 A1 00 08 */ lwz r5, 8(r1) /* 803133F8 0030F058 2C 05 00 00 */ cmpwi r5, 0 /* 803133FC 0030F05C 40 82 00 0C */ bne lbl_80313408 /* 80313400 0030F060 38 60 00 00 */ li r3, 0 /* 80313404 0030F064 48 00 02 5C */ b lbl_80313660 lbl_80313408: /* 80313408 0030F068 A0 63 00 00 */ lhz r3, 0(r3) /* 8031340C 0030F06C A0 04 00 28 */ lhz r0, 0x28(r4) /* 80313410 0030F070 7C 00 18 50 */ subf r0, r0, r3 /* 80313414 0030F074 7C 05 00 40 */ cmplw r5, r0 /* 80313418 0030F078 41 81 00 0C */ bgt lbl_80313424 /* 8031341C 0030F07C 7C 05 18 40 */ cmplw r5, r3 /* 80313420 0030F080 40 81 00 0C */ ble lbl_8031342C lbl_80313424: /* 80313424 0030F084 38 60 00 1A */ li r3, 0x1a /* 80313428 0030F088 48 00 02 38 */ b lbl_80313660 lbl_8031342C: /* 8031342C 0030F08C 2C 07 00 00 */ cmpwi r7, 0 /* 80313430 0030F090 41 82 00 44 */ beq lbl_80313474 /* 80313434 0030F094 7F E3 FB 78 */ mr r3, r31 /* 80313438 0030F098 7C E4 3B 78 */ mr r4, r7 /* 8031343C 0030F09C 38 A1 00 08 */ addi r5, r1, 8 /* 80313440 0030F0A0 38 C1 00 10 */ addi r6, r1, 0x10 /* 80313444 0030F0A4 4B FF 7A 11 */ bl VFiPFCLUSTER_AppendCluster /* 80313448 0030F0A8 2C 03 00 00 */ cmpwi r3, 0 /* 8031344C 0030F0AC 41 82 00 08 */ beq lbl_80313454 /* 80313450 0030F0B0 48 00 02 10 */ b lbl_80313660 lbl_80313454: /* 80313454 0030F0B4 80 01 00 08 */ lwz r0, 8(r1) /* 80313458 0030F0B8 2C 00 00 00 */ cmpwi r0, 0 /* 8031345C 0030F0BC 40 82 00 0C */ bne lbl_80313468 /* 80313460 0030F0C0 38 60 00 00 */ li r3, 0 /* 80313464 0030F0C4 48 00 01 FC */ b lbl_80313660 lbl_80313468: /* 80313468 0030F0C8 80 01 00 10 */ lwz r0, 0x10(r1) /* 8031346C 0030F0CC 90 1F 00 20 */ stw r0, 0x20(r31) /* 80313470 0030F0D0 48 00 00 F8 */ b lbl_80313568 lbl_80313474: /* 80313474 0030F0D4 80 64 00 20 */ lwz r3, 0x20(r4) /* 80313478 0030F0D8 3C 03 00 01 */ addis r0, r3, 1 /* 8031347C 0030F0DC 28 00 FF FF */ cmplwi r0, 0xffff /* 80313480 0030F0E0 40 82 00 E8 */ bne lbl_80313568 /* 80313484 0030F0E4 80 64 00 08 */ lwz r3, 8(r4) /* 80313488 0030F0E8 38 DF 00 20 */ addi r6, r31, 0x20 /* 8031348C 0030F0EC 80 84 00 24 */ lwz r4, 0x24(r4) /* 80313490 0030F0F0 38 A0 00 00 */ li r5, 0 /* 80313494 0030F0F4 38 63 00 04 */ addi r3, r3, 4 /* 80313498 0030F0F8 4B FF CA D1 */ bl VFiPFFAT_GetSectorSpecified /* 8031349C 0030F0FC 2C 03 00 00 */ cmpwi r3, 0 /* 803134A0 0030F100 41 82 00 08 */ beq lbl_803134A8 /* 803134A4 0030F104 48 00 01 BC */ b lbl_80313660 lbl_803134A8: /* 803134A8 0030F108 80 7F 00 20 */ lwz r3, 0x20(r31) /* 803134AC 0030F10C 3C 03 00 01 */ addis r0, r3, 1 /* 803134B0 0030F110 28 00 FF FF */ cmplwi r0, 0xffff /* 803134B4 0030F114 40 82 00 B4 */ bne lbl_80313568 /* 803134B8 0030F118 80 7F 00 08 */ lwz r3, 8(r31) /* 803134BC 0030F11C 2C 1F 00 00 */ cmpwi r31, 0 /* 803134C0 0030F120 81 03 02 64 */ lwz r8, 0x264(r3) /* 803134C4 0030F124 40 82 00 0C */ bne lbl_803134D0 /* 803134C8 0030F128 38 80 00 00 */ li r4, 0 /* 803134CC 0030F12C 48 00 00 08 */ b lbl_803134D4 lbl_803134D0: /* 803134D0 0030F130 80 83 02 68 */ lwz r4, 0x268(r3) lbl_803134D4: /* 803134D4 0030F134 A0 64 00 00 */ lhz r3, 0(r4) /* 803134D8 0030F138 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 803134DC 0030F13C 38 63 FF FF */ addi r3, r3, -1 /* 803134E0 0030F140 88 84 00 20 */ lbz r4, 0x20(r4) /* 803134E4 0030F144 7C 07 18 38 */ and r7, r0, r3 /* 803134E8 0030F148 7C 05 24 30 */ srw r5, r0, r4 /* 803134EC 0030F14C 7D 03 18 38 */ and r3, r8, r3 /* 803134F0 0030F150 7C C7 00 D0 */ neg r6, r7 /* 803134F4 0030F154 7D 04 24 30 */ srw r4, r8, r4 /* 803134F8 0030F158 7C 03 00 D0 */ neg r0, r3 /* 803134FC 0030F15C 7C 00 1B 78 */ or r0, r0, r3 /* 80313500 0030F160 7C C6 3B 78 */ or r6, r6, r7 /* 80313504 0030F164 54 C3 0F FE */ srwi r3, r6, 0x1f /* 80313508 0030F168 54 00 0F FE */ srwi r0, r0, 0x1f /* 8031350C 0030F16C 7C 65 1A 14 */ add r3, r5, r3 /* 80313510 0030F170 7C 04 02 14 */ add r0, r4, r0 /* 80313514 0030F174 7C 03 00 40 */ cmplw r3, r0 /* 80313518 0030F178 41 82 00 0C */ beq lbl_80313524 /* 8031351C 0030F17C 38 00 FF FF */ li r0, -1 /* 80313520 0030F180 90 1F 00 20 */ stw r0, 0x20(r31) lbl_80313524: /* 80313524 0030F184 2C 1F 00 00 */ cmpwi r31, 0 /* 80313528 0030F188 91 1F 00 1C */ stw r8, 0x1c(r31) /* 8031352C 0030F18C 40 82 00 0C */ bne lbl_80313538 /* 80313530 0030F190 38 80 00 00 */ li r4, 0 /* 80313534 0030F194 48 00 00 0C */ b lbl_80313540 lbl_80313538: /* 80313538 0030F198 80 7F 00 08 */ lwz r3, 8(r31) /* 8031353C 0030F19C 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80313540: /* 80313540 0030F1A0 80 BF 00 1C */ lwz r5, 0x1c(r31) /* 80313544 0030F1A4 38 60 00 1C */ li r3, 0x1c /* 80313548 0030F1A8 88 04 00 20 */ lbz r0, 0x20(r4) /* 8031354C 0030F1AC 7C A0 04 30 */ srw r0, r5, r0 /* 80313550 0030F1B0 90 1F 00 24 */ stw r0, 0x24(r31) /* 80313554 0030F1B4 A0 84 00 00 */ lhz r4, 0(r4) /* 80313558 0030F1B8 38 04 FF FF */ addi r0, r4, -1 /* 8031355C 0030F1BC 7C A0 00 38 */ and r0, r5, r0 /* 80313560 0030F1C0 B0 1F 00 28 */ sth r0, 0x28(r31) /* 80313564 0030F1C4 48 00 00 FC */ b lbl_80313660 lbl_80313568: /* 80313568 0030F1C8 80 BF 00 20 */ lwz r5, 0x20(r31) /* 8031356C 0030F1CC 7F 83 E3 78 */ mr r3, r28 /* 80313570 0030F1D0 A0 DF 00 28 */ lhz r6, 0x28(r31) /* 80313574 0030F1D4 7F A4 EB 78 */ mr r4, r29 /* 80313578 0030F1D8 80 E1 00 08 */ lwz r7, 8(r1) /* 8031357C 0030F1DC 39 01 00 0C */ addi r8, r1, 0xc /* 80313580 0030F1E0 39 20 00 01 */ li r9, 1 /* 80313584 0030F1E4 48 00 58 65 */ bl VFiPFSEC_WriteData /* 80313588 0030F1E8 2C 03 00 00 */ cmpwi r3, 0 /* 8031358C 0030F1EC 41 82 00 14 */ beq lbl_803135A0 /* 80313590 0030F1F0 80 01 00 0C */ lwz r0, 0xc(r1) /* 80313594 0030F1F4 2C 00 00 00 */ cmpwi r0, 0 /* 80313598 0030F1F8 40 82 00 08 */ bne lbl_803135A0 /* 8031359C 0030F1FC 48 00 00 C4 */ b lbl_80313660 lbl_803135A0: /* 803135A0 0030F200 80 01 00 0C */ lwz r0, 0xc(r1) /* 803135A4 0030F204 2C 1F 00 00 */ cmpwi r31, 0 /* 803135A8 0030F208 90 1E 00 00 */ stw r0, 0(r30) /* 803135AC 0030F20C 80 DF 00 20 */ lwz r6, 0x20(r31) /* 803135B0 0030F210 80 A1 00 0C */ lwz r5, 0xc(r1) /* 803135B4 0030F214 40 82 00 0C */ bne lbl_803135C0 /* 803135B8 0030F218 38 80 00 00 */ li r4, 0 /* 803135BC 0030F21C 48 00 00 0C */ b lbl_803135C8 lbl_803135C0: /* 803135C0 0030F220 80 7F 00 08 */ lwz r3, 8(r31) /* 803135C4 0030F224 80 83 02 68 */ lwz r4, 0x268(r3) lbl_803135C8: /* 803135C8 0030F228 A0 1F 00 28 */ lhz r0, 0x28(r31) /* 803135CC 0030F22C A0 64 00 00 */ lhz r3, 0(r4) /* 803135D0 0030F230 7C E0 2A 14 */ add r7, r0, r5 /* 803135D4 0030F234 88 84 00 20 */ lbz r4, 0x20(r4) /* 803135D8 0030F238 38 03 FF FF */ addi r0, r3, -1 /* 803135DC 0030F23C 7C 00 38 39 */ and. r0, r0, r7 /* 803135E0 0030F240 7C E0 24 30 */ srw r0, r7, r4 /* 803135E4 0030F244 7C 86 02 14 */ add r4, r6, r0 /* 803135E8 0030F248 41 82 00 0C */ beq lbl_803135F4 /* 803135EC 0030F24C 90 9F 00 20 */ stw r4, 0x20(r31) /* 803135F0 0030F250 48 00 00 0C */ b lbl_803135FC lbl_803135F4: /* 803135F4 0030F254 38 00 FF FF */ li r0, -1 /* 803135F8 0030F258 90 1F 00 20 */ stw r0, 0x20(r31) lbl_803135FC: /* 803135FC 0030F25C 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 80313600 0030F260 80 7F 00 08 */ lwz r3, 8(r31) /* 80313604 0030F264 7C A0 2A 14 */ add r5, r0, r5 /* 80313608 0030F268 90 BF 00 1C */ stw r5, 0x1c(r31) /* 8031360C 0030F26C 80 03 02 64 */ lwz r0, 0x264(r3) /* 80313610 0030F270 7C 05 00 40 */ cmplw r5, r0 /* 80313614 0030F274 40 81 00 08 */ ble lbl_8031361C /* 80313618 0030F278 90 A3 02 64 */ stw r5, 0x264(r3) lbl_8031361C: /* 8031361C 0030F27C 2C 1F 00 00 */ cmpwi r31, 0 /* 80313620 0030F280 40 82 00 0C */ bne lbl_8031362C /* 80313624 0030F284 38 A0 00 00 */ li r5, 0 /* 80313628 0030F288 48 00 00 0C */ b lbl_80313634 lbl_8031362C: /* 8031362C 0030F28C 80 7F 00 08 */ lwz r3, 8(r31) /* 80313630 0030F290 80 A3 02 68 */ lwz r5, 0x268(r3) lbl_80313634: /* 80313634 0030F294 80 DF 00 1C */ lwz r6, 0x1c(r31) /* 80313638 0030F298 7F E3 FB 78 */ mr r3, r31 /* 8031363C 0030F29C 88 05 00 20 */ lbz r0, 0x20(r5) /* 80313640 0030F2A0 7C C0 04 30 */ srw r0, r6, r0 /* 80313644 0030F2A4 90 1F 00 24 */ stw r0, 0x24(r31) /* 80313648 0030F2A8 A0 A5 00 00 */ lhz r5, 0(r5) /* 8031364C 0030F2AC 38 05 FF FF */ addi r0, r5, -1 /* 80313650 0030F2B0 7C C0 00 38 */ and r0, r6, r0 /* 80313654 0030F2B4 B0 1F 00 28 */ sth r0, 0x28(r31) /* 80313658 0030F2B8 4B FF 77 29 */ bl VFiPFCLUSTER_UpdateLastAccessCluster /* 8031365C 0030F2BC 38 60 00 00 */ li r3, 0 lbl_80313660: /* 80313660 0030F2C0 80 01 00 34 */ lwz r0, 0x34(r1) /* 80313664 0030F2C4 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 80313668 0030F2C8 83 C1 00 28 */ lwz r30, 0x28(r1) /* 8031366C 0030F2CC 83 A1 00 24 */ lwz r29, 0x24(r1) /* 80313670 0030F2D0 83 81 00 20 */ lwz r28, 0x20(r1) /* 80313674 0030F2D4 7C 08 03 A6 */ mtlr r0 /* 80313678 0030F2D8 38 21 00 30 */ addi r1, r1, 0x30 /* 8031367C 0030F2DC 4E 80 00 20 */ blr .global VFiPFFILE_Cursor_Write_Overwrite VFiPFFILE_Cursor_Write_Overwrite: /* 80313680 0030F2E0 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80313684 0030F2E4 7C 08 02 A6 */ mflr r0 /* 80313688 0030F2E8 90 01 00 34 */ stw r0, 0x34(r1) /* 8031368C 0030F2EC 39 61 00 30 */ addi r11, r1, 0x30 /* 80313690 0030F2F0 4B EB 3A 99 */ bl _savegpr_27 /* 80313694 0030F2F4 38 00 00 00 */ li r0, 0 /* 80313698 0030F2F8 7C DF 33 78 */ mr r31, r6 /* 8031369C 0030F2FC 90 07 00 00 */ stw r0, 0(r7) /* 803136A0 0030F300 7C BC 2B 78 */ mr r28, r5 /* 803136A4 0030F304 7C FE 3B 78 */ mr r30, r7 /* 803136A8 0030F308 7C 9D 23 78 */ mr r29, r4 /* 803136AC 0030F30C 80 C4 00 08 */ lwz r6, 8(r4) /* 803136B0 0030F310 7C 7B 1B 78 */ mr r27, r3 /* 803136B4 0030F314 80 84 00 24 */ lwz r4, 0x24(r4) /* 803136B8 0030F318 7F E5 FB 78 */ mr r5, r31 /* 803136BC 0030F31C 38 66 00 04 */ addi r3, r6, 4 /* 803136C0 0030F320 38 DD 00 20 */ addi r6, r29, 0x20 /* 803136C4 0030F324 38 E1 00 0C */ addi r7, r1, 0xc /* 803136C8 0030F328 4B FF CA 4D */ bl VFiPFFAT_GetContinuousSector /* 803136CC 0030F32C 2C 03 00 00 */ cmpwi r3, 0 /* 803136D0 0030F330 41 82 00 08 */ beq lbl_803136D8 /* 803136D4 0030F334 48 00 01 EC */ b lbl_803138C0 lbl_803136D8: /* 803136D8 0030F338 80 61 00 0C */ lwz r3, 0xc(r1) /* 803136DC 0030F33C 2C 03 00 00 */ cmpwi r3, 0 /* 803136E0 0030F340 41 82 00 14 */ beq lbl_803136F4 /* 803136E4 0030F344 80 BD 00 20 */ lwz r5, 0x20(r29) /* 803136E8 0030F348 3C 05 00 01 */ addis r0, r5, 1 /* 803136EC 0030F34C 28 00 FF FF */ cmplwi r0, 0xffff /* 803136F0 0030F350 40 82 00 B4 */ bne lbl_803137A4 lbl_803136F4: /* 803136F4 0030F354 80 7D 00 08 */ lwz r3, 8(r29) /* 803136F8 0030F358 2C 1D 00 00 */ cmpwi r29, 0 /* 803136FC 0030F35C 81 03 02 64 */ lwz r8, 0x264(r3) /* 80313700 0030F360 40 82 00 0C */ bne lbl_8031370C /* 80313704 0030F364 38 80 00 00 */ li r4, 0 /* 80313708 0030F368 48 00 00 08 */ b lbl_80313710 lbl_8031370C: /* 8031370C 0030F36C 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80313710: /* 80313710 0030F370 A0 64 00 00 */ lhz r3, 0(r4) /* 80313714 0030F374 80 1D 00 1C */ lwz r0, 0x1c(r29) /* 80313718 0030F378 38 63 FF FF */ addi r3, r3, -1 /* 8031371C 0030F37C 88 84 00 20 */ lbz r4, 0x20(r4) /* 80313720 0030F380 7C 07 18 38 */ and r7, r0, r3 /* 80313724 0030F384 7C 05 24 30 */ srw r5, r0, r4 /* 80313728 0030F388 7D 03 18 38 */ and r3, r8, r3 /* 8031372C 0030F38C 7C C7 00 D0 */ neg r6, r7 /* 80313730 0030F390 7D 04 24 30 */ srw r4, r8, r4 /* 80313734 0030F394 7C 03 00 D0 */ neg r0, r3 /* 80313738 0030F398 7C 00 1B 78 */ or r0, r0, r3 /* 8031373C 0030F39C 7C C6 3B 78 */ or r6, r6, r7 /* 80313740 0030F3A0 54 C3 0F FE */ srwi r3, r6, 0x1f /* 80313744 0030F3A4 54 00 0F FE */ srwi r0, r0, 0x1f /* 80313748 0030F3A8 7C 65 1A 14 */ add r3, r5, r3 /* 8031374C 0030F3AC 7C 04 02 14 */ add r0, r4, r0 /* 80313750 0030F3B0 7C 03 00 40 */ cmplw r3, r0 /* 80313754 0030F3B4 41 82 00 0C */ beq lbl_80313760 /* 80313758 0030F3B8 38 00 FF FF */ li r0, -1 /* 8031375C 0030F3BC 90 1D 00 20 */ stw r0, 0x20(r29) lbl_80313760: /* 80313760 0030F3C0 2C 1D 00 00 */ cmpwi r29, 0 /* 80313764 0030F3C4 91 1D 00 1C */ stw r8, 0x1c(r29) /* 80313768 0030F3C8 40 82 00 0C */ bne lbl_80313774 /* 8031376C 0030F3CC 38 80 00 00 */ li r4, 0 /* 80313770 0030F3D0 48 00 00 0C */ b lbl_8031377C lbl_80313774: /* 80313774 0030F3D4 80 7D 00 08 */ lwz r3, 8(r29) /* 80313778 0030F3D8 80 83 02 68 */ lwz r4, 0x268(r3) lbl_8031377C: /* 8031377C 0030F3DC 80 BD 00 1C */ lwz r5, 0x1c(r29) /* 80313780 0030F3E0 38 60 00 1C */ li r3, 0x1c /* 80313784 0030F3E4 88 04 00 20 */ lbz r0, 0x20(r4) /* 80313788 0030F3E8 7C A0 04 30 */ srw r0, r5, r0 /* 8031378C 0030F3EC 90 1D 00 24 */ stw r0, 0x24(r29) /* 80313790 0030F3F0 A0 84 00 00 */ lhz r4, 0(r4) /* 80313794 0030F3F4 38 04 FF FF */ addi r0, r4, -1 /* 80313798 0030F3F8 7C A0 00 38 */ and r0, r5, r0 /* 8031379C 0030F3FC B0 1D 00 28 */ sth r0, 0x28(r29) /* 803137A0 0030F400 48 00 01 20 */ b lbl_803138C0 lbl_803137A4: /* 803137A4 0030F404 88 1B 00 20 */ lbz r0, 0x20(r27) /* 803137A8 0030F408 7C 60 00 30 */ slw r0, r3, r0 /* 803137AC 0030F40C 7C 1F 00 40 */ cmplw r31, r0 /* 803137B0 0030F410 40 81 00 08 */ ble lbl_803137B8 /* 803137B4 0030F414 7C 1F 03 78 */ mr r31, r0 lbl_803137B8: /* 803137B8 0030F418 80 1E 00 00 */ lwz r0, 0(r30) /* 803137BC 0030F41C 7F E7 FB 78 */ mr r7, r31 /* 803137C0 0030F420 A0 DD 00 28 */ lhz r6, 0x28(r29) /* 803137C4 0030F424 7F 63 DB 78 */ mr r3, r27 /* 803137C8 0030F428 7C 9C 02 14 */ add r4, r28, r0 /* 803137CC 0030F42C 39 01 00 08 */ addi r8, r1, 8 /* 803137D0 0030F430 3B E0 00 00 */ li r31, 0 /* 803137D4 0030F434 39 20 00 01 */ li r9, 1 /* 803137D8 0030F438 48 00 56 11 */ bl VFiPFSEC_WriteData /* 803137DC 0030F43C 2C 03 00 00 */ cmpwi r3, 0 /* 803137E0 0030F440 41 82 00 14 */ beq lbl_803137F4 /* 803137E4 0030F444 80 01 00 08 */ lwz r0, 8(r1) /* 803137E8 0030F448 2C 00 00 00 */ cmpwi r0, 0 /* 803137EC 0030F44C 40 82 00 08 */ bne lbl_803137F4 /* 803137F0 0030F450 48 00 00 BC */ b lbl_803138AC lbl_803137F4: /* 803137F4 0030F454 2C 1D 00 00 */ cmpwi r29, 0 /* 803137F8 0030F458 83 E1 00 08 */ lwz r31, 8(r1) /* 803137FC 0030F45C 80 BD 00 20 */ lwz r5, 0x20(r29) /* 80313800 0030F460 40 82 00 0C */ bne lbl_8031380C /* 80313804 0030F464 38 80 00 00 */ li r4, 0 /* 80313808 0030F468 48 00 00 0C */ b lbl_80313814 lbl_8031380C: /* 8031380C 0030F46C 80 7D 00 08 */ lwz r3, 8(r29) /* 80313810 0030F470 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80313814: /* 80313814 0030F474 A0 1D 00 28 */ lhz r0, 0x28(r29) /* 80313818 0030F478 A0 64 00 00 */ lhz r3, 0(r4) /* 8031381C 0030F47C 7C C0 FA 14 */ add r6, r0, r31 /* 80313820 0030F480 88 84 00 20 */ lbz r4, 0x20(r4) /* 80313824 0030F484 38 03 FF FF */ addi r0, r3, -1 /* 80313828 0030F488 7C 00 30 39 */ and. r0, r0, r6 /* 8031382C 0030F48C 7C C0 24 30 */ srw r0, r6, r4 /* 80313830 0030F490 7C 85 02 14 */ add r4, r5, r0 /* 80313834 0030F494 41 82 00 0C */ beq lbl_80313840 /* 80313838 0030F498 90 9D 00 20 */ stw r4, 0x20(r29) /* 8031383C 0030F49C 48 00 00 0C */ b lbl_80313848 lbl_80313840: /* 80313840 0030F4A0 38 00 FF FF */ li r0, -1 /* 80313844 0030F4A4 90 1D 00 20 */ stw r0, 0x20(r29) lbl_80313848: /* 80313848 0030F4A8 80 1D 00 1C */ lwz r0, 0x1c(r29) /* 8031384C 0030F4AC 80 7D 00 08 */ lwz r3, 8(r29) /* 80313850 0030F4B0 7C A0 FA 14 */ add r5, r0, r31 /* 80313854 0030F4B4 90 BD 00 1C */ stw r5, 0x1c(r29) /* 80313858 0030F4B8 80 03 02 64 */ lwz r0, 0x264(r3) /* 8031385C 0030F4BC 7C 05 00 40 */ cmplw r5, r0 /* 80313860 0030F4C0 40 81 00 08 */ ble lbl_80313868 /* 80313864 0030F4C4 90 A3 02 64 */ stw r5, 0x264(r3) lbl_80313868: /* 80313868 0030F4C8 2C 1D 00 00 */ cmpwi r29, 0 /* 8031386C 0030F4CC 40 82 00 0C */ bne lbl_80313878 /* 80313870 0030F4D0 38 A0 00 00 */ li r5, 0 /* 80313874 0030F4D4 48 00 00 0C */ b lbl_80313880 lbl_80313878: /* 80313878 0030F4D8 80 7D 00 08 */ lwz r3, 8(r29) /* 8031387C 0030F4DC 80 A3 02 68 */ lwz r5, 0x268(r3) lbl_80313880: /* 80313880 0030F4E0 80 DD 00 1C */ lwz r6, 0x1c(r29) /* 80313884 0030F4E4 7F A3 EB 78 */ mr r3, r29 /* 80313888 0030F4E8 88 05 00 20 */ lbz r0, 0x20(r5) /* 8031388C 0030F4EC 7C C0 04 30 */ srw r0, r6, r0 /* 80313890 0030F4F0 90 1D 00 24 */ stw r0, 0x24(r29) /* 80313894 0030F4F4 A0 A5 00 00 */ lhz r5, 0(r5) /* 80313898 0030F4F8 38 05 FF FF */ addi r0, r5, -1 /* 8031389C 0030F4FC 7C C0 00 38 */ and r0, r6, r0 /* 803138A0 0030F500 B0 1D 00 28 */ sth r0, 0x28(r29) /* 803138A4 0030F504 4B FF 74 DD */ bl VFiPFCLUSTER_UpdateLastAccessCluster /* 803138A8 0030F508 38 60 00 00 */ li r3, 0 lbl_803138AC: /* 803138AC 0030F50C 2C 03 00 00 */ cmpwi r3, 0 /* 803138B0 0030F510 93 FE 00 00 */ stw r31, 0(r30) /* 803138B4 0030F514 41 82 00 08 */ beq lbl_803138BC /* 803138B8 0030F518 48 00 00 08 */ b lbl_803138C0 lbl_803138BC: /* 803138BC 0030F51C 38 60 00 00 */ li r3, 0 lbl_803138C0: /* 803138C0 0030F520 39 61 00 30 */ addi r11, r1, 0x30 /* 803138C4 0030F524 4B EB 38 B1 */ bl _restgpr_27 /* 803138C8 0030F528 80 01 00 34 */ lwz r0, 0x34(r1) /* 803138CC 0030F52C 7C 08 03 A6 */ mtlr r0 /* 803138D0 0030F530 38 21 00 30 */ addi r1, r1, 0x30 /* 803138D4 0030F534 4E 80 00 20 */ blr .global VFiPFFILE_Cursor_Write VFiPFFILE_Cursor_Write: /* 803138D8 0030F538 94 21 FF B0 */ stwu r1, -0x50(r1) /* 803138DC 0030F53C 7C 08 02 A6 */ mflr r0 /* 803138E0 0030F540 90 01 00 54 */ stw r0, 0x54(r1) /* 803138E4 0030F544 39 61 00 50 */ addi r11, r1, 0x50 /* 803138E8 0030F548 4B EB 38 2D */ bl _savegpr_22 /* 803138EC 0030F54C 80 E3 00 08 */ lwz r7, 8(r3) /* 803138F0 0030F550 39 03 00 0C */ addi r8, r3, 0xc /* 803138F4 0030F554 38 00 00 00 */ li r0, 0 /* 803138F8 0030F558 7C D9 33 78 */ mr r25, r6 /* 803138FC 0030F55C 91 07 00 34 */ stw r8, 0x34(r7) /* 80313900 0030F560 7C 76 1B 78 */ mr r22, r3 /* 80313904 0030F564 7C 97 23 78 */ mr r23, r4 /* 80313908 0030F568 7C B8 2B 78 */ mr r24, r5 /* 8031390C 0030F56C 90 06 00 00 */ stw r0, 0(r6) /* 80313910 0030F570 80 03 00 1C */ lwz r0, 0x1c(r3) /* 80313914 0030F574 20 C0 FF FF */ subfic r6, r0, -1 /* 80313918 0030F578 7C 06 28 40 */ cmplw r6, r5 /* 8031391C 0030F57C 40 80 00 28 */ bge lbl_80313944 /* 80313920 0030F580 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80313924 0030F584 38 00 00 25 */ li r0, 0x25 /* 80313928 0030F588 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 8031392C 0030F58C 7C D8 33 78 */ mr r24, r6 /* 80313930 0030F590 90 04 00 1C */ stw r0, 0x1c(r4) /* 80313934 0030F594 80 83 00 08 */ lwz r4, 8(r3) /* 80313938 0030F598 80 84 00 38 */ lwz r4, 0x38(r4) /* 8031393C 0030F59C 90 04 18 6C */ stw r0, 0x186c(r4) /* 80313940 0030F5A0 90 03 00 18 */ stw r0, 0x18(r3) lbl_80313944: /* 80313944 0030F5A4 2C 03 00 00 */ cmpwi r3, 0 /* 80313948 0030F5A8 40 82 00 0C */ bne lbl_80313954 /* 8031394C 0030F5AC 3B A0 00 00 */ li r29, 0 /* 80313950 0030F5B0 48 00 00 0C */ b lbl_8031395C lbl_80313954: /* 80313954 0030F5B4 80 63 00 08 */ lwz r3, 8(r3) /* 80313958 0030F5B8 83 A3 02 68 */ lwz r29, 0x268(r3) lbl_8031395C: /* 8031395C 0030F5BC 7F A3 EB 78 */ mr r3, r29 /* 80313960 0030F5C0 7E C4 B3 78 */ mr r4, r22 /* 80313964 0030F5C4 7E E5 BB 78 */ mr r5, r23 /* 80313968 0030F5C8 7F 06 C3 78 */ mr r6, r24 /* 8031396C 0030F5CC 38 E1 00 18 */ addi r7, r1, 0x18 /* 80313970 0030F5D0 4B FF F7 F5 */ bl VFiPFFILE_Cursor_WriteHeadSector /* 80313974 0030F5D4 80 99 00 00 */ lwz r4, 0(r25) /* 80313978 0030F5D8 2C 03 00 00 */ cmpwi r3, 0 /* 8031397C 0030F5DC 80 01 00 18 */ lwz r0, 0x18(r1) /* 80313980 0030F5E0 7C 04 02 14 */ add r0, r4, r0 /* 80313984 0030F5E4 90 19 00 00 */ stw r0, 0(r25) /* 80313988 0030F5E8 41 82 00 08 */ beq lbl_80313990 /* 8031398C 0030F5EC 48 00 02 C4 */ b lbl_80313C50 lbl_80313990: /* 80313990 0030F5F0 80 01 00 18 */ lwz r0, 0x18(r1) /* 80313994 0030F5F4 7C 00 C0 40 */ cmplw r0, r24 /* 80313998 0030F5F8 41 80 00 0C */ blt lbl_803139A4 /* 8031399C 0030F5FC 38 60 00 00 */ li r3, 0 /* 803139A0 0030F600 48 00 02 B0 */ b lbl_80313C50 lbl_803139A4: /* 803139A4 0030F604 80 76 00 08 */ lwz r3, 8(r22) /* 803139A8 0030F608 7F 00 C0 50 */ subf r24, r0, r24 /* 803139AC 0030F60C 80 16 00 1C */ lwz r0, 0x1c(r22) /* 803139B0 0030F610 38 A1 00 14 */ addi r5, r1, 0x14 /* 803139B4 0030F614 38 63 00 04 */ addi r3, r3, 4 /* 803139B8 0030F618 7C 80 C2 14 */ add r4, r0, r24 /* 803139BC 0030F61C 4B FF C9 15 */ bl VFiPFFAT_CountAllocatedClusters /* 803139C0 0030F620 2C 03 00 00 */ cmpwi r3, 0 /* 803139C4 0030F624 41 82 00 08 */ beq lbl_803139CC /* 803139C8 0030F628 48 00 02 88 */ b lbl_80313C50 lbl_803139CC: /* 803139CC 0030F62C 88 9D 00 20 */ lbz r4, 0x20(r29) /* 803139D0 0030F630 88 7D 00 21 */ lbz r3, 0x21(r29) /* 803139D4 0030F634 80 16 00 1C */ lwz r0, 0x1c(r22) /* 803139D8 0030F638 7C 64 1A 14 */ add r3, r4, r3 /* 803139DC 0030F63C 80 A1 00 14 */ lwz r5, 0x14(r1) /* 803139E0 0030F640 7C 80 C2 14 */ add r4, r0, r24 /* 803139E4 0030F644 7C A0 18 30 */ slw r0, r5, r3 /* 803139E8 0030F648 7C 04 00 40 */ cmplw r4, r0 /* 803139EC 0030F64C 40 81 00 10 */ ble lbl_803139FC /* 803139F0 0030F650 7F 40 20 50 */ subf r26, r0, r4 /* 803139F4 0030F654 7F 7A C0 50 */ subf r27, r26, r24 /* 803139F8 0030F658 48 00 00 54 */ b lbl_80313A4C lbl_803139FC: /* 803139FC 0030F65C 7F 1B C3 78 */ mr r27, r24 /* 80313A00 0030F660 3B 40 00 00 */ li r26, 0 /* 80313A04 0030F664 48 00 00 48 */ b lbl_80313A4C lbl_80313A08: /* 80313A08 0030F668 80 19 00 00 */ lwz r0, 0(r25) /* 80313A0C 0030F66C 7F A3 EB 78 */ mr r3, r29 /* 80313A10 0030F670 7E C4 B3 78 */ mr r4, r22 /* 80313A14 0030F674 7F 66 DB 78 */ mr r6, r27 /* 80313A18 0030F678 7C B7 02 14 */ add r5, r23, r0 /* 80313A1C 0030F67C 38 E1 00 18 */ addi r7, r1, 0x18 /* 80313A20 0030F680 4B FF FC 61 */ bl VFiPFFILE_Cursor_Write_Overwrite /* 80313A24 0030F684 80 99 00 00 */ lwz r4, 0(r25) /* 80313A28 0030F688 2C 03 00 00 */ cmpwi r3, 0 /* 80313A2C 0030F68C 80 01 00 18 */ lwz r0, 0x18(r1) /* 80313A30 0030F690 7C 04 02 14 */ add r0, r4, r0 /* 80313A34 0030F694 90 19 00 00 */ stw r0, 0(r25) /* 80313A38 0030F698 41 82 00 08 */ beq lbl_80313A40 /* 80313A3C 0030F69C 48 00 02 14 */ b lbl_80313C50 lbl_80313A40: /* 80313A40 0030F6A0 80 01 00 18 */ lwz r0, 0x18(r1) /* 80313A44 0030F6A4 7F 60 D8 50 */ subf r27, r0, r27 /* 80313A48 0030F6A8 7F 00 C0 50 */ subf r24, r0, r24 lbl_80313A4C: /* 80313A4C 0030F6AC 2C 1B 00 00 */ cmpwi r27, 0 /* 80313A50 0030F6B0 41 82 00 10 */ beq lbl_80313A60 /* 80313A54 0030F6B4 A0 1D 00 00 */ lhz r0, 0(r29) /* 80313A58 0030F6B8 7C 1B 00 40 */ cmplw r27, r0 /* 80313A5C 0030F6BC 40 80 FF AC */ bge lbl_80313A08 lbl_80313A60: /* 80313A60 0030F6C0 3B C0 00 00 */ li r30, 0 /* 80313A64 0030F6C4 3B E0 FF FF */ li r31, -1 /* 80313A68 0030F6C8 48 00 01 94 */ b lbl_80313BFC lbl_80313A6C: /* 80313A6C 0030F6CC 80 19 00 00 */ lwz r0, 0(r25) /* 80313A70 0030F6D0 7E C3 B3 78 */ mr r3, r22 /* 80313A74 0030F6D4 7F 44 D3 78 */ mr r4, r26 /* 80313A78 0030F6D8 38 A1 00 0C */ addi r5, r1, 0xc /* 80313A7C 0030F6DC 93 C1 00 18 */ stw r30, 0x18(r1) /* 80313A80 0030F6E0 7F 97 02 14 */ add r28, r23, r0 /* 80313A84 0030F6E4 38 C1 00 08 */ addi r6, r1, 8 /* 80313A88 0030F6E8 3B 60 00 00 */ li r27, 0 /* 80313A8C 0030F6EC 4B FF 73 C9 */ bl VFiPFCLUSTER_AppendCluster /* 80313A90 0030F6F0 2C 03 00 00 */ cmpwi r3, 0 /* 80313A94 0030F6F4 41 82 00 08 */ beq lbl_80313A9C /* 80313A98 0030F6F8 48 00 01 2C */ b lbl_80313BC4 lbl_80313A9C: /* 80313A9C 0030F6FC 80 A1 00 08 */ lwz r5, 8(r1) /* 80313AA0 0030F700 90 B6 00 20 */ stw r5, 0x20(r22) /* 80313AA4 0030F704 80 E1 00 0C */ lwz r7, 0xc(r1) /* 80313AA8 0030F708 2C 07 00 00 */ cmpwi r7, 0 /* 80313AAC 0030F70C 40 82 00 0C */ bne lbl_80313AB8 /* 80313AB0 0030F710 38 60 00 00 */ li r3, 0 /* 80313AB4 0030F714 48 00 01 10 */ b lbl_80313BC4 lbl_80313AB8: /* 80313AB8 0030F718 80 01 00 18 */ lwz r0, 0x18(r1) /* 80313ABC 0030F71C 7C FB 3B 78 */ mr r27, r7 /* 80313AC0 0030F720 A0 D6 00 28 */ lhz r6, 0x28(r22) /* 80313AC4 0030F724 7F A3 EB 78 */ mr r3, r29 /* 80313AC8 0030F728 7C 9C 02 14 */ add r4, r28, r0 /* 80313ACC 0030F72C 39 01 00 10 */ addi r8, r1, 0x10 /* 80313AD0 0030F730 3B 80 00 00 */ li r28, 0 /* 80313AD4 0030F734 39 20 00 01 */ li r9, 1 /* 80313AD8 0030F738 48 00 53 11 */ bl VFiPFSEC_WriteData /* 80313ADC 0030F73C 2C 03 00 00 */ cmpwi r3, 0 /* 80313AE0 0030F740 41 82 00 14 */ beq lbl_80313AF4 /* 80313AE4 0030F744 80 01 00 10 */ lwz r0, 0x10(r1) /* 80313AE8 0030F748 2C 00 00 00 */ cmpwi r0, 0 /* 80313AEC 0030F74C 40 82 00 08 */ bne lbl_80313AF4 /* 80313AF0 0030F750 48 00 00 B8 */ b lbl_80313BA8 lbl_80313AF4: /* 80313AF4 0030F754 2C 16 00 00 */ cmpwi r22, 0 /* 80313AF8 0030F758 83 81 00 10 */ lwz r28, 0x10(r1) /* 80313AFC 0030F75C 80 B6 00 20 */ lwz r5, 0x20(r22) /* 80313B00 0030F760 40 82 00 0C */ bne lbl_80313B0C /* 80313B04 0030F764 38 80 00 00 */ li r4, 0 /* 80313B08 0030F768 48 00 00 0C */ b lbl_80313B14 lbl_80313B0C: /* 80313B0C 0030F76C 80 76 00 08 */ lwz r3, 8(r22) /* 80313B10 0030F770 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80313B14: /* 80313B14 0030F774 A0 16 00 28 */ lhz r0, 0x28(r22) /* 80313B18 0030F778 A0 64 00 00 */ lhz r3, 0(r4) /* 80313B1C 0030F77C 7C C0 E2 14 */ add r6, r0, r28 /* 80313B20 0030F780 88 84 00 20 */ lbz r4, 0x20(r4) /* 80313B24 0030F784 38 03 FF FF */ addi r0, r3, -1 /* 80313B28 0030F788 7C 00 30 39 */ and. r0, r0, r6 /* 80313B2C 0030F78C 7C C0 24 30 */ srw r0, r6, r4 /* 80313B30 0030F790 7C 85 02 14 */ add r4, r5, r0 /* 80313B34 0030F794 41 82 00 0C */ beq lbl_80313B40 /* 80313B38 0030F798 90 96 00 20 */ stw r4, 0x20(r22) /* 80313B3C 0030F79C 48 00 00 08 */ b lbl_80313B44 lbl_80313B40: /* 80313B40 0030F7A0 93 F6 00 20 */ stw r31, 0x20(r22) lbl_80313B44: /* 80313B44 0030F7A4 80 16 00 1C */ lwz r0, 0x1c(r22) /* 80313B48 0030F7A8 80 76 00 08 */ lwz r3, 8(r22) /* 80313B4C 0030F7AC 7C A0 E2 14 */ add r5, r0, r28 /* 80313B50 0030F7B0 90 B6 00 1C */ stw r5, 0x1c(r22) /* 80313B54 0030F7B4 80 03 02 64 */ lwz r0, 0x264(r3) /* 80313B58 0030F7B8 7C 05 00 40 */ cmplw r5, r0 /* 80313B5C 0030F7BC 40 81 00 08 */ ble lbl_80313B64 /* 80313B60 0030F7C0 90 A3 02 64 */ stw r5, 0x264(r3) lbl_80313B64: /* 80313B64 0030F7C4 2C 16 00 00 */ cmpwi r22, 0 /* 80313B68 0030F7C8 40 82 00 0C */ bne lbl_80313B74 /* 80313B6C 0030F7CC 38 A0 00 00 */ li r5, 0 /* 80313B70 0030F7D0 48 00 00 0C */ b lbl_80313B7C lbl_80313B74: /* 80313B74 0030F7D4 80 76 00 08 */ lwz r3, 8(r22) /* 80313B78 0030F7D8 80 A3 02 68 */ lwz r5, 0x268(r3) lbl_80313B7C: /* 80313B7C 0030F7DC 80 D6 00 1C */ lwz r6, 0x1c(r22) /* 80313B80 0030F7E0 7E C3 B3 78 */ mr r3, r22 /* 80313B84 0030F7E4 88 05 00 20 */ lbz r0, 0x20(r5) /* 80313B88 0030F7E8 7C C0 04 30 */ srw r0, r6, r0 /* 80313B8C 0030F7EC 90 16 00 24 */ stw r0, 0x24(r22) /* 80313B90 0030F7F0 A0 A5 00 00 */ lhz r5, 0(r5) /* 80313B94 0030F7F4 38 05 FF FF */ addi r0, r5, -1 /* 80313B98 0030F7F8 7C C0 00 38 */ and r0, r6, r0 /* 80313B9C 0030F7FC B0 16 00 28 */ sth r0, 0x28(r22) /* 80313BA0 0030F800 4B FF 71 E1 */ bl VFiPFCLUSTER_UpdateLastAccessCluster /* 80313BA4 0030F804 38 60 00 00 */ li r3, 0 lbl_80313BA8: /* 80313BA8 0030F808 80 81 00 18 */ lwz r4, 0x18(r1) /* 80313BAC 0030F80C 7C 03 00 D0 */ neg r0, r3 /* 80313BB0 0030F810 7C 00 1B 78 */ or r0, r0, r3 /* 80313BB4 0030F814 7C 84 E2 14 */ add r4, r4, r28 /* 80313BB8 0030F818 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 80313BBC 0030F81C 90 81 00 18 */ stw r4, 0x18(r1) /* 80313BC0 0030F820 7C 63 00 38 */ and r3, r3, r0 lbl_80313BC4: /* 80313BC4 0030F824 80 99 00 00 */ lwz r4, 0(r25) /* 80313BC8 0030F828 2C 03 00 00 */ cmpwi r3, 0 /* 80313BCC 0030F82C 80 01 00 18 */ lwz r0, 0x18(r1) /* 80313BD0 0030F830 7C 04 02 14 */ add r0, r4, r0 /* 80313BD4 0030F834 90 19 00 00 */ stw r0, 0(r25) /* 80313BD8 0030F838 41 82 00 08 */ beq lbl_80313BE0 /* 80313BDC 0030F83C 48 00 00 74 */ b lbl_80313C50 lbl_80313BE0: /* 80313BE0 0030F840 2C 1B 00 00 */ cmpwi r27, 0 /* 80313BE4 0030F844 40 82 00 0C */ bne lbl_80313BF0 /* 80313BE8 0030F848 38 60 00 00 */ li r3, 0 /* 80313BEC 0030F84C 48 00 00 64 */ b lbl_80313C50 lbl_80313BF0: /* 80313BF0 0030F850 80 01 00 18 */ lwz r0, 0x18(r1) /* 80313BF4 0030F854 7F 5B D0 50 */ subf r26, r27, r26 /* 80313BF8 0030F858 7F 00 C0 50 */ subf r24, r0, r24 lbl_80313BFC: /* 80313BFC 0030F85C 2C 1A 00 00 */ cmpwi r26, 0 /* 80313C00 0030F860 41 82 00 10 */ beq lbl_80313C10 /* 80313C04 0030F864 A0 1D 00 00 */ lhz r0, 0(r29) /* 80313C08 0030F868 7C 18 00 40 */ cmplw r24, r0 /* 80313C0C 0030F86C 40 80 FE 60 */ bge lbl_80313A6C lbl_80313C10: /* 80313C10 0030F870 80 19 00 00 */ lwz r0, 0(r25) /* 80313C14 0030F874 7F A3 EB 78 */ mr r3, r29 /* 80313C18 0030F878 7E C4 B3 78 */ mr r4, r22 /* 80313C1C 0030F87C 7F 06 C3 78 */ mr r6, r24 /* 80313C20 0030F880 7F 47 D3 78 */ mr r7, r26 /* 80313C24 0030F884 7C B7 02 14 */ add r5, r23, r0 /* 80313C28 0030F888 39 01 00 18 */ addi r8, r1, 0x18 /* 80313C2C 0030F88C 4B FF F7 91 */ bl VFiPFFILE_Cursor_WriteTailSector /* 80313C30 0030F890 80 99 00 00 */ lwz r4, 0(r25) /* 80313C34 0030F894 2C 03 00 00 */ cmpwi r3, 0 /* 80313C38 0030F898 80 01 00 18 */ lwz r0, 0x18(r1) /* 80313C3C 0030F89C 7C 04 02 14 */ add r0, r4, r0 /* 80313C40 0030F8A0 90 19 00 00 */ stw r0, 0(r25) /* 80313C44 0030F8A4 41 82 00 08 */ beq lbl_80313C4C /* 80313C48 0030F8A8 48 00 00 08 */ b lbl_80313C50 lbl_80313C4C: /* 80313C4C 0030F8AC 38 60 00 00 */ li r3, 0 lbl_80313C50: /* 80313C50 0030F8B0 39 61 00 50 */ addi r11, r1, 0x50 /* 80313C54 0030F8B4 4B EB 35 0D */ bl _restgpr_22 /* 80313C58 0030F8B8 80 01 00 54 */ lwz r0, 0x54(r1) /* 80313C5C 0030F8BC 7C 08 03 A6 */ mtlr r0 /* 80313C60 0030F8C0 38 21 00 50 */ addi r1, r1, 0x50 /* 80313C64 0030F8C4 4E 80 00 20 */ blr .global VFiPFFILE_Cursor_MoveToClusterEnd VFiPFFILE_Cursor_MoveToClusterEnd: /* 80313C68 0030F8C8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80313C6C 0030F8CC 7C 08 02 A6 */ mflr r0 /* 80313C70 0030F8D0 2C 03 00 00 */ cmpwi r3, 0 /* 80313C74 0030F8D4 90 01 00 24 */ stw r0, 0x24(r1) /* 80313C78 0030F8D8 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80313C7C 0030F8DC 7C 7F 1B 78 */ mr r31, r3 /* 80313C80 0030F8E0 93 C1 00 18 */ stw r30, 0x18(r1) /* 80313C84 0030F8E4 40 82 00 0C */ bne lbl_80313C90 /* 80313C88 0030F8E8 3B C0 00 00 */ li r30, 0 /* 80313C8C 0030F8EC 48 00 00 0C */ b lbl_80313C98 lbl_80313C90: /* 80313C90 0030F8F0 80 A3 00 08 */ lwz r5, 8(r3) /* 80313C94 0030F8F4 83 C5 02 68 */ lwz r30, 0x268(r5) lbl_80313C98: /* 80313C98 0030F8F8 80 63 00 08 */ lwz r3, 8(r3) /* 80313C9C 0030F8FC 38 A1 00 08 */ addi r5, r1, 8 /* 80313CA0 0030F900 38 63 00 04 */ addi r3, r3, 4 /* 80313CA4 0030F904 4B FF C6 2D */ bl VFiPFFAT_CountAllocatedClusters /* 80313CA8 0030F908 88 9E 00 20 */ lbz r4, 0x20(r30) /* 80313CAC 0030F90C 38 00 FF FF */ li r0, -1 /* 80313CB0 0030F910 88 7E 00 21 */ lbz r3, 0x21(r30) /* 80313CB4 0030F914 80 A1 00 08 */ lwz r5, 8(r1) /* 80313CB8 0030F918 7C 64 1A 14 */ add r3, r4, r3 /* 80313CBC 0030F91C 7C 00 1C 30 */ srw r0, r0, r3 /* 80313CC0 0030F920 7C 05 00 40 */ cmplw r5, r0 /* 80313CC4 0030F924 40 81 00 AC */ ble lbl_80313D70 /* 80313CC8 0030F928 2C 1F 00 00 */ cmpwi r31, 0 /* 80313CCC 0030F92C 40 82 00 0C */ bne lbl_80313CD8 /* 80313CD0 0030F930 38 A0 00 00 */ li r5, 0 /* 80313CD4 0030F934 48 00 00 0C */ b lbl_80313CE0 lbl_80313CD8: /* 80313CD8 0030F938 80 7F 00 08 */ lwz r3, 8(r31) /* 80313CDC 0030F93C 80 A3 02 68 */ lwz r5, 0x268(r3) lbl_80313CE0: /* 80313CE0 0030F940 A0 65 00 00 */ lhz r3, 0(r5) /* 80313CE4 0030F944 38 80 FF FF */ li r4, -1 /* 80313CE8 0030F948 80 FF 00 1C */ lwz r7, 0x1c(r31) /* 80313CEC 0030F94C 39 03 FF FF */ addi r8, r3, -1 /* 80313CF0 0030F950 89 25 00 20 */ lbz r9, 0x20(r5) /* 80313CF4 0030F954 7C E5 40 38 */ and r5, r7, r8 /* 80313CF8 0030F958 7C 65 00 D0 */ neg r3, r5 /* 80313CFC 0030F95C 7C 08 00 D0 */ neg r0, r8 /* 80313D00 0030F960 7C 66 2B 78 */ or r6, r3, r5 /* 80313D04 0030F964 7C E5 4C 30 */ srw r5, r7, r9 /* 80313D08 0030F968 7C 00 43 78 */ or r0, r0, r8 /* 80313D0C 0030F96C 7C 83 4C 30 */ srw r3, r4, r9 /* 80313D10 0030F970 54 C6 0F FE */ srwi r6, r6, 0x1f /* 80313D14 0030F974 54 00 0F FE */ srwi r0, r0, 0x1f /* 80313D18 0030F978 7C A5 32 14 */ add r5, r5, r6 /* 80313D1C 0030F97C 7C 03 02 14 */ add r0, r3, r0 /* 80313D20 0030F980 7C 05 00 40 */ cmplw r5, r0 /* 80313D24 0030F984 41 82 00 08 */ beq lbl_80313D2C /* 80313D28 0030F988 90 9F 00 20 */ stw r4, 0x20(r31) lbl_80313D2C: /* 80313D2C 0030F98C 38 00 FF FF */ li r0, -1 /* 80313D30 0030F990 2C 1F 00 00 */ cmpwi r31, 0 /* 80313D34 0030F994 90 1F 00 1C */ stw r0, 0x1c(r31) /* 80313D38 0030F998 40 82 00 0C */ bne lbl_80313D44 /* 80313D3C 0030F99C 38 60 00 00 */ li r3, 0 /* 80313D40 0030F9A0 48 00 00 0C */ b lbl_80313D4C lbl_80313D44: /* 80313D44 0030F9A4 80 7F 00 08 */ lwz r3, 8(r31) /* 80313D48 0030F9A8 80 63 02 68 */ lwz r3, 0x268(r3) lbl_80313D4C: /* 80313D4C 0030F9AC 80 9F 00 1C */ lwz r4, 0x1c(r31) /* 80313D50 0030F9B0 88 03 00 20 */ lbz r0, 0x20(r3) /* 80313D54 0030F9B4 7C 80 04 30 */ srw r0, r4, r0 /* 80313D58 0030F9B8 90 1F 00 24 */ stw r0, 0x24(r31) /* 80313D5C 0030F9BC A0 63 00 00 */ lhz r3, 0(r3) /* 80313D60 0030F9C0 38 03 FF FF */ addi r0, r3, -1 /* 80313D64 0030F9C4 7C 80 00 38 */ and r0, r4, r0 /* 80313D68 0030F9C8 B0 1F 00 28 */ sth r0, 0x28(r31) /* 80313D6C 0030F9CC 48 00 00 AC */ b lbl_80313E18 lbl_80313D70: /* 80313D70 0030F9D0 2C 1F 00 00 */ cmpwi r31, 0 /* 80313D74 0030F9D4 7C A8 18 30 */ slw r8, r5, r3 /* 80313D78 0030F9D8 40 82 00 0C */ bne lbl_80313D84 /* 80313D7C 0030F9DC 38 80 00 00 */ li r4, 0 /* 80313D80 0030F9E0 48 00 00 0C */ b lbl_80313D8C lbl_80313D84: /* 80313D84 0030F9E4 80 7F 00 08 */ lwz r3, 8(r31) /* 80313D88 0030F9E8 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80313D8C: /* 80313D8C 0030F9EC A0 64 00 00 */ lhz r3, 0(r4) /* 80313D90 0030F9F0 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 80313D94 0030F9F4 38 63 FF FF */ addi r3, r3, -1 /* 80313D98 0030F9F8 88 84 00 20 */ lbz r4, 0x20(r4) /* 80313D9C 0030F9FC 7C 07 18 38 */ and r7, r0, r3 /* 80313DA0 0030FA00 7C 05 24 30 */ srw r5, r0, r4 /* 80313DA4 0030FA04 7D 03 18 38 */ and r3, r8, r3 /* 80313DA8 0030FA08 7C C7 00 D0 */ neg r6, r7 /* 80313DAC 0030FA0C 7D 04 24 30 */ srw r4, r8, r4 /* 80313DB0 0030FA10 7C 03 00 D0 */ neg r0, r3 /* 80313DB4 0030FA14 7C 00 1B 78 */ or r0, r0, r3 /* 80313DB8 0030FA18 7C C6 3B 78 */ or r6, r6, r7 /* 80313DBC 0030FA1C 54 C3 0F FE */ srwi r3, r6, 0x1f /* 80313DC0 0030FA20 54 00 0F FE */ srwi r0, r0, 0x1f /* 80313DC4 0030FA24 7C 65 1A 14 */ add r3, r5, r3 /* 80313DC8 0030FA28 7C 04 02 14 */ add r0, r4, r0 /* 80313DCC 0030FA2C 7C 03 00 40 */ cmplw r3, r0 /* 80313DD0 0030FA30 41 82 00 0C */ beq lbl_80313DDC /* 80313DD4 0030FA34 38 00 FF FF */ li r0, -1 /* 80313DD8 0030FA38 90 1F 00 20 */ stw r0, 0x20(r31) lbl_80313DDC: /* 80313DDC 0030FA3C 2C 1F 00 00 */ cmpwi r31, 0 /* 80313DE0 0030FA40 91 1F 00 1C */ stw r8, 0x1c(r31) /* 80313DE4 0030FA44 40 82 00 0C */ bne lbl_80313DF0 /* 80313DE8 0030FA48 38 60 00 00 */ li r3, 0 /* 80313DEC 0030FA4C 48 00 00 0C */ b lbl_80313DF8 lbl_80313DF0: /* 80313DF0 0030FA50 80 7F 00 08 */ lwz r3, 8(r31) /* 80313DF4 0030FA54 80 63 02 68 */ lwz r3, 0x268(r3) lbl_80313DF8: /* 80313DF8 0030FA58 80 9F 00 1C */ lwz r4, 0x1c(r31) /* 80313DFC 0030FA5C 88 03 00 20 */ lbz r0, 0x20(r3) /* 80313E00 0030FA60 7C 80 04 30 */ srw r0, r4, r0 /* 80313E04 0030FA64 90 1F 00 24 */ stw r0, 0x24(r31) /* 80313E08 0030FA68 A0 63 00 00 */ lhz r3, 0(r3) /* 80313E0C 0030FA6C 38 03 FF FF */ addi r0, r3, -1 /* 80313E10 0030FA70 7C 80 00 38 */ and r0, r4, r0 /* 80313E14 0030FA74 B0 1F 00 28 */ sth r0, 0x28(r31) lbl_80313E18: /* 80313E18 0030FA78 80 01 00 24 */ lwz r0, 0x24(r1) /* 80313E1C 0030FA7C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80313E20 0030FA80 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80313E24 0030FA84 7C 08 03 A6 */ mtlr r0 /* 80313E28 0030FA88 38 21 00 20 */ addi r1, r1, 0x20 /* 80313E2C 0030FA8C 4E 80 00 20 */ blr .global VFiPFFILE_GetSFD VFiPFFILE_GetSFD: /* 80313E30 0030FA90 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80313E34 0030FA94 7C 08 02 A6 */ mflr r0 /* 80313E38 0030FA98 90 01 00 24 */ stw r0, 0x24(r1) /* 80313E3C 0030FA9C 39 61 00 20 */ addi r11, r1, 0x20 /* 80313E40 0030FAA0 4B EB 32 E9 */ bl _savegpr_27 /* 80313E44 0030FAA4 7C 7C 1B 78 */ mr r28, r3 /* 80313E48 0030FAA8 38 00 00 05 */ li r0, 5 /* 80313E4C 0030FAAC 7C 9D 23 78 */ mr r29, r4 /* 80313E50 0030FAB0 38 E3 00 40 */ addi r7, r3, 0x40 /* 80313E54 0030FAB4 7F 86 E3 78 */ mr r6, r28 /* 80313E58 0030FAB8 3B E0 00 00 */ li r31, 0 /* 80313E5C 0030FABC 3B C0 00 00 */ li r30, 0 /* 80313E60 0030FAC0 39 00 00 00 */ li r8, 0 /* 80313E64 0030FAC4 7C 09 03 A6 */ mtctr r0 lbl_80313E68: /* 80313E68 0030FAC8 80 06 00 40 */ lwz r0, 0x40(r6) /* 80313E6C 0030FACC 54 05 07 FF */ clrlwi. r5, r0, 0x1f /* 80313E70 0030FAD0 41 82 00 14 */ beq lbl_80313E84 /* 80313E74 0030FAD4 41 82 00 24 */ beq lbl_80313E98 /* 80313E78 0030FAD8 7C 00 00 34 */ cntlzw r0, r0 /* 80313E7C 0030FADC 54 00 DF BD */ rlwinm. r0, r0, 0x1b, 0x1e, 0x1e /* 80313E80 0030FAE0 41 82 00 18 */ beq lbl_80313E98 lbl_80313E84: /* 80313E84 0030FAE4 2C 1E 00 00 */ cmpwi r30, 0 /* 80313E88 0030FAE8 40 82 00 5C */ bne lbl_80313EE4 /* 80313E8C 0030FAEC 7C FE 3B 78 */ mr r30, r7 /* 80313E90 0030FAF0 7D 1F 43 78 */ mr r31, r8 /* 80313E94 0030FAF4 48 00 00 50 */ b lbl_80313EE4 lbl_80313E98: /* 80313E98 0030FAF8 80 A4 02 2C */ lwz r5, 0x22c(r4) /* 80313E9C 0030FAFC 80 06 02 A8 */ lwz r0, 0x2a8(r6) /* 80313EA0 0030FB00 7C 05 00 40 */ cmplw r5, r0 /* 80313EA4 0030FB04 40 82 00 40 */ bne lbl_80313EE4 /* 80313EA8 0030FB08 80 A4 02 38 */ lwz r5, 0x238(r4) /* 80313EAC 0030FB0C 80 06 02 B4 */ lwz r0, 0x2b4(r6) /* 80313EB0 0030FB10 7C 05 00 40 */ cmplw r5, r0 /* 80313EB4 0030FB14 40 82 00 30 */ bne lbl_80313EE4 /* 80313EB8 0030FB18 A0 A4 02 3C */ lhz r5, 0x23c(r4) /* 80313EBC 0030FB1C A0 06 02 B8 */ lhz r0, 0x2b8(r6) /* 80313EC0 0030FB20 7C 05 00 40 */ cmplw r5, r0 /* 80313EC4 0030FB24 40 82 00 20 */ bne lbl_80313EE4 /* 80313EC8 0030FB28 1C 08 02 90 */ mulli r0, r8, 0x290 /* 80313ECC 0030FB2C 7C A3 02 14 */ add r5, r3, r0 /* 80313ED0 0030FB30 A0 85 02 CC */ lhz r4, 0x2cc(r5) /* 80313ED4 0030FB34 38 65 00 40 */ addi r3, r5, 0x40 /* 80313ED8 0030FB38 38 04 00 01 */ addi r0, r4, 1 /* 80313EDC 0030FB3C B0 05 02 CC */ sth r0, 0x2cc(r5) /* 80313EE0 0030FB40 48 00 01 08 */ b lbl_80313FE8 lbl_80313EE4: /* 80313EE4 0030FB44 38 C6 02 90 */ addi r6, r6, 0x290 /* 80313EE8 0030FB48 38 E7 02 90 */ addi r7, r7, 0x290 /* 80313EEC 0030FB4C 39 08 00 01 */ addi r8, r8, 1 /* 80313EF0 0030FB50 42 00 FF 78 */ bdnz lbl_80313E68 /* 80313EF4 0030FB54 2C 1E 00 00 */ cmpwi r30, 0 /* 80313EF8 0030FB58 40 82 00 0C */ bne lbl_80313F04 /* 80313EFC 0030FB5C 38 60 00 00 */ li r3, 0 /* 80313F00 0030FB60 48 00 00 E8 */ b lbl_80313FE8 lbl_80313F04: /* 80313F04 0030FB64 38 00 00 03 */ li r0, 3 /* 80313F08 0030FB68 38 60 00 01 */ li r3, 1 /* 80313F0C 0030FB6C 90 1E 00 00 */ stw r0, 0(r30) /* 80313F10 0030FB70 38 00 00 48 */ li r0, 0x48 /* 80313F14 0030FB74 38 BE 00 38 */ addi r5, r30, 0x38 /* 80313F18 0030FB78 38 84 FF FC */ addi r4, r4, -4 /* 80313F1C 0030FB7C B0 7E 02 8C */ sth r3, 0x28c(r30) /* 80313F20 0030FB80 7C 09 03 A6 */ mtctr r0 lbl_80313F24: /* 80313F24 0030FB84 80 64 00 04 */ lwz r3, 4(r4) /* 80313F28 0030FB88 84 04 00 08 */ lwzu r0, 8(r4) /* 80313F2C 0030FB8C 90 65 00 04 */ stw r3, 4(r5) /* 80313F30 0030FB90 94 05 00 08 */ stwu r0, 8(r5) /* 80313F34 0030FB94 42 00 FF F0 */ bdnz lbl_80313F24 /* 80313F38 0030FB98 3B 60 00 00 */ li r27, 0 /* 80313F3C 0030FB9C 38 7E 00 04 */ addi r3, r30, 4 /* 80313F40 0030FBA0 B3 7E 02 7C */ sth r27, 0x27c(r30) /* 80313F44 0030FBA4 38 DE 02 70 */ addi r6, r30, 0x270 /* 80313F48 0030FBA8 38 80 00 00 */ li r4, 0 /* 80313F4C 0030FBAC B3 7E 02 7E */ sth r27, 0x27e(r30) /* 80313F50 0030FBB0 93 7E 02 80 */ stw r27, 0x280(r30) /* 80313F54 0030FBB4 93 7E 02 84 */ stw r27, 0x284(r30) /* 80313F58 0030FBB8 93 7E 02 88 */ stw r27, 0x288(r30) /* 80313F5C 0030FBBC 80 BD 02 2C */ lwz r5, 0x22c(r29) /* 80313F60 0030FBC0 4B FF D1 69 */ bl VFiPFFAT_InitFFD /* 80313F64 0030FBC4 A0 1C 18 80 */ lhz r0, 0x1880(r28) /* 80313F68 0030FBC8 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80313F6C 0030FBCC 41 82 00 78 */ beq lbl_80313FE4 /* 80313F70 0030FBD0 80 1C 18 88 */ lwz r0, 0x1888(r28) /* 80313F74 0030FBD4 38 80 00 00 */ li r4, 0 /* 80313F78 0030FBD8 80 7C 18 84 */ lwz r3, 0x1884(r28) /* 80313F7C 0030FBDC 7C 1F 01 D6 */ mullw r0, r31, r0 /* 80313F80 0030FBE0 54 00 10 3A */ slwi r0, r0, 2 /* 80313F84 0030FBE4 7C 63 02 14 */ add r3, r3, r0 /* 80313F88 0030FBE8 90 7E 00 20 */ stw r3, 0x20(r30) /* 80313F8C 0030FBEC 80 1C 18 88 */ lwz r0, 0x1888(r28) /* 80313F90 0030FBF0 54 05 10 3A */ slwi r5, r0, 2 /* 80313F94 0030FBF4 4B FF 10 41 */ bl VFipf_memset /* 80313F98 0030FBF8 80 1C 18 88 */ lwz r0, 0x1888(r28) /* 80313F9C 0030FBFC 90 1E 00 2C */ stw r0, 0x2c(r30) /* 80313FA0 0030FC00 A0 1C 18 82 */ lhz r0, 0x1882(r28) /* 80313FA4 0030FC04 B0 1E 00 24 */ sth r0, 0x24(r30) /* 80313FA8 0030FC08 B3 7E 00 26 */ sth r27, 0x26(r30) /* 80313FAC 0030FC0C 93 7E 00 28 */ stw r27, 0x28(r30) /* 80313FB0 0030FC10 93 7E 00 30 */ stw r27, 0x30(r30) /* 80313FB4 0030FC14 80 1D 02 28 */ lwz r0, 0x228(r29) /* 80313FB8 0030FC18 2C 00 00 00 */ cmpwi r0, 0 /* 80313FBC 0030FC1C 41 82 00 28 */ beq lbl_80313FE4 /* 80313FC0 0030FC20 80 1E 00 2C */ lwz r0, 0x2c(r30) /* 80313FC4 0030FC24 2C 00 00 00 */ cmpwi r0, 0 /* 80313FC8 0030FC28 41 82 00 1C */ beq lbl_80313FE4 /* 80313FCC 0030FC2C 80 1D 02 34 */ lwz r0, 0x234(r29) /* 80313FD0 0030FC30 80 7E 00 20 */ lwz r3, 0x20(r30) /* 80313FD4 0030FC34 90 03 00 00 */ stw r0, 0(r3) /* 80313FD8 0030FC38 80 7E 00 28 */ lwz r3, 0x28(r30) /* 80313FDC 0030FC3C 38 03 00 01 */ addi r0, r3, 1 /* 80313FE0 0030FC40 90 1E 00 28 */ stw r0, 0x28(r30) lbl_80313FE4: /* 80313FE4 0030FC44 7F C3 F3 78 */ mr r3, r30 lbl_80313FE8: /* 80313FE8 0030FC48 39 61 00 20 */ addi r11, r1, 0x20 /* 80313FEC 0030FC4C 4B EB 31 89 */ bl _restgpr_27 /* 80313FF0 0030FC50 80 01 00 24 */ lwz r0, 0x24(r1) /* 80313FF4 0030FC54 7C 08 03 A6 */ mtlr r0 /* 80313FF8 0030FC58 38 21 00 20 */ addi r1, r1, 0x20 /* 80313FFC 0030FC5C 4E 80 00 20 */ blr .global VFiPFFILE_createEmptyFile VFiPFFILE_createEmptyFile: /* 80314000 0030FC60 94 21 FD 20 */ stwu r1, -0x2e0(r1) /* 80314004 0030FC64 7C 08 02 A6 */ mflr r0 /* 80314008 0030FC68 90 01 02 E4 */ stw r0, 0x2e4(r1) /* 8031400C 0030FC6C 39 61 02 E0 */ addi r11, r1, 0x2e0 /* 80314010 0030FC70 4B EB 31 0D */ bl _savegpr_24 /* 80314014 0030FC74 38 00 00 48 */ li r0, 0x48 /* 80314018 0030FC78 7C 9D 23 78 */ mr r29, r4 /* 8031401C 0030FC7C 7C BE 2B 78 */ mr r30, r5 /* 80314020 0030FC80 7C 7C 1B 78 */ mr r28, r3 /* 80314024 0030FC84 7C DF 33 78 */ mr r31, r6 /* 80314028 0030FC88 38 A1 00 7C */ addi r5, r1, 0x7c /* 8031402C 0030FC8C 38 84 FF FC */ addi r4, r4, -4 /* 80314030 0030FC90 7C 09 03 A6 */ mtctr r0 lbl_80314034: /* 80314034 0030FC94 80 64 00 04 */ lwz r3, 4(r4) /* 80314038 0030FC98 84 04 00 08 */ lwzu r0, 8(r4) /* 8031403C 0030FC9C 90 65 00 04 */ stw r3, 4(r5) /* 80314040 0030FCA0 94 05 00 08 */ stwu r0, 8(r5) /* 80314044 0030FCA4 42 00 FF F0 */ bdnz lbl_80314034 /* 80314048 0030FCA8 80 A1 02 AC */ lwz r5, 0x2ac(r1) /* 8031404C 0030FCAC 38 61 00 48 */ addi r3, r1, 0x48 /* 80314050 0030FCB0 38 81 00 18 */ addi r4, r1, 0x18 /* 80314054 0030FCB4 38 C1 02 B4 */ addi r6, r1, 0x2b4 /* 80314058 0030FCB8 4B FF D0 71 */ bl VFiPFFAT_InitFFD /* 8031405C 0030FCBC 80 1C 15 E0 */ lwz r0, 0x15e0(r28) /* 80314060 0030FCC0 2C 00 00 05 */ cmpwi r0, 5 /* 80314064 0030FCC4 41 80 00 0C */ blt lbl_80314070 /* 80314068 0030FCC8 38 60 00 15 */ li r3, 0x15 /* 8031406C 0030FCCC 48 00 02 90 */ b lbl_803142FC lbl_80314070: /* 80314070 0030FCD0 7F C4 F3 78 */ mr r4, r30 /* 80314074 0030FCD4 38 7D 02 0E */ addi r3, r29, 0x20e /* 80314078 0030FCD8 48 00 3A 2D */ bl VFiPFPATH_parseShortName /* 8031407C 0030FCDC 2C 03 00 00 */ cmpwi r3, 0 /* 80314080 0030FCE0 41 82 00 18 */ beq lbl_80314098 /* 80314084 0030FCE4 88 1D 02 0E */ lbz r0, 0x20e(r29) /* 80314088 0030FCE8 7C 00 07 75 */ extsb. r0, r0 /* 8031408C 0030FCEC 40 82 00 0C */ bne lbl_80314098 /* 80314090 0030FCF0 38 60 00 01 */ li r3, 1 /* 80314094 0030FCF4 48 00 02 68 */ b lbl_803142FC lbl_80314098: /* 80314098 0030FCF8 2C 03 00 00 */ cmpwi r3, 0 /* 8031409C 0030FCFC 41 82 00 64 */ beq lbl_80314100 /* 803140A0 0030FD00 38 61 00 80 */ addi r3, r1, 0x80 /* 803140A4 0030FD04 38 9D 02 0E */ addi r4, r29, 0x20e /* 803140A8 0030FD08 4B FF 89 F5 */ bl VFiPFENT_AdjustSFN /* 803140AC 0030FD0C 2C 03 00 00 */ cmpwi r3, 0 /* 803140B0 0030FD10 41 82 00 08 */ beq lbl_803140B8 /* 803140B4 0030FD14 48 00 02 48 */ b lbl_803142FC lbl_803140B8: /* 803140B8 0030FD18 7F C3 F3 78 */ mr r3, r30 /* 803140BC 0030FD1C 4B FF 12 25 */ bl VFiPFSTR_GetCodeMode /* 803140C0 0030FD20 28 03 00 01 */ cmplwi r3, 1 /* 803140C4 0030FD24 40 82 00 20 */ bne lbl_803140E4 /* 803140C8 0030FD28 7F C3 F3 78 */ mr r3, r30 /* 803140CC 0030FD2C 38 80 00 01 */ li r4, 1 /* 803140D0 0030FD30 4B FF 12 41 */ bl VFiPFSTR_GetStrPos /* 803140D4 0030FD34 7C 64 1B 78 */ mr r4, r3 /* 803140D8 0030FD38 7F A3 EB 78 */ mr r3, r29 /* 803140DC 0030FD3C 48 00 39 31 */ bl VFiPFPATH_transformInUnicode /* 803140E0 0030FD40 48 00 00 28 */ b lbl_80314108 lbl_803140E4: /* 803140E4 0030FD44 7F C3 F3 78 */ mr r3, r30 /* 803140E8 0030FD48 38 80 00 01 */ li r4, 1 /* 803140EC 0030FD4C 4B FF 12 25 */ bl VFiPFSTR_GetStrPos /* 803140F0 0030FD50 7C 64 1B 78 */ mr r4, r3 /* 803140F4 0030FD54 7F A3 EB 78 */ mr r3, r29 /* 803140F8 0030FD58 4B FF 17 8D */ bl VFipf_w_strcpy /* 803140FC 0030FD5C 48 00 00 0C */ b lbl_80314108 lbl_80314100: /* 80314100 0030FD60 38 00 00 00 */ li r0, 0 /* 80314104 0030FD64 B0 1D 00 00 */ sth r0, 0(r29) lbl_80314108: /* 80314108 0030FD68 80 1C 00 1C */ lwz r0, 0x1c(r28) /* 8031410C 0030FD6C 2C 00 00 02 */ cmpwi r0, 2 /* 80314110 0030FD70 40 82 00 10 */ bne lbl_80314120 /* 80314114 0030FD74 38 00 00 01 */ li r0, 1 /* 80314118 0030FD78 90 1D 02 34 */ stw r0, 0x234(r29) /* 8031411C 0030FD7C 48 00 00 0C */ b lbl_80314128 lbl_80314120: /* 80314120 0030FD80 38 00 00 00 */ li r0, 0 /* 80314124 0030FD84 90 1D 02 34 */ stw r0, 0x234(r29) lbl_80314128: /* 80314128 0030FD88 38 A0 00 00 */ li r5, 0 /* 8031412C 0030FD8C 38 00 00 20 */ li r0, 0x20 /* 80314130 0030FD90 90 BD 02 28 */ stw r5, 0x228(r29) /* 80314134 0030FD94 38 7D 02 20 */ addi r3, r29, 0x220 /* 80314138 0030FD98 38 9D 02 1E */ addi r4, r29, 0x21e /* 8031413C 0030FD9C 93 9D 02 2C */ stw r28, 0x22c(r29) /* 80314140 0030FDA0 98 BD 02 1B */ stb r5, 0x21b(r29) /* 80314144 0030FDA4 98 1D 02 1C */ stb r0, 0x21c(r29) /* 80314148 0030FDA8 4B FF 8A 31 */ bl VFiPFENT_getcurrentDateTimeForEnt /* 8031414C 0030FDAC A0 1D 00 00 */ lhz r0, 0(r29) /* 80314150 0030FDB0 A0 BD 02 20 */ lhz r5, 0x220(r29) /* 80314154 0030FDB4 A0 9D 02 1E */ lhz r4, 0x21e(r29) /* 80314158 0030FDB8 2C 00 00 00 */ cmpwi r0, 0 /* 8031415C 0030FDBC 98 7D 02 1D */ stb r3, 0x21d(r29) /* 80314160 0030FDC0 B0 BD 02 22 */ sth r5, 0x222(r29) /* 80314164 0030FDC4 B0 9D 02 24 */ sth r4, 0x224(r29) /* 80314168 0030FDC8 B0 BD 02 26 */ sth r5, 0x226(r29) /* 8031416C 0030FDCC 41 82 01 4C */ beq lbl_803142B8 /* 80314170 0030FDD0 88 1D 02 1B */ lbz r0, 0x21b(r29) /* 80314174 0030FDD4 54 00 06 F9 */ rlwinm. r0, r0, 0, 0x1b, 0x1c /* 80314178 0030FDD8 40 82 01 40 */ bne lbl_803142B8 /* 8031417C 0030FDDC 3C 80 4E C5 */ lis r4, 0x4EC4EC4F@ha /* 80314180 0030FDE0 7F A3 EB 78 */ mr r3, r29 /* 80314184 0030FDE4 38 04 EC 4F */ addi r0, r4, 0x4EC4EC4F@l /* 80314188 0030FDE8 7F C7 F3 78 */ mr r7, r30 /* 8031418C 0030FDEC 7C 00 F8 16 */ mulhwu r0, r0, r31 /* 80314190 0030FDF0 38 A1 00 48 */ addi r5, r1, 0x48 /* 80314194 0030FDF4 38 C1 00 10 */ addi r6, r1, 0x10 /* 80314198 0030FDF8 39 01 00 08 */ addi r8, r1, 8 /* 8031419C 0030FDFC 54 09 F0 BE */ srwi r9, r0, 2 /* 803141A0 0030FE00 1C 09 00 0D */ mulli r0, r9, 0xd /* 803141A4 0030FE04 7C 80 F8 50 */ subf r4, r0, r31 /* 803141A8 0030FE08 7C 04 00 D0 */ neg r0, r4 /* 803141AC 0030FE0C 7C 00 23 78 */ or r0, r0, r4 /* 803141B0 0030FE10 54 00 0F FE */ srwi r0, r0, 0x1f /* 803141B4 0030FE14 7C 09 02 14 */ add r0, r9, r0 /* 803141B8 0030FE18 54 1A 06 3E */ clrlwi r26, r0, 0x18 /* 803141BC 0030FE1C 38 1A 00 01 */ addi r0, r26, 1 /* 803141C0 0030FE20 54 04 06 3E */ clrlwi r4, r0, 0x18 /* 803141C4 0030FE24 4B FF 82 01 */ bl VFiPFENT_allocateEntryPos /* 803141C8 0030FE28 2C 03 00 00 */ cmpwi r3, 0 /* 803141CC 0030FE2C 41 82 00 08 */ beq lbl_803141D4 /* 803141D0 0030FE30 48 00 01 2C */ b lbl_803142FC lbl_803141D4: /* 803141D4 0030FE34 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha /* 803141D8 0030FE38 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l /* 803141DC 0030FE3C 80 03 00 3C */ lwz r0, 0x3c(r3) /* 803141E0 0030FE40 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e /* 803141E4 0030FE44 28 00 00 02 */ cmplwi r0, 2 /* 803141E8 0030FE48 40 82 00 10 */ bne lbl_803141F8 /* 803141EC 0030FE4C 80 81 00 08 */ lwz r4, 8(r1) /* 803141F0 0030FE50 38 7D 02 0E */ addi r3, r29, 0x20e /* 803141F4 0030FE54 48 00 47 09 */ bl VFiPFPATH_AdjustExtShortName lbl_803141F8: /* 803141F8 0030FE58 9B 5D 02 0A */ stb r26, 0x20a(r29) /* 803141FC 0030FE5C 7F A3 EB 78 */ mr r3, r29 /* 80314200 0030FE60 83 1D 02 38 */ lwz r24, 0x238(r29) /* 80314204 0030FE64 4B FF 79 A5 */ bl VFiPFENT_CalcCheckSum /* 80314208 0030FE68 7C 7F 1B 78 */ mr r31, r3 /* 8031420C 0030FE6C 7F 59 D3 78 */ mr r25, r26 /* 80314210 0030FE70 3B 61 00 10 */ addi r27, r1, 0x10 /* 80314214 0030FE74 3B C0 00 00 */ li r30, 0 /* 80314218 0030FE78 48 00 00 90 */ b lbl_803142A8 lbl_8031421C: /* 8031421C 0030FE7C 7C 19 D0 50 */ subf r0, r25, r26 /* 80314220 0030FE80 7F A4 EB 78 */ mr r4, r29 /* 80314224 0030FE84 7C 00 00 34 */ cntlzw r0, r0 /* 80314228 0030FE88 38 61 00 28 */ addi r3, r1, 0x28 /* 8031422C 0030FE8C 57 25 06 3E */ clrlwi r5, r25, 0x18 /* 80314230 0030FE90 57 E6 06 3E */ clrlwi r6, r31, 0x18 /* 80314234 0030FE94 54 07 D9 7E */ srwi r7, r0, 5 /* 80314238 0030FE98 4B FF 7C AD */ bl VFiPFENT_storeLFNEntryFieldsToBuf /* 8031423C 0030FE9C A0 DD 02 3C */ lhz r6, 0x23c(r29) /* 80314240 0030FEA0 7F 83 E3 78 */ mr r3, r28 /* 80314244 0030FEA4 7F 05 C3 78 */ mr r5, r24 /* 80314248 0030FEA8 38 81 00 28 */ addi r4, r1, 0x28 /* 8031424C 0030FEAC 39 01 00 0C */ addi r8, r1, 0xc /* 80314250 0030FEB0 38 E0 00 20 */ li r7, 0x20 /* 80314254 0030FEB4 39 20 00 00 */ li r9, 0 /* 80314258 0030FEB8 48 00 4B 91 */ bl VFiPFSEC_WriteData /* 8031425C 0030FEBC 2C 03 00 00 */ cmpwi r3, 0 /* 80314260 0030FEC0 41 82 00 08 */ beq lbl_80314268 /* 80314264 0030FEC4 48 00 00 98 */ b lbl_803142FC lbl_80314268: /* 80314268 0030FEC8 80 01 00 0C */ lwz r0, 0xc(r1) /* 8031426C 0030FECC 28 00 00 20 */ cmplwi r0, 0x20 /* 80314270 0030FED0 41 82 00 0C */ beq lbl_8031427C /* 80314274 0030FED4 38 60 00 11 */ li r3, 0x11 /* 80314278 0030FED8 48 00 00 84 */ b lbl_803142FC lbl_8031427C: /* 8031427C 0030FEDC A0 7D 02 3C */ lhz r3, 0x23c(r29) /* 80314280 0030FEE0 38 03 00 20 */ addi r0, r3, 0x20 /* 80314284 0030FEE4 B0 1D 02 3C */ sth r0, 0x23c(r29) /* 80314288 0030FEE8 54 03 04 3E */ clrlwi r3, r0, 0x10 /* 8031428C 0030FEEC A0 1C 00 00 */ lhz r0, 0(r28) /* 80314290 0030FEF0 7C 03 00 40 */ cmplw r3, r0 /* 80314294 0030FEF4 41 80 00 10 */ blt lbl_803142A4 /* 80314298 0030FEF8 B3 DD 02 3C */ sth r30, 0x23c(r29) /* 8031429C 0030FEFC 83 1B 00 00 */ lwz r24, 0(r27) /* 803142A0 0030FF00 3B 7B 00 04 */ addi r27, r27, 4 lbl_803142A4: /* 803142A4 0030FF04 3B 39 FF FF */ addi r25, r25, -1 lbl_803142A8: /* 803142A8 0030FF08 28 19 00 01 */ cmplwi r25, 1 /* 803142AC 0030FF0C 40 80 FF 70 */ bge lbl_8031421C /* 803142B0 0030FF10 93 1D 02 38 */ stw r24, 0x238(r29) /* 803142B4 0030FF14 48 00 00 28 */ b lbl_803142DC lbl_803142B8: /* 803142B8 0030FF18 7F A3 EB 78 */ mr r3, r29 /* 803142BC 0030FF1C 7F C7 F3 78 */ mr r7, r30 /* 803142C0 0030FF20 38 A1 00 48 */ addi r5, r1, 0x48 /* 803142C4 0030FF24 38 C1 00 10 */ addi r6, r1, 0x10 /* 803142C8 0030FF28 38 80 00 01 */ li r4, 1 /* 803142CC 0030FF2C 4B FF 84 15 */ bl VFiPFENT_allocateEntry /* 803142D0 0030FF30 2C 03 00 00 */ cmpwi r3, 0 /* 803142D4 0030FF34 41 82 00 08 */ beq lbl_803142DC /* 803142D8 0030FF38 48 00 00 24 */ b lbl_803142FC lbl_803142DC: /* 803142DC 0030FF3C 80 1D 02 34 */ lwz r0, 0x234(r29) /* 803142E0 0030FF40 28 00 00 01 */ cmplwi r0, 1 /* 803142E4 0030FF44 40 82 00 0C */ bne lbl_803142F0 /* 803142E8 0030FF48 38 00 00 00 */ li r0, 0 /* 803142EC 0030FF4C 90 1D 02 34 */ stw r0, 0x234(r29) lbl_803142F0: /* 803142F0 0030FF50 7F A3 EB 78 */ mr r3, r29 /* 803142F4 0030FF54 38 80 00 01 */ li r4, 1 /* 803142F8 0030FF58 4B FF 85 F9 */ bl VFiPFENT_updateEntry lbl_803142FC: /* 803142FC 0030FF5C 39 61 02 E0 */ addi r11, r1, 0x2e0 /* 80314300 0030FF60 4B EB 2E 69 */ bl _restgpr_24 /* 80314304 0030FF64 80 01 02 E4 */ lwz r0, 0x2e4(r1) /* 80314308 0030FF68 7C 08 03 A6 */ mtlr r0 /* 8031430C 0030FF6C 38 21 02 E0 */ addi r1, r1, 0x2e0 /* 80314310 0030FF70 4E 80 00 20 */ blr .global VFiPFFILE_p_fopen VFiPFFILE_p_fopen: /* 80314314 0030FF74 94 21 FA C0 */ stwu r1, -0x540(r1) /* 80314318 0030FF78 7C 08 02 A6 */ mflr r0 /* 8031431C 0030FF7C 38 E0 00 01 */ li r7, 1 /* 80314320 0030FF80 90 01 05 44 */ stw r0, 0x544(r1) /* 80314324 0030FF84 38 00 00 00 */ li r0, 0 /* 80314328 0030FF88 93 E1 05 3C */ stw r31, 0x53c(r1) /* 8031432C 0030FF8C 7C 9F 23 78 */ mr r31, r4 /* 80314330 0030FF90 38 81 02 E8 */ addi r4, r1, 0x2e8 /* 80314334 0030FF94 93 C1 05 38 */ stw r30, 0x538(r1) /* 80314338 0030FF98 7C DE 33 78 */ mr r30, r6 /* 8031433C 0030FF9C 93 A1 05 34 */ stw r29, 0x534(r1) /* 80314340 0030FFA0 7C BD 2B 78 */ mr r29, r5 /* 80314344 0030FFA4 93 81 05 30 */ stw r28, 0x530(r1) /* 80314348 0030FFA8 7C 7C 1B 78 */ mr r28, r3 /* 8031434C 0030FFAC 7F 85 E3 78 */ mr r5, r28 /* 80314350 0030FFB0 38 61 00 78 */ addi r3, r1, 0x78 /* 80314354 0030FFB4 90 06 00 00 */ stw r0, 0(r6) /* 80314358 0030FFB8 7F E6 FB 78 */ mr r6, r31 /* 8031435C 0030FFBC 4B FF A1 D1 */ bl VFiPFENT_ITER_GetEntryOfPath /* 80314360 0030FFC0 2C 03 00 00 */ cmpwi r3, 0 /* 80314364 0030FFC4 41 82 00 08 */ beq lbl_8031436C /* 80314368 0030FFC8 48 00 04 7C */ b lbl_803147E4 lbl_8031436C: /* 8031436C 0030FFCC 88 01 05 04 */ lbz r0, 0x504(r1) /* 80314370 0030FFD0 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b /* 80314374 0030FFD4 40 82 00 0C */ bne lbl_80314380 /* 80314378 0030FFD8 38 60 00 01 */ li r3, 1 /* 8031437C 0030FFDC 48 00 04 68 */ b lbl_803147E4 lbl_80314380: /* 80314380 0030FFE0 7F E3 FB 78 */ mr r3, r31 /* 80314384 0030FFE4 38 81 00 20 */ addi r4, r1, 0x20 /* 80314388 0030FFE8 38 A1 00 30 */ addi r5, r1, 0x30 /* 8031438C 0030FFEC 48 00 2B 01 */ bl VFiPFPATH_SplitPath /* 80314390 0030FFF0 2C 03 00 00 */ cmpwi r3, 0 /* 80314394 0030FFF4 41 82 00 0C */ beq lbl_803143A0 /* 80314398 0030FFF8 38 60 00 01 */ li r3, 1 /* 8031439C 0030FFFC 48 00 04 48 */ b lbl_803147E4 lbl_803143A0: /* 803143A0 00310000 38 61 00 30 */ addi r3, r1, 0x30 /* 803143A4 00310004 38 80 00 01 */ li r4, 1 /* 803143A8 00310008 4B FF 11 35 */ bl VFiPFSTR_StrNumChar /* 803143AC 0031000C 54 7F 04 3E */ clrlwi r31, r3, 0x10 /* 803143B0 00310010 2C 1F 00 FF */ cmpwi r31, 0xff /* 803143B4 00310014 40 81 00 0C */ ble lbl_803143C0 /* 803143B8 00310018 38 60 00 01 */ li r3, 1 /* 803143BC 0031001C 48 00 04 28 */ b lbl_803147E4 lbl_803143C0: /* 803143C0 00310020 38 61 00 30 */ addi r3, r1, 0x30 /* 803143C4 00310024 4B FF 0F 1D */ bl VFiPFSTR_GetCodeMode /* 803143C8 00310028 28 03 00 02 */ cmplwi r3, 2 /* 803143CC 0031002C 40 82 00 1C */ bne lbl_803143E8 /* 803143D0 00310030 38 61 00 30 */ addi r3, r1, 0x30 /* 803143D4 00310034 38 80 00 01 */ li r4, 1 /* 803143D8 00310038 4B FF 0F 39 */ bl VFiPFSTR_GetStrPos /* 803143DC 0031003C 7C 64 1B 78 */ mr r4, r3 /* 803143E0 00310040 38 61 00 E8 */ addi r3, r1, 0xe8 /* 803143E4 00310044 48 00 34 FD */ bl VFiPFPATH_transformFromUnicodeToNormal lbl_803143E8: /* 803143E8 00310048 38 61 00 30 */ addi r3, r1, 0x30 /* 803143EC 0031004C 38 81 00 E8 */ addi r4, r1, 0xe8 /* 803143F0 00310050 4B FF 0E F9 */ bl VFiPFSTR_SetLocalStr /* 803143F4 00310054 57 A0 07 BD */ rlwinm. r0, r29, 0, 0x1e, 0x1e /* 803143F8 00310058 41 82 00 84 */ beq lbl_8031447C /* 803143FC 0031005C 80 A1 05 14 */ lwz r5, 0x514(r1) /* 80314400 00310060 38 61 00 40 */ addi r3, r1, 0x40 /* 80314404 00310064 38 81 00 10 */ addi r4, r1, 0x10 /* 80314408 00310068 38 C1 05 1C */ addi r6, r1, 0x51c /* 8031440C 0031006C 4B FF CC BD */ bl VFiPFFAT_InitFFD /* 80314410 00310070 38 61 00 40 */ addi r3, r1, 0x40 /* 80314414 00310074 38 81 02 E8 */ addi r4, r1, 0x2e8 /* 80314418 00310078 38 C1 00 30 */ addi r6, r1, 0x30 /* 8031441C 0031007C 38 A0 00 00 */ li r5, 0 /* 80314420 00310080 38 E0 00 7F */ li r7, 0x7f /* 80314424 00310084 39 00 00 00 */ li r8, 0 /* 80314428 00310088 4B FF 7F 75 */ bl VFiPFENT_findEntry /* 8031442C 0031008C 2C 03 00 00 */ cmpwi r3, 0 /* 80314430 00310090 41 82 00 0C */ beq lbl_8031443C /* 80314434 00310094 38 60 00 03 */ li r3, 3 /* 80314438 00310098 48 00 03 AC */ b lbl_803147E4 lbl_8031443C: /* 8031443C 0031009C 57 A0 07 39 */ rlwinm. r0, r29, 0, 0x1c, 0x1c /* 80314440 003100A0 41 82 00 18 */ beq lbl_80314458 /* 80314444 003100A4 88 01 05 04 */ lbz r0, 0x504(r1) /* 80314448 003100A8 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 8031444C 003100AC 41 82 00 0C */ beq lbl_80314458 /* 80314450 003100B0 38 60 00 0A */ li r3, 0xa /* 80314454 003100B4 48 00 03 90 */ b lbl_803147E4 lbl_80314458: /* 80314458 003100B8 88 01 05 04 */ lbz r0, 0x504(r1) /* 8031445C 003100BC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b /* 80314460 003100C0 41 82 00 0C */ beq lbl_8031446C /* 80314464 003100C4 38 60 00 17 */ li r3, 0x17 /* 80314468 003100C8 48 00 03 7C */ b lbl_803147E4 lbl_8031446C: /* 8031446C 003100CC 38 61 05 0A */ addi r3, r1, 0x50a /* 80314470 003100D0 38 81 00 08 */ addi r4, r1, 8 /* 80314474 003100D4 4B FF 87 05 */ bl VFiPFENT_getcurrentDateTimeForEnt /* 80314478 003100D8 48 00 01 44 */ b lbl_803145BC lbl_8031447C: /* 8031447C 003100DC 80 01 05 18 */ lwz r0, 0x518(r1) /* 80314480 003100E0 7C 1F 02 14 */ add r0, r31, r0 /* 80314484 003100E4 28 00 01 03 */ cmplwi r0, 0x103 /* 80314488 003100E8 40 81 00 0C */ ble lbl_80314494 /* 8031448C 003100EC 38 60 00 01 */ li r3, 1 /* 80314490 003100F0 48 00 03 54 */ b lbl_803147E4 lbl_80314494: /* 80314494 003100F4 7F 83 E3 78 */ mr r3, r28 /* 80314498 003100F8 7F E6 FB 78 */ mr r6, r31 /* 8031449C 003100FC 38 81 02 E8 */ addi r4, r1, 0x2e8 /* 803144A0 00310100 38 A1 00 30 */ addi r5, r1, 0x30 /* 803144A4 00310104 4B FF FB 5D */ bl VFiPFFILE_createEmptyFile /* 803144A8 00310108 2C 03 00 08 */ cmpwi r3, 8 /* 803144AC 0031010C 40 82 01 04 */ bne lbl_803145B0 /* 803144B0 00310110 57 A0 06 F7 */ rlwinm. r0, r29, 0, 0x1b, 0x1b /* 803144B4 00310114 41 82 00 0C */ beq lbl_803144C0 /* 803144B8 00310118 38 60 00 08 */ li r3, 8 /* 803144BC 0031011C 48 00 03 28 */ b lbl_803147E4 lbl_803144C0: /* 803144C0 00310120 57 BF 07 FF */ clrlwi. r31, r29, 0x1f /* 803144C4 00310124 41 82 00 44 */ beq lbl_80314508 /* 803144C8 00310128 38 00 00 00 */ li r0, 0 /* 803144CC 0031012C 34 61 02 E8 */ addic. r3, r1, 0x2e8 /* 803144D0 00310130 90 01 00 0C */ stw r0, 0xc(r1) /* 803144D4 00310134 40 82 00 0C */ bne lbl_803144E0 /* 803144D8 00310138 38 00 00 00 */ li r0, 0 /* 803144DC 0031013C 48 00 00 1C */ b lbl_803144F8 lbl_803144E0: /* 803144E0 00310140 38 81 00 0C */ addi r4, r1, 0xc /* 803144E4 00310144 48 00 07 61 */ bl VFiPFFILE_GetOpenedFile /* 803144E8 00310148 80 61 00 0C */ lwz r3, 0xc(r1) /* 803144EC 0031014C 7C 03 00 D0 */ neg r0, r3 /* 803144F0 00310150 7C 00 1B 78 */ or r0, r0, r3 /* 803144F4 00310154 54 00 0F FE */ srwi r0, r0, 0x1f lbl_803144F8: /* 803144F8 00310158 2C 00 00 00 */ cmpwi r0, 0 /* 803144FC 0031015C 41 82 00 0C */ beq lbl_80314508 /* 80314500 00310160 38 60 00 08 */ li r3, 8 /* 80314504 00310164 48 00 02 E0 */ b lbl_803147E4 lbl_80314508: /* 80314508 00310168 88 61 05 04 */ lbz r3, 0x504(r1) /* 8031450C 0031016C 54 60 07 FF */ clrlwi. r0, r3, 0x1f /* 80314510 00310170 41 82 00 24 */ beq lbl_80314534 /* 80314514 00310174 2C 1F 00 00 */ cmpwi r31, 0 /* 80314518 00310178 40 82 00 14 */ bne lbl_8031452C /* 8031451C 0031017C 57 A0 07 7B */ rlwinm. r0, r29, 0, 0x1d, 0x1d /* 80314520 00310180 40 82 00 0C */ bne lbl_8031452C /* 80314524 00310184 57 A0 07 39 */ rlwinm. r0, r29, 0, 0x1c, 0x1c /* 80314528 00310188 41 82 00 0C */ beq lbl_80314534 lbl_8031452C: /* 8031452C 0031018C 38 60 00 0A */ li r3, 0xa /* 80314530 00310190 48 00 02 B4 */ b lbl_803147E4 lbl_80314534: /* 80314534 00310194 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b /* 80314538 00310198 41 82 00 0C */ beq lbl_80314544 /* 8031453C 0031019C 38 60 00 17 */ li r3, 0x17 /* 80314540 003101A0 48 00 02 A4 */ b lbl_803147E4 lbl_80314544: /* 80314544 003101A4 2C 1F 00 00 */ cmpwi r31, 0 /* 80314548 003101A8 41 82 00 58 */ beq lbl_803145A0 /* 8031454C 003101AC 80 81 05 1C */ lwz r4, 0x51c(r1) /* 80314550 003101B0 28 04 00 02 */ cmplwi r4, 2 /* 80314554 003101B4 41 80 00 28 */ blt lbl_8031457C /* 80314558 003101B8 3C 04 00 01 */ addis r0, r4, 1 /* 8031455C 003101BC 28 00 FF FF */ cmplwi r0, 0xffff /* 80314560 003101C0 41 82 00 1C */ beq lbl_8031457C /* 80314564 003101C4 80 C1 05 10 */ lwz r6, 0x510(r1) /* 80314568 003101C8 2C 06 00 00 */ cmpwi r6, 0 /* 8031456C 003101CC 41 82 00 10 */ beq lbl_8031457C /* 80314570 003101D0 38 61 00 80 */ addi r3, r1, 0x80 /* 80314574 003101D4 38 A0 FF FF */ li r5, -1 /* 80314578 003101D8 4B FF BE B1 */ bl VFiPFFAT_FreeChain lbl_8031457C: /* 8031457C 003101DC 38 00 00 00 */ li r0, 0 /* 80314580 003101E0 38 61 05 0E */ addi r3, r1, 0x50e /* 80314584 003101E4 90 01 05 1C */ stw r0, 0x51c(r1) /* 80314588 003101E8 38 81 05 0C */ addi r4, r1, 0x50c /* 8031458C 003101EC 90 01 05 10 */ stw r0, 0x510(r1) /* 80314590 003101F0 4B FF 85 E9 */ bl VFiPFENT_getcurrentDateTimeForEnt /* 80314594 003101F4 A0 01 05 0E */ lhz r0, 0x50e(r1) /* 80314598 003101F8 B0 01 05 0A */ sth r0, 0x50a(r1) /* 8031459C 003101FC 48 00 00 20 */ b lbl_803145BC lbl_803145A0: /* 803145A0 00310200 38 61 05 0A */ addi r3, r1, 0x50a /* 803145A4 00310204 38 81 00 08 */ addi r4, r1, 8 /* 803145A8 00310208 4B FF 85 D1 */ bl VFiPFENT_getcurrentDateTimeForEnt /* 803145AC 0031020C 48 00 00 10 */ b lbl_803145BC lbl_803145B0: /* 803145B0 00310210 2C 03 00 00 */ cmpwi r3, 0 /* 803145B4 00310214 41 82 00 08 */ beq lbl_803145BC /* 803145B8 00310218 48 00 02 2C */ b lbl_803147E4 lbl_803145BC: /* 803145BC 0031021C 83 81 05 14 */ lwz r28, 0x514(r1) /* 803145C0 00310220 38 81 02 E8 */ addi r4, r1, 0x2e8 /* 803145C4 00310224 7F 83 E3 78 */ mr r3, r28 /* 803145C8 00310228 4B FF F8 69 */ bl VFiPFFILE_GetSFD /* 803145CC 0031022C 2C 03 00 00 */ cmpwi r3, 0 /* 803145D0 00310230 40 82 00 0C */ bne lbl_803145DC /* 803145D4 00310234 38 60 00 15 */ li r3, 0x15 /* 803145D8 00310238 48 00 02 0C */ b lbl_803147E4 lbl_803145DC: /* 803145DC 0031023C 38 00 00 05 */ li r0, 5 /* 803145E0 00310240 7F 85 E3 78 */ mr r5, r28 /* 803145E4 00310244 38 80 00 00 */ li r4, 0 /* 803145E8 00310248 7C 09 03 A6 */ mtctr r0 lbl_803145EC: /* 803145EC 0031024C 80 05 0D 10 */ lwz r0, 0xd10(r5) /* 803145F0 00310250 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 803145F4 00310254 40 82 00 14 */ bne lbl_80314608 /* 803145F8 00310258 1C 04 00 30 */ mulli r0, r4, 0x30 /* 803145FC 0031025C 7C 9C 02 14 */ add r4, r28, r0 /* 80314600 00310260 3B E4 0D 10 */ addi r31, r4, 0xd10 /* 80314604 00310264 48 00 00 14 */ b lbl_80314618 lbl_80314608: /* 80314608 00310268 38 A5 00 30 */ addi r5, r5, 0x30 /* 8031460C 0031026C 38 84 00 01 */ addi r4, r4, 1 /* 80314610 00310270 42 00 FF DC */ bdnz lbl_803145EC /* 80314614 00310274 3B E0 00 00 */ li r31, 0 lbl_80314618: /* 80314618 00310278 2C 1F 00 00 */ cmpwi r31, 0 /* 8031461C 0031027C 40 82 00 34 */ bne lbl_80314650 /* 80314620 00310280 A0 83 02 8C */ lhz r4, 0x28c(r3) /* 80314624 00310284 38 84 FF FF */ addi r4, r4, -1 /* 80314628 00310288 54 80 04 3F */ clrlwi. r0, r4, 0x10 /* 8031462C 0031028C B0 83 02 8C */ sth r4, 0x28c(r3) /* 80314630 00310290 40 82 00 18 */ bne lbl_80314648 /* 80314634 00310294 80 83 00 00 */ lwz r4, 0(r3) /* 80314638 00310298 38 00 00 00 */ li r0, 0 /* 8031463C 0031029C 54 84 00 3C */ rlwinm r4, r4, 0, 0, 0x1e /* 80314640 003102A0 90 83 00 00 */ stw r4, 0(r3) /* 80314644 003102A4 90 03 00 20 */ stw r0, 0x20(r3) lbl_80314648: /* 80314648 003102A8 38 60 00 16 */ li r3, 0x16 /* 8031464C 003102AC 48 00 01 98 */ b lbl_803147E4 lbl_80314650: /* 80314650 003102B0 90 7F 00 08 */ stw r3, 8(r31) /* 80314654 003102B4 38 80 00 01 */ li r4, 1 /* 80314658 003102B8 38 00 00 00 */ li r0, 0 /* 8031465C 003102BC 38 7F 00 0C */ addi r3, r31, 0xc /* 80314660 003102C0 90 9F 00 00 */ stw r4, 0(r31) /* 80314664 003102C4 93 BF 00 04 */ stw r29, 4(r31) /* 80314668 003102C8 90 1F 00 18 */ stw r0, 0x18(r31) /* 8031466C 003102CC B0 1F 00 2C */ sth r0, 0x2c(r31) /* 80314670 003102D0 4B FF C7 29 */ bl VFiPFFAT_InitHint /* 80314674 003102D4 38 00 FF FF */ li r0, -1 /* 80314678 003102D8 2C 1F 00 00 */ cmpwi r31, 0 /* 8031467C 003102DC 90 1F 00 20 */ stw r0, 0x20(r31) /* 80314680 003102E0 40 82 00 0C */ bne lbl_8031468C /* 80314684 003102E4 38 80 00 00 */ li r4, 0 /* 80314688 003102E8 48 00 00 0C */ b lbl_80314694 lbl_8031468C: /* 8031468C 003102EC 80 7F 00 08 */ lwz r3, 8(r31) /* 80314690 003102F0 80 83 02 68 */ lwz r4, 0x268(r3) lbl_80314694: /* 80314694 003102F4 A0 64 00 00 */ lhz r3, 0(r4) /* 80314698 003102F8 80 BF 00 1C */ lwz r5, 0x1c(r31) /* 8031469C 003102FC 38 03 FF FF */ addi r0, r3, -1 /* 803146A0 00310300 88 84 00 20 */ lbz r4, 0x20(r4) /* 803146A4 00310304 7C A3 00 38 */ and r3, r5, r0 /* 803146A8 00310308 7C 03 00 D0 */ neg r0, r3 /* 803146AC 0031030C 7C A4 24 30 */ srw r4, r5, r4 /* 803146B0 00310310 7C 00 1B 78 */ or r0, r0, r3 /* 803146B4 00310314 54 00 0F FE */ srwi r0, r0, 0x1f /* 803146B8 00310318 7C 04 02 15 */ add. r0, r4, r0 /* 803146BC 0031031C 41 82 00 0C */ beq lbl_803146C8 /* 803146C0 00310320 38 00 FF FF */ li r0, -1 /* 803146C4 00310324 90 1F 00 20 */ stw r0, 0x20(r31) lbl_803146C8: /* 803146C8 00310328 38 00 00 00 */ li r0, 0 /* 803146CC 0031032C 2C 1F 00 00 */ cmpwi r31, 0 /* 803146D0 00310330 90 1F 00 1C */ stw r0, 0x1c(r31) /* 803146D4 00310334 40 82 00 0C */ bne lbl_803146E0 /* 803146D8 00310338 38 80 00 00 */ li r4, 0 /* 803146DC 0031033C 48 00 00 0C */ b lbl_803146E8 lbl_803146E0: /* 803146E0 00310340 80 7F 00 08 */ lwz r3, 8(r31) /* 803146E4 00310344 80 83 02 68 */ lwz r4, 0x268(r3) lbl_803146E8: /* 803146E8 00310348 57 A0 07 FF */ clrlwi. r0, r29, 0x1f /* 803146EC 0031034C 80 7F 00 1C */ lwz r3, 0x1c(r31) /* 803146F0 00310350 88 04 00 20 */ lbz r0, 0x20(r4) /* 803146F4 00310354 7C 60 04 30 */ srw r0, r3, r0 /* 803146F8 00310358 90 1F 00 24 */ stw r0, 0x24(r31) /* 803146FC 0031035C A0 64 00 00 */ lhz r3, 0(r4) /* 80314700 00310360 80 9F 00 1C */ lwz r4, 0x1c(r31) /* 80314704 00310364 38 03 FF FF */ addi r0, r3, -1 /* 80314708 00310368 7C 80 00 38 */ and r0, r4, r0 /* 8031470C 0031036C B0 1F 00 28 */ sth r0, 0x28(r31) /* 80314710 00310370 41 82 00 14 */ beq lbl_80314724 /* 80314714 00310374 80 7F 00 08 */ lwz r3, 8(r31) /* 80314718 00310378 80 03 00 00 */ lwz r0, 0(r3) /* 8031471C 0031037C 60 00 00 04 */ ori r0, r0, 4 /* 80314720 00310380 90 03 00 00 */ stw r0, 0(r3) lbl_80314724: /* 80314724 00310384 80 1F 00 04 */ lwz r0, 4(r31) /* 80314728 00310388 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d /* 8031472C 0031038C 41 82 00 B0 */ beq lbl_803147DC /* 80314730 00310390 80 7F 00 08 */ lwz r3, 8(r31) /* 80314734 00310394 2C 1F 00 00 */ cmpwi r31, 0 /* 80314738 00310398 81 03 02 64 */ lwz r8, 0x264(r3) /* 8031473C 0031039C 40 82 00 0C */ bne lbl_80314748 /* 80314740 003103A0 38 80 00 00 */ li r4, 0 /* 80314744 003103A4 48 00 00 08 */ b lbl_8031474C lbl_80314748: /* 80314748 003103A8 80 83 02 68 */ lwz r4, 0x268(r3) lbl_8031474C: /* 8031474C 003103AC A0 64 00 00 */ lhz r3, 0(r4) /* 80314750 003103B0 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 80314754 003103B4 38 63 FF FF */ addi r3, r3, -1 /* 80314758 003103B8 88 84 00 20 */ lbz r4, 0x20(r4) /* 8031475C 003103BC 7C 07 18 38 */ and r7, r0, r3 /* 80314760 003103C0 7C 05 24 30 */ srw r5, r0, r4 /* 80314764 003103C4 7D 03 18 38 */ and r3, r8, r3 /* 80314768 003103C8 7C C7 00 D0 */ neg r6, r7 /* 8031476C 003103CC 7D 04 24 30 */ srw r4, r8, r4 /* 80314770 003103D0 7C 03 00 D0 */ neg r0, r3 /* 80314774 003103D4 7C 00 1B 78 */ or r0, r0, r3 /* 80314778 003103D8 7C C6 3B 78 */ or r6, r6, r7 /* 8031477C 003103DC 54 C3 0F FE */ srwi r3, r6, 0x1f /* 80314780 003103E0 54 00 0F FE */ srwi r0, r0, 0x1f /* 80314784 003103E4 7C 65 1A 14 */ add r3, r5, r3 /* 80314788 003103E8 7C 04 02 14 */ add r0, r4, r0 /* 8031478C 003103EC 7C 03 00 40 */ cmplw r3, r0 /* 80314790 003103F0 41 82 00 0C */ beq lbl_8031479C /* 80314794 003103F4 38 00 FF FF */ li r0, -1 /* 80314798 003103F8 90 1F 00 20 */ stw r0, 0x20(r31) lbl_8031479C: /* 8031479C 003103FC 2C 1F 00 00 */ cmpwi r31, 0 /* 803147A0 00310400 91 1F 00 1C */ stw r8, 0x1c(r31) /* 803147A4 00310404 40 82 00 0C */ bne lbl_803147B0 /* 803147A8 00310408 38 80 00 00 */ li r4, 0 /* 803147AC 0031040C 48 00 00 0C */ b lbl_803147B8 lbl_803147B0: /* 803147B0 00310410 80 7F 00 08 */ lwz r3, 8(r31) /* 803147B4 00310414 80 83 02 68 */ lwz r4, 0x268(r3) lbl_803147B8: /* 803147B8 00310418 80 7F 00 1C */ lwz r3, 0x1c(r31) /* 803147BC 0031041C 88 04 00 20 */ lbz r0, 0x20(r4) /* 803147C0 00310420 7C 60 04 30 */ srw r0, r3, r0 /* 803147C4 00310424 90 1F 00 24 */ stw r0, 0x24(r31) /* 803147C8 00310428 A0 64 00 00 */ lhz r3, 0(r4) /* 803147CC 0031042C 80 9F 00 1C */ lwz r4, 0x1c(r31) /* 803147D0 00310430 38 03 FF FF */ addi r0, r3, -1 /* 803147D4 00310434 7C 80 00 38 */ and r0, r4, r0 /* 803147D8 00310438 B0 1F 00 28 */ sth r0, 0x28(r31) lbl_803147DC: /* 803147DC 0031043C 93 FE 00 00 */ stw r31, 0(r30) /* 803147E0 00310440 38 60 00 00 */ li r3, 0 lbl_803147E4: /* 803147E4 00310444 80 01 05 44 */ lwz r0, 0x544(r1) /* 803147E8 00310448 83 E1 05 3C */ lwz r31, 0x53c(r1) /* 803147EC 0031044C 83 C1 05 38 */ lwz r30, 0x538(r1) /* 803147F0 00310450 83 A1 05 34 */ lwz r29, 0x534(r1) /* 803147F4 00310454 83 81 05 30 */ lwz r28, 0x530(r1) /* 803147F8 00310458 7C 08 03 A6 */ mtlr r0 /* 803147FC 0031045C 38 21 05 40 */ addi r1, r1, 0x540 /* 80314800 00310460 4E 80 00 20 */ blr .global VFiPFFILE_p_fread VFiPFFILE_p_fread: /* 80314804 00310464 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80314808 00310468 7C 08 02 A6 */ mflr r0 /* 8031480C 0031046C 90 01 00 24 */ stw r0, 0x24(r1) /* 80314810 00310470 38 00 00 00 */ li r0, 0 /* 80314814 00310474 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80314818 00310478 7D 1F 43 78 */ mr r31, r8 /* 8031481C 0031047C 93 C1 00 18 */ stw r30, 0x18(r1) /* 80314820 00310480 7C BE 2B 78 */ mr r30, r5 /* 80314824 00310484 90 01 00 08 */ stw r0, 8(r1) /* 80314828 00310488 90 08 00 00 */ stw r0, 0(r8) /* 8031482C 0031048C 80 67 00 04 */ lwz r3, 4(r7) /* 80314830 00310490 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c /* 80314834 00310494 40 82 00 1C */ bne lbl_80314850 /* 80314838 00310498 54 60 07 FF */ clrlwi. r0, r3, 0x1f /* 8031483C 0031049C 40 82 00 0C */ bne lbl_80314848 /* 80314840 003104A0 54 60 07 7B */ rlwinm. r0, r3, 0, 0x1d, 0x1d /* 80314844 003104A4 41 82 00 0C */ beq lbl_80314850 lbl_80314848: /* 80314848 003104A8 38 60 00 0A */ li r3, 0xa /* 8031484C 003104AC 48 00 00 6C */ b lbl_803148B8 lbl_80314850: /* 80314850 003104B0 81 07 00 08 */ lwz r8, 8(r7) /* 80314854 003104B4 A0 08 02 7C */ lhz r0, 0x27c(r8) /* 80314858 003104B8 54 00 07 BF */ clrlwi. r0, r0, 0x1e /* 8031485C 003104BC 41 82 00 18 */ beq lbl_80314874 /* 80314860 003104C0 A0 07 00 2C */ lhz r0, 0x2c(r7) /* 80314864 003104C4 2C 00 00 00 */ cmpwi r0, 0 /* 80314868 003104C8 40 82 00 0C */ bne lbl_80314874 /* 8031486C 003104CC 38 60 00 19 */ li r3, 0x19 /* 80314870 003104D0 48 00 00 48 */ b lbl_803148B8 lbl_80314874: /* 80314874 003104D4 80 67 00 1C */ lwz r3, 0x1c(r7) /* 80314878 003104D8 80 08 02 64 */ lwz r0, 0x264(r8) /* 8031487C 003104DC 7C 03 00 40 */ cmplw r3, r0 /* 80314880 003104E0 41 80 00 0C */ blt lbl_8031488C /* 80314884 003104E4 38 60 00 1C */ li r3, 0x1c /* 80314888 003104E8 48 00 00 30 */ b lbl_803148B8 lbl_8031488C: /* 8031488C 003104EC 7C A5 31 D6 */ mullw r5, r5, r6 /* 80314890 003104F0 7C E3 3B 78 */ mr r3, r7 /* 80314894 003104F4 38 C1 00 08 */ addi r6, r1, 8 /* 80314898 003104F8 4B FF E7 85 */ bl VFiPFFILE_Cursor_Read /* 8031489C 003104FC 80 81 00 08 */ lwz r4, 8(r1) /* 803148A0 00310500 7C 03 00 D0 */ neg r0, r3 /* 803148A4 00310504 7C 00 1B 78 */ or r0, r0, r3 /* 803148A8 00310508 7C 84 F3 96 */ divwu r4, r4, r30 /* 803148AC 0031050C 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 803148B0 00310510 7C 63 00 38 */ and r3, r3, r0 /* 803148B4 00310514 90 9F 00 00 */ stw r4, 0(r31) lbl_803148B8: /* 803148B8 00310518 80 01 00 24 */ lwz r0, 0x24(r1) /* 803148BC 0031051C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 803148C0 00310520 83 C1 00 18 */ lwz r30, 0x18(r1) /* 803148C4 00310524 7C 08 03 A6 */ mtlr r0 /* 803148C8 00310528 38 21 00 20 */ addi r1, r1, 0x20 /* 803148CC 0031052C 4E 80 00 20 */ blr .global VFiPFFILE_p_fwrite VFiPFFILE_p_fwrite: /* 803148D0 00310530 94 21 FF D0 */ stwu r1, -0x30(r1) /* 803148D4 00310534 7C 08 02 A6 */ mflr r0 /* 803148D8 00310538 90 01 00 34 */ stw r0, 0x34(r1) /* 803148DC 0031053C 39 61 00 30 */ addi r11, r1, 0x30 /* 803148E0 00310540 4B EB 28 41 */ bl _savegpr_25 /* 803148E4 00310544 38 00 00 00 */ li r0, 0 /* 803148E8 00310548 7C 9B 23 78 */ mr r27, r4 /* 803148EC 0031054C 90 01 00 08 */ stw r0, 8(r1) /* 803148F0 00310550 7C 7A 1B 78 */ mr r26, r3 /* 803148F4 00310554 7C BC 2B 78 */ mr r28, r5 /* 803148F8 00310558 7C DD 33 78 */ mr r29, r6 /* 803148FC 0031055C 90 08 00 00 */ stw r0, 0(r8) /* 80314900 00310560 7C FE 3B 78 */ mr r30, r7 /* 80314904 00310564 7D 1F 43 78 */ mr r31, r8 /* 80314908 00310568 80 87 00 04 */ lwz r4, 4(r7) /* 8031490C 0031056C 54 80 07 39 */ rlwinm. r0, r4, 0, 0x1c, 0x1c /* 80314910 00310570 40 82 00 14 */ bne lbl_80314924 /* 80314914 00310574 54 80 07 BD */ rlwinm. r0, r4, 0, 0x1e, 0x1e /* 80314918 00310578 41 82 00 0C */ beq lbl_80314924 /* 8031491C 0031057C 38 60 00 0A */ li r3, 0xa /* 80314920 00310580 48 00 01 EC */ b lbl_80314B0C lbl_80314924: /* 80314924 00310584 80 A7 00 08 */ lwz r5, 8(r7) /* 80314928 00310588 A0 C5 02 7C */ lhz r6, 0x27c(r5) /* 8031492C 0031058C 54 C0 07 BF */ clrlwi. r0, r6, 0x1e /* 80314930 00310590 41 82 00 28 */ beq lbl_80314958 /* 80314934 00310594 54 C0 07 FF */ clrlwi. r0, r6, 0x1f /* 80314938 00310598 40 82 00 18 */ bne lbl_80314950 /* 8031493C 0031059C 54 C0 07 BD */ rlwinm. r0, r6, 0, 0x1e, 0x1e /* 80314940 003105A0 41 82 00 18 */ beq lbl_80314958 /* 80314944 003105A4 A0 07 00 2C */ lhz r0, 0x2c(r7) /* 80314948 003105A8 2C 00 00 00 */ cmpwi r0, 0 /* 8031494C 003105AC 40 82 00 0C */ bne lbl_80314958 lbl_80314950: /* 80314950 003105B0 38 60 00 19 */ li r3, 0x19 /* 80314954 003105B4 48 00 01 B8 */ b lbl_80314B0C lbl_80314958: /* 80314958 003105B8 54 80 07 7B */ rlwinm. r0, r4, 0, 0x1d, 0x1d /* 8031495C 003105BC 41 82 00 A8 */ beq lbl_80314A04 /* 80314960 003105C0 2C 07 00 00 */ cmpwi r7, 0 /* 80314964 003105C4 81 45 02 64 */ lwz r10, 0x264(r5) /* 80314968 003105C8 40 82 00 0C */ bne lbl_80314974 /* 8031496C 003105CC 38 A0 00 00 */ li r5, 0 /* 80314970 003105D0 48 00 00 08 */ b lbl_80314978 lbl_80314974: /* 80314974 003105D4 80 A5 02 68 */ lwz r5, 0x268(r5) lbl_80314978: /* 80314978 003105D8 A0 85 00 00 */ lhz r4, 0(r5) /* 8031497C 003105DC 80 07 00 1C */ lwz r0, 0x1c(r7) /* 80314980 003105E0 38 84 FF FF */ addi r4, r4, -1 /* 80314984 003105E4 88 A5 00 20 */ lbz r5, 0x20(r5) /* 80314988 003105E8 7C 09 20 38 */ and r9, r0, r4 /* 8031498C 003105EC 7C 06 2C 30 */ srw r6, r0, r5 /* 80314990 003105F0 7D 44 20 38 */ and r4, r10, r4 /* 80314994 003105F4 7D 09 00 D0 */ neg r8, r9 /* 80314998 003105F8 7D 45 2C 30 */ srw r5, r10, r5 /* 8031499C 003105FC 7C 04 00 D0 */ neg r0, r4 /* 803149A0 00310600 7C 00 23 78 */ or r0, r0, r4 /* 803149A4 00310604 7D 08 4B 78 */ or r8, r8, r9 /* 803149A8 00310608 55 04 0F FE */ srwi r4, r8, 0x1f /* 803149AC 0031060C 54 00 0F FE */ srwi r0, r0, 0x1f /* 803149B0 00310610 7C 86 22 14 */ add r4, r6, r4 /* 803149B4 00310614 7C 05 02 14 */ add r0, r5, r0 /* 803149B8 00310618 7C 04 00 40 */ cmplw r4, r0 /* 803149BC 0031061C 41 82 00 0C */ beq lbl_803149C8 /* 803149C0 00310620 38 00 FF FF */ li r0, -1 /* 803149C4 00310624 90 07 00 20 */ stw r0, 0x20(r7) lbl_803149C8: /* 803149C8 00310628 2C 07 00 00 */ cmpwi r7, 0 /* 803149CC 0031062C 91 47 00 1C */ stw r10, 0x1c(r7) /* 803149D0 00310630 40 82 00 0C */ bne lbl_803149DC /* 803149D4 00310634 38 80 00 00 */ li r4, 0 /* 803149D8 00310638 48 00 00 0C */ b lbl_803149E4 lbl_803149DC: /* 803149DC 0031063C 80 87 00 08 */ lwz r4, 8(r7) /* 803149E0 00310640 80 84 02 68 */ lwz r4, 0x268(r4) lbl_803149E4: /* 803149E4 00310644 80 A7 00 1C */ lwz r5, 0x1c(r7) /* 803149E8 00310648 88 04 00 20 */ lbz r0, 0x20(r4) /* 803149EC 0031064C 7C A0 04 30 */ srw r0, r5, r0 /* 803149F0 00310650 90 07 00 24 */ stw r0, 0x24(r7) /* 803149F4 00310654 A0 84 00 00 */ lhz r4, 0(r4) /* 803149F8 00310658 38 04 FF FF */ addi r0, r4, -1 /* 803149FC 0031065C 7C A0 00 38 */ and r0, r5, r0 /* 80314A00 00310660 B0 07 00 28 */ sth r0, 0x28(r7) lbl_80314A04: /* 80314A04 00310664 80 87 00 08 */ lwz r4, 8(r7) /* 80314A08 00310668 80 07 00 1C */ lwz r0, 0x1c(r7) /* 80314A0C 0031066C 81 04 02 64 */ lwz r8, 0x264(r4) /* 80314A10 00310670 7C 00 40 40 */ cmplw r0, r8 /* 80314A14 00310674 40 81 00 C8 */ ble lbl_80314ADC /* 80314A18 00310678 91 07 00 1C */ stw r8, 0x1c(r7) /* 80314A1C 0031067C 7F 28 00 50 */ subf r25, r8, r0 /* 80314A20 00310680 38 A1 00 0C */ addi r5, r1, 0xc /* 80314A24 00310684 38 80 FF FF */ li r4, -1 /* 80314A28 00310688 88 03 00 20 */ lbz r0, 0x20(r3) /* 80314A2C 0031068C 7D 00 04 30 */ srw r0, r8, r0 /* 80314A30 00310690 90 07 00 24 */ stw r0, 0x24(r7) /* 80314A34 00310694 A0 C3 00 00 */ lhz r6, 0(r3) /* 80314A38 00310698 7F 43 D3 78 */ mr r3, r26 /* 80314A3C 0031069C 38 06 FF FF */ addi r0, r6, -1 /* 80314A40 003106A0 7D 00 00 38 */ and r0, r8, r0 /* 80314A44 003106A4 B0 07 00 28 */ sth r0, 0x28(r7) /* 80314A48 003106A8 4B FF 5C 71 */ bl VFiPFCACHE_AllocateDataPage /* 80314A4C 003106AC 2C 03 00 00 */ cmpwi r3, 0 /* 80314A50 003106B0 41 82 00 08 */ beq lbl_80314A58 /* 80314A54 003106B4 48 00 00 B8 */ b lbl_80314B0C lbl_80314A58: /* 80314A58 003106B8 80 61 00 0C */ lwz r3, 0xc(r1) /* 80314A5C 003106BC 38 80 00 00 */ li r4, 0 /* 80314A60 003106C0 A0 BA 00 00 */ lhz r5, 0(r26) /* 80314A64 003106C4 80 63 00 08 */ lwz r3, 8(r3) /* 80314A68 003106C8 4B FF 05 6D */ bl VFipf_memset /* 80314A6C 003106CC 48 00 00 5C */ b lbl_80314AC8 lbl_80314A70: /* 80314A70 003106D0 A0 BA 00 00 */ lhz r5, 0(r26) /* 80314A74 003106D4 7C 19 28 40 */ cmplw r25, r5 /* 80314A78 003106D8 40 81 00 24 */ ble lbl_80314A9C /* 80314A7C 003106DC 80 81 00 0C */ lwz r4, 0xc(r1) /* 80314A80 003106E0 7F C3 F3 78 */ mr r3, r30 /* 80314A84 003106E4 38 C1 00 08 */ addi r6, r1, 8 /* 80314A88 003106E8 80 84 00 08 */ lwz r4, 8(r4) /* 80314A8C 003106EC 4B FF EE 4D */ bl VFiPFFILE_Cursor_Write /* 80314A90 003106F0 2C 03 00 00 */ cmpwi r3, 0 /* 80314A94 003106F4 41 82 00 2C */ beq lbl_80314AC0 /* 80314A98 003106F8 48 00 00 74 */ b lbl_80314B0C lbl_80314A9C: /* 80314A9C 003106FC 80 81 00 0C */ lwz r4, 0xc(r1) /* 80314AA0 00310700 7F C3 F3 78 */ mr r3, r30 /* 80314AA4 00310704 7F 25 CB 78 */ mr r5, r25 /* 80314AA8 00310708 38 C1 00 08 */ addi r6, r1, 8 /* 80314AAC 0031070C 80 84 00 08 */ lwz r4, 8(r4) /* 80314AB0 00310710 4B FF EE 29 */ bl VFiPFFILE_Cursor_Write /* 80314AB4 00310714 2C 03 00 00 */ cmpwi r3, 0 /* 80314AB8 00310718 41 82 00 18 */ beq lbl_80314AD0 /* 80314ABC 0031071C 48 00 00 50 */ b lbl_80314B0C lbl_80314AC0: /* 80314AC0 00310720 A0 1A 00 00 */ lhz r0, 0(r26) /* 80314AC4 00310724 7F 20 C8 50 */ subf r25, r0, r25 lbl_80314AC8: /* 80314AC8 00310728 2C 19 00 00 */ cmpwi r25, 0 /* 80314ACC 0031072C 40 82 FF A4 */ bne lbl_80314A70 lbl_80314AD0: /* 80314AD0 00310730 80 81 00 0C */ lwz r4, 0xc(r1) /* 80314AD4 00310734 7F 43 D3 78 */ mr r3, r26 /* 80314AD8 00310738 4B FF 5C E5 */ bl VFiPFCACHE_FreeDataPage lbl_80314ADC: /* 80314ADC 0031073C 7C BC E9 D6 */ mullw r5, r28, r29 /* 80314AE0 00310740 7F C3 F3 78 */ mr r3, r30 /* 80314AE4 00310744 7F 64 DB 78 */ mr r4, r27 /* 80314AE8 00310748 38 C1 00 08 */ addi r6, r1, 8 /* 80314AEC 0031074C 4B FF ED ED */ bl VFiPFFILE_Cursor_Write /* 80314AF0 00310750 80 01 00 08 */ lwz r0, 8(r1) /* 80314AF4 00310754 2C 03 00 00 */ cmpwi r3, 0 /* 80314AF8 00310758 7C 00 E3 96 */ divwu r0, r0, r28 /* 80314AFC 0031075C 90 1F 00 00 */ stw r0, 0(r31) /* 80314B00 00310760 41 82 00 08 */ beq lbl_80314B08 /* 80314B04 00310764 48 00 00 08 */ b lbl_80314B0C lbl_80314B08: /* 80314B08 00310768 38 60 00 00 */ li r3, 0 lbl_80314B0C: /* 80314B0C 0031076C 39 61 00 30 */ addi r11, r1, 0x30 /* 80314B10 00310770 4B EB 26 5D */ bl _restgpr_25 /* 80314B14 00310774 80 01 00 34 */ lwz r0, 0x34(r1) /* 80314B18 00310778 7C 08 03 A6 */ mtlr r0 /* 80314B1C 0031077C 38 21 00 30 */ addi r1, r1, 0x30 /* 80314B20 00310780 4E 80 00 20 */ blr .global VFiPFFILE_p_finfo VFiPFFILE_p_finfo: /* 80314B24 00310784 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80314B28 00310788 7C 08 02 A6 */ mflr r0 /* 80314B2C 0031078C 2C 03 00 00 */ cmpwi r3, 0 /* 80314B30 00310790 90 01 00 24 */ stw r0, 0x24(r1) /* 80314B34 00310794 38 03 00 0C */ addi r0, r3, 0xc /* 80314B38 00310798 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80314B3C 0031079C 7C 9F 23 78 */ mr r31, r4 /* 80314B40 003107A0 93 C1 00 18 */ stw r30, 0x18(r1) /* 80314B44 003107A4 7C 7E 1B 78 */ mr r30, r3 /* 80314B48 003107A8 93 A1 00 14 */ stw r29, 0x14(r1) /* 80314B4C 003107AC 80 A3 00 08 */ lwz r5, 8(r3) /* 80314B50 003107B0 90 05 00 34 */ stw r0, 0x34(r5) /* 80314B54 003107B4 40 82 00 0C */ bne lbl_80314B60 /* 80314B58 003107B8 38 C0 00 00 */ li r6, 0 /* 80314B5C 003107BC 48 00 00 0C */ b lbl_80314B68 lbl_80314B60: /* 80314B60 003107C0 80 A3 00 08 */ lwz r5, 8(r3) /* 80314B64 003107C4 80 C5 02 68 */ lwz r6, 0x268(r5) lbl_80314B68: /* 80314B68 003107C8 80 A3 00 08 */ lwz r5, 8(r3) /* 80314B6C 003107CC 80 05 02 64 */ lwz r0, 0x264(r5) /* 80314B70 003107D0 90 04 00 00 */ stw r0, 0(r4) /* 80314B74 003107D4 80 03 00 1C */ lwz r0, 0x1c(r3) /* 80314B78 003107D8 90 04 00 04 */ stw r0, 4(r4) /* 80314B7C 003107DC 80 63 00 08 */ lwz r3, 8(r3) /* 80314B80 003107E0 A0 A6 00 00 */ lhz r5, 0(r6) /* 80314B84 003107E4 80 03 02 70 */ lwz r0, 0x270(r3) /* 80314B88 003107E8 88 66 00 21 */ lbz r3, 0x21(r6) /* 80314B8C 003107EC 2C 00 00 00 */ cmpwi r0, 0 /* 80314B90 003107F0 7C BD 18 30 */ slw r29, r5, r3 /* 80314B94 003107F4 41 82 00 54 */ beq lbl_80314BE8 /* 80314B98 003107F8 7F C3 F3 78 */ mr r3, r30 /* 80314B9C 003107FC 38 84 00 0C */ addi r4, r4, 0xc /* 80314BA0 00310800 4B FF 64 F1 */ bl VFiPFCLUSTER_GetAppendSize /* 80314BA4 00310804 2C 03 00 00 */ cmpwi r3, 0 /* 80314BA8 00310808 41 82 00 08 */ beq lbl_80314BB0 /* 80314BAC 0031080C 48 00 00 7C */ b lbl_80314C28 lbl_80314BB0: /* 80314BB0 00310810 80 7E 00 08 */ lwz r3, 8(r30) /* 80314BB4 00310814 80 9F 00 0C */ lwz r4, 0xc(r31) /* 80314BB8 00310818 80 63 02 64 */ lwz r3, 0x264(r3) /* 80314BBC 0031081C 7C 03 EB 96 */ divwu r0, r3, r29 /* 80314BC0 00310820 7C 00 E9 D6 */ mullw r0, r0, r29 /* 80314BC4 00310824 7C A0 18 50 */ subf r5, r0, r3 /* 80314BC8 00310828 7C 05 00 D0 */ neg r0, r5 /* 80314BCC 0031082C 7C 03 2B 78 */ or r3, r0, r5 /* 80314BD0 00310830 7C 05 E8 50 */ subf r0, r5, r29 /* 80314BD4 00310834 7C 63 FE 70 */ srawi r3, r3, 0x1f /* 80314BD8 00310838 7C 00 18 38 */ and r0, r0, r3 /* 80314BDC 0031083C 7C 04 02 14 */ add r0, r4, r0 /* 80314BE0 00310840 90 1F 00 08 */ stw r0, 8(r31) /* 80314BE4 00310844 48 00 00 10 */ b lbl_80314BF4 lbl_80314BE8: /* 80314BE8 00310848 38 00 00 00 */ li r0, 0 /* 80314BEC 0031084C 90 04 00 0C */ stw r0, 0xc(r4) /* 80314BF0 00310850 90 04 00 08 */ stw r0, 8(r4) lbl_80314BF4: /* 80314BF4 00310854 80 9E 00 08 */ lwz r4, 8(r30) /* 80314BF8 00310858 38 60 00 00 */ li r3, 0 /* 80314BFC 0031085C A0 04 02 7C */ lhz r0, 0x27c(r4) /* 80314C00 00310860 54 00 07 BE */ clrlwi r0, r0, 0x1e /* 80314C04 00310864 90 1F 00 10 */ stw r0, 0x10(r31) /* 80314C08 00310868 80 9E 00 08 */ lwz r4, 8(r30) /* 80314C0C 0031086C 80 04 02 84 */ lwz r0, 0x284(r4) /* 80314C10 00310870 90 1F 00 14 */ stw r0, 0x14(r31) /* 80314C14 00310874 A0 1E 00 2C */ lhz r0, 0x2c(r30) /* 80314C18 00310878 90 1F 00 18 */ stw r0, 0x18(r31) /* 80314C1C 0031087C 80 9E 00 08 */ lwz r4, 8(r30) /* 80314C20 00310880 A0 04 02 7E */ lhz r0, 0x27e(r4) /* 80314C24 00310884 90 1F 00 1C */ stw r0, 0x1c(r31) lbl_80314C28: /* 80314C28 00310888 80 01 00 24 */ lwz r0, 0x24(r1) /* 80314C2C 0031088C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80314C30 00310890 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80314C34 00310894 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80314C38 00310898 7C 08 03 A6 */ mtlr r0 /* 80314C3C 0031089C 38 21 00 20 */ addi r1, r1, 0x20 /* 80314C40 003108A0 4E 80 00 20 */ blr .global VFiPFFILE_GetOpenedFile VFiPFFILE_GetOpenedFile: /* 80314C44 003108A4 2C 03 00 00 */ cmpwi r3, 0 /* 80314C48 003108A8 41 82 00 18 */ beq lbl_80314C60 /* 80314C4C 003108AC 2C 04 00 00 */ cmpwi r4, 0 /* 80314C50 003108B0 41 82 00 10 */ beq lbl_80314C60 /* 80314C54 003108B4 80 03 02 2C */ lwz r0, 0x22c(r3) /* 80314C58 003108B8 2C 00 00 00 */ cmpwi r0, 0 /* 80314C5C 003108BC 40 82 00 0C */ bne lbl_80314C68 lbl_80314C60: /* 80314C60 003108C0 38 60 00 0A */ li r3, 0xa /* 80314C64 003108C4 4E 80 00 20 */ blr lbl_80314C68: /* 80314C68 003108C8 38 A0 00 00 */ li r5, 0 /* 80314C6C 003108CC 38 00 00 05 */ li r0, 5 /* 80314C70 003108D0 90 A4 00 00 */ stw r5, 0(r4) /* 80314C74 003108D4 38 C0 00 00 */ li r6, 0 /* 80314C78 003108D8 7C 09 03 A6 */ mtctr r0 lbl_80314C7C: /* 80314C7C 003108DC 81 03 02 2C */ lwz r8, 0x22c(r3) /* 80314C80 003108E0 7C E8 32 14 */ add r7, r8, r6 /* 80314C84 003108E4 80 A7 00 40 */ lwz r5, 0x40(r7) /* 80314C88 003108E8 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 80314C8C 003108EC 41 82 00 40 */ beq lbl_80314CCC /* 80314C90 003108F0 54 A0 07 BD */ rlwinm. r0, r5, 0, 0x1e, 0x1e /* 80314C94 003108F4 41 82 00 38 */ beq lbl_80314CCC /* 80314C98 003108F8 80 07 02 A8 */ lwz r0, 0x2a8(r7) /* 80314C9C 003108FC 7C 08 00 40 */ cmplw r8, r0 /* 80314CA0 00310900 40 82 00 2C */ bne lbl_80314CCC /* 80314CA4 00310904 80 A3 02 38 */ lwz r5, 0x238(r3) /* 80314CA8 00310908 80 07 02 B4 */ lwz r0, 0x2b4(r7) /* 80314CAC 0031090C 7C 05 00 40 */ cmplw r5, r0 /* 80314CB0 00310910 40 82 00 1C */ bne lbl_80314CCC /* 80314CB4 00310914 A0 A3 02 3C */ lhz r5, 0x23c(r3) /* 80314CB8 00310918 A0 07 02 B8 */ lhz r0, 0x2b8(r7) /* 80314CBC 0031091C 7C 05 00 40 */ cmplw r5, r0 /* 80314CC0 00310920 40 82 00 0C */ bne lbl_80314CCC /* 80314CC4 00310924 38 07 00 7C */ addi r0, r7, 0x7c /* 80314CC8 00310928 90 04 00 00 */ stw r0, 0(r4) lbl_80314CCC: /* 80314CCC 0031092C 38 C6 02 90 */ addi r6, r6, 0x290 /* 80314CD0 00310930 42 00 FF AC */ bdnz lbl_80314C7C /* 80314CD4 00310934 38 60 00 00 */ li r3, 0 /* 80314CD8 00310938 4E 80 00 20 */ blr .global VFiPFFILE_FinalizeAllFiles VFiPFFILE_FinalizeAllFiles: /* 80314CDC 0031093C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80314CE0 00310940 7C 08 02 A6 */ mflr r0 /* 80314CE4 00310944 90 01 00 24 */ stw r0, 0x24(r1) /* 80314CE8 00310948 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80314CEC 0031094C 3B E0 00 00 */ li r31, 0 /* 80314CF0 00310950 93 C1 00 18 */ stw r30, 0x18(r1) /* 80314CF4 00310954 3B C0 00 00 */ li r30, 0 /* 80314CF8 00310958 93 A1 00 14 */ stw r29, 0x14(r1) /* 80314CFC 0031095C 7C 7D 1B 78 */ mr r29, r3 lbl_80314D00: /* 80314D00 00310960 57 C0 04 3E */ clrlwi r0, r30, 0x10 /* 80314D04 00310964 1C 00 02 90 */ mulli r0, r0, 0x290 /* 80314D08 00310968 7C 7D 02 14 */ add r3, r29, r0 /* 80314D0C 0031096C 93 E3 00 40 */ stw r31, 0x40(r3) /* 80314D10 00310970 38 63 00 44 */ addi r3, r3, 0x44 /* 80314D14 00310974 4B FF C4 21 */ bl VFiPFFAT_FinalizeFFD /* 80314D18 00310978 3B DE 00 01 */ addi r30, r30, 1 /* 80314D1C 0031097C 28 1E 00 05 */ cmplwi r30, 5 /* 80314D20 00310980 41 80 FF E0 */ blt lbl_80314D00 /* 80314D24 00310984 80 9D 0D 10 */ lwz r4, 0xd10(r29) /* 80314D28 00310988 38 00 00 00 */ li r0, 0 /* 80314D2C 0031098C 80 7D 0D 40 */ lwz r3, 0xd40(r29) /* 80314D30 00310990 54 87 00 3C */ rlwinm r7, r4, 0, 0, 0x1e /* 80314D34 00310994 80 BD 0D 70 */ lwz r5, 0xd70(r29) /* 80314D38 00310998 54 66 00 3C */ rlwinm r6, r3, 0, 0, 0x1e /* 80314D3C 0031099C 80 9D 0D A0 */ lwz r4, 0xda0(r29) /* 80314D40 003109A0 80 7D 0D D0 */ lwz r3, 0xdd0(r29) /* 80314D44 003109A4 54 A5 00 3C */ rlwinm r5, r5, 0, 0, 0x1e /* 80314D48 003109A8 54 84 00 3C */ rlwinm r4, r4, 0, 0, 0x1e /* 80314D4C 003109AC 90 FD 0D 10 */ stw r7, 0xd10(r29) /* 80314D50 003109B0 54 63 00 3C */ rlwinm r3, r3, 0, 0, 0x1e /* 80314D54 003109B4 90 DD 0D 40 */ stw r6, 0xd40(r29) /* 80314D58 003109B8 90 BD 0D 70 */ stw r5, 0xd70(r29) /* 80314D5C 003109BC 90 9D 0D A0 */ stw r4, 0xda0(r29) /* 80314D60 003109C0 90 7D 0D D0 */ stw r3, 0xdd0(r29) /* 80314D64 003109C4 90 1D 15 E0 */ stw r0, 0x15e0(r29) /* 80314D68 003109C8 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80314D6C 003109CC 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80314D70 003109D0 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80314D74 003109D4 80 01 00 24 */ lwz r0, 0x24(r1) /* 80314D78 003109D8 7C 08 03 A6 */ mtlr r0 /* 80314D7C 003109DC 38 21 00 20 */ addi r1, r1, 0x20 /* 80314D80 003109E0 4E 80 00 20 */ blr .global VFiPFFILE_fopen VFiPFFILE_fopen: /* 80314D84 003109E4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80314D88 003109E8 7C 08 02 A6 */ mflr r0 /* 80314D8C 003109EC 2C 05 00 00 */ cmpwi r5, 0 /* 80314D90 003109F0 90 01 00 24 */ stw r0, 0x24(r1) /* 80314D94 003109F4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80314D98 003109F8 93 C1 00 18 */ stw r30, 0x18(r1) /* 80314D9C 003109FC 7C BE 2B 78 */ mr r30, r5 /* 80314DA0 00310A00 93 A1 00 14 */ stw r29, 0x14(r1) /* 80314DA4 00310A04 7C 9D 23 78 */ mr r29, r4 /* 80314DA8 00310A08 93 81 00 10 */ stw r28, 0x10(r1) /* 80314DAC 00310A0C 7C 7C 1B 78 */ mr r28, r3 /* 80314DB0 00310A10 40 82 00 1C */ bne lbl_80314DCC /* 80314DB4 00310A14 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80314DB8 00310A18 38 00 00 0A */ li r0, 0xa /* 80314DBC 00310A1C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80314DC0 00310A20 38 60 00 0A */ li r3, 0xa /* 80314DC4 00310A24 90 04 00 1C */ stw r0, 0x1c(r4) /* 80314DC8 00310A28 48 00 00 D0 */ b lbl_80314E98 lbl_80314DCC: /* 80314DCC 00310A2C 38 00 00 00 */ li r0, 0 /* 80314DD0 00310A30 2C 03 00 00 */ cmpwi r3, 0 /* 80314DD4 00310A34 90 05 00 00 */ stw r0, 0(r5) /* 80314DD8 00310A38 40 82 00 1C */ bne lbl_80314DF4 /* 80314DDC 00310A3C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80314DE0 00310A40 38 00 00 0A */ li r0, 0xa /* 80314DE4 00310A44 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80314DE8 00310A48 38 60 00 0A */ li r3, 0xa /* 80314DEC 00310A4C 90 04 00 1C */ stw r0, 0x1c(r4) /* 80314DF0 00310A50 48 00 00 A8 */ b lbl_80314E98 lbl_80314DF4: /* 80314DF4 00310A54 48 00 20 A1 */ bl VFiPFPATH_GetVolumeFromPath /* 80314DF8 00310A58 2C 03 00 00 */ cmpwi r3, 0 /* 80314DFC 00310A5C 7C 7F 1B 78 */ mr r31, r3 /* 80314E00 00310A60 40 82 00 1C */ bne lbl_80314E1C /* 80314E04 00310A64 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80314E08 00310A68 38 00 00 0A */ li r0, 0xa /* 80314E0C 00310A6C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80314E10 00310A70 38 60 00 0A */ li r3, 0xa /* 80314E14 00310A74 90 04 00 1C */ stw r0, 0x1c(r4) /* 80314E18 00310A78 48 00 00 80 */ b lbl_80314E98 lbl_80314E1C: /* 80314E1C 00310A7C 48 00 45 51 */ bl VFiPFVOL_CheckForRead /* 80314E20 00310A80 2C 03 00 00 */ cmpwi r3, 0 /* 80314E24 00310A84 41 82 00 18 */ beq lbl_80314E3C /* 80314E28 00310A88 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80314E2C 00310A8C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80314E30 00310A90 90 64 00 1C */ stw r3, 0x1c(r4) /* 80314E34 00310A94 90 7F 18 6C */ stw r3, 0x186c(r31) /* 80314E38 00310A98 48 00 00 60 */ b lbl_80314E98 lbl_80314E3C: /* 80314E3C 00310A9C 7F E3 FB 78 */ mr r3, r31 /* 80314E40 00310AA0 4B FF 0F 69 */ bl VFiPFDRV_IsWProtected /* 80314E44 00310AA4 2C 03 00 00 */ cmpwi r3, 0 /* 80314E48 00310AA8 41 82 00 14 */ beq lbl_80314E5C /* 80314E4C 00310AAC 2C 1D 00 02 */ cmpwi r29, 2 /* 80314E50 00310AB0 41 82 00 0C */ beq lbl_80314E5C /* 80314E54 00310AB4 38 60 00 0B */ li r3, 0xb /* 80314E58 00310AB8 48 00 00 40 */ b lbl_80314E98 lbl_80314E5C: /* 80314E5C 00310ABC 7F E3 FB 78 */ mr r3, r31 /* 80314E60 00310AC0 7F 84 E3 78 */ mr r4, r28 /* 80314E64 00310AC4 7F A5 EB 78 */ mr r5, r29 /* 80314E68 00310AC8 7F C6 F3 78 */ mr r6, r30 /* 80314E6C 00310ACC 4B FF F4 A9 */ bl VFiPFFILE_p_fopen /* 80314E70 00310AD0 2C 03 00 00 */ cmpwi r3, 0 /* 80314E74 00310AD4 41 82 00 18 */ beq lbl_80314E8C /* 80314E78 00310AD8 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80314E7C 00310ADC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80314E80 00310AE0 90 64 00 1C */ stw r3, 0x1c(r4) /* 80314E84 00310AE4 90 7F 18 6C */ stw r3, 0x186c(r31) /* 80314E88 00310AE8 48 00 00 10 */ b lbl_80314E98 lbl_80314E8C: /* 80314E8C 00310AEC 80 9F 15 E0 */ lwz r4, 0x15e0(r31) /* 80314E90 00310AF0 38 04 00 01 */ addi r0, r4, 1 /* 80314E94 00310AF4 90 1F 15 E0 */ stw r0, 0x15e0(r31) lbl_80314E98: /* 80314E98 00310AF8 80 01 00 24 */ lwz r0, 0x24(r1) /* 80314E9C 00310AFC 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80314EA0 00310B00 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80314EA4 00310B04 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80314EA8 00310B08 83 81 00 10 */ lwz r28, 0x10(r1) /* 80314EAC 00310B0C 7C 08 03 A6 */ mtlr r0 /* 80314EB0 00310B10 38 21 00 20 */ addi r1, r1, 0x20 /* 80314EB4 00310B14 4E 80 00 20 */ blr .global VFiPFFILE_fclose VFiPFFILE_fclose: /* 80314EB8 00310B18 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80314EBC 00310B1C 7C 08 02 A6 */ mflr r0 /* 80314EC0 00310B20 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80314EC4 00310B24 90 01 00 24 */ stw r0, 0x24(r1) /* 80314EC8 00310B28 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80314ECC 00310B2C 7C 04 18 40 */ cmplw r4, r3 /* 80314ED0 00310B30 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80314ED4 00310B34 93 C1 00 18 */ stw r30, 0x18(r1) /* 80314ED8 00310B38 93 A1 00 14 */ stw r29, 0x14(r1) /* 80314EDC 00310B3C 7C 7D 1B 78 */ mr r29, r3 /* 80314EE0 00310B40 41 81 00 14 */ bgt lbl_80314EF4 /* 80314EE4 00310B44 3C 84 00 02 */ addis r4, r4, 2 /* 80314EE8 00310B48 38 04 7F B8 */ addi r0, r4, 0x7fb8 /* 80314EEC 00310B4C 7C 00 18 40 */ cmplw r0, r3 /* 80314EF0 00310B50 40 80 00 1C */ bge lbl_80314F0C lbl_80314EF4: /* 80314EF4 00310B54 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80314EF8 00310B58 38 00 00 0A */ li r0, 0xa /* 80314EFC 00310B5C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80314F00 00310B60 38 60 00 0A */ li r3, 0xa /* 80314F04 00310B64 90 04 00 1C */ stw r0, 0x1c(r4) /* 80314F08 00310B68 48 00 02 F0 */ b lbl_803151F8 lbl_80314F0C: /* 80314F0C 00310B6C 2C 03 00 00 */ cmpwi r3, 0 /* 80314F10 00310B70 40 82 00 0C */ bne lbl_80314F1C /* 80314F14 00310B74 3B E0 00 00 */ li r31, 0 /* 80314F18 00310B78 48 00 00 0C */ b lbl_80314F24 lbl_80314F1C: /* 80314F1C 00310B7C 80 63 00 08 */ lwz r3, 8(r3) /* 80314F20 00310B80 83 E3 02 68 */ lwz r31, 0x268(r3) lbl_80314F24: /* 80314F24 00310B84 2C 1F 00 00 */ cmpwi r31, 0 /* 80314F28 00310B88 40 82 00 1C */ bne lbl_80314F44 /* 80314F2C 00310B8C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80314F30 00310B90 38 00 00 0A */ li r0, 0xa /* 80314F34 00310B94 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80314F38 00310B98 38 60 00 0A */ li r3, 0xa /* 80314F3C 00310B9C 90 04 00 1C */ stw r0, 0x1c(r4) /* 80314F40 00310BA0 48 00 02 B8 */ b lbl_803151F8 lbl_80314F44: /* 80314F44 00310BA4 7F E3 FB 78 */ mr r3, r31 /* 80314F48 00310BA8 48 00 44 25 */ bl VFiPFVOL_CheckForRead /* 80314F4C 00310BAC 2C 03 00 00 */ cmpwi r3, 0 /* 80314F50 00310BB0 7C 7E 1B 78 */ mr r30, r3 /* 80314F54 00310BB4 41 82 00 18 */ beq lbl_80314F6C /* 80314F58 00310BB8 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80314F5C 00310BBC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80314F60 00310BC0 90 64 00 1C */ stw r3, 0x1c(r4) /* 80314F64 00310BC4 90 7F 18 6C */ stw r3, 0x186c(r31) /* 80314F68 00310BC8 48 00 02 90 */ b lbl_803151F8 lbl_80314F6C: /* 80314F6C 00310BCC 7F E3 FB 78 */ mr r3, r31 /* 80314F70 00310BD0 4B FF 0E 39 */ bl VFiPFDRV_IsWProtected /* 80314F74 00310BD4 2C 03 00 00 */ cmpwi r3, 0 /* 80314F78 00310BD8 41 82 00 18 */ beq lbl_80314F90 /* 80314F7C 00310BDC 80 1D 00 04 */ lwz r0, 4(r29) /* 80314F80 00310BE0 2C 00 00 02 */ cmpwi r0, 2 /* 80314F84 00310BE4 41 82 00 0C */ beq lbl_80314F90 /* 80314F88 00310BE8 38 60 00 0B */ li r3, 0xb /* 80314F8C 00310BEC 48 00 02 6C */ b lbl_803151F8 lbl_80314F90: /* 80314F90 00310BF0 2C 1D 00 00 */ cmpwi r29, 0 /* 80314F94 00310BF4 41 82 00 34 */ beq lbl_80314FC8 /* 80314F98 00310BF8 80 7D 00 08 */ lwz r3, 8(r29) /* 80314F9C 00310BFC 2C 03 00 00 */ cmpwi r3, 0 /* 80314FA0 00310C00 41 82 00 28 */ beq lbl_80314FC8 /* 80314FA4 00310C04 80 1D 00 00 */ lwz r0, 0(r29) /* 80314FA8 00310C08 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80314FAC 00310C0C 41 82 00 1C */ beq lbl_80314FC8 /* 80314FB0 00310C10 80 03 00 00 */ lwz r0, 0(r3) /* 80314FB4 00310C14 54 03 07 FE */ clrlwi r3, r0, 0x1f /* 80314FB8 00310C18 2C 83 00 00 */ cmpwi cr1, r3, 0 /* 80314FBC 00310C1C 41 86 00 0C */ beq cr1, lbl_80314FC8 /* 80314FC0 00310C20 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 80314FC4 00310C24 40 82 00 20 */ bne lbl_80314FE4 lbl_80314FC8: /* 80314FC8 00310C28 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80314FCC 00310C2C 38 00 00 0A */ li r0, 0xa /* 80314FD0 00310C30 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80314FD4 00310C34 38 60 00 0A */ li r3, 0xa /* 80314FD8 00310C38 90 04 00 1C */ stw r0, 0x1c(r4) /* 80314FDC 00310C3C 90 1F 18 6C */ stw r0, 0x186c(r31) /* 80314FE0 00310C40 48 00 02 18 */ b lbl_803151F8 lbl_80314FE4: /* 80314FE4 00310C44 41 86 00 08 */ beq cr1, lbl_80314FEC /* 80314FE8 00310C48 40 82 00 20 */ bne lbl_80315008 lbl_80314FEC: /* 80314FEC 00310C4C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80314FF0 00310C50 38 00 00 0A */ li r0, 0xa /* 80314FF4 00310C54 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80314FF8 00310C58 38 60 00 0A */ li r3, 0xa /* 80314FFC 00310C5C 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315000 00310C60 90 1F 18 6C */ stw r0, 0x186c(r31) /* 80315004 00310C64 48 00 01 F4 */ b lbl_803151F8 lbl_80315008: /* 80315008 00310C68 93 BF 16 08 */ stw r29, 0x1608(r31) /* 8031500C 00310C6C 80 9D 00 08 */ lwz r4, 8(r29) /* 80315010 00310C70 A0 64 02 8C */ lhz r3, 0x28c(r4) /* 80315014 00310C74 34 03 FF FF */ addic. r0, r3, -1 /* 80315018 00310C78 41 81 00 50 */ bgt lbl_80315068 /* 8031501C 00310C7C 88 04 02 58 */ lbz r0, 0x258(r4) /* 80315020 00310C80 70 00 00 19 */ andi. r0, r0, 0x19 /* 80315024 00310C84 40 82 00 44 */ bne lbl_80315068 /* 80315028 00310C88 7F E3 FB 78 */ mr r3, r31 /* 8031502C 00310C8C 4B FF 0D 7D */ bl VFiPFDRV_IsWProtected /* 80315030 00310C90 2C 03 00 00 */ cmpwi r3, 0 /* 80315034 00310C94 40 82 00 34 */ bne lbl_80315068 /* 80315038 00310C98 80 7D 00 08 */ lwz r3, 8(r29) /* 8031503C 00310C9C 80 03 00 00 */ lwz r0, 0(r3) /* 80315040 00310CA0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d /* 80315044 00310CA4 40 82 00 14 */ bne lbl_80315058 /* 80315048 00310CA8 80 1F 18 74 */ lwz r0, 0x1874(r31) /* 8031504C 00310CAC 54 00 07 FE */ clrlwi r0, r0, 0x1f /* 80315050 00310CB0 28 00 00 01 */ cmplwi r0, 1 /* 80315054 00310CB4 41 82 00 14 */ beq lbl_80315068 lbl_80315058: /* 80315058 00310CB8 38 63 00 3C */ addi r3, r3, 0x3c /* 8031505C 00310CBC 38 80 00 01 */ li r4, 1 /* 80315060 00310CC0 4B FF 78 91 */ bl VFiPFENT_updateEntry /* 80315064 00310CC4 7C 7E 1B 78 */ mr r30, r3 lbl_80315068: /* 80315068 00310CC8 A0 9D 00 2C */ lhz r4, 0x2c(r29) /* 8031506C 00310CCC 2C 04 00 00 */ cmpwi r4, 0 /* 80315070 00310CD0 41 82 00 94 */ beq lbl_80315104 /* 80315074 00310CD4 80 BD 00 08 */ lwz r5, 8(r29) /* 80315078 00310CD8 A0 05 02 7C */ lhz r0, 0x27c(r5) /* 8031507C 00310CDC 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80315080 00310CE0 41 82 00 44 */ beq lbl_803150C4 /* 80315084 00310CE4 A0 65 02 7E */ lhz r3, 0x27e(r5) /* 80315088 00310CE8 38 00 00 00 */ li r0, 0 /* 8031508C 00310CEC 7C 64 18 50 */ subf r3, r4, r3 /* 80315090 00310CF0 B0 65 02 7E */ sth r3, 0x27e(r5) /* 80315094 00310CF4 B0 1D 00 2C */ sth r0, 0x2c(r29) /* 80315098 00310CF8 80 7D 00 08 */ lwz r3, 8(r29) /* 8031509C 00310CFC A0 03 02 7E */ lhz r0, 0x27e(r3) /* 803150A0 00310D00 2C 00 00 00 */ cmpwi r0, 0 /* 803150A4 00310D04 40 82 00 0C */ bne lbl_803150B0 /* 803150A8 00310D08 7F A3 EB 78 */ mr r3, r29 /* 803150AC 00310D0C 48 00 53 75 */ bl VFiPF_UnLockFile lbl_803150B0: /* 803150B0 00310D10 80 7D 00 08 */ lwz r3, 8(r29) /* 803150B4 00310D14 A0 03 02 7C */ lhz r0, 0x27c(r3) /* 803150B8 00310D18 54 00 04 3A */ rlwinm r0, r0, 0, 0x10, 0x1d /* 803150BC 00310D1C B0 03 02 7C */ sth r0, 0x27c(r3) /* 803150C0 00310D20 48 00 00 44 */ b lbl_80315104 lbl_803150C4: /* 803150C4 00310D24 80 05 02 84 */ lwz r0, 0x284(r5) /* 803150C8 00310D28 7C 00 E8 40 */ cmplw r0, r29 /* 803150CC 00310D2C 41 82 00 0C */ beq lbl_803150D8 /* 803150D0 00310D30 3B C0 00 19 */ li r30, 0x19 /* 803150D4 00310D34 48 00 00 30 */ b lbl_80315104 lbl_803150D8: /* 803150D8 00310D38 38 00 00 00 */ li r0, 0 /* 803150DC 00310D3C 7F A3 EB 78 */ mr r3, r29 /* 803150E0 00310D40 B0 05 02 7E */ sth r0, 0x27e(r5) /* 803150E4 00310D44 B0 1D 00 2C */ sth r0, 0x2c(r29) /* 803150E8 00310D48 80 9D 00 08 */ lwz r4, 8(r29) /* 803150EC 00310D4C 90 04 02 84 */ stw r0, 0x284(r4) /* 803150F0 00310D50 48 00 53 31 */ bl 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 /* 80315100 00310D60 B0 03 02 7C */ sth r0, 0x27c(r3) lbl_80315104: /* 80315104 00310D64 2C 1E 00 00 */ cmpwi r30, 0 /* 80315108 00310D68 41 82 00 24 */ beq lbl_8031512C /* 8031510C 00310D6C 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha /* 80315110 00310D70 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l /* 80315114 00310D74 93 C3 00 1C */ stw r30, 0x1c(r3) /* 80315118 00310D78 80 7D 00 08 */ lwz r3, 8(r29) /* 8031511C 00310D7C 80 63 00 38 */ lwz r3, 0x38(r3) /* 80315120 00310D80 93 C3 18 6C */ stw r30, 0x186c(r3) /* 80315124 00310D84 93 DD 00 18 */ stw r30, 0x18(r29) /* 80315128 00310D88 48 00 00 C4 */ b lbl_803151EC lbl_8031512C: /* 8031512C 00310D8C 80 1F 15 E8 */ lwz r0, 0x15e8(r31) /* 80315130 00310D90 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 80315134 00310D94 41 82 00 6C */ beq lbl_803151A0 /* 80315138 00310D98 7F E3 FB 78 */ mr r3, r31 /* 8031513C 00310D9C 4B FF 59 75 */ bl VFiPFCACHE_FlushFATCache /* 80315140 00310DA0 2C 03 00 00 */ cmpwi r3, 0 /* 80315144 00310DA4 7C 7E 1B 78 */ mr r30, r3 /* 80315148 00310DA8 41 82 00 24 */ beq lbl_8031516C /* 8031514C 00310DAC 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315150 00310DB0 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315154 00310DB4 90 64 00 1C */ stw r3, 0x1c(r4) /* 80315158 00310DB8 80 9D 00 08 */ lwz r4, 8(r29) /* 8031515C 00310DBC 80 84 00 38 */ lwz r4, 0x38(r4) /* 80315160 00310DC0 90 64 18 6C */ stw r3, 0x186c(r4) /* 80315164 00310DC4 90 7D 00 18 */ stw r3, 0x18(r29) /* 80315168 00310DC8 48 00 00 38 */ b lbl_803151A0 lbl_8031516C: /* 8031516C 00310DCC 7F E3 FB 78 */ mr r3, r31 /* 80315170 00310DD0 7F A4 EB 78 */ mr r4, r29 /* 80315174 00310DD4 4B FF 59 71 */ bl VFiPFCACHE_FlushDataCacheSpecific /* 80315178 00310DD8 2C 03 00 00 */ cmpwi r3, 0 /* 8031517C 00310DDC 7C 7E 1B 78 */ mr r30, r3 /* 80315180 00310DE0 41 82 00 20 */ beq lbl_803151A0 /* 80315184 00310DE4 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315188 00310DE8 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 8031518C 00310DEC 90 64 00 1C */ stw r3, 0x1c(r4) /* 80315190 00310DF0 80 9D 00 08 */ lwz r4, 8(r29) /* 80315194 00310DF4 80 84 00 38 */ lwz r4, 0x38(r4) /* 80315198 00310DF8 90 64 18 6C */ stw r3, 0x186c(r4) /* 8031519C 00310DFC 90 7D 00 18 */ stw r3, 0x18(r29) lbl_803151A0: /* 803151A0 00310E00 2C 1E 00 00 */ cmpwi r30, 0 /* 803151A4 00310E04 40 82 00 48 */ bne lbl_803151EC /* 803151A8 00310E08 80 9D 00 08 */ lwz r4, 8(r29) /* 803151AC 00310E0C A0 64 02 8C */ lhz r3, 0x28c(r4) /* 803151B0 00310E10 38 63 FF FF */ addi r3, r3, -1 /* 803151B4 00310E14 54 60 04 3F */ clrlwi. r0, r3, 0x10 /* 803151B8 00310E18 B0 64 02 8C */ sth r3, 0x28c(r4) /* 803151BC 00310E1C 40 82 00 18 */ bne lbl_803151D4 /* 803151C0 00310E20 80 64 00 00 */ lwz r3, 0(r4) /* 803151C4 00310E24 38 00 00 00 */ li r0, 0 /* 803151C8 00310E28 54 63 00 3C */ rlwinm r3, r3, 0, 0, 0x1e /* 803151CC 00310E2C 90 64 00 00 */ stw r3, 0(r4) /* 803151D0 00310E30 90 04 00 20 */ stw r0, 0x20(r4) lbl_803151D4: /* 803151D4 00310E34 80 1D 00 00 */ lwz r0, 0(r29) /* 803151D8 00310E38 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e /* 803151DC 00310E3C 90 1D 00 00 */ stw r0, 0(r29) /* 803151E0 00310E40 80 7F 15 E0 */ lwz r3, 0x15e0(r31) /* 803151E4 00310E44 38 03 FF FF */ addi r0, r3, -1 /* 803151E8 00310E48 90 1F 15 E0 */ stw r0, 0x15e0(r31) lbl_803151EC: /* 803151EC 00310E4C 38 00 00 00 */ li r0, 0 /* 803151F0 00310E50 7F C3 F3 78 */ mr r3, r30 /* 803151F4 00310E54 90 1F 16 08 */ stw r0, 0x1608(r31) lbl_803151F8: /* 803151F8 00310E58 80 01 00 24 */ lwz r0, 0x24(r1) /* 803151FC 00310E5C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80315200 00310E60 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80315204 00310E64 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80315208 00310E68 7C 08 03 A6 */ mtlr r0 /* 8031520C 00310E6C 38 21 00 20 */ addi r1, r1, 0x20 /* 80315210 00310E70 4E 80 00 20 */ blr .global VFiPFFILE_fread VFiPFFILE_fread: /* 80315214 00310E74 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80315218 00310E78 7C 08 02 A6 */ mflr r0 /* 8031521C 00310E7C 90 01 00 34 */ stw r0, 0x34(r1) /* 80315220 00310E80 39 61 00 30 */ addi r11, r1, 0x30 /* 80315224 00310E84 4B EB 1F 01 */ bl _savegpr_26 /* 80315228 00310E88 2C 07 00 00 */ cmpwi r7, 0 /* 8031522C 00310E8C 7C 7A 1B 78 */ mr r26, r3 /* 80315230 00310E90 7C 9B 23 78 */ mr r27, r4 /* 80315234 00310E94 7C BC 2B 78 */ mr r28, r5 /* 80315238 00310E98 7C DF 33 78 */ mr r31, r6 /* 8031523C 00310E9C 7C FD 3B 78 */ mr r29, r7 /* 80315240 00310EA0 40 82 00 1C */ bne lbl_8031525C /* 80315244 00310EA4 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315248 00310EA8 38 00 00 0A */ li r0, 0xa /* 8031524C 00310EAC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315250 00310EB0 38 60 00 0A */ li r3, 0xa /* 80315254 00310EB4 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315258 00310EB8 48 00 01 BC */ b lbl_80315414 lbl_8031525C: /* 8031525C 00310EBC 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha /* 80315260 00310EC0 38 00 00 00 */ li r0, 0 /* 80315264 00310EC4 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l /* 80315268 00310EC8 90 07 00 00 */ stw r0, 0(r7) /* 8031526C 00310ECC 7C 03 30 40 */ cmplw r3, r6 /* 80315270 00310ED0 41 81 00 14 */ bgt lbl_80315284 /* 80315274 00310ED4 3C 63 00 02 */ addis r3, r3, 2 /* 80315278 00310ED8 38 03 7F B8 */ addi r0, r3, 0x7fb8 /* 8031527C 00310EDC 7C 00 30 40 */ cmplw r0, r6 /* 80315280 00310EE0 40 80 00 1C */ bge lbl_8031529C lbl_80315284: /* 80315284 00310EE4 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315288 00310EE8 38 00 00 0A */ li r0, 0xa /* 8031528C 00310EEC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315290 00310EF0 38 60 00 0A */ li r3, 0xa /* 80315294 00310EF4 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315298 00310EF8 48 00 01 7C */ b lbl_80315414 lbl_8031529C: /* 8031529C 00310EFC 2C 06 00 00 */ cmpwi r6, 0 /* 803152A0 00310F00 40 82 00 0C */ bne lbl_803152AC /* 803152A4 00310F04 3B C0 00 00 */ li r30, 0 /* 803152A8 00310F08 48 00 00 0C */ b lbl_803152B4 lbl_803152AC: /* 803152AC 00310F0C 80 66 00 08 */ lwz r3, 8(r6) /* 803152B0 00310F10 83 C3 02 68 */ lwz r30, 0x268(r3) lbl_803152B4: /* 803152B4 00310F14 2C 1E 00 00 */ cmpwi r30, 0 /* 803152B8 00310F18 40 82 00 2C */ bne lbl_803152E4 /* 803152BC 00310F1C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 803152C0 00310F20 38 00 00 26 */ li r0, 0x26 /* 803152C4 00310F24 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 803152C8 00310F28 38 60 00 26 */ li r3, 0x26 /* 803152CC 00310F2C 90 04 00 1C */ stw r0, 0x1c(r4) /* 803152D0 00310F30 80 86 00 08 */ lwz r4, 8(r6) /* 803152D4 00310F34 80 84 00 38 */ lwz r4, 0x38(r4) /* 803152D8 00310F38 90 04 18 6C */ stw r0, 0x186c(r4) /* 803152DC 00310F3C 90 06 00 18 */ stw r0, 0x18(r6) /* 803152E0 00310F40 48 00 01 34 */ b lbl_80315414 lbl_803152E4: /* 803152E4 00310F44 7F C3 F3 78 */ mr r3, r30 /* 803152E8 00310F48 48 00 40 85 */ bl VFiPFVOL_CheckForRead /* 803152EC 00310F4C 2C 03 00 00 */ cmpwi r3, 0 /* 803152F0 00310F50 41 82 00 18 */ beq lbl_80315308 /* 803152F4 00310F54 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 803152F8 00310F58 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 803152FC 00310F5C 90 64 00 1C */ stw r3, 0x1c(r4) /* 80315300 00310F60 90 7E 18 6C */ stw r3, 0x186c(r30) /* 80315304 00310F64 48 00 01 10 */ b lbl_80315414 lbl_80315308: /* 80315308 00310F68 2C 1F 00 00 */ cmpwi r31, 0 /* 8031530C 00310F6C 41 82 00 34 */ beq lbl_80315340 /* 80315310 00310F70 80 7F 00 08 */ lwz r3, 8(r31) /* 80315314 00310F74 2C 03 00 00 */ cmpwi r3, 0 /* 80315318 00310F78 41 82 00 28 */ beq lbl_80315340 /* 8031531C 00310F7C 80 1F 00 00 */ lwz r0, 0(r31) /* 80315320 00310F80 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80315324 00310F84 41 82 00 1C */ beq lbl_80315340 /* 80315328 00310F88 80 03 00 00 */ lwz r0, 0(r3) /* 8031532C 00310F8C 54 03 07 FE */ clrlwi r3, r0, 0x1f /* 80315330 00310F90 2C 83 00 00 */ cmpwi cr1, r3, 0 /* 80315334 00310F94 41 86 00 0C */ beq cr1, lbl_80315340 /* 80315338 00310F98 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 8031533C 00310F9C 40 82 00 20 */ bne lbl_8031535C lbl_80315340: /* 80315340 00310FA0 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315344 00310FA4 38 00 00 26 */ li r0, 0x26 /* 80315348 00310FA8 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 8031534C 00310FAC 38 60 00 26 */ li r3, 0x26 /* 80315350 00310FB0 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315354 00310FB4 90 1E 18 6C */ stw r0, 0x186c(r30) /* 80315358 00310FB8 48 00 00 BC */ b lbl_80315414 lbl_8031535C: /* 8031535C 00310FBC 41 86 00 08 */ beq cr1, lbl_80315364 /* 80315360 00310FC0 40 82 00 20 */ bne lbl_80315380 lbl_80315364: /* 80315364 00310FC4 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315368 00310FC8 38 00 00 26 */ li r0, 0x26 /* 8031536C 00310FCC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315370 00310FD0 38 60 00 26 */ li r3, 0x26 /* 80315374 00310FD4 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315378 00310FD8 90 1E 18 6C */ stw r0, 0x186c(r30) /* 8031537C 00310FDC 48 00 00 98 */ b lbl_80315414 lbl_80315380: /* 80315380 00310FE0 2C 1A 00 00 */ cmpwi r26, 0 /* 80315384 00310FE4 41 82 00 14 */ beq lbl_80315398 /* 80315388 00310FE8 2C 1C 00 00 */ cmpwi r28, 0 /* 8031538C 00310FEC 41 82 00 0C */ beq lbl_80315398 /* 80315390 00310FF0 2C 1B 00 00 */ cmpwi r27, 0 /* 80315394 00310FF4 40 82 00 2C */ bne lbl_803153C0 lbl_80315398: /* 80315398 00310FF8 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 8031539C 00310FFC 38 00 00 0A */ li r0, 0xa /* 803153A0 00311000 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 803153A4 00311004 38 60 00 0A */ li r3, 0xa /* 803153A8 00311008 90 04 00 1C */ stw r0, 0x1c(r4) /* 803153AC 0031100C 80 9F 00 08 */ lwz r4, 8(r31) /* 803153B0 00311010 80 84 00 38 */ lwz r4, 0x38(r4) /* 803153B4 00311014 90 04 18 6C */ stw r0, 0x186c(r4) /* 803153B8 00311018 90 1F 00 18 */ stw r0, 0x18(r31) /* 803153BC 0031101C 48 00 00 58 */ b lbl_80315414 lbl_803153C0: /* 803153C0 00311020 93 FE 16 08 */ stw r31, 0x1608(r30) /* 803153C4 00311024 7F C3 F3 78 */ mr r3, r30 /* 803153C8 00311028 7F 44 D3 78 */ mr r4, r26 /* 803153CC 0031102C 7F 65 DB 78 */ mr r5, r27 /* 803153D0 00311030 7F 86 E3 78 */ mr r6, r28 /* 803153D4 00311034 7F E7 FB 78 */ mr r7, r31 /* 803153D8 00311038 39 01 00 08 */ addi r8, r1, 8 /* 803153DC 0031103C 4B FF F4 29 */ bl VFiPFFILE_p_fread /* 803153E0 00311040 80 81 00 08 */ lwz r4, 8(r1) /* 803153E4 00311044 2C 03 00 00 */ cmpwi r3, 0 /* 803153E8 00311048 38 00 00 00 */ li r0, 0 /* 803153EC 0031104C 90 9D 00 00 */ stw r4, 0(r29) /* 803153F0 00311050 90 1E 16 08 */ stw r0, 0x1608(r30) /* 803153F4 00311054 41 82 00 20 */ beq lbl_80315414 /* 803153F8 00311058 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 803153FC 0031105C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315400 00311060 90 64 00 1C */ stw r3, 0x1c(r4) /* 80315404 00311064 80 9F 00 08 */ lwz r4, 8(r31) /* 80315408 00311068 80 84 00 38 */ lwz r4, 0x38(r4) /* 8031540C 0031106C 90 64 18 6C */ stw r3, 0x186c(r4) /* 80315410 00311070 90 7F 00 18 */ stw r3, 0x18(r31) lbl_80315414: /* 80315414 00311074 39 61 00 30 */ addi r11, r1, 0x30 /* 80315418 00311078 4B EB 1D 59 */ bl _restgpr_26 /* 8031541C 0031107C 80 01 00 34 */ lwz r0, 0x34(r1) /* 80315420 00311080 7C 08 03 A6 */ mtlr r0 /* 80315424 00311084 38 21 00 30 */ addi r1, r1, 0x30 /* 80315428 00311088 4E 80 00 20 */ blr .global VFiPFFILE_fwrite VFiPFFILE_fwrite: /* 8031542C 0031108C 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80315430 00311090 7C 08 02 A6 */ mflr r0 /* 80315434 00311094 90 01 00 34 */ stw r0, 0x34(r1) /* 80315438 00311098 39 61 00 30 */ addi r11, r1, 0x30 /* 8031543C 0031109C 4B EB 1C E9 */ bl _savegpr_26 /* 80315440 003110A0 2C 07 00 00 */ cmpwi r7, 0 /* 80315444 003110A4 7C 7A 1B 78 */ mr r26, r3 /* 80315448 003110A8 7C 9B 23 78 */ mr r27, r4 /* 8031544C 003110AC 7C BD 2B 78 */ mr r29, r5 /* 80315450 003110B0 7C DF 33 78 */ mr r31, r6 /* 80315454 003110B4 7C FC 3B 78 */ mr r28, r7 /* 80315458 003110B8 40 82 00 1C */ bne lbl_80315474 /* 8031545C 003110BC 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315460 003110C0 38 00 00 0A */ li r0, 0xa /* 80315464 003110C4 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315468 003110C8 38 60 00 0A */ li r3, 0xa /* 8031546C 003110CC 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315470 003110D0 48 00 01 FC */ b lbl_8031566C lbl_80315474: /* 80315474 003110D4 3C 60 80 58 */ lis r3, lbl_8057F5C8@ha /* 80315478 003110D8 38 00 00 00 */ li r0, 0 /* 8031547C 003110DC 38 63 F5 C8 */ addi r3, r3, lbl_8057F5C8@l /* 80315480 003110E0 90 07 00 00 */ stw r0, 0(r7) /* 80315484 003110E4 7C 03 30 40 */ cmplw r3, r6 /* 80315488 003110E8 41 81 00 14 */ bgt lbl_8031549C /* 8031548C 003110EC 3C 63 00 02 */ addis r3, r3, 2 /* 80315490 003110F0 38 03 7F B8 */ addi r0, r3, 0x7fb8 /* 80315494 003110F4 7C 00 30 40 */ cmplw r0, r6 /* 80315498 003110F8 40 80 00 1C */ bge lbl_803154B4 lbl_8031549C: /* 8031549C 003110FC 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 803154A0 00311100 38 00 00 0A */ li r0, 0xa /* 803154A4 00311104 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 803154A8 00311108 38 60 00 0A */ li r3, 0xa /* 803154AC 0031110C 90 04 00 1C */ stw r0, 0x1c(r4) /* 803154B0 00311110 48 00 01 BC */ b lbl_8031566C lbl_803154B4: /* 803154B4 00311114 2C 06 00 00 */ cmpwi r6, 0 /* 803154B8 00311118 40 82 00 0C */ bne lbl_803154C4 /* 803154BC 0031111C 3B C0 00 00 */ li r30, 0 /* 803154C0 00311120 48 00 00 0C */ b lbl_803154CC lbl_803154C4: /* 803154C4 00311124 80 66 00 08 */ lwz r3, 8(r6) /* 803154C8 00311128 83 C3 02 68 */ lwz r30, 0x268(r3) lbl_803154CC: /* 803154CC 0031112C 2C 1E 00 00 */ cmpwi r30, 0 /* 803154D0 00311130 40 82 00 2C */ bne lbl_803154FC /* 803154D4 00311134 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 803154D8 00311138 38 00 00 26 */ li r0, 0x26 /* 803154DC 0031113C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 803154E0 00311140 38 60 00 26 */ li r3, 0x26 /* 803154E4 00311144 90 04 00 1C */ stw r0, 0x1c(r4) /* 803154E8 00311148 80 86 00 08 */ lwz r4, 8(r6) /* 803154EC 0031114C 80 84 00 38 */ lwz r4, 0x38(r4) /* 803154F0 00311150 90 04 18 6C */ stw r0, 0x186c(r4) /* 803154F4 00311154 90 06 00 18 */ stw r0, 0x18(r6) /* 803154F8 00311158 48 00 01 74 */ b lbl_8031566C lbl_803154FC: /* 803154FC 0031115C 7F C3 F3 78 */ mr r3, r30 /* 80315500 00311160 48 00 40 29 */ bl VFiPFVOL_CheckForWrite /* 80315504 00311164 2C 03 00 00 */ cmpwi r3, 0 /* 80315508 00311168 41 82 00 18 */ beq lbl_80315520 /* 8031550C 0031116C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315510 00311170 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315514 00311174 90 64 00 1C */ stw r3, 0x1c(r4) /* 80315518 00311178 90 7E 18 6C */ stw r3, 0x186c(r30) /* 8031551C 0031117C 48 00 01 50 */ b lbl_8031566C lbl_80315520: /* 80315520 00311180 2C 1F 00 00 */ cmpwi r31, 0 /* 80315524 00311184 41 82 00 34 */ beq lbl_80315558 /* 80315528 00311188 80 7F 00 08 */ lwz r3, 8(r31) /* 8031552C 0031118C 2C 03 00 00 */ cmpwi r3, 0 /* 80315530 00311190 41 82 00 28 */ beq lbl_80315558 /* 80315534 00311194 80 1F 00 00 */ lwz r0, 0(r31) /* 80315538 00311198 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 8031553C 0031119C 41 82 00 1C */ beq lbl_80315558 /* 80315540 003111A0 80 03 00 00 */ lwz r0, 0(r3) /* 80315544 003111A4 54 03 07 FE */ clrlwi r3, r0, 0x1f /* 80315548 003111A8 2C 83 00 00 */ cmpwi cr1, r3, 0 /* 8031554C 003111AC 41 86 00 0C */ beq cr1, lbl_80315558 /* 80315550 003111B0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 80315554 003111B4 40 82 00 20 */ bne lbl_80315574 lbl_80315558: /* 80315558 003111B8 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 8031555C 003111BC 38 00 00 26 */ li r0, 0x26 /* 80315560 003111C0 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315564 003111C4 38 60 00 26 */ li r3, 0x26 /* 80315568 003111C8 90 04 00 1C */ stw r0, 0x1c(r4) /* 8031556C 003111CC 90 1E 18 6C */ stw r0, 0x186c(r30) /* 80315570 003111D0 48 00 00 FC */ b lbl_8031566C lbl_80315574: /* 80315574 003111D4 41 86 00 08 */ beq cr1, lbl_8031557C /* 80315578 003111D8 40 82 00 20 */ bne lbl_80315598 lbl_8031557C: /* 8031557C 003111DC 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315580 003111E0 38 00 00 26 */ li r0, 0x26 /* 80315584 003111E4 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315588 003111E8 38 60 00 26 */ li r3, 0x26 /* 8031558C 003111EC 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315590 003111F0 90 1E 18 6C */ stw r0, 0x186c(r30) /* 80315594 003111F4 48 00 00 D8 */ b lbl_8031566C lbl_80315598: /* 80315598 003111F8 2C 1A 00 00 */ cmpwi r26, 0 /* 8031559C 003111FC 41 82 00 14 */ beq lbl_803155B0 /* 803155A0 00311200 2C 1D 00 00 */ cmpwi r29, 0 /* 803155A4 00311204 41 82 00 0C */ beq lbl_803155B0 /* 803155A8 00311208 2C 1B 00 00 */ cmpwi r27, 0 /* 803155AC 0031120C 40 82 00 2C */ bne lbl_803155D8 lbl_803155B0: /* 803155B0 00311210 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 803155B4 00311214 38 00 00 0A */ li r0, 0xa /* 803155B8 00311218 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 803155BC 0031121C 38 60 00 0A */ li r3, 0xa /* 803155C0 00311220 90 04 00 1C */ stw r0, 0x1c(r4) /* 803155C4 00311224 80 9F 00 08 */ lwz r4, 8(r31) /* 803155C8 00311228 80 84 00 38 */ lwz r4, 0x38(r4) /* 803155CC 0031122C 90 04 18 6C */ stw r0, 0x186c(r4) /* 803155D0 00311230 90 1F 00 18 */ stw r0, 0x18(r31) /* 803155D4 00311234 48 00 00 98 */ b lbl_8031566C lbl_803155D8: /* 803155D8 00311238 93 FE 16 08 */ stw r31, 0x1608(r30) /* 803155DC 0031123C 7F C3 F3 78 */ mr r3, r30 /* 803155E0 00311240 7F 44 D3 78 */ mr r4, r26 /* 803155E4 00311244 7F 65 DB 78 */ mr r5, r27 /* 803155E8 00311248 7F A6 EB 78 */ mr r6, r29 /* 803155EC 0031124C 7F E7 FB 78 */ mr r7, r31 /* 803155F0 00311250 39 01 00 08 */ addi r8, r1, 8 /* 803155F4 00311254 4B FF F2 DD */ bl VFiPFFILE_p_fwrite /* 803155F8 00311258 80 81 00 08 */ lwz r4, 8(r1) /* 803155FC 0031125C 2C 03 00 00 */ cmpwi r3, 0 /* 80315600 00311260 38 00 00 00 */ li r0, 0 /* 80315604 00311264 7C 7D 1B 78 */ mr r29, r3 /* 80315608 00311268 90 9C 00 00 */ stw r4, 0(r28) /* 8031560C 0031126C 90 1E 16 08 */ stw r0, 0x1608(r30) /* 80315610 00311270 41 82 00 20 */ beq lbl_80315630 /* 80315614 00311274 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315618 00311278 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 8031561C 0031127C 90 64 00 1C */ stw r3, 0x1c(r4) /* 80315620 00311280 80 9F 00 08 */ lwz r4, 8(r31) /* 80315624 00311284 80 84 00 38 */ lwz r4, 0x38(r4) /* 80315628 00311288 90 64 18 6C */ stw r3, 0x186c(r4) /* 8031562C 0031128C 90 7F 00 18 */ stw r3, 0x18(r31) lbl_80315630: /* 80315630 00311290 80 01 00 08 */ lwz r0, 8(r1) /* 80315634 00311294 2C 00 00 00 */ cmpwi r0, 0 /* 80315638 00311298 41 82 00 30 */ beq lbl_80315668 /* 8031563C 0031129C 80 9F 00 08 */ lwz r4, 8(r31) /* 80315640 003112A0 38 64 02 62 */ addi r3, r4, 0x262 /* 80315644 003112A4 38 84 02 60 */ addi r4, r4, 0x260 /* 80315648 003112A8 4B FF 75 31 */ bl VFiPFENT_getcurrentDateTimeForEnt /* 8031564C 003112AC 80 7F 00 08 */ lwz r3, 8(r31) /* 80315650 003112B0 A0 03 02 62 */ lhz r0, 0x262(r3) /* 80315654 003112B4 B0 03 02 5E */ sth r0, 0x25e(r3) /* 80315658 003112B8 80 7F 00 08 */ lwz r3, 8(r31) /* 8031565C 003112BC 80 03 00 00 */ lwz r0, 0(r3) /* 80315660 003112C0 60 00 00 04 */ ori r0, r0, 4 /* 80315664 003112C4 90 03 00 00 */ stw r0, 0(r3) lbl_80315668: /* 80315668 003112C8 7F A3 EB 78 */ mr r3, r29 lbl_8031566C: /* 8031566C 003112CC 39 61 00 30 */ addi r11, r1, 0x30 /* 80315670 003112D0 4B EB 1B 01 */ bl _restgpr_26 /* 80315674 003112D4 80 01 00 34 */ lwz r0, 0x34(r1) /* 80315678 003112D8 7C 08 03 A6 */ mtlr r0 /* 8031567C 003112DC 38 21 00 30 */ addi r1, r1, 0x30 /* 80315680 003112E0 4E 80 00 20 */ blr .global VFiPFFILE_fseek VFiPFFILE_fseek: /* 80315684 003112E4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80315688 003112E8 7C 08 02 A6 */ mflr r0 /* 8031568C 003112EC 3C C0 80 58 */ lis r6, lbl_8057F5C8@ha /* 80315690 003112F0 90 01 00 24 */ stw r0, 0x24(r1) /* 80315694 003112F4 38 C6 F5 C8 */ addi r6, r6, lbl_8057F5C8@l /* 80315698 003112F8 7C 06 18 40 */ cmplw r6, r3 /* 8031569C 003112FC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 803156A0 00311300 7C 7F 1B 78 */ mr r31, r3 /* 803156A4 00311304 93 C1 00 18 */ stw r30, 0x18(r1) /* 803156A8 00311308 93 A1 00 14 */ stw r29, 0x14(r1) /* 803156AC 0031130C 7C BD 2B 78 */ mr r29, r5 /* 803156B0 00311310 93 81 00 10 */ stw r28, 0x10(r1) /* 803156B4 00311314 7C 9C 23 78 */ mr r28, r4 /* 803156B8 00311318 41 81 00 14 */ bgt lbl_803156CC /* 803156BC 0031131C 3C 86 00 02 */ addis r4, r6, 2 /* 803156C0 00311320 38 04 7F B8 */ addi r0, r4, 0x7fb8 /* 803156C4 00311324 7C 00 18 40 */ cmplw r0, r3 /* 803156C8 00311328 40 80 00 1C */ bge lbl_803156E4 lbl_803156CC: /* 803156CC 0031132C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 803156D0 00311330 38 00 00 0A */ li r0, 0xa /* 803156D4 00311334 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 803156D8 00311338 38 60 00 0A */ li r3, 0xa /* 803156DC 0031133C 90 04 00 1C */ stw r0, 0x1c(r4) /* 803156E0 00311340 48 00 02 F8 */ b lbl_803159D8 lbl_803156E4: /* 803156E4 00311344 2C 03 00 00 */ cmpwi r3, 0 /* 803156E8 00311348 40 82 00 0C */ bne lbl_803156F4 /* 803156EC 0031134C 3B C0 00 00 */ li r30, 0 /* 803156F0 00311350 48 00 00 0C */ b lbl_803156FC lbl_803156F4: /* 803156F4 00311354 80 63 00 08 */ lwz r3, 8(r3) /* 803156F8 00311358 83 C3 02 68 */ lwz r30, 0x268(r3) lbl_803156FC: /* 803156FC 0031135C 2C 1E 00 00 */ cmpwi r30, 0 /* 80315700 00311360 40 82 00 1C */ bne lbl_8031571C /* 80315704 00311364 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315708 00311368 38 00 00 26 */ li r0, 0x26 /* 8031570C 0031136C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315710 00311370 38 60 00 26 */ li r3, 0x26 /* 80315714 00311374 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315718 00311378 48 00 02 C0 */ b lbl_803159D8 lbl_8031571C: /* 8031571C 0031137C 7F C3 F3 78 */ mr r3, r30 /* 80315720 00311380 48 00 3C 4D */ bl VFiPFVOL_CheckForRead /* 80315724 00311384 2C 03 00 00 */ cmpwi r3, 0 /* 80315728 00311388 41 82 00 18 */ beq lbl_80315740 /* 8031572C 0031138C 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315730 00311390 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315734 00311394 90 64 00 1C */ stw r3, 0x1c(r4) /* 80315738 00311398 90 7E 18 6C */ stw r3, 0x186c(r30) /* 8031573C 0031139C 48 00 02 9C */ b lbl_803159D8 lbl_80315740: /* 80315740 003113A0 2C 1F 00 00 */ cmpwi r31, 0 /* 80315744 003113A4 41 82 00 34 */ beq lbl_80315778 /* 80315748 003113A8 80 9F 00 08 */ lwz r4, 8(r31) /* 8031574C 003113AC 2C 04 00 00 */ cmpwi r4, 0 /* 80315750 003113B0 41 82 00 28 */ beq lbl_80315778 /* 80315754 003113B4 80 1F 00 00 */ lwz r0, 0(r31) /* 80315758 003113B8 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 8031575C 003113BC 41 82 00 1C */ beq lbl_80315778 /* 80315760 003113C0 80 04 00 00 */ lwz r0, 0(r4) /* 80315764 003113C4 54 05 07 FE */ clrlwi r5, r0, 0x1f /* 80315768 003113C8 2C 85 00 00 */ cmpwi cr1, r5, 0 /* 8031576C 003113CC 41 86 00 0C */ beq cr1, lbl_80315778 /* 80315770 003113D0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 80315774 003113D4 40 82 00 20 */ bne lbl_80315794 lbl_80315778: /* 80315778 003113D8 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 8031577C 003113DC 38 00 00 26 */ li r0, 0x26 /* 80315780 003113E0 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315784 003113E4 38 60 00 26 */ li r3, 0x26 /* 80315788 003113E8 90 04 00 1C */ stw r0, 0x1c(r4) /* 8031578C 003113EC 90 1E 18 6C */ stw r0, 0x186c(r30) /* 80315790 003113F0 48 00 02 48 */ b lbl_803159D8 lbl_80315794: /* 80315794 003113F4 41 86 00 08 */ beq cr1, lbl_8031579C /* 80315798 003113F8 40 82 00 20 */ bne lbl_803157B8 lbl_8031579C: /* 8031579C 003113FC 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 803157A0 00311400 38 00 00 26 */ li r0, 0x26 /* 803157A4 00311404 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 803157A8 00311408 38 60 00 26 */ li r3, 0x26 /* 803157AC 0031140C 90 04 00 1C */ stw r0, 0x1c(r4) /* 803157B0 00311410 90 1E 18 6C */ stw r0, 0x186c(r30) /* 803157B4 00311414 48 00 02 24 */ b lbl_803159D8 lbl_803157B8: /* 803157B8 00311418 2C 1D 00 01 */ cmpwi r29, 1 /* 803157BC 0031141C 41 82 00 20 */ beq lbl_803157DC /* 803157C0 00311420 40 80 00 10 */ bge lbl_803157D0 /* 803157C4 00311424 2C 1D 00 00 */ cmpwi r29, 0 /* 803157C8 00311428 40 80 00 1C */ bge lbl_803157E4 /* 803157CC 0031142C 48 00 00 28 */ b lbl_803157F4 lbl_803157D0: /* 803157D0 00311430 2C 1D 00 03 */ cmpwi r29, 3 /* 803157D4 00311434 40 80 00 20 */ bge lbl_803157F4 /* 803157D8 00311438 48 00 00 14 */ b lbl_803157EC lbl_803157DC: /* 803157DC 0031143C 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 803157E0 00311440 48 00 00 3C */ b lbl_8031581C lbl_803157E4: /* 803157E4 00311444 38 00 00 00 */ li r0, 0 /* 803157E8 00311448 48 00 00 34 */ b lbl_8031581C lbl_803157EC: /* 803157EC 0031144C 80 04 02 64 */ lwz r0, 0x264(r4) /* 803157F0 00311450 48 00 00 2C */ b lbl_8031581C lbl_803157F4: /* 803157F4 00311454 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 803157F8 00311458 38 00 00 0A */ li r0, 0xa /* 803157FC 0031145C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315800 00311460 38 60 00 0A */ li r3, 0xa /* 80315804 00311464 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315808 00311468 80 9F 00 08 */ lwz r4, 8(r31) /* 8031580C 0031146C 80 84 00 38 */ lwz r4, 0x38(r4) /* 80315810 00311470 90 04 18 6C */ stw r0, 0x186c(r4) /* 80315814 00311474 90 1F 00 18 */ stw r0, 0x18(r31) /* 80315818 00311478 48 00 01 C0 */ b lbl_803159D8 lbl_8031581C: /* 8031581C 0031147C 57 84 00 01 */ rlwinm. r4, r28, 0, 0, 0 /* 80315820 00311480 41 82 00 48 */ beq lbl_80315868 /* 80315824 00311484 7F 84 E0 F8 */ nor r4, r28, r28 /* 80315828 00311488 54 84 00 7E */ clrlwi r4, r4, 1 /* 8031582C 0031148C 38 84 00 01 */ addi r4, r4, 1 /* 80315830 00311490 7C 00 20 40 */ cmplw r0, r4 /* 80315834 00311494 40 80 00 2C */ bge lbl_80315860 /* 80315838 00311498 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 8031583C 0031149C 38 00 00 0A */ li r0, 0xa /* 80315840 003114A0 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315844 003114A4 38 60 00 0A */ li r3, 0xa /* 80315848 003114A8 90 04 00 1C */ stw r0, 0x1c(r4) /* 8031584C 003114AC 80 9F 00 08 */ lwz r4, 8(r31) /* 80315850 003114B0 80 84 00 38 */ lwz r4, 0x38(r4) /* 80315854 003114B4 90 04 18 6C */ stw r0, 0x186c(r4) /* 80315858 003114B8 90 1F 00 18 */ stw r0, 0x18(r31) /* 8031585C 003114BC 48 00 01 7C */ b lbl_803159D8 lbl_80315860: /* 80315860 003114C0 7C 04 00 50 */ subf r0, r4, r0 /* 80315864 003114C4 48 00 00 3C */ b lbl_803158A0 lbl_80315868: /* 80315868 003114C8 20 80 FF FF */ subfic r4, r0, -1 /* 8031586C 003114CC 7C 1C 20 40 */ cmplw r28, r4 /* 80315870 003114D0 40 81 00 2C */ ble lbl_8031589C /* 80315874 003114D4 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315878 003114D8 38 00 00 25 */ li r0, 0x25 /* 8031587C 003114DC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315880 003114E0 38 60 00 25 */ li r3, 0x25 /* 80315884 003114E4 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315888 003114E8 80 9F 00 08 */ lwz r4, 8(r31) /* 8031588C 003114EC 80 84 00 38 */ lwz r4, 0x38(r4) /* 80315890 003114F0 90 04 18 6C */ stw r0, 0x186c(r4) /* 80315894 003114F4 90 1F 00 18 */ stw r0, 0x18(r31) /* 80315898 003114F8 48 00 01 40 */ b lbl_803159D8 lbl_8031589C: /* 8031589C 003114FC 7C 00 E2 14 */ add r0, r0, r28 lbl_803158A0: /* 803158A0 00311500 38 80 FF FF */ li r4, -1 /* 803158A4 00311504 2C 1F 00 00 */ cmpwi r31, 0 /* 803158A8 00311508 90 9F 00 20 */ stw r4, 0x20(r31) /* 803158AC 0031150C 40 82 00 0C */ bne lbl_803158B8 /* 803158B0 00311510 38 A0 00 00 */ li r5, 0 /* 803158B4 00311514 48 00 00 0C */ b lbl_803158C0 lbl_803158B8: /* 803158B8 00311518 80 9F 00 08 */ lwz r4, 8(r31) /* 803158BC 0031151C 80 A4 02 68 */ lwz r5, 0x268(r4) lbl_803158C0: /* 803158C0 00311520 A0 85 00 00 */ lhz r4, 0(r5) /* 803158C4 00311524 80 FF 00 1C */ lwz r7, 0x1c(r31) /* 803158C8 00311528 38 84 FF FF */ addi r4, r4, -1 /* 803158CC 0031152C 88 C5 00 20 */ lbz r6, 0x20(r5) /* 803158D0 00311530 7C E5 20 38 */ and r5, r7, r4 /* 803158D4 00311534 7C 85 00 D0 */ neg r4, r5 /* 803158D8 00311538 7C E6 34 30 */ srw r6, r7, r6 /* 803158DC 0031153C 7C 84 2B 78 */ or r4, r4, r5 /* 803158E0 00311540 54 84 0F FE */ srwi r4, r4, 0x1f /* 803158E4 00311544 7C 86 22 15 */ add. r4, r6, r4 /* 803158E8 00311548 41 82 00 0C */ beq lbl_803158F4 /* 803158EC 0031154C 38 80 FF FF */ li r4, -1 /* 803158F0 00311550 90 9F 00 20 */ stw r4, 0x20(r31) lbl_803158F4: /* 803158F4 00311554 38 80 00 00 */ li r4, 0 /* 803158F8 00311558 2C 1F 00 00 */ cmpwi r31, 0 /* 803158FC 0031155C 90 9F 00 1C */ stw r4, 0x1c(r31) /* 80315900 00311560 40 82 00 0C */ bne lbl_8031590C /* 80315904 00311564 38 C0 00 00 */ li r6, 0 /* 80315908 00311568 48 00 00 0C */ b lbl_80315914 lbl_8031590C: /* 8031590C 0031156C 80 9F 00 08 */ lwz r4, 8(r31) /* 80315910 00311570 80 C4 02 68 */ lwz r6, 0x268(r4) lbl_80315914: /* 80315914 00311574 80 BF 00 1C */ lwz r5, 0x1c(r31) /* 80315918 00311578 2C 1F 00 00 */ cmpwi r31, 0 /* 8031591C 0031157C 88 86 00 20 */ lbz r4, 0x20(r6) /* 80315920 00311580 7C A4 24 30 */ srw r4, r5, r4 /* 80315924 00311584 90 9F 00 24 */ stw r4, 0x24(r31) /* 80315928 00311588 A0 86 00 00 */ lhz r4, 0(r6) /* 8031592C 0031158C 38 84 FF FF */ addi r4, r4, -1 /* 80315930 00311590 7C A4 20 38 */ and r4, r5, r4 /* 80315934 00311594 B0 9F 00 28 */ sth r4, 0x28(r31) /* 80315938 00311598 40 82 00 0C */ bne lbl_80315944 /* 8031593C 0031159C 38 A0 00 00 */ li r5, 0 /* 80315940 003115A0 48 00 00 0C */ b lbl_8031594C lbl_80315944: /* 80315944 003115A4 80 9F 00 08 */ lwz r4, 8(r31) /* 80315948 003115A8 80 A4 02 68 */ lwz r5, 0x268(r4) lbl_8031594C: /* 8031594C 003115AC A0 85 00 00 */ lhz r4, 0(r5) /* 80315950 003115B0 80 DF 00 1C */ lwz r6, 0x1c(r31) /* 80315954 003115B4 38 84 FF FF */ addi r4, r4, -1 /* 80315958 003115B8 89 45 00 20 */ lbz r10, 0x20(r5) /* 8031595C 003115BC 7C C9 20 38 */ and r9, r6, r4 /* 80315960 003115C0 7C 05 20 38 */ and r5, r0, r4 /* 80315964 003115C4 7C C7 54 30 */ srw r7, r6, r10 /* 80315968 003115C8 7D 09 00 D0 */ neg r8, r9 /* 8031596C 003115CC 7C 06 54 30 */ srw r6, r0, r10 /* 80315970 003115D0 7C 85 00 D0 */ neg r4, r5 /* 80315974 003115D4 7C 84 2B 78 */ or r4, r4, r5 /* 80315978 003115D8 7D 08 4B 78 */ or r8, r8, r9 /* 8031597C 003115DC 55 05 0F FE */ srwi r5, r8, 0x1f /* 80315980 003115E0 54 84 0F FE */ srwi r4, r4, 0x1f /* 80315984 003115E4 7C A7 2A 14 */ add r5, r7, r5 /* 80315988 003115E8 7C 86 22 14 */ add r4, r6, r4 /* 8031598C 003115EC 7C 05 20 40 */ cmplw r5, r4 /* 80315990 003115F0 41 82 00 0C */ beq lbl_8031599C /* 80315994 003115F4 38 80 FF FF */ li r4, -1 /* 80315998 003115F8 90 9F 00 20 */ stw r4, 0x20(r31) lbl_8031599C: /* 8031599C 003115FC 2C 1F 00 00 */ cmpwi r31, 0 /* 803159A0 00311600 90 1F 00 1C */ stw r0, 0x1c(r31) /* 803159A4 00311604 40 82 00 0C */ bne lbl_803159B0 /* 803159A8 00311608 38 80 00 00 */ li r4, 0 /* 803159AC 0031160C 48 00 00 0C */ b lbl_803159B8 lbl_803159B0: /* 803159B0 00311610 80 9F 00 08 */ lwz r4, 8(r31) /* 803159B4 00311614 80 84 02 68 */ lwz r4, 0x268(r4) lbl_803159B8: /* 803159B8 00311618 80 BF 00 1C */ lwz r5, 0x1c(r31) /* 803159BC 0031161C 88 04 00 20 */ lbz r0, 0x20(r4) /* 803159C0 00311620 7C A0 04 30 */ srw r0, r5, r0 /* 803159C4 00311624 90 1F 00 24 */ stw r0, 0x24(r31) /* 803159C8 00311628 A0 84 00 00 */ lhz r4, 0(r4) /* 803159CC 0031162C 38 04 FF FF */ addi r0, r4, -1 /* 803159D0 00311630 7C A0 00 38 */ and r0, r5, r0 /* 803159D4 00311634 B0 1F 00 28 */ sth r0, 0x28(r31) lbl_803159D8: /* 803159D8 00311638 80 01 00 24 */ lwz r0, 0x24(r1) /* 803159DC 0031163C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 803159E0 00311640 83 C1 00 18 */ lwz r30, 0x18(r1) /* 803159E4 00311644 83 A1 00 14 */ lwz r29, 0x14(r1) /* 803159E8 00311648 83 81 00 10 */ lwz r28, 0x10(r1) /* 803159EC 0031164C 7C 08 03 A6 */ mtlr r0 /* 803159F0 00311650 38 21 00 20 */ addi r1, r1, 0x20 /* 803159F4 00311654 4E 80 00 20 */ blr .global VFiPFFILE_finfo VFiPFFILE_finfo: /* 803159F8 00311658 94 21 FF C0 */ stwu r1, -0x40(r1) /* 803159FC 0031165C 7C 08 02 A6 */ mflr r0 /* 80315A00 00311660 3C A0 80 58 */ lis r5, lbl_8057F5C8@ha /* 80315A04 00311664 90 01 00 44 */ stw r0, 0x44(r1) /* 80315A08 00311668 38 A5 F5 C8 */ addi r5, r5, lbl_8057F5C8@l /* 80315A0C 0031166C 7C 05 18 40 */ cmplw r5, r3 /* 80315A10 00311670 93 E1 00 3C */ stw r31, 0x3c(r1) /* 80315A14 00311674 93 C1 00 38 */ stw r30, 0x38(r1) /* 80315A18 00311678 7C 7E 1B 78 */ mr r30, r3 /* 80315A1C 0031167C 93 A1 00 34 */ stw r29, 0x34(r1) /* 80315A20 00311680 7C 9D 23 78 */ mr r29, r4 /* 80315A24 00311684 41 81 00 14 */ bgt lbl_80315A38 /* 80315A28 00311688 3C 85 00 02 */ addis r4, r5, 2 /* 80315A2C 0031168C 38 04 7F B8 */ addi r0, r4, 0x7fb8 /* 80315A30 00311690 7C 00 18 40 */ cmplw r0, r3 /* 80315A34 00311694 40 80 00 1C */ bge lbl_80315A50 lbl_80315A38: /* 80315A38 00311698 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315A3C 0031169C 38 00 00 0A */ li r0, 0xa /* 80315A40 003116A0 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315A44 003116A4 38 60 00 0A */ li r3, 0xa /* 80315A48 003116A8 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315A4C 003116AC 48 00 01 C8 */ b lbl_80315C14 lbl_80315A50: /* 80315A50 003116B0 2C 03 00 00 */ cmpwi r3, 0 /* 80315A54 003116B4 40 82 00 0C */ bne lbl_80315A60 /* 80315A58 003116B8 3B E0 00 00 */ li r31, 0 /* 80315A5C 003116BC 48 00 00 0C */ b lbl_80315A68 lbl_80315A60: /* 80315A60 003116C0 80 63 00 08 */ lwz r3, 8(r3) /* 80315A64 003116C4 83 E3 02 68 */ lwz r31, 0x268(r3) lbl_80315A68: /* 80315A68 003116C8 2C 1F 00 00 */ cmpwi r31, 0 /* 80315A6C 003116CC 40 82 00 1C */ bne lbl_80315A88 /* 80315A70 003116D0 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315A74 003116D4 38 00 00 26 */ li r0, 0x26 /* 80315A78 003116D8 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315A7C 003116DC 38 60 00 26 */ li r3, 0x26 /* 80315A80 003116E0 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315A84 003116E4 48 00 01 90 */ b lbl_80315C14 lbl_80315A88: /* 80315A88 003116E8 7F E3 FB 78 */ mr r3, r31 /* 80315A8C 003116EC 48 00 38 E1 */ bl VFiPFVOL_CheckForRead /* 80315A90 003116F0 2C 03 00 00 */ cmpwi r3, 0 /* 80315A94 003116F4 41 82 00 24 */ beq lbl_80315AB8 /* 80315A98 003116F8 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315A9C 003116FC 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315AA0 00311700 90 64 00 1C */ stw r3, 0x1c(r4) /* 80315AA4 00311704 80 9E 00 08 */ lwz r4, 8(r30) /* 80315AA8 00311708 80 84 00 38 */ lwz r4, 0x38(r4) /* 80315AAC 0031170C 90 64 18 6C */ stw r3, 0x186c(r4) /* 80315AB0 00311710 90 7E 00 18 */ stw r3, 0x18(r30) /* 80315AB4 00311714 48 00 01 60 */ b lbl_80315C14 lbl_80315AB8: /* 80315AB8 00311718 2C 1E 00 00 */ cmpwi r30, 0 /* 80315ABC 0031171C 41 82 00 34 */ beq lbl_80315AF0 /* 80315AC0 00311720 80 7E 00 08 */ lwz r3, 8(r30) /* 80315AC4 00311724 2C 03 00 00 */ cmpwi r3, 0 /* 80315AC8 00311728 41 82 00 28 */ beq lbl_80315AF0 /* 80315ACC 0031172C 80 1E 00 00 */ lwz r0, 0(r30) /* 80315AD0 00311730 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80315AD4 00311734 41 82 00 1C */ beq lbl_80315AF0 /* 80315AD8 00311738 80 03 00 00 */ lwz r0, 0(r3) /* 80315ADC 0031173C 54 03 07 FE */ clrlwi r3, r0, 0x1f /* 80315AE0 00311740 2C 83 00 00 */ cmpwi cr1, r3, 0 /* 80315AE4 00311744 41 86 00 0C */ beq cr1, lbl_80315AF0 /* 80315AE8 00311748 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 80315AEC 0031174C 40 82 00 20 */ bne lbl_80315B0C lbl_80315AF0: /* 80315AF0 00311750 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315AF4 00311754 38 00 00 26 */ li r0, 0x26 /* 80315AF8 00311758 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315AFC 0031175C 38 60 00 26 */ li r3, 0x26 /* 80315B00 00311760 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315B04 00311764 90 1F 18 6C */ stw r0, 0x186c(r31) /* 80315B08 00311768 48 00 01 0C */ b lbl_80315C14 lbl_80315B0C: /* 80315B0C 0031176C 41 86 00 08 */ beq cr1, lbl_80315B14 /* 80315B10 00311770 40 82 00 20 */ bne lbl_80315B30 lbl_80315B14: /* 80315B14 00311774 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315B18 00311778 38 00 00 26 */ li r0, 0x26 /* 80315B1C 0031177C 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315B20 00311780 38 60 00 26 */ li r3, 0x26 /* 80315B24 00311784 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315B28 00311788 90 1F 18 6C */ stw r0, 0x186c(r31) /* 80315B2C 0031178C 48 00 00 E8 */ b lbl_80315C14 lbl_80315B30: /* 80315B30 00311790 2C 1D 00 00 */ cmpwi r29, 0 /* 80315B34 00311794 40 82 00 2C */ bne lbl_80315B60 /* 80315B38 00311798 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315B3C 0031179C 38 00 00 0A */ li r0, 0xa /* 80315B40 003117A0 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315B44 003117A4 38 60 00 0A */ li r3, 0xa /* 80315B48 003117A8 90 04 00 1C */ stw r0, 0x1c(r4) /* 80315B4C 003117AC 80 9E 00 08 */ lwz r4, 8(r30) /* 80315B50 003117B0 80 84 00 38 */ lwz r4, 0x38(r4) /* 80315B54 003117B4 90 04 18 6C */ stw r0, 0x186c(r4) /* 80315B58 003117B8 90 1E 00 18 */ stw r0, 0x18(r30) /* 80315B5C 003117BC 48 00 00 B8 */ b lbl_80315C14 lbl_80315B60: /* 80315B60 003117C0 93 DF 16 08 */ stw r30, 0x1608(r31) /* 80315B64 003117C4 7F C3 F3 78 */ mr r3, r30 /* 80315B68 003117C8 7F A4 EB 78 */ mr r4, r29 /* 80315B6C 003117CC 81 5E 00 1C */ lwz r10, 0x1c(r30) /* 80315B70 003117D0 81 3E 00 20 */ lwz r9, 0x20(r30) /* 80315B74 003117D4 81 1E 00 24 */ lwz r8, 0x24(r30) /* 80315B78 003117D8 80 FE 00 28 */ lwz r7, 0x28(r30) /* 80315B7C 003117DC 80 DE 00 0C */ lwz r6, 0xc(r30) /* 80315B80 003117E0 80 BE 00 10 */ lwz r5, 0x10(r30) /* 80315B84 003117E4 80 1E 00 14 */ lwz r0, 0x14(r30) /* 80315B88 003117E8 91 41 00 18 */ stw r10, 0x18(r1) /* 80315B8C 003117EC 91 21 00 1C */ stw r9, 0x1c(r1) /* 80315B90 003117F0 91 01 00 20 */ stw r8, 0x20(r1) /* 80315B94 003117F4 90 E1 00 24 */ stw r7, 0x24(r1) /* 80315B98 003117F8 90 C1 00 08 */ stw r6, 8(r1) /* 80315B9C 003117FC 90 A1 00 0C */ stw r5, 0xc(r1) /* 80315BA0 00311800 90 01 00 10 */ stw r0, 0x10(r1) /* 80315BA4 00311804 4B FF EF 81 */ bl VFiPFFILE_p_finfo /* 80315BA8 00311808 81 41 00 18 */ lwz r10, 0x18(r1) /* 80315BAC 0031180C 2C 03 00 00 */ cmpwi r3, 0 /* 80315BB0 00311810 81 21 00 1C */ lwz r9, 0x1c(r1) /* 80315BB4 00311814 38 00 00 00 */ li r0, 0 /* 80315BB8 00311818 81 01 00 20 */ lwz r8, 0x20(r1) /* 80315BBC 0031181C 80 E1 00 24 */ lwz r7, 0x24(r1) /* 80315BC0 00311820 80 C1 00 08 */ lwz r6, 8(r1) /* 80315BC4 00311824 80 A1 00 0C */ lwz r5, 0xc(r1) /* 80315BC8 00311828 80 81 00 10 */ lwz r4, 0x10(r1) /* 80315BCC 0031182C 91 5E 00 1C */ stw r10, 0x1c(r30) /* 80315BD0 00311830 91 3E 00 20 */ stw r9, 0x20(r30) /* 80315BD4 00311834 91 1E 00 24 */ stw r8, 0x24(r30) /* 80315BD8 00311838 90 FE 00 28 */ stw r7, 0x28(r30) /* 80315BDC 0031183C 90 DE 00 0C */ stw r6, 0xc(r30) /* 80315BE0 00311840 90 BE 00 10 */ stw r5, 0x10(r30) /* 80315BE4 00311844 90 9E 00 14 */ stw r4, 0x14(r30) /* 80315BE8 00311848 90 1F 16 08 */ stw r0, 0x1608(r31) /* 80315BEC 0031184C 41 82 00 24 */ beq lbl_80315C10 /* 80315BF0 00311850 3C 80 80 58 */ lis r4, lbl_8057F5C8@ha /* 80315BF4 00311854 38 84 F5 C8 */ addi r4, r4, lbl_8057F5C8@l /* 80315BF8 00311858 90 64 00 1C */ stw r3, 0x1c(r4) /* 80315BFC 0031185C 80 9E 00 08 */ lwz r4, 8(r30) /* 80315C00 00311860 80 84 00 38 */ lwz r4, 0x38(r4) /* 80315C04 00311864 90 64 18 6C */ stw r3, 0x186c(r4) /* 80315C08 00311868 90 7E 00 18 */ stw r3, 0x18(r30) /* 80315C0C 0031186C 48 00 00 08 */ b lbl_80315C14 lbl_80315C10: /* 80315C10 00311870 38 60 00 00 */ li r3, 0 lbl_80315C14: /* 80315C14 00311874 80 01 00 44 */ lwz r0, 0x44(r1) /* 80315C18 00311878 83 E1 00 3C */ lwz r31, 0x3c(r1) /* 80315C1C 0031187C 83 C1 00 38 */ lwz r30, 0x38(r1) /* 80315C20 00311880 83 A1 00 34 */ lwz r29, 0x34(r1) /* 80315C24 00311884 7C 08 03 A6 */ mtlr r0 /* 80315C28 00311888 38 21 00 40 */ addi r1, r1, 0x40 /* 80315C2C 0031188C 4E 80 00 20 */ blr