.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global VFiPFFAT_ReadFATSector VFiPFFAT_ReadFATSector: /* 8030E538 0030A198 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8030E53C 0030A19C 7C 08 02 A6 */ mflr r0 /* 8030E540 0030A1A0 90 01 00 24 */ stw r0, 0x24(r1) /* 8030E544 0030A1A4 39 61 00 20 */ addi r11, r1, 0x20 /* 8030E548 0030A1A8 4B EB 8B E1 */ bl _savegpr_27 /* 8030E54C 0030A1AC 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8030E550 0030A1B0 7C 7B 1B 78 */ mr r27, r3 /* 8030E554 0030A1B4 7C 9C 23 78 */ mr r28, r4 /* 8030E558 0030A1B8 2C 00 00 01 */ cmpwi r0, 1 /* 8030E55C 0030A1BC 41 82 00 30 */ beq lbl_8030E58C /* 8030E560 0030A1C0 40 80 00 10 */ bge lbl_8030E570 /* 8030E564 0030A1C4 2C 00 00 00 */ cmpwi r0, 0 /* 8030E568 0030A1C8 40 80 00 14 */ bge lbl_8030E57C /* 8030E56C 0030A1CC 48 00 00 30 */ b lbl_8030E59C lbl_8030E570: /* 8030E570 0030A1D0 2C 00 00 03 */ cmpwi r0, 3 /* 8030E574 0030A1D4 40 80 00 28 */ bge lbl_8030E59C /* 8030E578 0030A1D8 48 00 00 1C */ b lbl_8030E594 lbl_8030E57C: /* 8030E57C 0030A1DC 54 A0 F8 7E */ srwi r0, r5, 1 /* 8030E580 0030A1E0 7C 05 02 14 */ add r0, r5, r0 /* 8030E584 0030A1E4 54 06 04 3E */ clrlwi r6, r0, 0x10 /* 8030E588 0030A1E8 48 00 00 1C */ b lbl_8030E5A4 lbl_8030E58C: /* 8030E58C 0030A1EC 54 A6 08 3C */ slwi r6, r5, 1 /* 8030E590 0030A1F0 48 00 00 14 */ b lbl_8030E5A4 lbl_8030E594: /* 8030E594 0030A1F4 54 A6 10 3A */ slwi r6, r5, 2 /* 8030E598 0030A1F8 48 00 00 0C */ b lbl_8030E5A4 lbl_8030E59C: /* 8030E59C 0030A1FC 38 60 00 0F */ li r3, 0xf /* 8030E5A0 0030A200 48 00 00 B0 */ b lbl_8030E650 lbl_8030E5A4: /* 8030E5A4 0030A204 A0 A3 00 18 */ lhz r5, 0x18(r3) /* 8030E5A8 0030A208 3B C0 00 01 */ li r30, 1 /* 8030E5AC 0030A20C 88 83 00 20 */ lbz r4, 0x20(r3) /* 8030E5B0 0030A210 54 A0 06 31 */ rlwinm. r0, r5, 0, 0x18, 0x18 /* 8030E5B4 0030A214 80 63 00 28 */ lwz r3, 0x28(r3) /* 8030E5B8 0030A218 7C C0 24 30 */ srw r0, r6, r4 /* 8030E5BC 0030A21C 7C 03 02 14 */ add r0, r3, r0 /* 8030E5C0 0030A220 54 1D 04 3E */ clrlwi r29, r0, 0x10 /* 8030E5C4 0030A224 41 82 00 08 */ beq lbl_8030E5CC /* 8030E5C8 0030A228 54 BE 07 7E */ clrlwi r30, r5, 0x1d lbl_8030E5CC: /* 8030E5CC 0030A22C 7F 63 DB 78 */ mr r3, r27 /* 8030E5D0 0030A230 7F A4 EB 78 */ mr r4, r29 /* 8030E5D4 0030A234 7F 85 E3 78 */ mr r5, r28 /* 8030E5D8 0030A238 4B FF C2 75 */ bl VFiPFCACHE_ReadFATPage /* 8030E5DC 0030A23C 2C 03 10 00 */ cmpwi r3, 0x1000 /* 8030E5E0 0030A240 7C 7F 1B 78 */ mr r31, r3 /* 8030E5E4 0030A244 40 82 00 50 */ bne lbl_8030E634 /* 8030E5E8 0030A248 81 9B 18 90 */ lwz r12, 0x1890(r27) /* 8030E5EC 0030A24C 2C 0C 00 00 */ cmpwi r12, 0 /* 8030E5F0 0030A250 41 82 00 44 */ beq lbl_8030E634 /* 8030E5F4 0030A254 80 7B 18 70 */ lwz r3, 0x1870(r27) /* 8030E5F8 0030A258 7D 89 03 A6 */ mtctr r12 /* 8030E5FC 0030A25C 4E 80 04 21 */ bctrl /* 8030E600 0030A260 2C 03 00 00 */ cmpwi r3, 0 /* 8030E604 0030A264 41 82 00 40 */ beq lbl_8030E644 /* 8030E608 0030A268 2C 03 00 01 */ cmpwi r3, 1 /* 8030E60C 0030A26C 40 82 00 28 */ bne lbl_8030E634 /* 8030E610 0030A270 88 1B 00 22 */ lbz r0, 0x22(r27) /* 8030E614 0030A274 28 00 00 02 */ cmplwi r0, 2 /* 8030E618 0030A278 41 80 00 1C */ blt lbl_8030E634 /* 8030E61C 0030A27C 7C 1E 00 40 */ cmplw r30, r0 /* 8030E620 0030A280 40 80 00 14 */ bge lbl_8030E634 /* 8030E624 0030A284 80 1B 00 0C */ lwz r0, 0xc(r27) /* 8030E628 0030A288 3B DE 00 01 */ addi r30, r30, 1 /* 8030E62C 0030A28C 7F BD 02 14 */ add r29, r29, r0 /* 8030E630 0030A290 48 00 00 14 */ b lbl_8030E644 lbl_8030E634: /* 8030E634 0030A294 2C 1F 00 00 */ cmpwi r31, 0 /* 8030E638 0030A298 41 82 00 0C */ beq lbl_8030E644 /* 8030E63C 0030A29C 7F E3 FB 78 */ mr r3, r31 /* 8030E640 0030A2A0 48 00 00 10 */ b lbl_8030E650 lbl_8030E644: /* 8030E644 0030A2A4 2C 1F 00 00 */ cmpwi r31, 0 /* 8030E648 0030A2A8 40 82 FF 84 */ bne lbl_8030E5CC /* 8030E64C 0030A2AC 7F E3 FB 78 */ mr r3, r31 lbl_8030E650: /* 8030E650 0030A2B0 39 61 00 20 */ addi r11, r1, 0x20 /* 8030E654 0030A2B4 4B EB 8B 21 */ bl _restgpr_27 /* 8030E658 0030A2B8 80 01 00 24 */ lwz r0, 0x24(r1) /* 8030E65C 0030A2BC 7C 08 03 A6 */ mtlr r0 /* 8030E660 0030A2C0 38 21 00 20 */ addi r1, r1, 0x20 /* 8030E664 0030A2C4 4E 80 00 20 */ blr .global VFiPFFAT_SearchForNumFreeClusters VFiPFFAT_SearchForNumFreeClusters: /* 8030E668 0030A2C8 94 21 FF B0 */ stwu r1, -0x50(r1) /* 8030E66C 0030A2CC 7C 08 02 A6 */ mflr r0 /* 8030E670 0030A2D0 90 01 00 54 */ stw r0, 0x54(r1) /* 8030E674 0030A2D4 39 61 00 50 */ addi r11, r1, 0x50 /* 8030E678 0030A2D8 4B EB 8A 91 */ bl _savegpr_19 /* 8030E67C 0030A2DC 38 00 FF FF */ li r0, -1 /* 8030E680 0030A2E0 28 04 00 02 */ cmplwi r4, 2 /* 8030E684 0030A2E4 90 07 00 00 */ stw r0, 0(r7) /* 8030E688 0030A2E8 7C 74 1B 78 */ mr r20, r3 /* 8030E68C 0030A2EC 7C 95 23 78 */ mr r21, r4 /* 8030E690 0030A2F0 7C B6 2B 78 */ mr r22, r5 /* 8030E694 0030A2F4 90 08 00 00 */ stw r0, 0(r8) /* 8030E698 0030A2F8 7C D7 33 78 */ mr r23, r6 /* 8030E69C 0030A2FC 7C F8 3B 78 */ mr r24, r7 /* 8030E6A0 0030A300 7D 19 43 78 */ mr r25, r8 /* 8030E6A4 0030A304 80 63 00 34 */ lwz r3, 0x34(r3) /* 8030E6A8 0030A308 3B 60 00 00 */ li r27, 0 /* 8030E6AC 0030A30C 3B C0 00 00 */ li r30, 0 /* 8030E6B0 0030A310 3B A0 FF FF */ li r29, -1 /* 8030E6B4 0030A314 3B E3 00 02 */ addi r31, r3, 2 /* 8030E6B8 0030A318 3B 80 00 00 */ li r28, 0 /* 8030E6BC 0030A31C 41 80 00 0C */ blt lbl_8030E6C8 /* 8030E6C0 0030A320 7C 04 F8 40 */ cmplw r4, r31 /* 8030E6C4 0030A324 41 80 00 08 */ blt lbl_8030E6CC lbl_8030E6C8: /* 8030E6C8 0030A328 3A A0 00 02 */ li r21, 2 lbl_8030E6CC: /* 8030E6CC 0030A32C 28 05 00 02 */ cmplwi r5, 2 /* 8030E6D0 0030A330 41 80 00 0C */ blt lbl_8030E6DC /* 8030E6D4 0030A334 7C 05 F8 40 */ cmplw r5, r31 /* 8030E6D8 0030A338 41 80 00 08 */ blt lbl_8030E6E0 lbl_8030E6DC: /* 8030E6DC 0030A33C 3A DF FF FF */ addi r22, r31, -1 lbl_8030E6E0: /* 8030E6E0 0030A340 7E BA AB 78 */ mr r26, r21 /* 8030E6E4 0030A344 7E 83 A3 78 */ mr r3, r20 /* 8030E6E8 0030A348 7E A5 AB 78 */ mr r5, r21 /* 8030E6EC 0030A34C 38 81 00 08 */ addi r4, r1, 8 /* 8030E6F0 0030A350 4B FF FE 49 */ bl VFiPFFAT_ReadFATSector /* 8030E6F4 0030A354 2C 03 00 00 */ cmpwi r3, 0 /* 8030E6F8 0030A358 41 82 00 08 */ beq lbl_8030E700 /* 8030E6FC 0030A35C 48 00 01 58 */ b lbl_8030E854 lbl_8030E700: /* 8030E700 0030A360 80 61 00 08 */ lwz r3, 8(r1) /* 8030E704 0030A364 38 00 00 00 */ li r0, 0 /* 8030E708 0030A368 3A 60 FF FF */ li r19, -1 /* 8030E70C 0030A36C B0 03 00 02 */ sth r0, 2(r3) /* 8030E710 0030A370 48 00 01 10 */ b lbl_8030E820 lbl_8030E714: /* 8030E714 0030A374 7C 1F A8 40 */ cmplw r31, r21 /* 8030E718 0030A378 41 81 00 08 */ bgt lbl_8030E720 /* 8030E71C 0030A37C 3A A0 00 02 */ li r21, 2 lbl_8030E720: /* 8030E720 0030A380 80 14 00 1C */ lwz r0, 0x1c(r20) /* 8030E724 0030A384 2C 00 00 01 */ cmpwi r0, 1 /* 8030E728 0030A388 41 82 00 38 */ beq lbl_8030E760 /* 8030E72C 0030A38C 40 80 00 10 */ bge lbl_8030E73C /* 8030E730 0030A390 2C 00 00 00 */ cmpwi r0, 0 /* 8030E734 0030A394 40 80 00 14 */ bge lbl_8030E748 /* 8030E738 0030A398 48 00 00 58 */ b lbl_8030E790 lbl_8030E73C: /* 8030E73C 0030A39C 2C 00 00 03 */ cmpwi r0, 3 /* 8030E740 0030A3A0 40 80 00 50 */ bge lbl_8030E790 /* 8030E744 0030A3A4 48 00 00 34 */ b lbl_8030E778 lbl_8030E748: /* 8030E748 0030A3A8 7E 83 A3 78 */ mr r3, r20 /* 8030E74C 0030A3AC 56 A4 04 3E */ clrlwi r4, r21, 0x10 /* 8030E750 0030A3B0 38 A1 00 0C */ addi r5, r1, 0xc /* 8030E754 0030A3B4 38 C1 00 08 */ addi r6, r1, 8 /* 8030E758 0030A3B8 48 00 2B FD */ bl VFiPFFAT12_ReadFATEntryPage /* 8030E75C 0030A3BC 48 00 00 38 */ b lbl_8030E794 lbl_8030E760: /* 8030E760 0030A3C0 7E 83 A3 78 */ mr r3, r20 /* 8030E764 0030A3C4 7E A4 AB 78 */ mr r4, r21 /* 8030E768 0030A3C8 38 A1 00 0C */ addi r5, r1, 0xc /* 8030E76C 0030A3CC 38 C1 00 08 */ addi r6, r1, 8 /* 8030E770 0030A3D0 48 00 36 4D */ bl VFiPFFAT16_ReadFATEntryPage /* 8030E774 0030A3D4 48 00 00 20 */ b lbl_8030E794 lbl_8030E778: /* 8030E778 0030A3D8 7E 83 A3 78 */ mr r3, r20 /* 8030E77C 0030A3DC 7E A4 AB 78 */ mr r4, r21 /* 8030E780 0030A3E0 38 A1 00 0C */ addi r5, r1, 0xc /* 8030E784 0030A3E4 38 C1 00 08 */ addi r6, r1, 8 /* 8030E788 0030A3E8 48 00 3B BD */ bl VFiPFFAT32_ReadFATEntryPage /* 8030E78C 0030A3EC 48 00 00 08 */ b lbl_8030E794 lbl_8030E790: /* 8030E790 0030A3F0 38 60 00 0F */ li r3, 0xf lbl_8030E794: /* 8030E794 0030A3F4 2C 03 00 00 */ cmpwi r3, 0 /* 8030E798 0030A3F8 41 82 00 08 */ beq lbl_8030E7A0 /* 8030E79C 0030A3FC 48 00 00 B8 */ b lbl_8030E854 lbl_8030E7A0: /* 8030E7A0 0030A400 80 01 00 0C */ lwz r0, 0xc(r1) /* 8030E7A4 0030A404 2C 00 00 00 */ cmpwi r0, 0 /* 8030E7A8 0030A408 40 82 00 30 */ bne lbl_8030E7D8 /* 8030E7AC 0030A40C 80 78 00 00 */ lwz r3, 0(r24) /* 8030E7B0 0030A410 3C 03 00 01 */ addis r0, r3, 1 /* 8030E7B4 0030A414 28 00 FF FF */ cmplwi r0, 0xffff /* 8030E7B8 0030A418 40 82 00 08 */ bne lbl_8030E7C0 /* 8030E7BC 0030A41C 92 B8 00 00 */ stw r21, 0(r24) lbl_8030E7C0: /* 8030E7C0 0030A420 3B DE 00 01 */ addi r30, r30, 1 /* 8030E7C4 0030A424 7C 1E B8 40 */ cmplw r30, r23 /* 8030E7C8 0030A428 41 80 00 28 */ blt lbl_8030E7F0 /* 8030E7CC 0030A42C 92 B9 00 00 */ stw r21, 0(r25) /* 8030E7D0 0030A430 38 60 00 00 */ li r3, 0 /* 8030E7D4 0030A434 48 00 00 80 */ b lbl_8030E854 lbl_8030E7D8: /* 8030E7D8 0030A438 7C 1C F0 40 */ cmplw r28, r30 /* 8030E7DC 0030A43C 40 80 00 0C */ bge lbl_8030E7E8 /* 8030E7E0 0030A440 83 B8 00 00 */ lwz r29, 0(r24) /* 8030E7E4 0030A444 7F DC F3 78 */ mr r28, r30 lbl_8030E7E8: /* 8030E7E8 0030A448 92 78 00 00 */ stw r19, 0(r24) /* 8030E7EC 0030A44C 3B C0 00 00 */ li r30, 0 lbl_8030E7F0: /* 8030E7F0 0030A450 2C 1B 00 00 */ cmpwi r27, 0 /* 8030E7F4 0030A454 3A B5 00 01 */ addi r21, r21, 1 /* 8030E7F8 0030A458 40 82 00 28 */ bne lbl_8030E820 /* 8030E7FC 0030A45C 2C 1E 00 00 */ cmpwi r30, 0 /* 8030E800 0030A460 40 82 00 20 */ bne lbl_8030E820 /* 8030E804 0030A464 28 15 00 02 */ cmplwi r21, 2 /* 8030E808 0030A468 40 81 00 18 */ ble lbl_8030E820 /* 8030E80C 0030A46C 7C 15 B0 40 */ cmplw r21, r22 /* 8030E810 0030A470 40 82 00 10 */ bne lbl_8030E820 /* 8030E814 0030A474 7F 56 D3 78 */ mr r22, r26 /* 8030E818 0030A478 3A A0 00 02 */ li r21, 2 /* 8030E81C 0030A47C 3B 60 00 01 */ li r27, 1 lbl_8030E820: /* 8030E820 0030A480 7C 15 B0 40 */ cmplw r21, r22 /* 8030E824 0030A484 40 81 FE F0 */ ble lbl_8030E714 /* 8030E828 0030A488 7C 1C F0 40 */ cmplw r28, r30 /* 8030E82C 0030A48C 40 80 00 0C */ bge lbl_8030E838 /* 8030E830 0030A490 83 B8 00 00 */ lwz r29, 0(r24) /* 8030E834 0030A494 7F DC F3 78 */ mr r28, r30 lbl_8030E838: /* 8030E838 0030A498 2C 1C 00 00 */ cmpwi r28, 0 /* 8030E83C 0030A49C 41 82 00 14 */ beq lbl_8030E850 /* 8030E840 0030A4A0 7C 7C EA 14 */ add r3, r28, r29 /* 8030E844 0030A4A4 93 B8 00 00 */ stw r29, 0(r24) /* 8030E848 0030A4A8 38 03 FF FF */ addi r0, r3, -1 /* 8030E84C 0030A4AC 90 19 00 00 */ stw r0, 0(r25) lbl_8030E850: /* 8030E850 0030A4B0 38 60 00 00 */ li r3, 0 lbl_8030E854: /* 8030E854 0030A4B4 39 61 00 50 */ addi r11, r1, 0x50 /* 8030E858 0030A4B8 4B EB 88 FD */ bl _restgpr_19 /* 8030E85C 0030A4BC 80 01 00 54 */ lwz r0, 0x54(r1) /* 8030E860 0030A4C0 7C 08 03 A6 */ mtlr r0 /* 8030E864 0030A4C4 38 21 00 50 */ addi r1, r1, 0x50 /* 8030E868 0030A4C8 4E 80 00 20 */ blr .global VFiPFFAT_FindClusterLink VFiPFFAT_FindClusterLink: /* 8030E86C 0030A4CC 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8030E870 0030A4D0 7C 08 02 A6 */ mflr r0 /* 8030E874 0030A4D4 90 01 00 34 */ stw r0, 0x34(r1) /* 8030E878 0030A4D8 39 61 00 30 */ addi r11, r1, 0x30 /* 8030E87C 0030A4DC 4B EB 88 AD */ bl _savegpr_27 /* 8030E880 0030A4E0 38 E0 FF FF */ li r7, -1 /* 8030E884 0030A4E4 38 00 00 00 */ li r0, 0 /* 8030E888 0030A4E8 90 E1 00 0C */ stw r7, 0xc(r1) /* 8030E88C 0030A4EC 7C 7B 1B 78 */ mr r27, r3 /* 8030E890 0030A4F0 7C BE 2B 78 */ mr r30, r5 /* 8030E894 0030A4F4 7C DF 33 78 */ mr r31, r6 /* 8030E898 0030A4F8 90 06 00 00 */ stw r0, 0(r6) /* 8030E89C 0030A4FC 80 03 00 24 */ lwz r0, 0x24(r3) /* 8030E8A0 0030A500 2C 00 00 00 */ cmpwi r0, 0 /* 8030E8A4 0030A504 40 82 00 0C */ bne lbl_8030E8B0 /* 8030E8A8 0030A508 38 60 00 00 */ li r3, 0 /* 8030E8AC 0030A50C 48 00 01 64 */ b lbl_8030EA10 lbl_8030E8B0: /* 8030E8B0 0030A510 80 03 00 2C */ lwz r0, 0x2c(r3) /* 8030E8B4 0030A514 7C 00 20 40 */ cmplw r0, r4 /* 8030E8B8 0030A518 41 80 01 4C */ blt lbl_8030EA04 /* 8030E8BC 0030A51C A0 E3 00 20 */ lhz r7, 0x20(r3) /* 8030E8C0 0030A520 38 07 00 01 */ addi r0, r7, 1 /* 8030E8C4 0030A524 7C E4 03 96 */ divwu r7, r4, r0 /* 8030E8C8 0030A528 7C 07 01 D6 */ mullw r0, r7, r0 /* 8030E8CC 0030A52C 7F 80 20 51 */ subf. r28, r0, r4 /* 8030E8D0 0030A530 40 82 00 20 */ bne lbl_8030E8F0 /* 8030E8D4 0030A534 80 83 00 1C */ lwz r4, 0x1c(r3) /* 8030E8D8 0030A538 54 E3 10 3A */ slwi r3, r7, 2 /* 8030E8DC 0030A53C 38 00 00 01 */ li r0, 1 /* 8030E8E0 0030A540 7C 64 18 2E */ lwzx r3, r4, r3 /* 8030E8E4 0030A544 90 65 00 00 */ stw r3, 0(r5) /* 8030E8E8 0030A548 90 06 00 00 */ stw r0, 0(r6) /* 8030E8EC 0030A54C 48 00 01 20 */ b lbl_8030EA0C lbl_8030E8F0: /* 8030E8F0 0030A550 80 A3 00 1C */ lwz r5, 0x1c(r3) /* 8030E8F4 0030A554 54 E0 10 3A */ slwi r0, r7, 2 /* 8030E8F8 0030A558 80 63 00 34 */ lwz r3, 0x34(r3) /* 8030E8FC 0030A55C 38 81 00 08 */ addi r4, r1, 8 /* 8030E900 0030A560 7F A5 00 2E */ lwzx r29, r5, r0 /* 8030E904 0030A564 7F A5 EB 78 */ mr r5, r29 /* 8030E908 0030A568 4B FF FC 31 */ bl VFiPFFAT_ReadFATSector /* 8030E90C 0030A56C 2C 03 00 00 */ cmpwi r3, 0 /* 8030E910 0030A570 41 82 00 9C */ beq lbl_8030E9AC /* 8030E914 0030A574 48 00 00 FC */ b lbl_8030EA10 /* 8030E918 0030A578 48 00 00 94 */ b lbl_8030E9AC lbl_8030E91C: /* 8030E91C 0030A57C 80 7B 00 34 */ lwz r3, 0x34(r27) /* 8030E920 0030A580 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8030E924 0030A584 2C 00 00 01 */ cmpwi r0, 1 /* 8030E928 0030A588 41 82 00 34 */ beq lbl_8030E95C /* 8030E92C 0030A58C 40 80 00 10 */ bge lbl_8030E93C /* 8030E930 0030A590 2C 00 00 00 */ cmpwi r0, 0 /* 8030E934 0030A594 40 80 00 14 */ bge lbl_8030E948 /* 8030E938 0030A598 48 00 00 4C */ b lbl_8030E984 lbl_8030E93C: /* 8030E93C 0030A59C 2C 00 00 03 */ cmpwi r0, 3 /* 8030E940 0030A5A0 40 80 00 44 */ bge lbl_8030E984 /* 8030E944 0030A5A4 48 00 00 2C */ b lbl_8030E970 lbl_8030E948: /* 8030E948 0030A5A8 57 A4 04 3E */ clrlwi r4, r29, 0x10 /* 8030E94C 0030A5AC 38 A1 00 0C */ addi r5, r1, 0xc /* 8030E950 0030A5B0 38 C1 00 08 */ addi r6, r1, 8 /* 8030E954 0030A5B4 48 00 2A 01 */ bl VFiPFFAT12_ReadFATEntryPage /* 8030E958 0030A5B8 48 00 00 30 */ b lbl_8030E988 lbl_8030E95C: /* 8030E95C 0030A5BC 7F A4 EB 78 */ mr r4, r29 /* 8030E960 0030A5C0 38 A1 00 0C */ addi r5, r1, 0xc /* 8030E964 0030A5C4 38 C1 00 08 */ addi r6, r1, 8 /* 8030E968 0030A5C8 48 00 34 55 */ bl VFiPFFAT16_ReadFATEntryPage /* 8030E96C 0030A5CC 48 00 00 1C */ b lbl_8030E988 lbl_8030E970: /* 8030E970 0030A5D0 7F A4 EB 78 */ mr r4, r29 /* 8030E974 0030A5D4 38 A1 00 0C */ addi r5, r1, 0xc /* 8030E978 0030A5D8 38 C1 00 08 */ addi r6, r1, 8 /* 8030E97C 0030A5DC 48 00 39 C9 */ bl VFiPFFAT32_ReadFATEntryPage /* 8030E980 0030A5E0 48 00 00 08 */ b lbl_8030E988 lbl_8030E984: /* 8030E984 0030A5E4 38 60 00 0F */ li r3, 0xf lbl_8030E988: /* 8030E988 0030A5E8 2C 03 00 00 */ cmpwi r3, 0 /* 8030E98C 0030A5EC 41 82 00 08 */ beq lbl_8030E994 /* 8030E990 0030A5F0 48 00 00 80 */ b lbl_8030EA10 lbl_8030E994: /* 8030E994 0030A5F4 83 A1 00 0C */ lwz r29, 0xc(r1) /* 8030E998 0030A5F8 2C 1D 00 00 */ cmpwi r29, 0 /* 8030E99C 0030A5FC 40 82 00 0C */ bne lbl_8030E9A8 /* 8030E9A0 0030A600 38 60 00 0D */ li r3, 0xd /* 8030E9A4 0030A604 48 00 00 6C */ b lbl_8030EA10 lbl_8030E9A8: /* 8030E9A8 0030A608 3B 9C FF FF */ addi r28, r28, -1 lbl_8030E9AC: /* 8030E9AC 0030A60C 2C 1C 00 00 */ cmpwi r28, 0 /* 8030E9B0 0030A610 40 82 FF 6C */ bne lbl_8030E91C /* 8030E9B4 0030A614 80 A1 00 0C */ lwz r5, 0xc(r1) /* 8030E9B8 0030A618 2C 05 00 00 */ cmpwi r5, 0 /* 8030E9BC 0030A61C 40 82 00 0C */ bne lbl_8030E9C8 /* 8030E9C0 0030A620 38 60 00 0D */ li r3, 0xd /* 8030E9C4 0030A624 48 00 00 4C */ b lbl_8030EA10 lbl_8030E9C8: /* 8030E9C8 0030A628 80 7B 00 34 */ lwz r3, 0x34(r27) /* 8030E9CC 0030A62C 3C 80 80 40 */ lis r4, lbl_803FE280@ha /* 8030E9D0 0030A630 38 84 E2 80 */ addi r4, r4, lbl_803FE280@l /* 8030E9D4 0030A634 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8030E9D8 0030A638 1C 00 00 14 */ mulli r0, r0, 0x14 /* 8030E9DC 0030A63C 7C 64 02 14 */ add r3, r4, r0 /* 8030E9E0 0030A640 80 03 00 08 */ lwz r0, 8(r3) /* 8030E9E4 0030A644 7C 05 00 40 */ cmplw r5, r0 /* 8030E9E8 0030A648 40 82 00 0C */ bne lbl_8030E9F4 /* 8030E9EC 0030A64C 38 60 00 00 */ li r3, 0 /* 8030E9F0 0030A650 48 00 00 20 */ b lbl_8030EA10 lbl_8030E9F4: /* 8030E9F4 0030A654 90 BE 00 00 */ stw r5, 0(r30) /* 8030E9F8 0030A658 38 00 00 01 */ li r0, 1 /* 8030E9FC 0030A65C 90 1F 00 00 */ stw r0, 0(r31) /* 8030EA00 0030A660 48 00 00 0C */ b lbl_8030EA0C lbl_8030EA04: /* 8030EA04 0030A664 38 60 00 00 */ li r3, 0 /* 8030EA08 0030A668 48 00 00 08 */ b lbl_8030EA10 lbl_8030EA0C: /* 8030EA0C 0030A66C 38 60 00 00 */ li r3, 0 lbl_8030EA10: /* 8030EA10 0030A670 39 61 00 30 */ addi r11, r1, 0x30 /* 8030EA14 0030A674 4B EB 87 61 */ bl _restgpr_27 /* 8030EA18 0030A678 80 01 00 34 */ lwz r0, 0x34(r1) /* 8030EA1C 0030A67C 7C 08 03 A6 */ mtlr r0 /* 8030EA20 0030A680 38 21 00 30 */ addi r1, r1, 0x30 /* 8030EA24 0030A684 4E 80 00 20 */ blr .global VFiPFFAT_FindClusterLinkPage VFiPFFAT_FindClusterLinkPage: /* 8030EA28 0030A688 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8030EA2C 0030A68C 7C 08 02 A6 */ mflr r0 /* 8030EA30 0030A690 39 00 FF FF */ li r8, -1 /* 8030EA34 0030A694 90 01 00 24 */ stw r0, 0x24(r1) /* 8030EA38 0030A698 38 00 00 00 */ li r0, 0 /* 8030EA3C 0030A69C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8030EA40 0030A6A0 7C DF 33 78 */ mr r31, r6 /* 8030EA44 0030A6A4 93 C1 00 18 */ stw r30, 0x18(r1) /* 8030EA48 0030A6A8 7C BE 2B 78 */ mr r30, r5 /* 8030EA4C 0030A6AC 93 A1 00 14 */ stw r29, 0x14(r1) /* 8030EA50 0030A6B0 93 81 00 10 */ stw r28, 0x10(r1) /* 8030EA54 0030A6B4 7C 7C 1B 78 */ mr r28, r3 /* 8030EA58 0030A6B8 90 E1 00 08 */ stw r7, 8(r1) /* 8030EA5C 0030A6BC 91 01 00 0C */ stw r8, 0xc(r1) /* 8030EA60 0030A6C0 90 06 00 00 */ stw r0, 0(r6) /* 8030EA64 0030A6C4 80 03 00 24 */ lwz r0, 0x24(r3) /* 8030EA68 0030A6C8 2C 00 00 00 */ cmpwi r0, 0 /* 8030EA6C 0030A6CC 40 82 00 0C */ bne lbl_8030EA78 /* 8030EA70 0030A6D0 38 60 00 00 */ li r3, 0 /* 8030EA74 0030A6D4 48 00 01 40 */ b lbl_8030EBB4 lbl_8030EA78: /* 8030EA78 0030A6D8 80 03 00 2C */ lwz r0, 0x2c(r3) /* 8030EA7C 0030A6DC 7C 00 20 40 */ cmplw r0, r4 /* 8030EA80 0030A6E0 41 80 01 28 */ blt lbl_8030EBA8 /* 8030EA84 0030A6E4 A0 E3 00 20 */ lhz r7, 0x20(r3) /* 8030EA88 0030A6E8 38 07 00 01 */ addi r0, r7, 1 /* 8030EA8C 0030A6EC 7C E4 03 96 */ divwu r7, r4, r0 /* 8030EA90 0030A6F0 7C 07 01 D6 */ mullw r0, r7, r0 /* 8030EA94 0030A6F4 7F A0 20 51 */ subf. r29, r0, r4 /* 8030EA98 0030A6F8 40 82 00 20 */ bne lbl_8030EAB8 /* 8030EA9C 0030A6FC 80 83 00 1C */ lwz r4, 0x1c(r3) /* 8030EAA0 0030A700 54 E3 10 3A */ slwi r3, r7, 2 /* 8030EAA4 0030A704 38 00 00 01 */ li r0, 1 /* 8030EAA8 0030A708 7C 64 18 2E */ lwzx r3, r4, r3 /* 8030EAAC 0030A70C 90 65 00 00 */ stw r3, 0(r5) /* 8030EAB0 0030A710 90 06 00 00 */ stw r0, 0(r6) /* 8030EAB4 0030A714 48 00 00 FC */ b lbl_8030EBB0 lbl_8030EAB8: /* 8030EAB8 0030A718 80 63 00 1C */ lwz r3, 0x1c(r3) /* 8030EABC 0030A71C 54 E0 10 3A */ slwi r0, r7, 2 /* 8030EAC0 0030A720 7C 83 00 2E */ lwzx r4, r3, r0 /* 8030EAC4 0030A724 48 00 00 8C */ b lbl_8030EB50 lbl_8030EAC8: /* 8030EAC8 0030A728 80 7C 00 34 */ lwz r3, 0x34(r28) /* 8030EACC 0030A72C 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8030EAD0 0030A730 2C 00 00 01 */ cmpwi r0, 1 /* 8030EAD4 0030A734 41 82 00 34 */ beq lbl_8030EB08 /* 8030EAD8 0030A738 40 80 00 10 */ bge lbl_8030EAE8 /* 8030EADC 0030A73C 2C 00 00 00 */ cmpwi r0, 0 /* 8030EAE0 0030A740 40 80 00 14 */ bge lbl_8030EAF4 /* 8030EAE4 0030A744 48 00 00 44 */ b lbl_8030EB28 lbl_8030EAE8: /* 8030EAE8 0030A748 2C 00 00 03 */ cmpwi r0, 3 /* 8030EAEC 0030A74C 40 80 00 3C */ bge lbl_8030EB28 /* 8030EAF0 0030A750 48 00 00 28 */ b lbl_8030EB18 lbl_8030EAF4: /* 8030EAF4 0030A754 54 84 04 3E */ clrlwi r4, r4, 0x10 /* 8030EAF8 0030A758 38 A1 00 0C */ addi r5, r1, 0xc /* 8030EAFC 0030A75C 38 C1 00 08 */ addi r6, r1, 8 /* 8030EB00 0030A760 48 00 28 55 */ bl VFiPFFAT12_ReadFATEntryPage /* 8030EB04 0030A764 48 00 00 28 */ b lbl_8030EB2C lbl_8030EB08: /* 8030EB08 0030A768 38 A1 00 0C */ addi r5, r1, 0xc /* 8030EB0C 0030A76C 38 C1 00 08 */ addi r6, r1, 8 /* 8030EB10 0030A770 48 00 32 AD */ bl VFiPFFAT16_ReadFATEntryPage /* 8030EB14 0030A774 48 00 00 18 */ b lbl_8030EB2C lbl_8030EB18: /* 8030EB18 0030A778 38 A1 00 0C */ addi r5, r1, 0xc /* 8030EB1C 0030A77C 38 C1 00 08 */ addi r6, r1, 8 /* 8030EB20 0030A780 48 00 38 25 */ bl VFiPFFAT32_ReadFATEntryPage /* 8030EB24 0030A784 48 00 00 08 */ b lbl_8030EB2C lbl_8030EB28: /* 8030EB28 0030A788 38 60 00 0F */ li r3, 0xf lbl_8030EB2C: /* 8030EB2C 0030A78C 2C 03 00 00 */ cmpwi r3, 0 /* 8030EB30 0030A790 41 82 00 08 */ beq lbl_8030EB38 /* 8030EB34 0030A794 48 00 00 80 */ b lbl_8030EBB4 lbl_8030EB38: /* 8030EB38 0030A798 80 81 00 0C */ lwz r4, 0xc(r1) /* 8030EB3C 0030A79C 2C 04 00 00 */ cmpwi r4, 0 /* 8030EB40 0030A7A0 40 82 00 0C */ bne lbl_8030EB4C /* 8030EB44 0030A7A4 38 60 00 0D */ li r3, 0xd /* 8030EB48 0030A7A8 48 00 00 6C */ b lbl_8030EBB4 lbl_8030EB4C: /* 8030EB4C 0030A7AC 3B BD FF FF */ addi r29, r29, -1 lbl_8030EB50: /* 8030EB50 0030A7B0 2C 1D 00 00 */ cmpwi r29, 0 /* 8030EB54 0030A7B4 40 82 FF 74 */ bne lbl_8030EAC8 /* 8030EB58 0030A7B8 80 A1 00 0C */ lwz r5, 0xc(r1) /* 8030EB5C 0030A7BC 2C 05 00 00 */ cmpwi r5, 0 /* 8030EB60 0030A7C0 40 82 00 0C */ bne lbl_8030EB6C /* 8030EB64 0030A7C4 38 60 00 0D */ li r3, 0xd /* 8030EB68 0030A7C8 48 00 00 4C */ b lbl_8030EBB4 lbl_8030EB6C: /* 8030EB6C 0030A7CC 80 7C 00 34 */ lwz r3, 0x34(r28) /* 8030EB70 0030A7D0 3C 80 80 40 */ lis r4, lbl_803FE280@ha /* 8030EB74 0030A7D4 38 84 E2 80 */ addi r4, r4, lbl_803FE280@l /* 8030EB78 0030A7D8 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8030EB7C 0030A7DC 1C 00 00 14 */ mulli r0, r0, 0x14 /* 8030EB80 0030A7E0 7C 64 02 14 */ add r3, r4, r0 /* 8030EB84 0030A7E4 80 03 00 08 */ lwz r0, 8(r3) /* 8030EB88 0030A7E8 7C 05 00 40 */ cmplw r5, r0 /* 8030EB8C 0030A7EC 40 82 00 0C */ bne lbl_8030EB98 /* 8030EB90 0030A7F0 38 60 00 00 */ li r3, 0 /* 8030EB94 0030A7F4 48 00 00 20 */ b lbl_8030EBB4 lbl_8030EB98: /* 8030EB98 0030A7F8 90 BE 00 00 */ stw r5, 0(r30) /* 8030EB9C 0030A7FC 38 00 00 01 */ li r0, 1 /* 8030EBA0 0030A800 90 1F 00 00 */ stw r0, 0(r31) /* 8030EBA4 0030A804 48 00 00 0C */ b lbl_8030EBB0 lbl_8030EBA8: /* 8030EBA8 0030A808 38 60 00 00 */ li r3, 0 /* 8030EBAC 0030A80C 48 00 00 08 */ b lbl_8030EBB4 lbl_8030EBB0: /* 8030EBB0 0030A810 38 60 00 00 */ li r3, 0 lbl_8030EBB4: /* 8030EBB4 0030A814 80 01 00 24 */ lwz r0, 0x24(r1) /* 8030EBB8 0030A818 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8030EBBC 0030A81C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8030EBC0 0030A820 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8030EBC4 0030A824 83 81 00 10 */ lwz r28, 0x10(r1) /* 8030EBC8 0030A828 7C 08 03 A6 */ mtlr r0 /* 8030EBCC 0030A82C 38 21 00 20 */ addi r1, r1, 0x20 /* 8030EBD0 0030A830 4E 80 00 20 */ blr .global VFiPFFAT_ReadClusterPage VFiPFFAT_ReadClusterPage: /* 8030EBD4 0030A834 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8030EBD8 0030A838 7C 08 02 A6 */ mflr r0 /* 8030EBDC 0030A83C 90 01 00 24 */ stw r0, 0x24(r1) /* 8030EBE0 0030A840 39 61 00 20 */ addi r11, r1, 0x20 /* 8030EBE4 0030A844 4B EB 85 41 */ bl _savegpr_26 /* 8030EBE8 0030A848 38 00 FF FF */ li r0, -1 /* 8030EBEC 0030A84C 7C 7E 1B 78 */ mr r30, r3 /* 8030EBF0 0030A850 90 06 00 00 */ stw r0, 0(r6) /* 8030EBF4 0030A854 7C 9A 23 78 */ mr r26, r4 /* 8030EBF8 0030A858 7C BF 2B 78 */ mr r31, r5 /* 8030EBFC 0030A85C 7C DB 33 78 */ mr r27, r6 /* 8030EC00 0030A860 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8030EC04 0030A864 7C FC 3B 78 */ mr r28, r7 /* 8030EC08 0030A868 7D 1D 43 78 */ mr r29, r8 /* 8030EC0C 0030A86C 2C 00 00 00 */ cmpwi r0, 0 /* 8030EC10 0030A870 41 82 00 30 */ beq lbl_8030EC40 /* 8030EC14 0030A874 80 07 00 00 */ lwz r0, 0(r7) /* 8030EC18 0030A878 28 00 00 01 */ cmplwi r0, 1 /* 8030EC1C 0030A87C 40 82 00 24 */ bne lbl_8030EC40 /* 8030EC20 0030A880 80 E8 00 00 */ lwz r7, 0(r8) /* 8030EC24 0030A884 7F E4 FB 78 */ mr r4, r31 /* 8030EC28 0030A888 7F 65 DB 78 */ mr r5, r27 /* 8030EC2C 0030A88C 7F 86 E3 78 */ mr r6, r28 /* 8030EC30 0030A890 4B FF FD F9 */ bl VFiPFFAT_FindClusterLinkPage /* 8030EC34 0030A894 2C 03 00 00 */ cmpwi r3, 0 /* 8030EC38 0030A898 41 82 00 08 */ beq lbl_8030EC40 /* 8030EC3C 0030A89C 48 00 01 4C */ b lbl_8030ED88 lbl_8030EC40: /* 8030EC40 0030A8A0 80 1E 00 1C */ lwz r0, 0x1c(r30) /* 8030EC44 0030A8A4 2C 00 00 00 */ cmpwi r0, 0 /* 8030EC48 0030A8A8 41 82 00 10 */ beq lbl_8030EC58 /* 8030EC4C 0030A8AC 80 1C 00 00 */ lwz r0, 0(r28) /* 8030EC50 0030A8B0 2C 00 00 00 */ cmpwi r0, 0 /* 8030EC54 0030A8B4 40 82 01 30 */ bne lbl_8030ED84 lbl_8030EC58: /* 8030EC58 0030A8B8 80 7E 00 34 */ lwz r3, 0x34(r30) /* 8030EC5C 0030A8BC 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8030EC60 0030A8C0 2C 00 00 01 */ cmpwi r0, 1 /* 8030EC64 0030A8C4 41 82 00 34 */ beq lbl_8030EC98 /* 8030EC68 0030A8C8 40 80 00 10 */ bge lbl_8030EC78 /* 8030EC6C 0030A8CC 2C 00 00 00 */ cmpwi r0, 0 /* 8030EC70 0030A8D0 40 80 00 14 */ bge lbl_8030EC84 /* 8030EC74 0030A8D4 48 00 00 4C */ b lbl_8030ECC0 lbl_8030EC78: /* 8030EC78 0030A8D8 2C 00 00 03 */ cmpwi r0, 3 /* 8030EC7C 0030A8DC 40 80 00 44 */ bge lbl_8030ECC0 /* 8030EC80 0030A8E0 48 00 00 2C */ b lbl_8030ECAC lbl_8030EC84: /* 8030EC84 0030A8E4 7F 65 DB 78 */ mr r5, r27 /* 8030EC88 0030A8E8 7F A6 EB 78 */ mr r6, r29 /* 8030EC8C 0030A8EC 57 44 04 3E */ clrlwi r4, r26, 0x10 /* 8030EC90 0030A8F0 48 00 26 C5 */ bl VFiPFFAT12_ReadFATEntryPage /* 8030EC94 0030A8F4 48 00 00 30 */ b lbl_8030ECC4 lbl_8030EC98: /* 8030EC98 0030A8F8 7F 44 D3 78 */ mr r4, r26 /* 8030EC9C 0030A8FC 7F 65 DB 78 */ mr r5, r27 /* 8030ECA0 0030A900 7F A6 EB 78 */ mr r6, r29 /* 8030ECA4 0030A904 48 00 31 19 */ bl VFiPFFAT16_ReadFATEntryPage /* 8030ECA8 0030A908 48 00 00 1C */ b lbl_8030ECC4 lbl_8030ECAC: /* 8030ECAC 0030A90C 7F 44 D3 78 */ mr r4, r26 /* 8030ECB0 0030A910 7F 65 DB 78 */ mr r5, r27 /* 8030ECB4 0030A914 7F A6 EB 78 */ mr r6, r29 /* 8030ECB8 0030A918 48 00 36 8D */ bl VFiPFFAT32_ReadFATEntryPage /* 8030ECBC 0030A91C 48 00 00 08 */ b lbl_8030ECC4 lbl_8030ECC0: /* 8030ECC0 0030A920 38 60 00 0F */ li r3, 0xf lbl_8030ECC4: /* 8030ECC4 0030A924 2C 03 00 00 */ cmpwi r3, 0 /* 8030ECC8 0030A928 41 82 00 08 */ beq lbl_8030ECD0 /* 8030ECCC 0030A92C 48 00 00 BC */ b lbl_8030ED88 lbl_8030ECD0: /* 8030ECD0 0030A930 80 DB 00 00 */ lwz r6, 0(r27) /* 8030ECD4 0030A934 2C 06 00 00 */ cmpwi r6, 0 /* 8030ECD8 0030A938 40 82 00 0C */ bne lbl_8030ECE4 /* 8030ECDC 0030A93C 38 60 00 0D */ li r3, 0xd /* 8030ECE0 0030A940 48 00 00 A8 */ b lbl_8030ED88 lbl_8030ECE4: /* 8030ECE4 0030A944 3C 06 00 01 */ addis r0, r6, 1 /* 8030ECE8 0030A948 28 00 FF FF */ cmplwi r0, 0xffff /* 8030ECEC 0030A94C 40 82 00 0C */ bne lbl_8030ECF8 /* 8030ECF0 0030A950 38 60 00 06 */ li r3, 6 /* 8030ECF4 0030A954 48 00 00 94 */ b lbl_8030ED88 lbl_8030ECF8: /* 8030ECF8 0030A958 80 BE 00 1C */ lwz r5, 0x1c(r30) /* 8030ECFC 0030A95C 2C 05 00 00 */ cmpwi r5, 0 /* 8030ED00 0030A960 41 82 00 84 */ beq lbl_8030ED84 /* 8030ED04 0030A964 80 7E 00 34 */ lwz r3, 0x34(r30) /* 8030ED08 0030A968 3C 80 80 40 */ lis r4, lbl_803FE280@ha /* 8030ED0C 0030A96C 38 84 E2 80 */ addi r4, r4, lbl_803FE280@l /* 8030ED10 0030A970 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8030ED14 0030A974 1C 00 00 14 */ mulli r0, r0, 0x14 /* 8030ED18 0030A978 7C 64 02 14 */ add r3, r4, r0 /* 8030ED1C 0030A97C 80 03 00 08 */ lwz r0, 8(r3) /* 8030ED20 0030A980 7C 06 00 40 */ cmplw r6, r0 /* 8030ED24 0030A984 41 82 00 60 */ beq lbl_8030ED84 /* 8030ED28 0030A988 80 9E 00 24 */ lwz r4, 0x24(r30) /* 8030ED2C 0030A98C 80 1E 00 28 */ lwz r0, 0x28(r30) /* 8030ED30 0030A990 7C 00 20 40 */ cmplw r0, r4 /* 8030ED34 0030A994 40 81 00 50 */ ble lbl_8030ED84 /* 8030ED38 0030A998 2C 00 00 00 */ cmpwi r0, 0 /* 8030ED3C 0030A99C 41 82 00 48 */ beq lbl_8030ED84 /* 8030ED40 0030A9A0 A0 7E 00 20 */ lhz r3, 0x20(r30) /* 8030ED44 0030A9A4 38 03 00 01 */ addi r0, r3, 1 /* 8030ED48 0030A9A8 7C 04 01 D6 */ mullw r0, r4, r0 /* 8030ED4C 0030A9AC 7C 1F 00 40 */ cmplw r31, r0 /* 8030ED50 0030A9B0 40 82 00 24 */ bne lbl_8030ED74 /* 8030ED54 0030A9B4 38 60 00 00 */ li r3, 0 /* 8030ED58 0030A9B8 54 80 10 3A */ slwi r0, r4, 2 /* 8030ED5C 0030A9BC B0 7E 00 22 */ sth r3, 0x22(r30) /* 8030ED60 0030A9C0 7C C5 01 2E */ stwx r6, r5, r0 /* 8030ED64 0030A9C4 80 7E 00 24 */ lwz r3, 0x24(r30) /* 8030ED68 0030A9C8 38 03 00 01 */ addi r0, r3, 1 /* 8030ED6C 0030A9CC 90 1E 00 24 */ stw r0, 0x24(r30) /* 8030ED70 0030A9D0 48 00 00 10 */ b lbl_8030ED80 lbl_8030ED74: /* 8030ED74 0030A9D4 A0 7E 00 22 */ lhz r3, 0x22(r30) /* 8030ED78 0030A9D8 38 03 00 01 */ addi r0, r3, 1 /* 8030ED7C 0030A9DC B0 1E 00 22 */ sth r0, 0x22(r30) lbl_8030ED80: /* 8030ED80 0030A9E0 93 FE 00 2C */ stw r31, 0x2c(r30) lbl_8030ED84: /* 8030ED84 0030A9E4 38 60 00 00 */ li r3, 0 lbl_8030ED88: /* 8030ED88 0030A9E8 39 61 00 20 */ addi r11, r1, 0x20 /* 8030ED8C 0030A9EC 4B EB 83 E5 */ bl _restgpr_26 /* 8030ED90 0030A9F0 80 01 00 24 */ lwz r0, 0x24(r1) /* 8030ED94 0030A9F4 7C 08 03 A6 */ mtlr r0 /* 8030ED98 0030A9F8 38 21 00 20 */ addi r1, r1, 0x20 /* 8030ED9C 0030A9FC 4E 80 00 20 */ blr .global VFiPFFAT_WriteCluster VFiPFFAT_WriteCluster: /* 8030EDA0 0030AA00 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8030EDA4 0030AA04 7C 08 02 A6 */ mflr r0 /* 8030EDA8 0030AA08 90 01 00 24 */ stw r0, 0x24(r1) /* 8030EDAC 0030AA0C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8030EDB0 0030AA10 7C BF 2B 78 */ mr r31, r5 /* 8030EDB4 0030AA14 93 C1 00 18 */ stw r30, 0x18(r1) /* 8030EDB8 0030AA18 7C 9E 23 78 */ mr r30, r4 /* 8030EDBC 0030AA1C 93 A1 00 14 */ stw r29, 0x14(r1) /* 8030EDC0 0030AA20 7C 7D 1B 78 */ mr r29, r3 /* 8030EDC4 0030AA24 93 81 00 10 */ stw r28, 0x10(r1) /* 8030EDC8 0030AA28 7C DC 33 78 */ mr r28, r6 /* 8030EDCC 0030AA2C 90 E1 00 08 */ stw r7, 8(r1) /* 8030EDD0 0030AA30 80 63 00 34 */ lwz r3, 0x34(r3) /* 8030EDD4 0030AA34 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8030EDD8 0030AA38 2C 00 00 01 */ cmpwi r0, 1 /* 8030EDDC 0030AA3C 41 82 00 40 */ beq lbl_8030EE1C /* 8030EDE0 0030AA40 40 80 00 10 */ bge lbl_8030EDF0 /* 8030EDE4 0030AA44 2C 00 00 00 */ cmpwi r0, 0 /* 8030EDE8 0030AA48 40 80 00 14 */ bge lbl_8030EDFC /* 8030EDEC 0030AA4C 48 00 00 70 */ b lbl_8030EE5C lbl_8030EDF0: /* 8030EDF0 0030AA50 2C 00 00 03 */ cmpwi r0, 3 /* 8030EDF4 0030AA54 40 80 00 68 */ bge lbl_8030EE5C /* 8030EDF8 0030AA58 48 00 00 40 */ b lbl_8030EE38 lbl_8030EDFC: /* 8030EDFC 0030AA5C 28 06 0F FF */ cmplwi r6, 0xfff /* 8030EE00 0030AA60 40 81 00 0C */ ble lbl_8030EE0C /* 8030EE04 0030AA64 38 60 00 10 */ li r3, 0x10 /* 8030EE08 0030AA68 48 00 00 58 */ b lbl_8030EE60 lbl_8030EE0C: /* 8030EE0C 0030AA6C 54 84 04 3E */ clrlwi r4, r4, 0x10 /* 8030EE10 0030AA70 54 C5 04 3E */ clrlwi r5, r6, 0x10 /* 8030EE14 0030AA74 48 00 28 15 */ bl VFiPFFAT12_WriteFATEntry /* 8030EE18 0030AA78 48 00 00 48 */ b lbl_8030EE60 lbl_8030EE1C: /* 8030EE1C 0030AA7C 28 06 FF FF */ cmplwi r6, 0xffff /* 8030EE20 0030AA80 40 81 00 0C */ ble lbl_8030EE2C /* 8030EE24 0030AA84 38 60 00 10 */ li r3, 0x10 /* 8030EE28 0030AA88 48 00 00 38 */ b lbl_8030EE60 lbl_8030EE2C: /* 8030EE2C 0030AA8C 7F 85 E3 78 */ mr r5, r28 /* 8030EE30 0030AA90 48 00 31 49 */ bl VFiPFFAT16_WriteFATEntry /* 8030EE34 0030AA94 48 00 00 2C */ b lbl_8030EE60 lbl_8030EE38: /* 8030EE38 0030AA98 3C A0 10 00 */ lis r5, 0x0FFFFFFF@ha /* 8030EE3C 0030AA9C 38 05 FF FF */ addi r0, r5, 0x0FFFFFFF@l /* 8030EE40 0030AAA0 7C 06 00 40 */ cmplw r6, r0 /* 8030EE44 0030AAA4 40 81 00 0C */ ble lbl_8030EE50 /* 8030EE48 0030AAA8 38 60 00 10 */ li r3, 0x10 /* 8030EE4C 0030AAAC 48 00 00 14 */ b lbl_8030EE60 lbl_8030EE50: /* 8030EE50 0030AAB0 7F 85 E3 78 */ mr r5, r28 /* 8030EE54 0030AAB4 48 00 36 BD */ bl VFiPFFAT32_WriteFATEntry /* 8030EE58 0030AAB8 48 00 00 08 */ b lbl_8030EE60 lbl_8030EE5C: /* 8030EE5C 0030AABC 38 60 00 0F */ li r3, 0xf lbl_8030EE60: /* 8030EE60 0030AAC0 2C 03 00 00 */ cmpwi r3, 0 /* 8030EE64 0030AAC4 41 82 00 08 */ beq lbl_8030EE6C /* 8030EE68 0030AAC8 48 00 01 3C */ b lbl_8030EFA4 lbl_8030EE6C: /* 8030EE6C 0030AACC 80 BD 00 1C */ lwz r5, 0x1c(r29) /* 8030EE70 0030AAD0 2C 05 00 00 */ cmpwi r5, 0 /* 8030EE74 0030AAD4 41 82 01 2C */ beq lbl_8030EFA0 /* 8030EE78 0030AAD8 80 01 00 08 */ lwz r0, 8(r1) /* 8030EE7C 0030AADC 28 00 00 01 */ cmplwi r0, 1 /* 8030EE80 0030AAE0 40 82 01 20 */ bne lbl_8030EFA0 /* 8030EE84 0030AAE4 2C 1C 00 00 */ cmpwi r28, 0 /* 8030EE88 0030AAE8 40 82 00 68 */ bne lbl_8030EEF0 /* 8030EE8C 0030AAEC A0 7D 00 20 */ lhz r3, 0x20(r29) /* 8030EE90 0030AAF0 80 1D 00 28 */ lwz r0, 0x28(r29) /* 8030EE94 0030AAF4 38 83 00 01 */ addi r4, r3, 1 /* 8030EE98 0030AAF8 7C 7F 23 96 */ divwu r3, r31, r4 /* 8030EE9C 0030AAFC 7C 00 18 40 */ cmplw r0, r3 /* 8030EEA0 0030AB00 41 80 01 00 */ blt lbl_8030EFA0 /* 8030EEA4 0030AB04 7C 03 21 D6 */ mullw r0, r3, r4 /* 8030EEA8 0030AB08 7C 00 F8 51 */ subf. r0, r0, r31 /* 8030EEAC 0030AB0C 40 82 00 10 */ bne lbl_8030EEBC /* 8030EEB0 0030AB10 54 60 10 3A */ slwi r0, r3, 2 /* 8030EEB4 0030AB14 38 60 00 00 */ li r3, 0 /* 8030EEB8 0030AB18 7C 65 01 2E */ stwx r3, r5, r0 lbl_8030EEBC: /* 8030EEBC 0030AB1C 80 1D 00 2C */ lwz r0, 0x2c(r29) /* 8030EEC0 0030AB20 7C 00 F8 40 */ cmplw r0, r31 /* 8030EEC4 0030AB24 41 80 00 DC */ blt lbl_8030EFA0 /* 8030EEC8 0030AB28 A0 7D 00 20 */ lhz r3, 0x20(r29) /* 8030EECC 0030AB2C 38 9F FF FF */ addi r4, r31, -1 /* 8030EED0 0030AB30 90 9D 00 2C */ stw r4, 0x2c(r29) /* 8030EED4 0030AB34 38 03 00 01 */ addi r0, r3, 1 /* 8030EED8 0030AB38 7C 64 03 96 */ divwu r3, r4, r0 /* 8030EEDC 0030AB3C 7C 03 01 D6 */ mullw r0, r3, r0 /* 8030EEE0 0030AB40 90 7D 00 24 */ stw r3, 0x24(r29) /* 8030EEE4 0030AB44 7C 00 20 50 */ subf r0, r0, r4 /* 8030EEE8 0030AB48 B0 1D 00 22 */ sth r0, 0x22(r29) /* 8030EEEC 0030AB4C 48 00 00 B4 */ b lbl_8030EFA0 lbl_8030EEF0: /* 8030EEF0 0030AB50 80 7D 00 34 */ lwz r3, 0x34(r29) /* 8030EEF4 0030AB54 3C 80 80 40 */ lis r4, lbl_803FE280@ha /* 8030EEF8 0030AB58 38 84 E2 80 */ addi r4, r4, lbl_803FE280@l /* 8030EEFC 0030AB5C 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8030EF00 0030AB60 1C 00 00 14 */ mulli r0, r0, 0x14 /* 8030EF04 0030AB64 7C 64 02 14 */ add r3, r4, r0 /* 8030EF08 0030AB68 80 03 00 08 */ lwz r0, 8(r3) /* 8030EF0C 0030AB6C 7C 1E 00 40 */ cmplw r30, r0 /* 8030EF10 0030AB70 41 82 00 90 */ beq lbl_8030EFA0 /* 8030EF14 0030AB74 7F A3 EB 78 */ mr r3, r29 /* 8030EF18 0030AB78 7F E4 FB 78 */ mr r4, r31 /* 8030EF1C 0030AB7C 38 A1 00 0C */ addi r5, r1, 0xc /* 8030EF20 0030AB80 38 C1 00 08 */ addi r6, r1, 8 /* 8030EF24 0030AB84 4B FF F9 49 */ bl VFiPFFAT_FindClusterLink /* 8030EF28 0030AB88 2C 03 00 00 */ cmpwi r3, 0 /* 8030EF2C 0030AB8C 41 82 00 08 */ beq lbl_8030EF34 /* 8030EF30 0030AB90 48 00 00 74 */ b lbl_8030EFA4 lbl_8030EF34: /* 8030EF34 0030AB94 80 01 00 08 */ lwz r0, 8(r1) /* 8030EF38 0030AB98 2C 00 00 00 */ cmpwi r0, 0 /* 8030EF3C 0030AB9C 40 82 00 64 */ bne lbl_8030EFA0 /* 8030EF40 0030ABA0 80 9D 00 24 */ lwz r4, 0x24(r29) /* 8030EF44 0030ABA4 80 1D 00 28 */ lwz r0, 0x28(r29) /* 8030EF48 0030ABA8 7C 00 20 40 */ cmplw r0, r4 /* 8030EF4C 0030ABAC 40 81 00 54 */ ble lbl_8030EFA0 /* 8030EF50 0030ABB0 2C 00 00 00 */ cmpwi r0, 0 /* 8030EF54 0030ABB4 41 82 00 4C */ beq lbl_8030EFA0 /* 8030EF58 0030ABB8 A0 7D 00 20 */ lhz r3, 0x20(r29) /* 8030EF5C 0030ABBC 38 03 00 01 */ addi r0, r3, 1 /* 8030EF60 0030ABC0 7C 04 01 D6 */ mullw r0, r4, r0 /* 8030EF64 0030ABC4 7C 1F 00 40 */ cmplw r31, r0 /* 8030EF68 0030ABC8 40 82 00 28 */ bne lbl_8030EF90 /* 8030EF6C 0030ABCC 38 00 00 00 */ li r0, 0 /* 8030EF70 0030ABD0 80 7D 00 1C */ lwz r3, 0x1c(r29) /* 8030EF74 0030ABD4 B0 1D 00 22 */ sth r0, 0x22(r29) /* 8030EF78 0030ABD8 54 80 10 3A */ slwi r0, r4, 2 /* 8030EF7C 0030ABDC 7F C3 01 2E */ stwx r30, r3, r0 /* 8030EF80 0030ABE0 80 7D 00 24 */ lwz r3, 0x24(r29) /* 8030EF84 0030ABE4 38 03 00 01 */ addi r0, r3, 1 /* 8030EF88 0030ABE8 90 1D 00 24 */ stw r0, 0x24(r29) /* 8030EF8C 0030ABEC 48 00 00 10 */ b lbl_8030EF9C lbl_8030EF90: /* 8030EF90 0030ABF0 A0 7D 00 22 */ lhz r3, 0x22(r29) /* 8030EF94 0030ABF4 38 03 00 01 */ addi r0, r3, 1 /* 8030EF98 0030ABF8 B0 1D 00 22 */ sth r0, 0x22(r29) lbl_8030EF9C: /* 8030EF9C 0030ABFC 93 FD 00 2C */ stw r31, 0x2c(r29) lbl_8030EFA0: /* 8030EFA0 0030AC00 38 60 00 00 */ li r3, 0 lbl_8030EFA4: /* 8030EFA4 0030AC04 80 01 00 24 */ lwz r0, 0x24(r1) /* 8030EFA8 0030AC08 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8030EFAC 0030AC0C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8030EFB0 0030AC10 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8030EFB4 0030AC14 83 81 00 10 */ lwz r28, 0x10(r1) /* 8030EFB8 0030AC18 7C 08 03 A6 */ mtlr r0 /* 8030EFBC 0030AC1C 38 21 00 20 */ addi r1, r1, 0x20 /* 8030EFC0 0030AC20 4E 80 00 20 */ blr .global VFiPFFAT_WriteClusterPage VFiPFFAT_WriteClusterPage: /* 8030EFC4 0030AC24 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8030EFC8 0030AC28 7C 08 02 A6 */ mflr r0 /* 8030EFCC 0030AC2C 90 01 00 34 */ stw r0, 0x34(r1) /* 8030EFD0 0030AC30 39 61 00 30 */ addi r11, r1, 0x30 /* 8030EFD4 0030AC34 4B EB 81 55 */ bl _savegpr_27 /* 8030EFD8 0030AC38 90 E1 00 08 */ stw r7, 8(r1) /* 8030EFDC 0030AC3C 7C 7D 1B 78 */ mr r29, r3 /* 8030EFE0 0030AC40 7C 9E 23 78 */ mr r30, r4 /* 8030EFE4 0030AC44 7C BF 2B 78 */ mr r31, r5 /* 8030EFE8 0030AC48 80 63 00 34 */ lwz r3, 0x34(r3) /* 8030EFEC 0030AC4C 7C DB 33 78 */ mr r27, r6 /* 8030EFF0 0030AC50 7D 1C 43 78 */ mr r28, r8 /* 8030EFF4 0030AC54 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8030EFF8 0030AC58 2C 00 00 01 */ cmpwi r0, 1 /* 8030EFFC 0030AC5C 41 82 00 44 */ beq lbl_8030F040 /* 8030F000 0030AC60 40 80 00 10 */ bge lbl_8030F010 /* 8030F004 0030AC64 2C 00 00 00 */ cmpwi r0, 0 /* 8030F008 0030AC68 40 80 00 14 */ bge lbl_8030F01C /* 8030F00C 0030AC6C 48 00 00 7C */ b lbl_8030F088 lbl_8030F010: /* 8030F010 0030AC70 2C 00 00 03 */ cmpwi r0, 3 /* 8030F014 0030AC74 40 80 00 74 */ bge lbl_8030F088 /* 8030F018 0030AC78 48 00 00 48 */ b lbl_8030F060 lbl_8030F01C: /* 8030F01C 0030AC7C 28 06 0F FF */ cmplwi r6, 0xfff /* 8030F020 0030AC80 40 81 00 0C */ ble lbl_8030F02C /* 8030F024 0030AC84 38 60 00 10 */ li r3, 0x10 /* 8030F028 0030AC88 48 00 00 64 */ b lbl_8030F08C lbl_8030F02C: /* 8030F02C 0030AC8C 54 C5 04 3E */ clrlwi r5, r6, 0x10 /* 8030F030 0030AC90 7F 86 E3 78 */ mr r6, r28 /* 8030F034 0030AC94 54 84 04 3E */ clrlwi r4, r4, 0x10 /* 8030F038 0030AC98 48 00 27 95 */ bl VFiPFFAT12_WriteFATEntryPage /* 8030F03C 0030AC9C 48 00 00 50 */ b lbl_8030F08C lbl_8030F040: /* 8030F040 0030ACA0 28 06 FF FF */ cmplwi r6, 0xffff /* 8030F044 0030ACA4 40 81 00 0C */ ble lbl_8030F050 /* 8030F048 0030ACA8 38 60 00 10 */ li r3, 0x10 /* 8030F04C 0030ACAC 48 00 00 40 */ b lbl_8030F08C lbl_8030F050: /* 8030F050 0030ACB0 7F 65 DB 78 */ mr r5, r27 /* 8030F054 0030ACB4 7F 86 E3 78 */ mr r6, r28 /* 8030F058 0030ACB8 48 00 2F B9 */ bl VFiPFFAT16_WriteFATEntryPage /* 8030F05C 0030ACBC 48 00 00 30 */ b lbl_8030F08C lbl_8030F060: /* 8030F060 0030ACC0 3C A0 10 00 */ lis r5, 0x0FFFFFFF@ha /* 8030F064 0030ACC4 38 05 FF FF */ addi r0, r5, 0x0FFFFFFF@l /* 8030F068 0030ACC8 7C 06 00 40 */ cmplw r6, r0 /* 8030F06C 0030ACCC 40 81 00 0C */ ble lbl_8030F078 /* 8030F070 0030ACD0 38 60 00 10 */ li r3, 0x10 /* 8030F074 0030ACD4 48 00 00 18 */ b lbl_8030F08C lbl_8030F078: /* 8030F078 0030ACD8 7F 65 DB 78 */ mr r5, r27 /* 8030F07C 0030ACDC 7F 86 E3 78 */ mr r6, r28 /* 8030F080 0030ACE0 48 00 35 B1 */ bl VFiPFFAT32_WriteFATEntryPage /* 8030F084 0030ACE4 48 00 00 08 */ b lbl_8030F08C lbl_8030F088: /* 8030F088 0030ACE8 38 60 00 0F */ li r3, 0xf lbl_8030F08C: /* 8030F08C 0030ACEC 2C 03 00 00 */ cmpwi r3, 0 /* 8030F090 0030ACF0 41 82 00 08 */ beq lbl_8030F098 /* 8030F094 0030ACF4 48 00 01 40 */ b lbl_8030F1D4 lbl_8030F098: /* 8030F098 0030ACF8 80 BD 00 1C */ lwz r5, 0x1c(r29) /* 8030F09C 0030ACFC 2C 05 00 00 */ cmpwi r5, 0 /* 8030F0A0 0030AD00 41 82 01 30 */ beq lbl_8030F1D0 /* 8030F0A4 0030AD04 80 01 00 08 */ lwz r0, 8(r1) /* 8030F0A8 0030AD08 28 00 00 01 */ cmplwi r0, 1 /* 8030F0AC 0030AD0C 40 82 01 24 */ bne lbl_8030F1D0 /* 8030F0B0 0030AD10 2C 1B 00 00 */ cmpwi r27, 0 /* 8030F0B4 0030AD14 40 82 00 68 */ bne lbl_8030F11C /* 8030F0B8 0030AD18 A0 7D 00 20 */ lhz r3, 0x20(r29) /* 8030F0BC 0030AD1C 80 1D 00 28 */ lwz r0, 0x28(r29) /* 8030F0C0 0030AD20 38 83 00 01 */ addi r4, r3, 1 /* 8030F0C4 0030AD24 7C 7F 23 96 */ divwu r3, r31, r4 /* 8030F0C8 0030AD28 7C 00 18 40 */ cmplw r0, r3 /* 8030F0CC 0030AD2C 41 80 01 04 */ blt lbl_8030F1D0 /* 8030F0D0 0030AD30 7C 03 21 D6 */ mullw r0, r3, r4 /* 8030F0D4 0030AD34 7C 00 F8 51 */ subf. r0, r0, r31 /* 8030F0D8 0030AD38 40 82 00 10 */ bne lbl_8030F0E8 /* 8030F0DC 0030AD3C 54 60 10 3A */ slwi r0, r3, 2 /* 8030F0E0 0030AD40 38 60 00 00 */ li r3, 0 /* 8030F0E4 0030AD44 7C 65 01 2E */ stwx r3, r5, r0 lbl_8030F0E8: /* 8030F0E8 0030AD48 80 1D 00 2C */ lwz r0, 0x2c(r29) /* 8030F0EC 0030AD4C 7C 00 F8 40 */ cmplw r0, r31 /* 8030F0F0 0030AD50 41 80 00 E0 */ blt lbl_8030F1D0 /* 8030F0F4 0030AD54 A0 7D 00 20 */ lhz r3, 0x20(r29) /* 8030F0F8 0030AD58 38 9F FF FF */ addi r4, r31, -1 /* 8030F0FC 0030AD5C 90 9D 00 2C */ stw r4, 0x2c(r29) /* 8030F100 0030AD60 38 03 00 01 */ addi r0, r3, 1 /* 8030F104 0030AD64 7C 64 03 96 */ divwu r3, r4, r0 /* 8030F108 0030AD68 7C 03 01 D6 */ mullw r0, r3, r0 /* 8030F10C 0030AD6C 90 7D 00 24 */ stw r3, 0x24(r29) /* 8030F110 0030AD70 7C 00 20 50 */ subf r0, r0, r4 /* 8030F114 0030AD74 B0 1D 00 22 */ sth r0, 0x22(r29) /* 8030F118 0030AD78 48 00 00 B8 */ b lbl_8030F1D0 lbl_8030F11C: /* 8030F11C 0030AD7C 80 7D 00 34 */ lwz r3, 0x34(r29) /* 8030F120 0030AD80 3C 80 80 40 */ lis r4, lbl_803FE280@ha /* 8030F124 0030AD84 38 84 E2 80 */ addi r4, r4, lbl_803FE280@l /* 8030F128 0030AD88 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8030F12C 0030AD8C 1C 00 00 14 */ mulli r0, r0, 0x14 /* 8030F130 0030AD90 7C 64 02 14 */ add r3, r4, r0 /* 8030F134 0030AD94 80 03 00 08 */ lwz r0, 8(r3) /* 8030F138 0030AD98 7C 1E 00 40 */ cmplw r30, r0 /* 8030F13C 0030AD9C 41 82 00 94 */ beq lbl_8030F1D0 /* 8030F140 0030ADA0 80 FC 00 00 */ lwz r7, 0(r28) /* 8030F144 0030ADA4 7F A3 EB 78 */ mr r3, r29 /* 8030F148 0030ADA8 7F E4 FB 78 */ mr r4, r31 /* 8030F14C 0030ADAC 38 A1 00 0C */ addi r5, r1, 0xc /* 8030F150 0030ADB0 38 C1 00 08 */ addi r6, r1, 8 /* 8030F154 0030ADB4 4B FF F8 D5 */ bl VFiPFFAT_FindClusterLinkPage /* 8030F158 0030ADB8 2C 03 00 00 */ cmpwi r3, 0 /* 8030F15C 0030ADBC 41 82 00 08 */ beq lbl_8030F164 /* 8030F160 0030ADC0 48 00 00 74 */ b lbl_8030F1D4 lbl_8030F164: /* 8030F164 0030ADC4 80 01 00 08 */ lwz r0, 8(r1) /* 8030F168 0030ADC8 2C 00 00 00 */ cmpwi r0, 0 /* 8030F16C 0030ADCC 40 82 00 64 */ bne lbl_8030F1D0 /* 8030F170 0030ADD0 80 9D 00 24 */ lwz r4, 0x24(r29) /* 8030F174 0030ADD4 80 1D 00 28 */ lwz r0, 0x28(r29) /* 8030F178 0030ADD8 7C 00 20 40 */ cmplw r0, r4 /* 8030F17C 0030ADDC 40 81 00 54 */ ble lbl_8030F1D0 /* 8030F180 0030ADE0 2C 00 00 00 */ cmpwi r0, 0 /* 8030F184 0030ADE4 41 82 00 4C */ beq lbl_8030F1D0 /* 8030F188 0030ADE8 A0 7D 00 20 */ lhz r3, 0x20(r29) /* 8030F18C 0030ADEC 38 03 00 01 */ addi r0, r3, 1 /* 8030F190 0030ADF0 7C 04 01 D6 */ mullw r0, r4, r0 /* 8030F194 0030ADF4 7C 1F 00 40 */ cmplw r31, r0 /* 8030F198 0030ADF8 40 82 00 28 */ bne lbl_8030F1C0 /* 8030F19C 0030ADFC 38 00 00 00 */ li r0, 0 /* 8030F1A0 0030AE00 80 7D 00 1C */ lwz r3, 0x1c(r29) /* 8030F1A4 0030AE04 B0 1D 00 22 */ sth r0, 0x22(r29) /* 8030F1A8 0030AE08 54 80 10 3A */ slwi r0, r4, 2 /* 8030F1AC 0030AE0C 7F C3 01 2E */ stwx r30, r3, r0 /* 8030F1B0 0030AE10 80 7D 00 24 */ lwz r3, 0x24(r29) /* 8030F1B4 0030AE14 38 03 00 01 */ addi r0, r3, 1 /* 8030F1B8 0030AE18 90 1D 00 24 */ stw r0, 0x24(r29) /* 8030F1BC 0030AE1C 48 00 00 10 */ b lbl_8030F1CC lbl_8030F1C0: /* 8030F1C0 0030AE20 A0 7D 00 22 */ lhz r3, 0x22(r29) /* 8030F1C4 0030AE24 38 03 00 01 */ addi r0, r3, 1 /* 8030F1C8 0030AE28 B0 1D 00 22 */ sth r0, 0x22(r29) lbl_8030F1CC: /* 8030F1CC 0030AE2C 93 FD 00 2C */ stw r31, 0x2c(r29) lbl_8030F1D0: /* 8030F1D0 0030AE30 38 60 00 00 */ li r3, 0 lbl_8030F1D4: /* 8030F1D4 0030AE34 39 61 00 30 */ addi r11, r1, 0x30 /* 8030F1D8 0030AE38 4B EB 7F 9D */ bl _restgpr_27 /* 8030F1DC 0030AE3C 80 01 00 34 */ lwz r0, 0x34(r1) /* 8030F1E0 0030AE40 7C 08 03 A6 */ mtlr r0 /* 8030F1E4 0030AE44 38 21 00 30 */ addi r1, r1, 0x30 /* 8030F1E8 0030AE48 4E 80 00 20 */ blr .global VFiPFFAT_DoAllocateChain VFiPFFAT_DoAllocateChain: /* 8030F1EC 0030AE4C 94 21 FF C0 */ stwu r1, -0x40(r1) /* 8030F1F0 0030AE50 7C 08 02 A6 */ mflr r0 /* 8030F1F4 0030AE54 90 01 00 44 */ stw r0, 0x44(r1) /* 8030F1F8 0030AE58 39 61 00 40 */ addi r11, r1, 0x40 /* 8030F1FC 0030AE5C 4B EB 7F 25 */ bl _savegpr_25 /* 8030F200 0030AE60 83 E3 00 34 */ lwz r31, 0x34(r3) /* 8030F204 0030AE64 7C 79 1B 78 */ mr r25, r3 /* 8030F208 0030AE68 3D 00 80 40 */ lis r8, lbl_803FE280@ha /* 8030F20C 0030AE6C 38 00 FF FF */ li r0, -1 /* 8030F210 0030AE70 80 7F 00 1C */ lwz r3, 0x1c(r31) /* 8030F214 0030AE74 39 08 E2 80 */ addi r8, r8, lbl_803FE280@l /* 8030F218 0030AE78 7C BA 2B 78 */ mr r26, r5 /* 8030F21C 0030AE7C 7C DB 33 78 */ mr r27, r6 /* 8030F220 0030AE80 90 06 00 00 */ stw r0, 0(r6) /* 8030F224 0030AE84 1C 63 00 14 */ mulli r3, r3, 0x14 /* 8030F228 0030AE88 7C 86 23 78 */ mr r6, r4 /* 8030F22C 0030AE8C 90 07 00 00 */ stw r0, 0(r7) /* 8030F230 0030AE90 7C FC 3B 78 */ mr r28, r7 /* 8030F234 0030AE94 7C A8 1A 14 */ add r5, r8, r3 /* 8030F238 0030AE98 38 E1 00 10 */ addi r7, r1, 0x10 /* 8030F23C 0030AE9C 90 01 00 0C */ stw r0, 0xc(r1) /* 8030F240 0030AEA0 7F E3 FB 78 */ mr r3, r31 /* 8030F244 0030AEA4 83 C5 00 08 */ lwz r30, 8(r5) /* 8030F248 0030AEA8 39 01 00 0C */ addi r8, r1, 0xc /* 8030F24C 0030AEAC 80 9F 00 3C */ lwz r4, 0x3c(r31) /* 8030F250 0030AEB0 38 A0 FF FF */ li r5, -1 /* 8030F254 0030AEB4 4B FF F4 15 */ bl VFiPFFAT_SearchForNumFreeClusters /* 8030F258 0030AEB8 2C 03 00 00 */ cmpwi r3, 0 /* 8030F25C 0030AEBC 41 82 00 08 */ beq lbl_8030F264 /* 8030F260 0030AEC0 48 00 02 20 */ b lbl_8030F480 lbl_8030F264: /* 8030F264 0030AEC4 80 A1 00 10 */ lwz r5, 0x10(r1) /* 8030F268 0030AEC8 3C 05 00 01 */ addis r0, r5, 1 /* 8030F26C 0030AECC 28 00 FF FF */ cmplwi r0, 0xffff /* 8030F270 0030AED0 40 82 00 0C */ bne lbl_8030F27C /* 8030F274 0030AED4 38 60 00 00 */ li r3, 0 /* 8030F278 0030AED8 48 00 02 08 */ b lbl_8030F480 lbl_8030F27C: /* 8030F27C 0030AEDC 7F E3 FB 78 */ mr r3, r31 /* 8030F280 0030AEE0 38 81 00 08 */ addi r4, r1, 8 /* 8030F284 0030AEE4 4B FF F2 B5 */ bl VFiPFFAT_ReadFATSector /* 8030F288 0030AEE8 2C 03 00 00 */ cmpwi r3, 0 /* 8030F28C 0030AEEC 41 82 00 08 */ beq lbl_8030F294 /* 8030F290 0030AEF0 48 00 01 F0 */ b lbl_8030F480 lbl_8030F294: /* 8030F294 0030AEF4 80 61 00 08 */ lwz r3, 8(r1) /* 8030F298 0030AEF8 38 00 00 00 */ li r0, 0 /* 8030F29C 0030AEFC B0 03 00 02 */ sth r0, 2(r3) /* 8030F2A0 0030AF00 83 A1 00 10 */ lwz r29, 0x10(r1) /* 8030F2A4 0030AF04 48 00 00 98 */ b lbl_8030F33C lbl_8030F2A8: /* 8030F2A8 0030AF08 7F 23 CB 78 */ mr r3, r25 /* 8030F2AC 0030AF0C 7F A4 EB 78 */ mr r4, r29 /* 8030F2B0 0030AF10 7F 45 D3 78 */ mr r5, r26 /* 8030F2B4 0030AF14 38 DD 00 01 */ addi r6, r29, 1 /* 8030F2B8 0030AF18 39 01 00 08 */ addi r8, r1, 8 /* 8030F2BC 0030AF1C 38 E0 00 01 */ li r7, 1 /* 8030F2C0 0030AF20 4B FF FD 05 */ bl VFiPFFAT_WriteClusterPage /* 8030F2C4 0030AF24 2C 03 00 00 */ cmpwi r3, 0 /* 8030F2C8 0030AF28 41 82 00 08 */ beq lbl_8030F2D0 /* 8030F2CC 0030AF2C 48 00 01 B4 */ b lbl_8030F480 lbl_8030F2D0: /* 8030F2D0 0030AF30 A0 1F 18 7C */ lhz r0, 0x187c(r31) /* 8030F2D4 0030AF34 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d /* 8030F2D8 0030AF38 41 82 00 44 */ beq lbl_8030F31C /* 8030F2DC 0030AF3C 80 7F 00 38 */ lwz r3, 0x38(r31) /* 8030F2E0 0030AF40 3C 03 00 01 */ addis r0, r3, 1 /* 8030F2E4 0030AF44 28 00 FF FF */ cmplwi r0, 0xffff /* 8030F2E8 0030AF48 41 82 00 34 */ beq lbl_8030F31C /* 8030F2EC 0030AF4C 2C 03 00 00 */ cmpwi r3, 0 /* 8030F2F0 0030AF50 41 82 00 2C */ beq lbl_8030F31C /* 8030F2F4 0030AF54 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 8030F2F8 0030AF58 2C 00 00 02 */ cmpwi r0, 2 /* 8030F2FC 0030AF5C 40 82 00 14 */ bne lbl_8030F310 /* 8030F300 0030AF60 80 61 00 0C */ lwz r3, 0xc(r1) /* 8030F304 0030AF64 80 1F 00 10 */ lwz r0, 0x10(r31) /* 8030F308 0030AF68 7C 03 00 40 */ cmplw r3, r0 /* 8030F30C 0030AF6C 41 82 00 10 */ beq lbl_8030F31C lbl_8030F310: /* 8030F310 0030AF70 80 7F 00 38 */ lwz r3, 0x38(r31) /* 8030F314 0030AF74 38 03 FF FF */ addi r0, r3, -1 /* 8030F318 0030AF78 90 1F 00 38 */ stw r0, 0x38(r31) lbl_8030F31C: /* 8030F31C 0030AF7C 80 7B 00 00 */ lwz r3, 0(r27) /* 8030F320 0030AF80 3C 03 00 01 */ addis r0, r3, 1 /* 8030F324 0030AF84 28 00 FF FF */ cmplwi r0, 0xffff /* 8030F328 0030AF88 40 82 00 08 */ bne lbl_8030F330 /* 8030F32C 0030AF8C 93 BB 00 00 */ stw r29, 0(r27) lbl_8030F330: /* 8030F330 0030AF90 93 BC 00 00 */ stw r29, 0(r28) /* 8030F334 0030AF94 3B 5A 00 01 */ addi r26, r26, 1 /* 8030F338 0030AF98 3B BD 00 01 */ addi r29, r29, 1 lbl_8030F33C: /* 8030F33C 0030AF9C 80 81 00 0C */ lwz r4, 0xc(r1) /* 8030F340 0030AFA0 7C 1D 20 40 */ cmplw r29, r4 /* 8030F344 0030AFA4 41 80 FF 64 */ blt lbl_8030F2A8 /* 8030F348 0030AFA8 3C 04 00 01 */ addis r0, r4, 1 /* 8030F34C 0030AFAC 28 00 FF FF */ cmplwi r0, 0xffff /* 8030F350 0030AFB0 41 82 00 80 */ beq lbl_8030F3D0 /* 8030F354 0030AFB4 7F 23 CB 78 */ mr r3, r25 /* 8030F358 0030AFB8 7F 45 D3 78 */ mr r5, r26 /* 8030F35C 0030AFBC 7F C6 F3 78 */ mr r6, r30 /* 8030F360 0030AFC0 39 01 00 08 */ addi r8, r1, 8 /* 8030F364 0030AFC4 38 E0 00 01 */ li r7, 1 /* 8030F368 0030AFC8 4B FF FC 5D */ bl VFiPFFAT_WriteClusterPage /* 8030F36C 0030AFCC 2C 03 00 00 */ cmpwi r3, 0 /* 8030F370 0030AFD0 41 82 00 08 */ beq lbl_8030F378 /* 8030F374 0030AFD4 48 00 01 0C */ b lbl_8030F480 lbl_8030F378: /* 8030F378 0030AFD8 80 7B 00 00 */ lwz r3, 0(r27) /* 8030F37C 0030AFDC 3C 03 00 01 */ addis r0, r3, 1 /* 8030F380 0030AFE0 28 00 FF FF */ cmplwi r0, 0xffff /* 8030F384 0030AFE4 40 82 00 08 */ bne lbl_8030F38C /* 8030F388 0030AFE8 93 BB 00 00 */ stw r29, 0(r27) lbl_8030F38C: /* 8030F38C 0030AFEC 93 BC 00 00 */ stw r29, 0(r28) /* 8030F390 0030AFF0 80 7F 00 38 */ lwz r3, 0x38(r31) /* 8030F394 0030AFF4 3C 03 00 01 */ addis r0, r3, 1 /* 8030F398 0030AFF8 28 00 FF FF */ cmplwi r0, 0xffff /* 8030F39C 0030AFFC 41 82 00 34 */ beq lbl_8030F3D0 /* 8030F3A0 0030B000 2C 03 00 00 */ cmpwi r3, 0 /* 8030F3A4 0030B004 41 82 00 2C */ beq lbl_8030F3D0 /* 8030F3A8 0030B008 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 8030F3AC 0030B00C 2C 00 00 02 */ cmpwi r0, 2 /* 8030F3B0 0030B010 40 82 00 14 */ bne lbl_8030F3C4 /* 8030F3B4 0030B014 80 61 00 0C */ lwz r3, 0xc(r1) /* 8030F3B8 0030B018 80 1F 00 10 */ lwz r0, 0x10(r31) /* 8030F3BC 0030B01C 7C 03 00 40 */ cmplw r3, r0 /* 8030F3C0 0030B020 41 82 00 10 */ beq lbl_8030F3D0 lbl_8030F3C4: /* 8030F3C4 0030B024 80 7F 00 38 */ lwz r3, 0x38(r31) /* 8030F3C8 0030B028 38 03 FF FF */ addi r0, r3, -1 /* 8030F3CC 0030B02C 90 1F 00 38 */ stw r0, 0x38(r31) lbl_8030F3D0: /* 8030F3D0 0030B030 80 81 00 0C */ lwz r4, 0xc(r1) /* 8030F3D4 0030B034 38 60 00 00 */ li r3, 0 /* 8030F3D8 0030B038 38 04 00 01 */ addi r0, r4, 1 /* 8030F3DC 0030B03C 90 1F 00 3C */ stw r0, 0x3c(r31) /* 8030F3E0 0030B040 80 01 00 0C */ lwz r0, 0xc(r1) /* 8030F3E4 0030B044 90 19 00 0C */ stw r0, 0xc(r25) /* 8030F3E8 0030B048 93 59 00 10 */ stw r26, 0x10(r25) /* 8030F3EC 0030B04C 80 01 00 0C */ lwz r0, 0xc(r1) /* 8030F3F0 0030B050 90 1C 00 00 */ stw r0, 0(r28) /* 8030F3F4 0030B054 80 81 00 08 */ lwz r4, 8(r1) /* 8030F3F8 0030B058 A0 04 00 00 */ lhz r0, 0(r4) /* 8030F3FC 0030B05C 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e /* 8030F400 0030B060 2C 00 00 02 */ cmpwi r0, 2 /* 8030F404 0030B064 40 82 00 0C */ bne lbl_8030F410 /* 8030F408 0030B068 7F E3 FB 78 */ mr r3, r31 /* 8030F40C 0030B06C 4B FF B5 71 */ bl VFiPFCACHE_WriteFATPage lbl_8030F410: /* 8030F410 0030B070 2C 03 00 00 */ cmpwi r3, 0 /* 8030F414 0030B074 41 82 00 08 */ beq lbl_8030F41C /* 8030F418 0030B078 48 00 00 68 */ b lbl_8030F480 lbl_8030F41C: /* 8030F41C 0030B07C 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 8030F420 0030B080 2C 80 00 02 */ cmpwi cr1, r0, 2 /* 8030F424 0030B084 40 86 00 58 */ bne cr1, lbl_8030F47C /* 8030F428 0030B088 A0 1F 18 7C */ lhz r0, 0x187c(r31) /* 8030F42C 0030B08C 54 03 07 BD */ rlwinm. r3, r0, 0, 0x1e, 0x1e /* 8030F430 0030B090 41 82 00 4C */ beq lbl_8030F47C /* 8030F434 0030B094 38 60 00 00 */ li r3, 0 /* 8030F438 0030B098 41 86 00 0C */ beq cr1, lbl_8030F444 /* 8030F43C 0030B09C 38 60 00 0C */ li r3, 0xc /* 8030F440 0030B0A0 48 00 00 20 */ b lbl_8030F460 lbl_8030F444: /* 8030F444 0030B0A4 40 82 00 0C */ bne lbl_8030F450 /* 8030F448 0030B0A8 38 60 00 24 */ li r3, 0x24 /* 8030F44C 0030B0AC 48 00 00 14 */ b lbl_8030F460 lbl_8030F450: /* 8030F450 0030B0B0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d /* 8030F454 0030B0B4 41 82 00 0C */ beq lbl_8030F460 /* 8030F458 0030B0B8 7F E3 FB 78 */ mr r3, r31 /* 8030F45C 0030B0BC 4B FF 67 41 */ bl VFiPFDRV_StoreFreeCountToFSINFO lbl_8030F460: /* 8030F460 0030B0C0 2C 03 00 00 */ cmpwi r3, 0 /* 8030F464 0030B0C4 41 82 00 18 */ beq lbl_8030F47C /* 8030F468 0030B0C8 38 00 FF FF */ li r0, -1 /* 8030F46C 0030B0CC 90 1F 00 38 */ stw r0, 0x38(r31) /* 8030F470 0030B0D0 A0 1F 18 7C */ lhz r0, 0x187c(r31) /* 8030F474 0030B0D4 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c /* 8030F478 0030B0D8 B0 1F 18 7C */ sth r0, 0x187c(r31) lbl_8030F47C: /* 8030F47C 0030B0DC 38 60 00 00 */ li r3, 0 lbl_8030F480: /* 8030F480 0030B0E0 39 61 00 40 */ addi r11, r1, 0x40 /* 8030F484 0030B0E4 4B EB 7C E9 */ bl _restgpr_25 /* 8030F488 0030B0E8 80 01 00 44 */ lwz r0, 0x44(r1) /* 8030F48C 0030B0EC 7C 08 03 A6 */ mtlr r0 /* 8030F490 0030B0F0 38 21 00 40 */ addi r1, r1, 0x40 /* 8030F494 0030B0F4 4E 80 00 20 */ blr .global VFiPFFAT_GetClusterInChain VFiPFFAT_GetClusterInChain: /* 8030F498 0030B0F8 94 21 FF B0 */ stwu r1, -0x50(r1) /* 8030F49C 0030B0FC 7C 08 02 A6 */ mflr r0 /* 8030F4A0 0030B100 90 01 00 54 */ stw r0, 0x54(r1) /* 8030F4A4 0030B104 39 61 00 50 */ addi r11, r1, 0x50 /* 8030F4A8 0030B108 4B EB 7C 69 */ bl _savegpr_21 /* 8030F4AC 0030B10C 38 00 00 00 */ li r0, 0 /* 8030F4B0 0030B110 3D 20 80 40 */ lis r9, lbl_803FE280@ha /* 8030F4B4 0030B114 90 01 00 08 */ stw r0, 8(r1) /* 8030F4B8 0030B118 38 00 FF FF */ li r0, -1 /* 8030F4BC 0030B11C 7D 19 43 78 */ mr r25, r8 /* 8030F4C0 0030B120 39 29 E2 80 */ addi r9, r9, lbl_803FE280@l /* 8030F4C4 0030B124 81 43 00 34 */ lwz r10, 0x34(r3) /* 8030F4C8 0030B128 7C F8 3B 78 */ mr r24, r7 /* 8030F4CC 0030B12C 7C 76 1B 78 */ mr r22, r3 /* 8030F4D0 0030B130 7C B7 2B 78 */ mr r23, r5 /* 8030F4D4 0030B134 81 4A 00 1C */ lwz r10, 0x1c(r10) /* 8030F4D8 0030B138 90 08 00 00 */ stw r0, 0(r8) /* 8030F4DC 0030B13C 1D 0A 00 14 */ mulli r8, r10, 0x14 /* 8030F4E0 0030B140 90 07 00 00 */ stw r0, 0(r7) /* 8030F4E4 0030B144 7C E9 42 14 */ add r7, r9, r8 /* 8030F4E8 0030B148 7F E9 40 2E */ lwzx r31, r9, r8 /* 8030F4EC 0030B14C 80 03 00 14 */ lwz r0, 0x14(r3) /* 8030F4F0 0030B150 83 C7 00 04 */ lwz r30, 4(r7) /* 8030F4F4 0030B154 2C 00 00 00 */ cmpwi r0, 0 /* 8030F4F8 0030B158 41 82 00 28 */ beq lbl_8030F520 /* 8030F4FC 0030B15C 7C 00 20 40 */ cmplw r0, r4 /* 8030F500 0030B160 41 81 00 20 */ bgt lbl_8030F520 /* 8030F504 0030B164 80 03 00 18 */ lwz r0, 0x18(r3) /* 8030F508 0030B168 3B 41 00 10 */ addi r26, r1, 0x10 /* 8030F50C 0030B16C 90 01 00 10 */ stw r0, 0x10(r1) /* 8030F510 0030B170 80 E3 00 14 */ lwz r7, 0x14(r3) /* 8030F514 0030B174 7F 87 20 50 */ subf r28, r7, r4 /* 8030F518 0030B178 3B 67 00 01 */ addi r27, r7, 1 /* 8030F51C 0030B17C 48 00 00 10 */ b lbl_8030F52C lbl_8030F520: /* 8030F520 0030B180 83 43 00 08 */ lwz r26, 8(r3) /* 8030F524 0030B184 7C 9C 23 78 */ mr r28, r4 /* 8030F528 0030B188 3B 60 00 01 */ li r27, 1 lbl_8030F52C: /* 8030F52C 0030B18C 83 BA 00 00 */ lwz r29, 0(r26) /* 8030F530 0030B190 28 05 00 02 */ cmplwi r5, 2 /* 8030F534 0030B194 93 A1 00 14 */ stw r29, 0x14(r1) /* 8030F538 0030B198 40 82 00 74 */ bne lbl_8030F5AC /* 8030F53C 0030B19C 2C 1C 00 00 */ cmpwi r28, 0 /* 8030F540 0030B1A0 41 82 00 18 */ beq lbl_8030F558 /* 8030F544 0030B1A4 2C 06 00 00 */ cmpwi r6, 0 /* 8030F548 0030B1A8 41 82 00 10 */ beq lbl_8030F558 /* 8030F54C 0030B1AC 7C BC 32 14 */ add r5, r28, r6 /* 8030F550 0030B1B0 3B 85 FF FF */ addi r28, r5, -1 /* 8030F554 0030B1B4 48 00 00 08 */ b lbl_8030F55C lbl_8030F558: /* 8030F558 0030B1B8 7C DC 33 78 */ mr r28, r6 lbl_8030F55C: /* 8030F55C 0030B1BC 81 23 00 0C */ lwz r9, 0xc(r3) /* 8030F560 0030B1C0 7F 88 E3 78 */ mr r8, r28 /* 8030F564 0030B1C4 2C 09 00 00 */ cmpwi r9, 0 /* 8030F568 0030B1C8 41 82 00 5C */ beq lbl_8030F5C4 /* 8030F56C 0030B1CC 80 A3 00 34 */ lwz r5, 0x34(r3) /* 8030F570 0030B1D0 3C E0 80 40 */ lis r7, lbl_803FE280@ha /* 8030F574 0030B1D4 81 03 00 10 */ lwz r8, 0x10(r3) /* 8030F578 0030B1D8 38 E7 E2 80 */ addi r7, r7, lbl_803FE280@l /* 8030F57C 0030B1DC 80 05 00 1C */ lwz r0, 0x1c(r5) /* 8030F580 0030B1E0 7D 3D 4B 78 */ mr r29, r9 /* 8030F584 0030B1E4 7C A8 32 14 */ add r5, r8, r6 /* 8030F588 0030B1E8 3B 80 00 00 */ li r28, 0 /* 8030F58C 0030B1EC 1C 00 00 14 */ mulli r0, r0, 0x14 /* 8030F590 0030B1F0 7D 04 28 50 */ subf r8, r4, r5 /* 8030F594 0030B1F4 7C 87 02 14 */ add r4, r7, r0 /* 8030F598 0030B1F8 80 04 00 08 */ lwz r0, 8(r4) /* 8030F59C 0030B1FC 90 01 00 14 */ stw r0, 0x14(r1) /* 8030F5A0 0030B200 80 83 00 10 */ lwz r4, 0x10(r3) /* 8030F5A4 0030B204 3B 64 00 01 */ addi r27, r4, 1 /* 8030F5A8 0030B208 48 00 00 1C */ b lbl_8030F5C4 lbl_8030F5AC: /* 8030F5AC 0030B20C 28 05 00 01 */ cmplwi r5, 1 /* 8030F5B0 0030B210 40 82 00 10 */ bne lbl_8030F5C0 /* 8030F5B4 0030B214 2C 1D 00 00 */ cmpwi r29, 0 /* 8030F5B8 0030B218 40 82 00 08 */ bne lbl_8030F5C0 /* 8030F5BC 0030B21C 3B 9C 00 01 */ addi r28, r28, 1 lbl_8030F5C0: /* 8030F5C0 0030B220 7F 88 E3 78 */ mr r8, r28 lbl_8030F5C4: /* 8030F5C4 0030B224 2C 1C 00 00 */ cmpwi r28, 0 /* 8030F5C8 0030B228 41 82 00 FC */ beq lbl_8030F6C4 /* 8030F5CC 0030B22C 80 63 00 34 */ lwz r3, 0x34(r3) /* 8030F5D0 0030B230 7F A5 EB 78 */ mr r5, r29 /* 8030F5D4 0030B234 38 81 00 08 */ addi r4, r1, 8 /* 8030F5D8 0030B238 4B FF EF 61 */ bl VFiPFFAT_ReadFATSector /* 8030F5DC 0030B23C 2C 03 00 00 */ cmpwi r3, 0 /* 8030F5E0 0030B240 41 82 00 08 */ beq lbl_8030F5E8 /* 8030F5E4 0030B244 48 00 01 C4 */ b lbl_8030F7A8 lbl_8030F5E8: /* 8030F5E8 0030B248 80 61 00 08 */ lwz r3, 8(r1) /* 8030F5EC 0030B24C 38 80 00 00 */ li r4, 0 /* 8030F5F0 0030B250 3E A0 80 40 */ lis r21, lbl_803FE280@ha /* 8030F5F4 0030B254 38 00 00 01 */ li r0, 1 /* 8030F5F8 0030B258 B0 83 00 02 */ sth r4, 2(r3) /* 8030F5FC 0030B25C 3A B5 E2 80 */ addi r21, r21, lbl_803FE280@l /* 8030F600 0030B260 90 01 00 0C */ stw r0, 0xc(r1) /* 8030F604 0030B264 48 00 00 A8 */ b lbl_8030F6AC lbl_8030F608: /* 8030F608 0030B268 2C 1D 00 00 */ cmpwi r29, 0 /* 8030F60C 0030B26C 41 82 00 3C */ beq lbl_8030F648 /* 8030F610 0030B270 7E C3 B3 78 */ mr r3, r22 /* 8030F614 0030B274 7F A4 EB 78 */ mr r4, r29 /* 8030F618 0030B278 7F 65 DB 78 */ mr r5, r27 /* 8030F61C 0030B27C 38 C1 00 14 */ addi r6, r1, 0x14 /* 8030F620 0030B280 38 E1 00 0C */ addi r7, r1, 0xc /* 8030F624 0030B284 39 01 00 08 */ addi r8, r1, 8 /* 8030F628 0030B288 4B FF F5 AD */ bl VFiPFFAT_ReadClusterPage /* 8030F62C 0030B28C 2C 03 00 00 */ cmpwi r3, 0 /* 8030F630 0030B290 41 82 00 34 */ beq lbl_8030F664 /* 8030F634 0030B294 80 81 00 14 */ lwz r4, 0x14(r1) /* 8030F638 0030B298 3C 04 00 01 */ addis r0, r4, 1 /* 8030F63C 0030B29C 28 00 FF FF */ cmplwi r0, 0xffff /* 8030F640 0030B2A0 41 82 00 24 */ beq lbl_8030F664 /* 8030F644 0030B2A4 48 00 01 64 */ b lbl_8030F7A8 lbl_8030F648: /* 8030F648 0030B2A8 80 76 00 34 */ lwz r3, 0x34(r22) /* 8030F64C 0030B2AC 3B 7B FF FF */ addi r27, r27, -1 /* 8030F650 0030B2B0 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8030F654 0030B2B4 1C 00 00 14 */ mulli r0, r0, 0x14 /* 8030F658 0030B2B8 7C 75 02 14 */ add r3, r21, r0 /* 8030F65C 0030B2BC 80 03 00 08 */ lwz r0, 8(r3) /* 8030F660 0030B2C0 90 01 00 14 */ stw r0, 0x14(r1) lbl_8030F664: /* 8030F664 0030B2C4 80 81 00 14 */ lwz r4, 0x14(r1) /* 8030F668 0030B2C8 28 04 00 02 */ cmplwi r4, 2 /* 8030F66C 0030B2CC 41 80 00 18 */ blt lbl_8030F684 /* 8030F670 0030B2D0 80 76 00 34 */ lwz r3, 0x34(r22) /* 8030F674 0030B2D4 80 63 00 34 */ lwz r3, 0x34(r3) /* 8030F678 0030B2D8 38 03 00 02 */ addi r0, r3, 2 /* 8030F67C 0030B2DC 7C 04 00 40 */ cmplw r4, r0 /* 8030F680 0030B2E0 41 80 00 14 */ blt lbl_8030F694 lbl_8030F684: /* 8030F684 0030B2E4 7C 04 F0 40 */ cmplw r4, r30 /* 8030F688 0030B2E8 40 80 00 0C */ bge lbl_8030F694 /* 8030F68C 0030B2EC 38 60 00 0E */ li r3, 0xe /* 8030F690 0030B2F0 48 00 01 18 */ b lbl_8030F7A8 lbl_8030F694: /* 8030F694 0030B2F4 2C 17 00 00 */ cmpwi r23, 0 /* 8030F698 0030B2F8 41 82 00 0C */ beq lbl_8030F6A4 /* 8030F69C 0030B2FC 7C 04 F0 40 */ cmplw r4, r30 /* 8030F6A0 0030B300 40 80 00 20 */ bge lbl_8030F6C0 lbl_8030F6A4: /* 8030F6A4 0030B304 7C 9D 23 78 */ mr r29, r4 /* 8030F6A8 0030B308 3B 7B 00 01 */ addi r27, r27, 1 lbl_8030F6AC: /* 8030F6AC 0030B30C 2C 1C 00 00 */ cmpwi r28, 0 /* 8030F6B0 0030B310 3B 9C FF FF */ addi r28, r28, -1 /* 8030F6B4 0030B314 41 82 00 0C */ beq lbl_8030F6C0 /* 8030F6B8 0030B318 7C 1D F8 40 */ cmplw r29, r31 /* 8030F6BC 0030B31C 41 80 FF 4C */ blt lbl_8030F608 lbl_8030F6C0: /* 8030F6C0 0030B320 7F 88 E3 78 */ mr r8, r28 lbl_8030F6C4: /* 8030F6C4 0030B324 2C 17 00 00 */ cmpwi r23, 0 /* 8030F6C8 0030B328 41 82 00 D8 */ beq lbl_8030F7A0 /* 8030F6CC 0030B32C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030F6D0 0030B330 7C 00 F0 40 */ cmplw r0, r30 /* 8030F6D4 0030B334 41 80 00 CC */ blt lbl_8030F7A0 /* 8030F6D8 0030B338 38 00 00 00 */ li r0, 0 /* 8030F6DC 0030B33C 7E C3 B3 78 */ mr r3, r22 /* 8030F6E0 0030B340 90 18 00 00 */ stw r0, 0(r24) /* 8030F6E4 0030B344 7F 65 DB 78 */ mr r5, r27 /* 8030F6E8 0030B348 7F 06 C3 78 */ mr r6, r24 /* 8030F6EC 0030B34C 38 88 00 01 */ addi r4, r8, 1 /* 8030F6F0 0030B350 38 E1 00 14 */ addi r7, r1, 0x14 /* 8030F6F4 0030B354 4B FF FA F9 */ bl VFiPFFAT_DoAllocateChain /* 8030F6F8 0030B358 2C 03 00 00 */ cmpwi r3, 0 /* 8030F6FC 0030B35C 7C 75 1B 78 */ mr r21, r3 /* 8030F700 0030B360 41 82 00 34 */ beq lbl_8030F734 /* 8030F704 0030B364 80 98 00 00 */ lwz r4, 0(r24) /* 8030F708 0030B368 3C 04 00 01 */ addis r0, r4, 1 /* 8030F70C 0030B36C 28 00 FF FF */ cmplwi r0, 0xffff /* 8030F710 0030B370 41 82 00 14 */ beq lbl_8030F724 /* 8030F714 0030B374 7E C3 B3 78 */ mr r3, r22 /* 8030F718 0030B378 7F 65 DB 78 */ mr r5, r27 /* 8030F71C 0030B37C 38 C0 FF FF */ li r6, -1 /* 8030F720 0030B380 48 00 0D 09 */ bl VFiPFFAT_FreeChain lbl_8030F724: /* 8030F724 0030B384 38 00 FF FF */ li r0, -1 /* 8030F728 0030B388 90 18 00 00 */ stw r0, 0(r24) /* 8030F72C 0030B38C 90 01 00 14 */ stw r0, 0x14(r1) /* 8030F730 0030B390 48 00 00 08 */ b lbl_8030F738 lbl_8030F734: /* 8030F734 0030B394 3A A0 00 00 */ li r21, 0 lbl_8030F738: /* 8030F738 0030B398 2C 15 00 00 */ cmpwi r21, 0 /* 8030F73C 0030B39C 41 82 00 0C */ beq lbl_8030F748 /* 8030F740 0030B3A0 7E A3 AB 78 */ mr r3, r21 /* 8030F744 0030B3A4 48 00 00 64 */ b lbl_8030F7A8 lbl_8030F748: /* 8030F748 0030B3A8 80 61 00 14 */ lwz r3, 0x14(r1) /* 8030F74C 0030B3AC 3C 03 00 01 */ addis r0, r3, 1 /* 8030F750 0030B3B0 28 00 FF FF */ cmplwi r0, 0xffff /* 8030F754 0030B3B4 40 82 00 0C */ bne lbl_8030F760 /* 8030F758 0030B3B8 38 60 00 06 */ li r3, 6 /* 8030F75C 0030B3BC 48 00 00 4C */ b lbl_8030F7A8 lbl_8030F760: /* 8030F760 0030B3C0 80 1A 00 00 */ lwz r0, 0(r26) /* 8030F764 0030B3C4 2C 00 00 00 */ cmpwi r0, 0 /* 8030F768 0030B3C8 40 82 00 10 */ bne lbl_8030F778 /* 8030F76C 0030B3CC 80 18 00 00 */ lwz r0, 0(r24) /* 8030F770 0030B3D0 90 1A 00 00 */ stw r0, 0(r26) /* 8030F774 0030B3D4 48 00 00 28 */ b lbl_8030F79C lbl_8030F778: /* 8030F778 0030B3D8 80 D8 00 00 */ lwz r6, 0(r24) /* 8030F77C 0030B3DC 7E C3 B3 78 */ mr r3, r22 /* 8030F780 0030B3E0 7F A4 EB 78 */ mr r4, r29 /* 8030F784 0030B3E4 38 BB FF FF */ addi r5, r27, -1 /* 8030F788 0030B3E8 38 E0 00 01 */ li r7, 1 /* 8030F78C 0030B3EC 4B FF F6 15 */ bl VFiPFFAT_WriteCluster /* 8030F790 0030B3F0 2C 03 00 00 */ cmpwi r3, 0 /* 8030F794 0030B3F4 41 82 00 08 */ beq lbl_8030F79C /* 8030F798 0030B3F8 48 00 00 10 */ b lbl_8030F7A8 lbl_8030F79C: /* 8030F79C 0030B3FC 83 A1 00 14 */ lwz r29, 0x14(r1) lbl_8030F7A0: /* 8030F7A0 0030B400 93 B9 00 00 */ stw r29, 0(r25) /* 8030F7A4 0030B404 38 60 00 00 */ li r3, 0 lbl_8030F7A8: /* 8030F7A8 0030B408 39 61 00 50 */ addi r11, r1, 0x50 /* 8030F7AC 0030B40C 4B EB 79 B1 */ bl _restgpr_21 /* 8030F7B0 0030B410 80 01 00 54 */ lwz r0, 0x54(r1) /* 8030F7B4 0030B414 7C 08 03 A6 */ mtlr r0 /* 8030F7B8 0030B418 38 21 00 50 */ addi r1, r1, 0x50 /* 8030F7BC 0030B41C 4E 80 00 20 */ blr .global VFiPFFAT_GetClusterContinuousSectorInChain VFiPFFAT_GetClusterContinuousSectorInChain: /* 8030F7C0 0030B420 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8030F7C4 0030B424 7C 08 02 A6 */ mflr r0 /* 8030F7C8 0030B428 90 01 00 34 */ stw r0, 0x34(r1) /* 8030F7CC 0030B42C 39 61 00 30 */ addi r11, r1, 0x30 /* 8030F7D0 0030B430 4B EB 79 55 */ bl _savegpr_26 /* 8030F7D4 0030B434 83 E3 00 34 */ lwz r31, 0x34(r3) /* 8030F7D8 0030B438 39 00 FF FF */ li r8, -1 /* 8030F7DC 0030B43C 38 00 00 01 */ li r0, 1 /* 8030F7E0 0030B440 7C 7B 1B 78 */ mr r27, r3 /* 8030F7E4 0030B444 91 01 00 10 */ stw r8, 0x10(r1) /* 8030F7E8 0030B448 7C BC 2B 78 */ mr r28, r5 /* 8030F7EC 0030B44C 7C DD 33 78 */ mr r29, r6 /* 8030F7F0 0030B450 7C FE 3B 78 */ mr r30, r7 /* 8030F7F4 0030B454 90 01 00 0C */ stw r0, 0xc(r1) /* 8030F7F8 0030B458 7C 9A 23 78 */ mr r26, r4 /* 8030F7FC 0030B45C 7C 85 23 78 */ mr r5, r4 /* 8030F800 0030B460 7F E3 FB 78 */ mr r3, r31 /* 8030F804 0030B464 38 81 00 08 */ addi r4, r1, 8 /* 8030F808 0030B468 4B FF ED 31 */ bl VFiPFFAT_ReadFATSector /* 8030F80C 0030B46C 2C 03 00 00 */ cmpwi r3, 0 /* 8030F810 0030B470 41 82 00 B8 */ beq lbl_8030F8C8 /* 8030F814 0030B474 48 00 00 C4 */ b lbl_8030F8D8 /* 8030F818 0030B478 48 00 00 B0 */ b lbl_8030F8C8 lbl_8030F81C: /* 8030F81C 0030B47C 7F 63 DB 78 */ mr r3, r27 /* 8030F820 0030B480 7F 44 D3 78 */ mr r4, r26 /* 8030F824 0030B484 7F 85 E3 78 */ mr r5, r28 /* 8030F828 0030B488 38 C1 00 10 */ addi r6, r1, 0x10 /* 8030F82C 0030B48C 38 E1 00 0C */ addi r7, r1, 0xc /* 8030F830 0030B490 39 01 00 08 */ addi r8, r1, 8 /* 8030F834 0030B494 4B FF F3 A1 */ bl VFiPFFAT_ReadClusterPage /* 8030F838 0030B498 2C 03 00 00 */ cmpwi r3, 0 /* 8030F83C 0030B49C 41 82 00 08 */ beq lbl_8030F844 /* 8030F840 0030B4A0 48 00 00 98 */ b lbl_8030F8D8 lbl_8030F844: /* 8030F844 0030B4A4 80 81 00 10 */ lwz r4, 0x10(r1) /* 8030F848 0030B4A8 38 1A 00 01 */ addi r0, r26, 1 /* 8030F84C 0030B4AC 7C 00 20 40 */ cmplw r0, r4 /* 8030F850 0030B4B0 41 82 00 34 */ beq lbl_8030F884 /* 8030F854 0030B4B4 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 8030F858 0030B4B8 3C 60 80 40 */ lis r3, lbl_803FE280@ha /* 8030F85C 0030B4BC 38 63 E2 80 */ addi r3, r3, lbl_803FE280@l /* 8030F860 0030B4C0 1C 00 00 14 */ mulli r0, r0, 0x14 /* 8030F864 0030B4C4 7C 63 02 14 */ add r3, r3, r0 /* 8030F868 0030B4C8 80 03 00 08 */ lwz r0, 8(r3) /* 8030F86C 0030B4CC 7C 04 00 40 */ cmplw r4, r0 /* 8030F870 0030B4D0 40 82 00 64 */ bne lbl_8030F8D4 /* 8030F874 0030B4D4 38 1C FF FF */ addi r0, r28, -1 /* 8030F878 0030B4D8 93 5B 00 0C */ stw r26, 0xc(r27) /* 8030F87C 0030B4DC 90 1B 00 10 */ stw r0, 0x10(r27) /* 8030F880 0030B4E0 48 00 00 54 */ b lbl_8030F8D4 lbl_8030F884: /* 8030F884 0030B4E4 80 9B 00 30 */ lwz r4, 0x30(r27) /* 8030F888 0030B4E8 80 64 00 00 */ lwz r3, 0(r4) /* 8030F88C 0030B4EC 38 03 00 01 */ addi r0, r3, 1 /* 8030F890 0030B4F0 90 04 00 00 */ stw r0, 0(r4) /* 8030F894 0030B4F4 80 01 00 10 */ lwz r0, 0x10(r1) /* 8030F898 0030B4F8 80 7B 00 30 */ lwz r3, 0x30(r27) /* 8030F89C 0030B4FC 90 03 00 04 */ stw r0, 4(r3) /* 8030F8A0 0030B500 80 7E 00 00 */ lwz r3, 0(r30) /* 8030F8A4 0030B504 88 1F 00 06 */ lbz r0, 6(r31) /* 8030F8A8 0030B508 7C 63 02 14 */ add r3, r3, r0 /* 8030F8AC 0030B50C 90 7E 00 00 */ stw r3, 0(r30) /* 8030F8B0 0030B510 88 1F 00 20 */ lbz r0, 0x20(r31) /* 8030F8B4 0030B514 7C 60 00 30 */ slw r0, r3, r0 /* 8030F8B8 0030B518 7C 00 E8 40 */ cmplw r0, r29 /* 8030F8BC 0030B51C 40 80 00 18 */ bge lbl_8030F8D4 /* 8030F8C0 0030B520 83 41 00 10 */ lwz r26, 0x10(r1) /* 8030F8C4 0030B524 3B 9C 00 01 */ addi r28, r28, 1 lbl_8030F8C8: /* 8030F8C8 0030B528 80 01 00 10 */ lwz r0, 0x10(r1) /* 8030F8CC 0030B52C 2C 00 00 00 */ cmpwi r0, 0 /* 8030F8D0 0030B530 40 82 FF 4C */ bne lbl_8030F81C lbl_8030F8D4: /* 8030F8D4 0030B534 38 60 00 00 */ li r3, 0 lbl_8030F8D8: /* 8030F8D8 0030B538 39 61 00 30 */ addi r11, r1, 0x30 /* 8030F8DC 0030B53C 4B EB 78 95 */ bl _restgpr_26 /* 8030F8E0 0030B540 80 01 00 34 */ lwz r0, 0x34(r1) /* 8030F8E4 0030B544 7C 08 03 A6 */ mtlr r0 /* 8030F8E8 0030B548 38 21 00 30 */ addi r1, r1, 0x30 /* 8030F8EC 0030B54C 4E 80 00 20 */ blr .global VFiPFFAT_GetClusterAllocatedInChain VFiPFFAT_GetClusterAllocatedInChain: /* 8030F8F0 0030B550 94 21 FF C0 */ stwu r1, -0x40(r1) /* 8030F8F4 0030B554 7C 08 02 A6 */ mflr r0 /* 8030F8F8 0030B558 90 01 00 44 */ stw r0, 0x44(r1) /* 8030F8FC 0030B55C 39 61 00 40 */ addi r11, r1, 0x40 /* 8030F900 0030B560 4B EB 78 1D */ bl _savegpr_24 /* 8030F904 0030B564 83 E3 00 34 */ lwz r31, 0x34(r3) /* 8030F908 0030B568 39 00 FF FF */ li r8, -1 /* 8030F90C 0030B56C 38 00 00 01 */ li r0, 1 /* 8030F910 0030B570 7C 79 1B 78 */ mr r25, r3 /* 8030F914 0030B574 91 01 00 10 */ stw r8, 0x10(r1) /* 8030F918 0030B578 7C BA 2B 78 */ mr r26, r5 /* 8030F91C 0030B57C 7C DB 33 78 */ mr r27, r6 /* 8030F920 0030B580 7C FC 3B 78 */ mr r28, r7 /* 8030F924 0030B584 90 01 00 0C */ stw r0, 0xc(r1) /* 8030F928 0030B588 7C 9E 23 78 */ mr r30, r4 /* 8030F92C 0030B58C 7C 85 23 78 */ mr r5, r4 /* 8030F930 0030B590 7F E3 FB 78 */ mr r3, r31 /* 8030F934 0030B594 38 81 00 08 */ addi r4, r1, 8 /* 8030F938 0030B598 3B A0 00 00 */ li r29, 0 /* 8030F93C 0030B59C 4B FF EB FD */ bl VFiPFFAT_ReadFATSector /* 8030F940 0030B5A0 2C 03 00 00 */ cmpwi r3, 0 /* 8030F944 0030B5A4 41 82 00 08 */ beq lbl_8030F94C /* 8030F948 0030B5A8 48 00 00 A0 */ b lbl_8030F9E8 lbl_8030F94C: /* 8030F94C 0030B5AC 3F 00 80 40 */ lis r24, lbl_803FE280@ha /* 8030F950 0030B5B0 3B 18 E2 80 */ addi r24, r24, lbl_803FE280@l /* 8030F954 0030B5B4 48 00 00 84 */ b lbl_8030F9D8 lbl_8030F958: /* 8030F958 0030B5B8 A0 9F 00 00 */ lhz r4, 0(r31) /* 8030F95C 0030B5BC 88 1F 00 21 */ lbz r0, 0x21(r31) /* 8030F960 0030B5C0 80 7C 00 00 */ lwz r3, 0(r28) /* 8030F964 0030B5C4 7C 80 00 30 */ slw r0, r4, r0 /* 8030F968 0030B5C8 7F BD 02 14 */ add r29, r29, r0 /* 8030F96C 0030B5CC 38 03 00 01 */ addi r0, r3, 1 /* 8030F970 0030B5D0 7C 1D D8 40 */ cmplw r29, r27 /* 8030F974 0030B5D4 90 1C 00 00 */ stw r0, 0(r28) /* 8030F978 0030B5D8 40 80 00 6C */ bge lbl_8030F9E4 /* 8030F97C 0030B5DC 7F 23 CB 78 */ mr r3, r25 /* 8030F980 0030B5E0 7F C4 F3 78 */ mr r4, r30 /* 8030F984 0030B5E4 7F 45 D3 78 */ mr r5, r26 /* 8030F988 0030B5E8 38 C1 00 10 */ addi r6, r1, 0x10 /* 8030F98C 0030B5EC 38 E1 00 0C */ addi r7, r1, 0xc /* 8030F990 0030B5F0 39 01 00 08 */ addi r8, r1, 8 /* 8030F994 0030B5F4 4B FF F2 41 */ bl VFiPFFAT_ReadClusterPage /* 8030F998 0030B5F8 2C 03 00 00 */ cmpwi r3, 0 /* 8030F99C 0030B5FC 41 82 00 08 */ beq lbl_8030F9A4 /* 8030F9A0 0030B600 48 00 00 48 */ b lbl_8030F9E8 lbl_8030F9A4: /* 8030F9A4 0030B604 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 8030F9A8 0030B608 80 81 00 10 */ lwz r4, 0x10(r1) /* 8030F9AC 0030B60C 1C 00 00 14 */ mulli r0, r0, 0x14 /* 8030F9B0 0030B610 7C 78 02 14 */ add r3, r24, r0 /* 8030F9B4 0030B614 80 03 00 08 */ lwz r0, 8(r3) /* 8030F9B8 0030B618 7C 04 00 40 */ cmplw r4, r0 /* 8030F9BC 0030B61C 40 82 00 14 */ bne lbl_8030F9D0 /* 8030F9C0 0030B620 38 1A FF FF */ addi r0, r26, -1 /* 8030F9C4 0030B624 93 D9 00 0C */ stw r30, 0xc(r25) /* 8030F9C8 0030B628 90 19 00 10 */ stw r0, 0x10(r25) /* 8030F9CC 0030B62C 48 00 00 18 */ b lbl_8030F9E4 lbl_8030F9D0: /* 8030F9D0 0030B630 7C 9E 23 78 */ mr r30, r4 /* 8030F9D4 0030B634 3B 5A 00 01 */ addi r26, r26, 1 lbl_8030F9D8: /* 8030F9D8 0030B638 80 01 00 10 */ lwz r0, 0x10(r1) /* 8030F9DC 0030B63C 2C 00 00 00 */ cmpwi r0, 0 /* 8030F9E0 0030B640 40 82 FF 78 */ bne lbl_8030F958 lbl_8030F9E4: /* 8030F9E4 0030B644 38 60 00 00 */ li r3, 0 lbl_8030F9E8: /* 8030F9E8 0030B648 39 61 00 40 */ addi r11, r1, 0x40 /* 8030F9EC 0030B64C 4B EB 77 7D */ bl _restgpr_24 /* 8030F9F0 0030B650 80 01 00 44 */ lwz r0, 0x44(r1) /* 8030F9F4 0030B654 7C 08 03 A6 */ mtlr r0 /* 8030F9F8 0030B658 38 21 00 40 */ addi r1, r1, 0x40 /* 8030F9FC 0030B65C 4E 80 00 20 */ blr .global VFiPFFAT_GetClusterSpecified VFiPFFAT_GetClusterSpecified: /* 8030FA00 0030B660 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8030FA04 0030B664 7C 08 02 A6 */ mflr r0 /* 8030FA08 0030B668 90 01 00 34 */ stw r0, 0x34(r1) /* 8030FA0C 0030B66C 39 61 00 30 */ addi r11, r1, 0x30 /* 8030FA10 0030B670 4B EB 77 19 */ bl _savegpr_27 /* 8030FA14 0030B674 80 E3 00 08 */ lwz r7, 8(r3) /* 8030FA18 0030B678 7C 9D 23 78 */ mr r29, r4 /* 8030FA1C 0030B67C 81 03 00 34 */ lwz r8, 0x34(r3) /* 8030FA20 0030B680 7C 7C 1B 78 */ mr r28, r3 /* 8030FA24 0030B684 80 07 00 00 */ lwz r0, 0(r7) /* 8030FA28 0030B688 7C BB 2B 78 */ mr r27, r5 /* 8030FA2C 0030B68C 80 88 00 1C */ lwz r4, 0x1c(r8) /* 8030FA30 0030B690 7C DE 33 78 */ mr r30, r6 /* 8030FA34 0030B694 2C 00 00 00 */ cmpwi r0, 0 /* 8030FA38 0030B698 83 E3 00 30 */ lwz r31, 0x30(r3) /* 8030FA3C 0030B69C 40 82 00 1C */ bne lbl_8030FA58 /* 8030FA40 0030B6A0 2C 05 00 00 */ cmpwi r5, 0 /* 8030FA44 0030B6A4 40 82 00 14 */ bne lbl_8030FA58 /* 8030FA48 0030B6A8 38 00 FF FF */ li r0, -1 /* 8030FA4C 0030B6AC 38 60 00 00 */ li r3, 0 /* 8030FA50 0030B6B0 90 06 00 00 */ stw r0, 0(r6) /* 8030FA54 0030B6B4 48 00 01 24 */ b lbl_8030FB78 lbl_8030FA58: /* 8030FA58 0030B6B8 28 00 00 01 */ cmplwi r0, 1 /* 8030FA5C 0030B6BC 40 82 00 24 */ bne lbl_8030FA80 /* 8030FA60 0030B6C0 28 04 00 01 */ cmplwi r4, 1 /* 8030FA64 0030B6C4 41 81 00 14 */ bgt lbl_8030FA78 /* 8030FA68 0030B6C8 38 00 FF FF */ li r0, -1 /* 8030FA6C 0030B6CC 38 60 00 00 */ li r3, 0 /* 8030FA70 0030B6D0 90 06 00 00 */ stw r0, 0(r6) /* 8030FA74 0030B6D4 48 00 01 04 */ b lbl_8030FB78 lbl_8030FA78: /* 8030FA78 0030B6D8 80 08 00 10 */ lwz r0, 0x10(r8) /* 8030FA7C 0030B6DC 90 07 00 00 */ stw r0, 0(r7) lbl_8030FA80: /* 8030FA80 0030B6E0 80 03 00 1C */ lwz r0, 0x1c(r3) /* 8030FA84 0030B6E4 2C 00 00 00 */ cmpwi r0, 0 /* 8030FA88 0030B6E8 41 82 00 54 */ beq lbl_8030FADC /* 8030FA8C 0030B6EC 2C 05 00 00 */ cmpwi r5, 0 /* 8030FA90 0030B6F0 40 82 00 4C */ bne lbl_8030FADC /* 8030FA94 0030B6F4 7F 83 E3 78 */ mr r3, r28 /* 8030FA98 0030B6F8 7F A4 EB 78 */ mr r4, r29 /* 8030FA9C 0030B6FC 7F C5 F3 78 */ mr r5, r30 /* 8030FAA0 0030B700 38 C1 00 10 */ addi r6, r1, 0x10 /* 8030FAA4 0030B704 4B FF ED C9 */ bl VFiPFFAT_FindClusterLink /* 8030FAA8 0030B708 2C 03 00 00 */ cmpwi r3, 0 /* 8030FAAC 0030B70C 41 82 00 08 */ beq lbl_8030FAB4 /* 8030FAB0 0030B710 48 00 00 C8 */ b lbl_8030FB78 lbl_8030FAB4: /* 8030FAB4 0030B714 80 01 00 10 */ lwz r0, 0x10(r1) /* 8030FAB8 0030B718 28 00 00 01 */ cmplwi r0, 1 /* 8030FABC 0030B71C 40 82 00 20 */ bne lbl_8030FADC /* 8030FAC0 0030B720 80 1C 00 00 */ lwz r0, 0(r28) /* 8030FAC4 0030B724 38 60 00 00 */ li r3, 0 /* 8030FAC8 0030B728 90 1F 00 08 */ stw r0, 8(r31) /* 8030FACC 0030B72C 93 BF 00 00 */ stw r29, 0(r31) /* 8030FAD0 0030B730 80 1E 00 00 */ lwz r0, 0(r30) /* 8030FAD4 0030B734 90 1F 00 04 */ stw r0, 4(r31) /* 8030FAD8 0030B738 48 00 00 A0 */ b lbl_8030FB78 lbl_8030FADC: /* 8030FADC 0030B73C 7C 1B 00 D0 */ neg r0, r27 /* 8030FAE0 0030B740 38 60 FF FF */ li r3, -1 /* 8030FAE4 0030B744 7C 00 DB 78 */ or r0, r0, r27 /* 8030FAE8 0030B748 90 7E 00 00 */ stw r3, 0(r30) /* 8030FAEC 0030B74C 7F 83 E3 78 */ mr r3, r28 /* 8030FAF0 0030B750 7F A4 EB 78 */ mr r4, r29 /* 8030FAF4 0030B754 54 05 0F FE */ srwi r5, r0, 0x1f /* 8030FAF8 0030B758 38 E1 00 08 */ addi r7, r1, 8 /* 8030FAFC 0030B75C 39 01 00 0C */ addi r8, r1, 0xc /* 8030FB00 0030B760 38 C0 00 00 */ li r6, 0 /* 8030FB04 0030B764 4B FF F9 95 */ bl VFiPFFAT_GetClusterInChain /* 8030FB08 0030B768 2C 03 00 00 */ cmpwi r3, 0 /* 8030FB0C 0030B76C 41 82 00 08 */ beq lbl_8030FB14 /* 8030FB10 0030B770 48 00 00 2C */ b lbl_8030FB3C lbl_8030FB14: /* 8030FB14 0030B774 80 81 00 0C */ lwz r4, 0xc(r1) /* 8030FB18 0030B778 28 04 00 02 */ cmplwi r4, 2 /* 8030FB1C 0030B77C 41 80 00 1C */ blt lbl_8030FB38 /* 8030FB20 0030B780 80 7C 00 34 */ lwz r3, 0x34(r28) /* 8030FB24 0030B784 80 63 00 34 */ lwz r3, 0x34(r3) /* 8030FB28 0030B788 38 03 00 02 */ addi r0, r3, 2 /* 8030FB2C 0030B78C 7C 04 00 40 */ cmplw r4, r0 /* 8030FB30 0030B790 40 80 00 08 */ bge lbl_8030FB38 /* 8030FB34 0030B794 90 9E 00 00 */ stw r4, 0(r30) lbl_8030FB38: /* 8030FB38 0030B798 38 60 00 00 */ li r3, 0 lbl_8030FB3C: /* 8030FB3C 0030B79C 2C 03 00 00 */ cmpwi r3, 0 /* 8030FB40 0030B7A0 41 82 00 08 */ beq lbl_8030FB48 /* 8030FB44 0030B7A4 48 00 00 34 */ b lbl_8030FB78 lbl_8030FB48: /* 8030FB48 0030B7A8 80 7E 00 00 */ lwz r3, 0(r30) /* 8030FB4C 0030B7AC 3C 03 00 01 */ addis r0, r3, 1 /* 8030FB50 0030B7B0 28 00 FF FF */ cmplwi r0, 0xffff /* 8030FB54 0030B7B4 40 82 00 0C */ bne lbl_8030FB60 /* 8030FB58 0030B7B8 38 60 00 00 */ li r3, 0 /* 8030FB5C 0030B7BC 48 00 00 1C */ b lbl_8030FB78 lbl_8030FB60: /* 8030FB60 0030B7C0 80 1C 00 00 */ lwz r0, 0(r28) /* 8030FB64 0030B7C4 38 60 00 00 */ li r3, 0 /* 8030FB68 0030B7C8 90 1F 00 08 */ stw r0, 8(r31) /* 8030FB6C 0030B7CC 93 BF 00 00 */ stw r29, 0(r31) /* 8030FB70 0030B7D0 80 1E 00 00 */ lwz r0, 0(r30) /* 8030FB74 0030B7D4 90 1F 00 04 */ stw r0, 4(r31) lbl_8030FB78: /* 8030FB78 0030B7D8 39 61 00 30 */ addi r11, r1, 0x30 /* 8030FB7C 0030B7DC 4B EB 75 F9 */ bl _restgpr_27 /* 8030FB80 0030B7E0 80 01 00 34 */ lwz r0, 0x34(r1) /* 8030FB84 0030B7E4 7C 08 03 A6 */ mtlr r0 /* 8030FB88 0030B7E8 38 21 00 30 */ addi r1, r1, 0x30 /* 8030FB8C 0030B7EC 4E 80 00 20 */ blr .global VFiPFFAT_GetClusterAllocated VFiPFFAT_GetClusterAllocated: /* 8030FB90 0030B7F0 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8030FB94 0030B7F4 7C 08 02 A6 */ mflr r0 /* 8030FB98 0030B7F8 90 01 00 34 */ stw r0, 0x34(r1) /* 8030FB9C 0030B7FC 39 61 00 30 */ addi r11, r1, 0x30 /* 8030FBA0 0030B800 4B EB 75 89 */ bl _savegpr_27 /* 8030FBA4 0030B804 81 03 00 08 */ lwz r8, 8(r3) /* 8030FBA8 0030B808 7C 9D 23 78 */ mr r29, r4 /* 8030FBAC 0030B80C 81 23 00 34 */ lwz r9, 0x34(r3) /* 8030FBB0 0030B810 7C 7C 1B 78 */ mr r28, r3 /* 8030FBB4 0030B814 80 08 00 00 */ lwz r0, 0(r8) /* 8030FBB8 0030B818 7C DE 33 78 */ mr r30, r6 /* 8030FBBC 0030B81C 80 89 00 1C */ lwz r4, 0x1c(r9) /* 8030FBC0 0030B820 7C FB 3B 78 */ mr r27, r7 /* 8030FBC4 0030B824 28 00 00 01 */ cmplwi r0, 1 /* 8030FBC8 0030B828 83 E3 00 30 */ lwz r31, 0x30(r3) /* 8030FBCC 0030B82C 40 82 00 24 */ bne lbl_8030FBF0 /* 8030FBD0 0030B830 28 04 00 01 */ cmplwi r4, 1 /* 8030FBD4 0030B834 41 81 00 14 */ bgt lbl_8030FBE8 /* 8030FBD8 0030B838 38 00 FF FF */ li r0, -1 /* 8030FBDC 0030B83C 38 60 00 00 */ li r3, 0 /* 8030FBE0 0030B840 90 06 00 00 */ stw r0, 0(r6) /* 8030FBE4 0030B844 48 00 00 B4 */ b lbl_8030FC98 lbl_8030FBE8: /* 8030FBE8 0030B848 80 09 00 10 */ lwz r0, 0x10(r9) /* 8030FBEC 0030B84C 90 08 00 00 */ stw r0, 0(r8) lbl_8030FBF0: /* 8030FBF0 0030B850 38 00 FF FF */ li r0, -1 /* 8030FBF4 0030B854 7F 83 E3 78 */ mr r3, r28 /* 8030FBF8 0030B858 90 06 00 00 */ stw r0, 0(r6) /* 8030FBFC 0030B85C 7C A6 2B 78 */ mr r6, r5 /* 8030FC00 0030B860 7F A4 EB 78 */ mr r4, r29 /* 8030FC04 0030B864 38 E1 00 08 */ addi r7, r1, 8 /* 8030FC08 0030B868 39 01 00 0C */ addi r8, r1, 0xc /* 8030FC0C 0030B86C 38 A0 00 02 */ li r5, 2 /* 8030FC10 0030B870 4B FF F8 89 */ bl VFiPFFAT_GetClusterInChain /* 8030FC14 0030B874 2C 03 00 00 */ cmpwi r3, 0 /* 8030FC18 0030B878 41 82 00 08 */ beq lbl_8030FC20 /* 8030FC1C 0030B87C 48 00 00 40 */ b lbl_8030FC5C lbl_8030FC20: /* 8030FC20 0030B880 80 61 00 08 */ lwz r3, 8(r1) /* 8030FC24 0030B884 80 01 00 0C */ lwz r0, 0xc(r1) /* 8030FC28 0030B888 7C 63 00 50 */ subf r3, r3, r0 /* 8030FC2C 0030B88C 38 03 00 01 */ addi r0, r3, 1 /* 8030FC30 0030B890 90 1B 00 00 */ stw r0, 0(r27) /* 8030FC34 0030B894 80 81 00 08 */ lwz r4, 8(r1) /* 8030FC38 0030B898 28 04 00 02 */ cmplwi r4, 2 /* 8030FC3C 0030B89C 41 80 00 1C */ blt lbl_8030FC58 /* 8030FC40 0030B8A0 80 7C 00 34 */ lwz r3, 0x34(r28) /* 8030FC44 0030B8A4 80 63 00 34 */ lwz r3, 0x34(r3) /* 8030FC48 0030B8A8 38 03 00 02 */ addi r0, r3, 2 /* 8030FC4C 0030B8AC 7C 04 00 40 */ cmplw r4, r0 /* 8030FC50 0030B8B0 40 80 00 08 */ bge lbl_8030FC58 /* 8030FC54 0030B8B4 90 9E 00 00 */ stw r4, 0(r30) lbl_8030FC58: /* 8030FC58 0030B8B8 38 60 00 00 */ li r3, 0 lbl_8030FC5C: /* 8030FC5C 0030B8BC 2C 03 00 00 */ cmpwi r3, 0 /* 8030FC60 0030B8C0 41 82 00 08 */ beq lbl_8030FC68 /* 8030FC64 0030B8C4 48 00 00 34 */ b lbl_8030FC98 lbl_8030FC68: /* 8030FC68 0030B8C8 80 7E 00 00 */ lwz r3, 0(r30) /* 8030FC6C 0030B8CC 3C 03 00 01 */ addis r0, r3, 1 /* 8030FC70 0030B8D0 28 00 FF FF */ cmplwi r0, 0xffff /* 8030FC74 0030B8D4 40 82 00 0C */ bne lbl_8030FC80 /* 8030FC78 0030B8D8 38 60 00 00 */ li r3, 0 /* 8030FC7C 0030B8DC 48 00 00 1C */ b lbl_8030FC98 lbl_8030FC80: /* 8030FC80 0030B8E0 80 1C 00 00 */ lwz r0, 0(r28) /* 8030FC84 0030B8E4 38 60 00 00 */ li r3, 0 /* 8030FC88 0030B8E8 90 1F 00 08 */ stw r0, 8(r31) /* 8030FC8C 0030B8EC 93 BF 00 00 */ stw r29, 0(r31) /* 8030FC90 0030B8F0 80 1E 00 00 */ lwz r0, 0(r30) /* 8030FC94 0030B8F4 90 1F 00 04 */ stw r0, 4(r31) lbl_8030FC98: /* 8030FC98 0030B8F8 39 61 00 30 */ addi r11, r1, 0x30 /* 8030FC9C 0030B8FC 4B EB 74 D9 */ bl _restgpr_27 /* 8030FCA0 0030B900 80 01 00 34 */ lwz r0, 0x34(r1) /* 8030FCA4 0030B904 7C 08 03 A6 */ mtlr r0 /* 8030FCA8 0030B908 38 21 00 30 */ addi r1, r1, 0x30 /* 8030FCAC 0030B90C 4E 80 00 20 */ blr .global VFiPFFAT_GetSector VFiPFFAT_GetSector: /* 8030FCB0 0030B910 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8030FCB4 0030B914 7C 08 02 A6 */ mflr r0 /* 8030FCB8 0030B918 90 01 00 24 */ stw r0, 0x24(r1) /* 8030FCBC 0030B91C 38 00 00 00 */ li r0, 0 /* 8030FCC0 0030B920 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8030FCC4 0030B924 93 C1 00 18 */ stw r30, 0x18(r1) /* 8030FCC8 0030B928 7D 1E 43 78 */ mr r30, r8 /* 8030FCCC 0030B92C 93 A1 00 14 */ stw r29, 0x14(r1) /* 8030FCD0 0030B930 7C FD 3B 78 */ mr r29, r7 /* 8030FCD4 0030B934 93 81 00 10 */ stw r28, 0x10(r1) /* 8030FCD8 0030B938 7C 9C 23 78 */ mr r28, r4 /* 8030FCDC 0030B93C 90 01 00 08 */ stw r0, 8(r1) /* 8030FCE0 0030B940 81 23 00 08 */ lwz r9, 8(r3) /* 8030FCE4 0030B944 83 E3 00 34 */ lwz r31, 0x34(r3) /* 8030FCE8 0030B948 80 09 00 00 */ lwz r0, 0(r9) /* 8030FCEC 0030B94C 81 1F 00 1C */ lwz r8, 0x1c(r31) /* 8030FCF0 0030B950 28 00 00 01 */ cmplwi r0, 1 /* 8030FCF4 0030B954 40 82 00 64 */ bne lbl_8030FD58 /* 8030FCF8 0030B958 28 08 00 01 */ cmplwi r8, 1 /* 8030FCFC 0030B95C 41 81 00 5C */ bgt lbl_8030FD58 /* 8030FD00 0030B960 2C 08 00 00 */ cmpwi r8, 0 /* 8030FD04 0030B964 41 82 00 14 */ beq lbl_8030FD18 /* 8030FD08 0030B968 2C 08 00 01 */ cmpwi r8, 1 /* 8030FD0C 0030B96C 41 82 00 0C */ beq lbl_8030FD18 /* 8030FD10 0030B970 38 60 00 0C */ li r3, 0xc /* 8030FD14 0030B974 48 00 00 30 */ b lbl_8030FD44 lbl_8030FD18: /* 8030FD18 0030B978 A0 1F 00 24 */ lhz r0, 0x24(r31) /* 8030FD1C 0030B97C 7C 04 00 40 */ cmplw r4, r0 /* 8030FD20 0030B980 41 80 00 14 */ blt lbl_8030FD34 /* 8030FD24 0030B984 38 00 FF FF */ li r0, -1 /* 8030FD28 0030B988 38 60 00 00 */ li r3, 0 /* 8030FD2C 0030B98C 90 07 00 00 */ stw r0, 0(r7) /* 8030FD30 0030B990 48 00 00 14 */ b lbl_8030FD44 lbl_8030FD34: /* 8030FD34 0030B994 80 1F 00 2C */ lwz r0, 0x2c(r31) /* 8030FD38 0030B998 38 60 00 00 */ li r3, 0 /* 8030FD3C 0030B99C 7C 00 22 14 */ add r0, r0, r4 /* 8030FD40 0030B9A0 90 07 00 00 */ stw r0, 0(r7) lbl_8030FD44: /* 8030FD44 0030B9A4 7C 03 00 D0 */ neg r0, r3 /* 8030FD48 0030B9A8 7C 00 1B 78 */ or r0, r0, r3 /* 8030FD4C 0030B9AC 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 8030FD50 0030B9B0 7C 63 00 38 */ and r3, r3, r0 /* 8030FD54 0030B9B4 48 00 00 F4 */ b lbl_8030FE48 lbl_8030FD58: /* 8030FD58 0030B9B8 89 3F 00 21 */ lbz r9, 0x21(r31) /* 8030FD5C 0030B9BC 28 05 00 02 */ cmplwi r5, 2 /* 8030FD60 0030B9C0 7C 84 4C 30 */ srw r4, r4, r9 /* 8030FD64 0030B9C4 40 82 00 74 */ bne lbl_8030FDD8 /* 8030FD68 0030B9C8 A0 BF 00 00 */ lhz r5, 0(r31) /* 8030FD6C 0030B9CC 89 1F 00 20 */ lbz r8, 0x20(r31) /* 8030FD70 0030B9D0 38 05 FF FF */ addi r0, r5, -1 /* 8030FD74 0030B9D4 88 BF 00 06 */ lbz r5, 6(r31) /* 8030FD78 0030B9D8 7C C7 00 38 */ and r7, r6, r0 /* 8030FD7C 0030B9DC 7C C8 44 30 */ srw r8, r6, r8 /* 8030FD80 0030B9E0 7C C7 00 D0 */ neg r6, r7 /* 8030FD84 0030B9E4 38 05 FF FF */ addi r0, r5, -1 /* 8030FD88 0030B9E8 7C C5 3B 78 */ or r5, r6, r7 /* 8030FD8C 0030B9EC 38 E1 00 08 */ addi r7, r1, 8 /* 8030FD90 0030B9F0 54 A5 0F FE */ srwi r5, r5, 0x1f /* 8030FD94 0030B9F4 38 C1 00 0C */ addi r6, r1, 0xc /* 8030FD98 0030B9F8 7D 08 2A 14 */ add r8, r8, r5 /* 8030FD9C 0030B9FC 7C 05 40 38 */ and r5, r0, r8 /* 8030FDA0 0030BA00 7C 05 00 D0 */ neg r0, r5 /* 8030FDA4 0030BA04 7D 08 4C 30 */ srw r8, r8, r9 /* 8030FDA8 0030BA08 7C 00 2B 78 */ or r0, r0, r5 /* 8030FDAC 0030BA0C 54 00 0F FE */ srwi r0, r0, 0x1f /* 8030FDB0 0030BA10 7C A8 02 14 */ add r5, r8, r0 /* 8030FDB4 0030BA14 4B FF FD DD */ bl VFiPFFAT_GetClusterAllocated /* 8030FDB8 0030BA18 2C 03 00 00 */ cmpwi r3, 0 /* 8030FDBC 0030BA1C 41 82 00 08 */ beq lbl_8030FDC4 /* 8030FDC0 0030BA20 48 00 00 88 */ b lbl_8030FE48 lbl_8030FDC4: /* 8030FDC4 0030BA24 80 61 00 08 */ lwz r3, 8(r1) /* 8030FDC8 0030BA28 88 1F 00 21 */ lbz r0, 0x21(r31) /* 8030FDCC 0030BA2C 7C 60 00 30 */ slw r0, r3, r0 /* 8030FDD0 0030BA30 90 1E 00 00 */ stw r0, 0(r30) /* 8030FDD4 0030BA34 48 00 00 28 */ b lbl_8030FDFC lbl_8030FDD8: /* 8030FDD8 0030BA38 38 C1 00 0C */ addi r6, r1, 0xc /* 8030FDDC 0030BA3C 4B FF FC 25 */ bl VFiPFFAT_GetClusterSpecified /* 8030FDE0 0030BA40 2C 03 00 00 */ cmpwi r3, 0 /* 8030FDE4 0030BA44 41 82 00 08 */ beq lbl_8030FDEC /* 8030FDE8 0030BA48 48 00 00 60 */ b lbl_8030FE48 lbl_8030FDEC: /* 8030FDEC 0030BA4C 88 1F 00 21 */ lbz r0, 0x21(r31) /* 8030FDF0 0030BA50 38 60 00 01 */ li r3, 1 /* 8030FDF4 0030BA54 7C 60 00 30 */ slw r0, r3, r0 /* 8030FDF8 0030BA58 90 1E 00 00 */ stw r0, 0(r30) lbl_8030FDFC: /* 8030FDFC 0030BA5C 80 61 00 0C */ lwz r3, 0xc(r1) /* 8030FE00 0030BA60 3C 03 00 01 */ addis r0, r3, 1 /* 8030FE04 0030BA64 28 00 FF FF */ cmplwi r0, 0xffff /* 8030FE08 0030BA68 40 82 00 14 */ bne lbl_8030FE1C /* 8030FE0C 0030BA6C 38 00 FF FF */ li r0, -1 /* 8030FE10 0030BA70 38 60 00 00 */ li r3, 0 /* 8030FE14 0030BA74 90 1D 00 00 */ stw r0, 0(r29) /* 8030FE18 0030BA78 48 00 00 30 */ b lbl_8030FE48 lbl_8030FE1C: /* 8030FE1C 0030BA7C 88 9F 00 06 */ lbz r4, 6(r31) /* 8030FE20 0030BA80 38 C3 FF FE */ addi r6, r3, -2 /* 8030FE24 0030BA84 88 BF 00 21 */ lbz r5, 0x21(r31) /* 8030FE28 0030BA88 38 60 00 00 */ li r3, 0 /* 8030FE2C 0030BA8C 38 04 FF FF */ addi r0, r4, -1 /* 8030FE30 0030BA90 80 FF 00 30 */ lwz r7, 0x30(r31) /* 8030FE34 0030BA94 7C C5 28 30 */ slw r5, r6, r5 /* 8030FE38 0030BA98 7F 84 00 38 */ and r4, r28, r0 /* 8030FE3C 0030BA9C 7C 07 2A 14 */ add r0, r7, r5 /* 8030FE40 0030BAA0 7C 04 02 14 */ add r0, r4, r0 /* 8030FE44 0030BAA4 90 1D 00 00 */ stw r0, 0(r29) lbl_8030FE48: /* 8030FE48 0030BAA8 80 01 00 24 */ lwz r0, 0x24(r1) /* 8030FE4C 0030BAAC 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8030FE50 0030BAB0 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8030FE54 0030BAB4 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8030FE58 0030BAB8 83 81 00 10 */ lwz r28, 0x10(r1) /* 8030FE5C 0030BABC 7C 08 03 A6 */ mtlr r0 /* 8030FE60 0030BAC0 38 21 00 20 */ addi r1, r1, 0x20 /* 8030FE64 0030BAC4 4E 80 00 20 */ blr .global VFiPFFAT_UpdateFATEntry VFiPFFAT_UpdateFATEntry: /* 8030FE68 0030BAC8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030FE6C 0030BACC 7C 08 02 A6 */ mflr r0 /* 8030FE70 0030BAD0 38 A0 00 00 */ li r5, 0 /* 8030FE74 0030BAD4 90 01 00 14 */ stw r0, 0x14(r1) /* 8030FE78 0030BAD8 A0 04 00 00 */ lhz r0, 0(r4) /* 8030FE7C 0030BADC 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e /* 8030FE80 0030BAE0 2C 00 00 02 */ cmpwi r0, 2 /* 8030FE84 0030BAE4 40 82 00 0C */ bne lbl_8030FE90 /* 8030FE88 0030BAE8 4B FF AA F5 */ bl VFiPFCACHE_WriteFATPage /* 8030FE8C 0030BAEC 7C 65 1B 78 */ mr r5, r3 lbl_8030FE90: /* 8030FE90 0030BAF0 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030FE94 0030BAF4 7C A3 2B 78 */ mr r3, r5 /* 8030FE98 0030BAF8 7C 08 03 A6 */ mtlr r0 /* 8030FE9C 0030BAFC 38 21 00 10 */ addi r1, r1, 0x10 /* 8030FEA0 0030BB00 4E 80 00 20 */ blr .global VFiPFFAT_UpdateAlternateFATEntry VFiPFFAT_UpdateAlternateFATEntry: /* 8030FEA4 0030BB04 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8030FEA8 0030BB08 7C 08 02 A6 */ mflr r0 /* 8030FEAC 0030BB0C 90 01 00 34 */ stw r0, 0x34(r1) /* 8030FEB0 0030BB10 39 61 00 30 */ addi r11, r1, 0x30 /* 8030FEB4 0030BB14 4B EB 72 71 */ bl _savegpr_26 /* 8030FEB8 0030BB18 A0 03 00 02 */ lhz r0, 2(r3) /* 8030FEBC 0030BB1C 7C 7A 1B 78 */ mr r26, r3 /* 8030FEC0 0030BB20 80 63 00 0C */ lwz r3, 0xc(r3) /* 8030FEC4 0030BB24 7C 9B 23 78 */ mr r27, r4 /* 8030FEC8 0030BB28 7C 80 28 50 */ subf r4, r0, r5 /* 8030FECC 0030BB2C 7C DD 33 78 */ mr r29, r6 /* 8030FED0 0030BB30 7C 04 1B 97 */ divwu. r0, r4, r3 /* 8030FED4 0030BB34 3B E0 00 00 */ li r31, 0 /* 8030FED8 0030BB38 41 82 00 14 */ beq lbl_8030FEEC /* 8030FEDC 0030BB3C 7C 00 19 D6 */ mullw r0, r0, r3 /* 8030FEE0 0030BB40 3B C0 00 00 */ li r30, 0 /* 8030FEE4 0030BB44 7F 80 20 50 */ subf r28, r0, r4 /* 8030FEE8 0030BB48 48 00 00 58 */ b lbl_8030FF40 lbl_8030FEEC: /* 8030FEEC 0030BB4C 7F 85 1A 14 */ add r28, r5, r3 /* 8030FEF0 0030BB50 3B C0 00 01 */ li r30, 1 /* 8030FEF4 0030BB54 48 00 00 4C */ b lbl_8030FF40 lbl_8030FEF8: /* 8030FEF8 0030BB58 7F 43 D3 78 */ mr r3, r26 /* 8030FEFC 0030BB5C 7F 64 DB 78 */ mr r4, r27 /* 8030FF00 0030BB60 7F 85 E3 78 */ mr r5, r28 /* 8030FF04 0030BB64 7F A6 EB 78 */ mr r6, r29 /* 8030FF08 0030BB68 38 E1 00 08 */ addi r7, r1, 8 /* 8030FF0C 0030BB6C 4B FF 63 35 */ bl VFiPFDRV_lwrite /* 8030FF10 0030BB70 2C 03 00 00 */ cmpwi r3, 0 /* 8030FF14 0030BB74 41 82 00 10 */ beq lbl_8030FF24 /* 8030FF18 0030BB78 2C 1F 00 00 */ cmpwi r31, 0 /* 8030FF1C 0030BB7C 40 82 00 08 */ bne lbl_8030FF24 /* 8030FF20 0030BB80 7C 7F 1B 78 */ mr r31, r3 lbl_8030FF24: /* 8030FF24 0030BB84 80 01 00 08 */ lwz r0, 8(r1) /* 8030FF28 0030BB88 7C 00 E8 40 */ cmplw r0, r29 /* 8030FF2C 0030BB8C 41 82 00 08 */ beq lbl_8030FF34 /* 8030FF30 0030BB90 3B E0 00 11 */ li r31, 0x11 lbl_8030FF34: /* 8030FF34 0030BB94 80 1A 00 0C */ lwz r0, 0xc(r26) /* 8030FF38 0030BB98 3B DE 00 01 */ addi r30, r30, 1 /* 8030FF3C 0030BB9C 7F 9C 02 14 */ add r28, r28, r0 lbl_8030FF40: /* 8030FF40 0030BBA0 88 1A 00 22 */ lbz r0, 0x22(r26) /* 8030FF44 0030BBA4 7C 1E 00 40 */ cmplw r30, r0 /* 8030FF48 0030BBA8 41 80 FF B0 */ blt lbl_8030FEF8 /* 8030FF4C 0030BBAC 39 61 00 30 */ addi r11, r1, 0x30 /* 8030FF50 0030BBB0 7F E3 FB 78 */ mr r3, r31 /* 8030FF54 0030BBB4 4B EB 72 1D */ bl _restgpr_26 /* 8030FF58 0030BBB8 80 01 00 34 */ lwz r0, 0x34(r1) /* 8030FF5C 0030BBBC 7C 08 03 A6 */ mtlr r0 /* 8030FF60 0030BBC0 38 21 00 30 */ addi r1, r1, 0x30 /* 8030FF64 0030BBC4 4E 80 00 20 */ blr .global VFiPFFAT_GetSectorSpecified VFiPFFAT_GetSectorSpecified: /* 8030FF68 0030BBC8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030FF6C 0030BBCC 7C 08 02 A6 */ mflr r0 /* 8030FF70 0030BBD0 2C 03 00 00 */ cmpwi r3, 0 /* 8030FF74 0030BBD4 90 01 00 14 */ stw r0, 0x14(r1) /* 8030FF78 0030BBD8 40 82 00 0C */ bne lbl_8030FF84 /* 8030FF7C 0030BBDC 38 60 00 0A */ li r3, 0xa /* 8030FF80 0030BBE0 48 00 00 B0 */ b lbl_80310030 lbl_8030FF84: /* 8030FF84 0030BBE4 81 03 00 30 */ lwz r8, 0x30(r3) /* 8030FF88 0030BBE8 2C 08 00 00 */ cmpwi r8, 0 /* 8030FF8C 0030BBEC 40 82 00 0C */ bne lbl_8030FF98 /* 8030FF90 0030BBF0 38 60 00 0A */ li r3, 0xa /* 8030FF94 0030BBF4 48 00 00 9C */ b lbl_80310030 lbl_8030FF98: /* 8030FF98 0030BBF8 80 E3 00 00 */ lwz r7, 0(r3) /* 8030FF9C 0030BBFC 2C 07 00 00 */ cmpwi r7, 0 /* 8030FFA0 0030BC00 40 82 00 0C */ bne lbl_8030FFAC /* 8030FFA4 0030BC04 38 60 00 0A */ li r3, 0xa /* 8030FFA8 0030BC08 48 00 00 88 */ b lbl_80310030 lbl_8030FFAC: /* 8030FFAC 0030BC0C 80 08 00 08 */ lwz r0, 8(r8) /* 8030FFB0 0030BC10 7C 00 38 40 */ cmplw r0, r7 /* 8030FFB4 0030BC14 40 81 00 0C */ ble lbl_8030FFC0 /* 8030FFB8 0030BC18 38 60 00 0A */ li r3, 0xa /* 8030FFBC 0030BC1C 48 00 00 74 */ b lbl_80310030 lbl_8030FFC0: /* 8030FFC0 0030BC20 80 E3 00 34 */ lwz r7, 0x34(r3) /* 8030FFC4 0030BC24 88 07 18 7A */ lbz r0, 0x187a(r7) /* 8030FFC8 0030BC28 7C 00 07 74 */ extsb r0, r0 /* 8030FFCC 0030BC2C 2C 00 00 41 */ cmpwi r0, 0x41 /* 8030FFD0 0030BC30 41 80 00 0C */ blt lbl_8030FFDC /* 8030FFD4 0030BC34 2C 00 00 5A */ cmpwi r0, 0x5a /* 8030FFD8 0030BC38 40 81 00 0C */ ble lbl_8030FFE4 lbl_8030FFDC: /* 8030FFDC 0030BC3C 38 60 00 23 */ li r3, 0x23 /* 8030FFE0 0030BC40 48 00 00 50 */ b lbl_80310030 lbl_8030FFE4: /* 8030FFE4 0030BC44 88 07 00 20 */ lbz r0, 0x20(r7) /* 8030FFE8 0030BC48 38 E0 FF FF */ li r7, -1 /* 8030FFEC 0030BC4C 7C E7 04 30 */ srw r7, r7, r0 /* 8030FFF0 0030BC50 38 07 00 01 */ addi r0, r7, 1 /* 8030FFF4 0030BC54 7C 04 00 40 */ cmplw r4, r0 /* 8030FFF8 0030BC58 41 80 00 0C */ blt lbl_80310004 /* 8030FFFC 0030BC5C 38 60 00 25 */ li r3, 0x25 /* 80310000 0030BC60 48 00 00 30 */ b lbl_80310030 lbl_80310004: /* 80310004 0030BC64 7C 05 00 D0 */ neg r0, r5 /* 80310008 0030BC68 7C C7 33 78 */ mr r7, r6 /* 8031000C 0030BC6C 7C 00 2B 78 */ or r0, r0, r5 /* 80310010 0030BC70 39 01 00 08 */ addi r8, r1, 8 /* 80310014 0030BC74 54 05 0F FE */ srwi r5, r0, 0x1f /* 80310018 0030BC78 38 C0 00 00 */ li r6, 0 /* 8031001C 0030BC7C 4B FF FC 95 */ bl VFiPFFAT_GetSector /* 80310020 0030BC80 2C 03 00 00 */ cmpwi r3, 0 /* 80310024 0030BC84 41 82 00 08 */ beq lbl_8031002C /* 80310028 0030BC88 48 00 00 08 */ b lbl_80310030 lbl_8031002C: /* 8031002C 0030BC8C 38 60 00 00 */ li r3, 0 lbl_80310030: /* 80310030 0030BC90 80 01 00 14 */ lwz r0, 0x14(r1) /* 80310034 0030BC94 7C 08 03 A6 */ mtlr r0 /* 80310038 0030BC98 38 21 00 10 */ addi r1, r1, 0x10 /* 8031003C 0030BC9C 4E 80 00 20 */ blr .global VFiPFFAT_GetSectorAllocated VFiPFFAT_GetSectorAllocated: /* 80310040 0030BCA0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80310044 0030BCA4 7C 08 02 A6 */ mflr r0 /* 80310048 0030BCA8 2C 03 00 00 */ cmpwi r3, 0 /* 8031004C 0030BCAC 7C C9 33 78 */ mr r9, r6 /* 80310050 0030BCB0 90 01 00 14 */ stw r0, 0x14(r1) /* 80310054 0030BCB4 7C E8 3B 78 */ mr r8, r7 /* 80310058 0030BCB8 40 82 00 0C */ bne lbl_80310064 /* 8031005C 0030BCBC 38 60 00 0A */ li r3, 0xa /* 80310060 0030BCC0 48 00 00 A4 */ b lbl_80310104 lbl_80310064: /* 80310064 0030BCC4 80 E3 00 30 */ lwz r7, 0x30(r3) /* 80310068 0030BCC8 2C 07 00 00 */ cmpwi r7, 0 /* 8031006C 0030BCCC 40 82 00 0C */ bne lbl_80310078 /* 80310070 0030BCD0 38 60 00 0A */ li r3, 0xa /* 80310074 0030BCD4 48 00 00 90 */ b lbl_80310104 lbl_80310078: /* 80310078 0030BCD8 80 C3 00 00 */ lwz r6, 0(r3) /* 8031007C 0030BCDC 2C 06 00 00 */ cmpwi r6, 0 /* 80310080 0030BCE0 40 82 00 0C */ bne lbl_8031008C /* 80310084 0030BCE4 38 60 00 0A */ li r3, 0xa /* 80310088 0030BCE8 48 00 00 7C */ b lbl_80310104 lbl_8031008C: /* 8031008C 0030BCEC 80 07 00 08 */ lwz r0, 8(r7) /* 80310090 0030BCF0 7C 00 30 40 */ cmplw r0, r6 /* 80310094 0030BCF4 40 81 00 0C */ ble lbl_803100A0 /* 80310098 0030BCF8 38 60 00 0A */ li r3, 0xa /* 8031009C 0030BCFC 48 00 00 68 */ b lbl_80310104 lbl_803100A0: /* 803100A0 0030BD00 80 C3 00 34 */ lwz r6, 0x34(r3) /* 803100A4 0030BD04 88 06 18 7A */ lbz r0, 0x187a(r6) /* 803100A8 0030BD08 7C 00 07 74 */ extsb r0, r0 /* 803100AC 0030BD0C 2C 00 00 41 */ cmpwi r0, 0x41 /* 803100B0 0030BD10 41 80 00 0C */ blt lbl_803100BC /* 803100B4 0030BD14 2C 00 00 5A */ cmpwi r0, 0x5a /* 803100B8 0030BD18 40 81 00 0C */ ble lbl_803100C4 lbl_803100BC: /* 803100BC 0030BD1C 38 60 00 23 */ li r3, 0x23 /* 803100C0 0030BD20 48 00 00 44 */ b lbl_80310104 lbl_803100C4: /* 803100C4 0030BD24 88 06 00 20 */ lbz r0, 0x20(r6) /* 803100C8 0030BD28 38 C0 FF FF */ li r6, -1 /* 803100CC 0030BD2C 7C C6 04 30 */ srw r6, r6, r0 /* 803100D0 0030BD30 38 06 00 01 */ addi r0, r6, 1 /* 803100D4 0030BD34 7C 04 00 40 */ cmplw r4, r0 /* 803100D8 0030BD38 41 80 00 0C */ blt lbl_803100E4 /* 803100DC 0030BD3C 38 60 00 25 */ li r3, 0x25 /* 803100E0 0030BD40 48 00 00 24 */ b lbl_80310104 lbl_803100E4: /* 803100E4 0030BD44 7C A6 2B 78 */ mr r6, r5 /* 803100E8 0030BD48 7D 27 4B 78 */ mr r7, r9 /* 803100EC 0030BD4C 38 A0 00 02 */ li r5, 2 /* 803100F0 0030BD50 4B FF FB C1 */ bl VFiPFFAT_GetSector /* 803100F4 0030BD54 7C 03 00 D0 */ neg r0, r3 /* 803100F8 0030BD58 7C 00 1B 78 */ or r0, r0, r3 /* 803100FC 0030BD5C 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 80310100 0030BD60 7C 63 00 38 */ and r3, r3, r0 lbl_80310104: /* 80310104 0030BD64 80 01 00 14 */ lwz r0, 0x14(r1) /* 80310108 0030BD68 7C 08 03 A6 */ mtlr r0 /* 8031010C 0030BD6C 38 21 00 10 */ addi r1, r1, 0x10 /* 80310110 0030BD70 4E 80 00 20 */ blr .global VFiPFFAT_GetContinuousSector VFiPFFAT_GetContinuousSector: /* 80310114 0030BD74 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80310118 0030BD78 7C 08 02 A6 */ mflr r0 /* 8031011C 0030BD7C 90 01 00 34 */ stw r0, 0x34(r1) /* 80310120 0030BD80 39 61 00 30 */ addi r11, r1, 0x30 /* 80310124 0030BD84 4B EB 6F FD */ bl _savegpr_25 /* 80310128 0030BD88 2C 03 00 00 */ cmpwi r3, 0 /* 8031012C 0030BD8C 7C 79 1B 78 */ mr r25, r3 /* 80310130 0030BD90 7C 9A 23 78 */ mr r26, r4 /* 80310134 0030BD94 7C BB 2B 78 */ mr r27, r5 /* 80310138 0030BD98 7C DC 33 78 */ mr r28, r6 /* 8031013C 0030BD9C 7C FD 3B 78 */ mr r29, r7 /* 80310140 0030BDA0 3B C0 FF FF */ li r30, -1 /* 80310144 0030BDA4 40 82 00 0C */ bne lbl_80310150 /* 80310148 0030BDA8 38 60 00 0A */ li r3, 0xa /* 8031014C 0030BDAC 48 00 01 6C */ b lbl_803102B8 lbl_80310150: /* 80310150 0030BDB0 80 E3 00 30 */ lwz r7, 0x30(r3) /* 80310154 0030BDB4 2C 07 00 00 */ cmpwi r7, 0 /* 80310158 0030BDB8 40 82 00 0C */ bne lbl_80310164 /* 8031015C 0030BDBC 38 60 00 0A */ li r3, 0xa /* 80310160 0030BDC0 48 00 01 58 */ b lbl_803102B8 lbl_80310164: /* 80310164 0030BDC4 80 A3 00 00 */ lwz r5, 0(r3) /* 80310168 0030BDC8 2C 05 00 00 */ cmpwi r5, 0 /* 8031016C 0030BDCC 40 82 00 0C */ bne lbl_80310178 /* 80310170 0030BDD0 38 60 00 0A */ li r3, 0xa /* 80310174 0030BDD4 48 00 01 44 */ b lbl_803102B8 lbl_80310178: /* 80310178 0030BDD8 80 07 00 08 */ lwz r0, 8(r7) /* 8031017C 0030BDDC 7C 00 28 40 */ cmplw r0, r5 /* 80310180 0030BDE0 40 81 00 0C */ ble lbl_8031018C /* 80310184 0030BDE4 38 60 00 0A */ li r3, 0xa /* 80310188 0030BDE8 48 00 01 30 */ b lbl_803102B8 lbl_8031018C: /* 8031018C 0030BDEC 83 E3 00 34 */ lwz r31, 0x34(r3) /* 80310190 0030BDF0 88 1F 18 7A */ lbz r0, 0x187a(r31) /* 80310194 0030BDF4 7C 00 07 74 */ extsb r0, r0 /* 80310198 0030BDF8 2C 00 00 41 */ cmpwi r0, 0x41 /* 8031019C 0030BDFC 41 80 00 0C */ blt lbl_803101A8 /* 803101A0 0030BE00 2C 00 00 5A */ cmpwi r0, 0x5a /* 803101A4 0030BE04 40 81 00 0C */ ble lbl_803101B0 lbl_803101A8: /* 803101A8 0030BE08 38 60 00 23 */ li r3, 0x23 /* 803101AC 0030BE0C 48 00 01 0C */ b lbl_803102B8 lbl_803101B0: /* 803101B0 0030BE10 88 1F 00 20 */ lbz r0, 0x20(r31) /* 803101B4 0030BE14 38 A0 FF FF */ li r5, -1 /* 803101B8 0030BE18 7C A5 04 30 */ srw r5, r5, r0 /* 803101BC 0030BE1C 38 05 00 01 */ addi r0, r5, 1 /* 803101C0 0030BE20 7C 04 00 40 */ cmplw r4, r0 /* 803101C4 0030BE24 41 80 00 0C */ blt lbl_803101D0 /* 803101C8 0030BE28 38 60 00 25 */ li r3, 0x25 /* 803101CC 0030BE2C 48 00 00 EC */ b lbl_803102B8 lbl_803101D0: /* 803101D0 0030BE30 80 A6 00 00 */ lwz r5, 0(r6) /* 803101D4 0030BE34 3C 05 00 01 */ addis r0, r5, 1 /* 803101D8 0030BE38 28 00 FF FF */ cmplwi r0, 0xffff /* 803101DC 0030BE3C 41 82 00 1C */ beq lbl_803101F8 /* 803101E0 0030BE40 80 7F 00 30 */ lwz r3, 0x30(r31) /* 803101E4 0030BE44 88 1F 00 21 */ lbz r0, 0x21(r31) /* 803101E8 0030BE48 7C 63 28 50 */ subf r3, r3, r5 /* 803101EC 0030BE4C 7C 63 04 30 */ srw r3, r3, r0 /* 803101F0 0030BE50 3B C3 00 02 */ addi r30, r3, 2 /* 803101F4 0030BE54 48 00 00 3C */ b lbl_80310230 lbl_803101F8: /* 803101F8 0030BE58 38 A0 00 00 */ li r5, 0 /* 803101FC 0030BE5C 4B FF FD 6D */ bl VFiPFFAT_GetSectorSpecified /* 80310200 0030BE60 2C 03 00 00 */ cmpwi r3, 0 /* 80310204 0030BE64 41 82 00 08 */ beq lbl_8031020C /* 80310208 0030BE68 48 00 00 B0 */ b lbl_803102B8 lbl_8031020C: /* 8031020C 0030BE6C 80 BC 00 00 */ lwz r5, 0(r28) /* 80310210 0030BE70 3C 05 00 01 */ addis r0, r5, 1 /* 80310214 0030BE74 28 00 FF FF */ cmplwi r0, 0xffff /* 80310218 0030BE78 41 82 00 18 */ beq lbl_80310230 /* 8031021C 0030BE7C 80 7F 00 30 */ lwz r3, 0x30(r31) /* 80310220 0030BE80 88 1F 00 21 */ lbz r0, 0x21(r31) /* 80310224 0030BE84 7C 63 28 50 */ subf r3, r3, r5 /* 80310228 0030BE88 7C 63 04 30 */ srw r3, r3, r0 /* 8031022C 0030BE8C 3B C3 00 02 */ addi r30, r3, 2 lbl_80310230: /* 80310230 0030BE90 3C 05 00 01 */ addis r0, r5, 1 /* 80310234 0030BE94 28 00 FF FF */ cmplwi r0, 0xffff /* 80310238 0030BE98 41 82 00 24 */ beq lbl_8031025C /* 8031023C 0030BE9C 88 1F 00 21 */ lbz r0, 0x21(r31) /* 80310240 0030BEA0 38 7E FF FF */ addi r3, r30, -1 /* 80310244 0030BEA4 80 9F 00 30 */ lwz r4, 0x30(r31) /* 80310248 0030BEA8 7C 60 00 30 */ slw r0, r3, r0 /* 8031024C 0030BEAC 7C 04 02 14 */ add r0, r4, r0 /* 80310250 0030BEB0 7C 05 00 50 */ subf r0, r5, r0 /* 80310254 0030BEB4 90 1D 00 00 */ stw r0, 0(r29) /* 80310258 0030BEB8 48 00 00 0C */ b lbl_80310264 lbl_8031025C: /* 8031025C 0030BEBC 38 00 00 00 */ li r0, 0 /* 80310260 0030BEC0 90 1D 00 00 */ stw r0, 0(r29) lbl_80310264: /* 80310264 0030BEC4 80 7C 00 00 */ lwz r3, 0(r28) /* 80310268 0030BEC8 3C 03 00 01 */ addis r0, r3, 1 /* 8031026C 0030BECC 28 00 FF FF */ cmplwi r0, 0xffff /* 80310270 0030BED0 41 82 00 44 */ beq lbl_803102B4 /* 80310274 0030BED4 80 7D 00 00 */ lwz r3, 0(r29) /* 80310278 0030BED8 88 1F 00 20 */ lbz r0, 0x20(r31) /* 8031027C 0030BEDC 7C 60 00 30 */ slw r0, r3, r0 /* 80310280 0030BEE0 7C 00 D8 40 */ cmplw r0, r27 /* 80310284 0030BEE4 40 80 00 30 */ bge lbl_803102B4 /* 80310288 0030BEE8 88 1F 00 21 */ lbz r0, 0x21(r31) /* 8031028C 0030BEEC 7F 23 CB 78 */ mr r3, r25 /* 80310290 0030BEF0 7F C4 F3 78 */ mr r4, r30 /* 80310294 0030BEF4 7F 66 DB 78 */ mr r6, r27 /* 80310298 0030BEF8 7F 45 04 30 */ srw r5, r26, r0 /* 8031029C 0030BEFC 7F A7 EB 78 */ mr r7, r29 /* 803102A0 0030BF00 38 A5 00 01 */ addi r5, r5, 1 /* 803102A4 0030BF04 4B FF F5 1D */ bl VFiPFFAT_GetClusterContinuousSectorInChain /* 803102A8 0030BF08 2C 03 00 00 */ cmpwi r3, 0 /* 803102AC 0030BF0C 41 82 00 08 */ beq lbl_803102B4 /* 803102B0 0030BF10 48 00 00 08 */ b lbl_803102B8 lbl_803102B4: /* 803102B4 0030BF14 38 60 00 00 */ li r3, 0 lbl_803102B8: /* 803102B8 0030BF18 39 61 00 30 */ addi r11, r1, 0x30 /* 803102BC 0030BF1C 4B EB 6E B1 */ bl _restgpr_25 /* 803102C0 0030BF20 80 01 00 34 */ lwz r0, 0x34(r1) /* 803102C4 0030BF24 7C 08 03 A6 */ mtlr r0 /* 803102C8 0030BF28 38 21 00 30 */ addi r1, r1, 0x30 /* 803102CC 0030BF2C 4E 80 00 20 */ blr .global VFiPFFAT_CountAllocatedClusters VFiPFFAT_CountAllocatedClusters: /* 803102D0 0030BF30 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803102D4 0030BF34 7C 08 02 A6 */ mflr r0 /* 803102D8 0030BF38 2C 03 00 00 */ cmpwi r3, 0 /* 803102DC 0030BF3C 7C 86 23 78 */ mr r6, r4 /* 803102E0 0030BF40 90 01 00 14 */ stw r0, 0x14(r1) /* 803102E4 0030BF44 38 00 00 00 */ li r0, 0 /* 803102E8 0030BF48 7C A7 2B 78 */ mr r7, r5 /* 803102EC 0030BF4C 90 05 00 00 */ stw r0, 0(r5) /* 803102F0 0030BF50 40 82 00 0C */ bne lbl_803102FC /* 803102F4 0030BF54 38 60 00 0A */ li r3, 0xa /* 803102F8 0030BF58 48 00 01 20 */ b lbl_80310418 lbl_803102FC: /* 803102FC 0030BF5C 81 23 00 30 */ lwz r9, 0x30(r3) /* 80310300 0030BF60 2C 09 00 00 */ cmpwi r9, 0 /* 80310304 0030BF64 40 82 00 0C */ bne lbl_80310310 /* 80310308 0030BF68 38 60 00 0A */ li r3, 0xa /* 8031030C 0030BF6C 48 00 01 0C */ b lbl_80310418 lbl_80310310: /* 80310310 0030BF70 81 03 00 00 */ lwz r8, 0(r3) /* 80310314 0030BF74 2C 08 00 00 */ cmpwi r8, 0 /* 80310318 0030BF78 40 82 00 0C */ bne lbl_80310324 /* 8031031C 0030BF7C 38 60 00 0A */ li r3, 0xa /* 80310320 0030BF80 48 00 00 F8 */ b lbl_80310418 lbl_80310324: /* 80310324 0030BF84 80 09 00 08 */ lwz r0, 8(r9) /* 80310328 0030BF88 7C 00 40 40 */ cmplw r0, r8 /* 8031032C 0030BF8C 40 81 00 0C */ ble lbl_80310338 /* 80310330 0030BF90 38 60 00 0A */ li r3, 0xa /* 80310334 0030BF94 48 00 00 E4 */ b lbl_80310418 lbl_80310338: /* 80310338 0030BF98 81 43 00 34 */ lwz r10, 0x34(r3) /* 8031033C 0030BF9C 88 0A 18 7A */ lbz r0, 0x187a(r10) /* 80310340 0030BFA0 7C 00 07 74 */ extsb r0, r0 /* 80310344 0030BFA4 2C 00 00 41 */ cmpwi r0, 0x41 /* 80310348 0030BFA8 41 80 00 0C */ blt lbl_80310354 /* 8031034C 0030BFAC 2C 00 00 5A */ cmpwi r0, 0x5a /* 80310350 0030BFB0 40 81 00 0C */ ble lbl_8031035C lbl_80310354: /* 80310354 0030BFB4 38 60 00 23 */ li r3, 0x23 /* 80310358 0030BFB8 48 00 00 C0 */ b lbl_80310418 lbl_8031035C: /* 8031035C 0030BFBC 81 03 00 08 */ lwz r8, 8(r3) /* 80310360 0030BFC0 81 68 00 00 */ lwz r11, 0(r8) /* 80310364 0030BFC4 28 0B 00 02 */ cmplwi r11, 2 /* 80310368 0030BFC8 40 80 00 0C */ bge lbl_80310374 /* 8031036C 0030BFCC 38 60 00 00 */ li r3, 0 /* 80310370 0030BFD0 48 00 00 A8 */ b lbl_80310418 lbl_80310374: /* 80310374 0030BFD4 80 03 00 0C */ lwz r0, 0xc(r3) /* 80310378 0030BFD8 2C 00 00 00 */ cmpwi r0, 0 /* 8031037C 0030BFDC 41 82 00 18 */ beq lbl_80310394 /* 80310380 0030BFE0 80 83 00 10 */ lwz r4, 0x10(r3) /* 80310384 0030BFE4 38 60 00 00 */ li r3, 0 /* 80310388 0030BFE8 38 04 00 01 */ addi r0, r4, 1 /* 8031038C 0030BFEC 90 05 00 00 */ stw r0, 0(r5) /* 80310390 0030BFF0 48 00 00 88 */ b lbl_80310418 lbl_80310394: /* 80310394 0030BFF4 80 09 00 04 */ lwz r0, 4(r9) /* 80310398 0030BFF8 2C 00 00 00 */ cmpwi r0, 0 /* 8031039C 0030BFFC 41 82 00 60 */ beq lbl_803103FC /* 803103A0 0030C000 81 09 00 00 */ lwz r8, 0(r9) /* 803103A4 0030C004 88 CA 00 20 */ lbz r6, 0x20(r10) /* 803103A8 0030C008 88 0A 00 21 */ lbz r0, 0x21(r10) /* 803103AC 0030C00C 39 28 00 01 */ addi r9, r8, 1 /* 803103B0 0030C010 7C 06 02 14 */ add r0, r6, r0 /* 803103B4 0030C014 7D 20 00 30 */ slw r0, r9, r0 /* 803103B8 0030C018 7C 04 00 40 */ cmplw r4, r0 /* 803103BC 0030C01C 41 81 00 10 */ bgt lbl_803103CC /* 803103C0 0030C020 91 25 00 00 */ stw r9, 0(r5) /* 803103C4 0030C024 38 60 00 00 */ li r3, 0 /* 803103C8 0030C028 48 00 00 50 */ b lbl_80310418 lbl_803103CC: /* 803103CC 0030C02C 91 05 00 00 */ stw r8, 0(r5) /* 803103D0 0030C030 81 03 00 34 */ lwz r8, 0x34(r3) /* 803103D4 0030C034 80 C3 00 30 */ lwz r6, 0x30(r3) /* 803103D8 0030C038 88 A8 00 20 */ lbz r5, 0x20(r8) /* 803103DC 0030C03C 88 08 00 21 */ lbz r0, 0x21(r8) /* 803103E0 0030C040 81 06 00 00 */ lwz r8, 0(r6) /* 803103E4 0030C044 7C 05 02 14 */ add r0, r5, r0 /* 803103E8 0030C048 81 66 00 04 */ lwz r11, 4(r6) /* 803103EC 0030C04C 7D 00 00 30 */ slw r0, r8, r0 /* 803103F0 0030C050 38 A8 00 01 */ addi r5, r8, 1 /* 803103F4 0030C054 7C C0 20 50 */ subf r6, r0, r4 /* 803103F8 0030C058 48 00 00 08 */ b lbl_80310400 lbl_803103FC: /* 803103FC 0030C05C 38 A0 00 01 */ li r5, 1 lbl_80310400: /* 80310400 0030C060 7D 64 5B 78 */ mr r4, r11 /* 80310404 0030C064 4B FF F4 ED */ bl VFiPFFAT_GetClusterAllocatedInChain /* 80310408 0030C068 2C 03 00 00 */ cmpwi r3, 0 /* 8031040C 0030C06C 41 82 00 08 */ beq lbl_80310414 /* 80310410 0030C070 48 00 00 08 */ b lbl_80310418 lbl_80310414: /* 80310414 0030C074 38 60 00 00 */ li r3, 0 lbl_80310418: /* 80310418 0030C078 80 01 00 14 */ lwz r0, 0x14(r1) /* 8031041C 0030C07C 7C 08 03 A6 */ mtlr r0 /* 80310420 0030C080 38 21 00 10 */ addi r1, r1, 0x10 /* 80310424 0030C084 4E 80 00 20 */ blr .global VFiPFFAT_FreeChain VFiPFFAT_FreeChain: /* 80310428 0030C088 94 21 FF C0 */ stwu r1, -0x40(r1) /* 8031042C 0030C08C 7C 08 02 A6 */ mflr r0 /* 80310430 0030C090 90 01 00 44 */ stw r0, 0x44(r1) /* 80310434 0030C094 39 61 00 40 */ addi r11, r1, 0x40 /* 80310438 0030C098 4B EB 6C E1 */ bl _savegpr_23 /* 8031043C 0030C09C 83 E3 00 34 */ lwz r31, 0x34(r3) /* 80310440 0030C0A0 7C 78 1B 78 */ mr r24, r3 /* 80310444 0030C0A4 7C 99 23 78 */ mr r25, r4 /* 80310448 0030C0A8 7C BA 2B 78 */ mr r26, r5 /* 8031044C 0030C0AC 2C 1F 00 00 */ cmpwi r31, 0 /* 80310450 0030C0B0 7C DB 33 78 */ mr r27, r6 /* 80310454 0030C0B4 40 82 00 0C */ bne lbl_80310460 /* 80310458 0030C0B8 38 60 00 0A */ li r3, 0xa /* 8031045C 0030C0BC 48 00 03 34 */ b lbl_80310790 lbl_80310460: /* 80310460 0030C0C0 28 04 00 02 */ cmplwi r4, 2 /* 80310464 0030C0C4 41 80 00 14 */ blt lbl_80310478 /* 80310468 0030C0C8 80 7F 00 34 */ lwz r3, 0x34(r31) /* 8031046C 0030C0CC 38 03 00 02 */ addi r0, r3, 2 /* 80310470 0030C0D0 7C 04 00 40 */ cmplw r4, r0 /* 80310474 0030C0D4 41 80 00 14 */ blt lbl_80310488 lbl_80310478: /* 80310478 0030C0D8 2C 04 00 00 */ cmpwi r4, 0 /* 8031047C 0030C0DC 41 82 00 0C */ beq lbl_80310488 /* 80310480 0030C0E0 38 60 00 0E */ li r3, 0xe /* 80310484 0030C0E4 48 00 03 0C */ b lbl_80310790 lbl_80310488: /* 80310488 0030C0E8 2C 04 00 00 */ cmpwi r4, 0 /* 8031048C 0030C0EC 40 82 00 0C */ bne lbl_80310498 /* 80310490 0030C0F0 38 60 00 00 */ li r3, 0 /* 80310494 0030C0F4 48 00 02 FC */ b lbl_80310790 lbl_80310498: /* 80310498 0030C0F8 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 8031049C 0030C0FC 3C 60 80 40 */ lis r3, lbl_803FE280@ha /* 803104A0 0030C100 38 63 E2 80 */ addi r3, r3, lbl_803FE280@l /* 803104A4 0030C104 2C 06 00 00 */ cmpwi r6, 0 /* 803104A8 0030C108 1C 00 00 14 */ mulli r0, r0, 0x14 /* 803104AC 0030C10C 7C 63 02 14 */ add r3, r3, r0 /* 803104B0 0030C110 83 C3 00 04 */ lwz r30, 4(r3) /* 803104B4 0030C114 41 82 00 18 */ beq lbl_803104CC /* 803104B8 0030C118 A0 7F 00 00 */ lhz r3, 0(r31) /* 803104BC 0030C11C 7F 7D DB 78 */ mr r29, r27 /* 803104C0 0030C120 88 1F 00 21 */ lbz r0, 0x21(r31) /* 803104C4 0030C124 7C 7C 00 30 */ slw r28, r3, r0 /* 803104C8 0030C128 48 00 00 0C */ b lbl_803104D4 lbl_803104CC: /* 803104CC 0030C12C 38 60 00 00 */ li r3, 0 /* 803104D0 0030C130 48 00 02 C0 */ b lbl_80310790 lbl_803104D4: /* 803104D4 0030C134 7F E3 FB 78 */ mr r3, r31 /* 803104D8 0030C138 7F 25 CB 78 */ mr r5, r25 /* 803104DC 0030C13C 38 81 00 08 */ addi r4, r1, 8 /* 803104E0 0030C140 4B FF E0 59 */ bl VFiPFFAT_ReadFATSector /* 803104E4 0030C144 2C 03 00 00 */ cmpwi r3, 0 /* 803104E8 0030C148 41 82 00 08 */ beq lbl_803104F0 /* 803104EC 0030C14C 48 00 02 A4 */ b lbl_80310790 lbl_803104F0: /* 803104F0 0030C150 80 61 00 08 */ lwz r3, 8(r1) /* 803104F4 0030C154 38 00 00 01 */ li r0, 1 /* 803104F8 0030C158 B0 03 00 02 */ sth r0, 2(r3) /* 803104FC 0030C15C 93 21 00 0C */ stw r25, 0xc(r1) /* 80310500 0030C160 48 00 01 F8 */ b lbl_803106F8 lbl_80310504: /* 80310504 0030C164 2C 1B 00 00 */ cmpwi r27, 0 /* 80310508 0030C168 41 82 00 0C */ beq lbl_80310514 /* 8031050C 0030C16C 2C 1D 00 00 */ cmpwi r29, 0 /* 80310510 0030C170 41 82 01 F0 */ beq lbl_80310700 lbl_80310514: /* 80310514 0030C174 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 80310518 0030C178 80 61 00 08 */ lwz r3, 8(r1) /* 8031051C 0030C17C 2C 00 00 01 */ cmpwi r0, 1 /* 80310520 0030C180 82 E3 00 18 */ lwz r23, 0x18(r3) /* 80310524 0030C184 41 82 00 38 */ beq lbl_8031055C /* 80310528 0030C188 40 80 00 10 */ bge lbl_80310538 /* 8031052C 0030C18C 2C 00 00 00 */ cmpwi r0, 0 /* 80310530 0030C190 40 80 00 14 */ bge lbl_80310544 /* 80310534 0030C194 48 00 00 58 */ b lbl_8031058C lbl_80310538: /* 80310538 0030C198 2C 00 00 03 */ cmpwi r0, 3 /* 8031053C 0030C19C 40 80 00 50 */ bge lbl_8031058C /* 80310540 0030C1A0 48 00 00 34 */ b lbl_80310574 lbl_80310544: /* 80310544 0030C1A4 7F E3 FB 78 */ mr r3, r31 /* 80310548 0030C1A8 57 24 04 3E */ clrlwi r4, r25, 0x10 /* 8031054C 0030C1AC 38 A1 00 0C */ addi r5, r1, 0xc /* 80310550 0030C1B0 38 C1 00 08 */ addi r6, r1, 8 /* 80310554 0030C1B4 48 00 0E 01 */ bl VFiPFFAT12_ReadFATEntryPage /* 80310558 0030C1B8 48 00 00 38 */ b lbl_80310590 lbl_8031055C: /* 8031055C 0030C1BC 7F E3 FB 78 */ mr r3, r31 /* 80310560 0030C1C0 7F 24 CB 78 */ mr r4, r25 /* 80310564 0030C1C4 38 A1 00 0C */ addi r5, r1, 0xc /* 80310568 0030C1C8 38 C1 00 08 */ addi r6, r1, 8 /* 8031056C 0030C1CC 48 00 18 51 */ bl VFiPFFAT16_ReadFATEntryPage /* 80310570 0030C1D0 48 00 00 20 */ b lbl_80310590 lbl_80310574: /* 80310574 0030C1D4 7F E3 FB 78 */ mr r3, r31 /* 80310578 0030C1D8 7F 24 CB 78 */ mr r4, r25 /* 8031057C 0030C1DC 38 A1 00 0C */ addi r5, r1, 0xc /* 80310580 0030C1E0 38 C1 00 08 */ addi r6, r1, 8 /* 80310584 0030C1E4 48 00 1D C1 */ bl VFiPFFAT32_ReadFATEntryPage /* 80310588 0030C1E8 48 00 00 08 */ b lbl_80310590 lbl_8031058C: /* 8031058C 0030C1EC 38 60 00 0F */ li r3, 0xf lbl_80310590: /* 80310590 0030C1F0 2C 03 00 00 */ cmpwi r3, 0 /* 80310594 0030C1F4 41 82 00 08 */ beq lbl_8031059C /* 80310598 0030C1F8 48 00 01 F8 */ b lbl_80310790 lbl_8031059C: /* 8031059C 0030C1FC 80 01 00 0C */ lwz r0, 0xc(r1) /* 803105A0 0030C200 2C 00 00 00 */ cmpwi r0, 0 /* 803105A4 0030C204 40 82 00 38 */ bne lbl_803105DC /* 803105A8 0030C208 80 81 00 08 */ lwz r4, 8(r1) /* 803105AC 0030C20C 38 60 00 00 */ li r3, 0 /* 803105B0 0030C210 A0 04 00 00 */ lhz r0, 0(r4) /* 803105B4 0030C214 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e /* 803105B8 0030C218 2C 00 00 02 */ cmpwi r0, 2 /* 803105BC 0030C21C 40 82 00 0C */ bne lbl_803105C8 /* 803105C0 0030C220 7F E3 FB 78 */ mr r3, r31 /* 803105C4 0030C224 4B FF A3 B9 */ bl VFiPFCACHE_WriteFATPage lbl_803105C8: /* 803105C8 0030C228 2C 03 00 00 */ cmpwi r3, 0 /* 803105CC 0030C22C 41 82 00 08 */ beq lbl_803105D4 /* 803105D0 0030C230 48 00 01 C0 */ b lbl_80310790 lbl_803105D4: /* 803105D4 0030C234 38 60 00 00 */ li r3, 0 /* 803105D8 0030C238 48 00 01 B8 */ b lbl_80310790 lbl_803105DC: /* 803105DC 0030C23C 80 61 00 08 */ lwz r3, 8(r1) /* 803105E0 0030C240 80 03 00 18 */ lwz r0, 0x18(r3) /* 803105E4 0030C244 7C 17 00 40 */ cmplw r23, r0 /* 803105E8 0030C248 41 82 00 20 */ beq lbl_80310608 /* 803105EC 0030C24C 7F E3 FB 78 */ mr r3, r31 /* 803105F0 0030C250 7F 25 CB 78 */ mr r5, r25 /* 803105F4 0030C254 38 81 00 08 */ addi r4, r1, 8 /* 803105F8 0030C258 4B FF DF 41 */ bl VFiPFFAT_ReadFATSector /* 803105FC 0030C25C 2C 03 00 00 */ cmpwi r3, 0 /* 80310600 0030C260 41 82 00 08 */ beq lbl_80310608 /* 80310604 0030C264 48 00 01 8C */ b lbl_80310790 lbl_80310608: /* 80310608 0030C268 3C 1A 00 01 */ addis r0, r26, 1 /* 8031060C 0030C26C 28 00 FF FF */ cmplwi r0, 0xffff /* 80310610 0030C270 41 82 00 28 */ beq lbl_80310638 /* 80310614 0030C274 7F 03 C3 78 */ mr r3, r24 /* 80310618 0030C278 7F 24 CB 78 */ mr r4, r25 /* 8031061C 0030C27C 7F 45 D3 78 */ mr r5, r26 /* 80310620 0030C280 39 01 00 08 */ addi r8, r1, 8 /* 80310624 0030C284 38 C0 00 00 */ li r6, 0 /* 80310628 0030C288 38 E0 00 01 */ li r7, 1 /* 8031062C 0030C28C 4B FF E9 99 */ bl VFiPFFAT_WriteClusterPage /* 80310630 0030C290 3B 5A 00 01 */ addi r26, r26, 1 /* 80310634 0030C294 48 00 00 78 */ b lbl_803106AC lbl_80310638: /* 80310638 0030C298 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 8031063C 0030C29C 2C 00 00 01 */ cmpwi r0, 1 /* 80310640 0030C2A0 41 82 00 38 */ beq lbl_80310678 /* 80310644 0030C2A4 40 80 00 10 */ bge lbl_80310654 /* 80310648 0030C2A8 2C 00 00 00 */ cmpwi r0, 0 /* 8031064C 0030C2AC 40 80 00 14 */ bge lbl_80310660 /* 80310650 0030C2B0 48 00 00 58 */ b lbl_803106A8 lbl_80310654: /* 80310654 0030C2B4 2C 00 00 03 */ cmpwi r0, 3 /* 80310658 0030C2B8 40 80 00 50 */ bge lbl_803106A8 /* 8031065C 0030C2BC 48 00 00 34 */ b lbl_80310690 lbl_80310660: /* 80310660 0030C2C0 7F E3 FB 78 */ mr r3, r31 /* 80310664 0030C2C4 57 24 04 3E */ clrlwi r4, r25, 0x10 /* 80310668 0030C2C8 38 C1 00 08 */ addi r6, r1, 8 /* 8031066C 0030C2CC 38 A0 00 00 */ li r5, 0 /* 80310670 0030C2D0 48 00 11 5D */ bl VFiPFFAT12_WriteFATEntryPage /* 80310674 0030C2D4 48 00 00 38 */ b lbl_803106AC lbl_80310678: /* 80310678 0030C2D8 7F E3 FB 78 */ mr r3, r31 /* 8031067C 0030C2DC 7F 24 CB 78 */ mr r4, r25 /* 80310680 0030C2E0 38 C1 00 08 */ addi r6, r1, 8 /* 80310684 0030C2E4 38 A0 00 00 */ li r5, 0 /* 80310688 0030C2E8 48 00 19 89 */ bl VFiPFFAT16_WriteFATEntryPage /* 8031068C 0030C2EC 48 00 00 20 */ b lbl_803106AC lbl_80310690: /* 80310690 0030C2F0 7F E3 FB 78 */ mr r3, r31 /* 80310694 0030C2F4 7F 24 CB 78 */ mr r4, r25 /* 80310698 0030C2F8 38 C1 00 08 */ addi r6, r1, 8 /* 8031069C 0030C2FC 38 A0 00 00 */ li r5, 0 /* 803106A0 0030C300 48 00 1F 91 */ bl VFiPFFAT32_WriteFATEntryPage /* 803106A4 0030C304 48 00 00 08 */ b lbl_803106AC lbl_803106A8: /* 803106A8 0030C308 38 60 00 0F */ li r3, 0xf lbl_803106AC: /* 803106AC 0030C30C 2C 03 00 00 */ cmpwi r3, 0 /* 803106B0 0030C310 41 82 00 08 */ beq lbl_803106B8 /* 803106B4 0030C314 48 00 00 DC */ b lbl_80310790 lbl_803106B8: /* 803106B8 0030C318 2C 1B 00 00 */ cmpwi r27, 0 /* 803106BC 0030C31C 41 82 00 20 */ beq lbl_803106DC /* 803106C0 0030C320 2C 1D 00 00 */ cmpwi r29, 0 /* 803106C4 0030C324 41 82 00 18 */ beq lbl_803106DC /* 803106C8 0030C328 7C 1D E0 10 */ subfc r0, r29, r28 /* 803106CC 0030C32C 7C 7D 01 94 */ addze r3, r29 /* 803106D0 0030C330 7C 1C E8 50 */ subf r0, r28, r29 /* 803106D4 0030C334 7C 63 E8 50 */ subf r3, r3, r29 /* 803106D8 0030C338 7C 1D 18 78 */ andc r29, r0, r3 lbl_803106DC: /* 803106DC 0030C33C 80 7F 00 38 */ lwz r3, 0x38(r31) /* 803106E0 0030C340 3C 03 00 01 */ addis r0, r3, 1 /* 803106E4 0030C344 28 00 FF FF */ cmplwi r0, 0xffff /* 803106E8 0030C348 41 82 00 0C */ beq lbl_803106F4 /* 803106EC 0030C34C 38 03 00 01 */ addi r0, r3, 1 /* 803106F0 0030C350 90 1F 00 38 */ stw r0, 0x38(r31) lbl_803106F4: /* 803106F4 0030C354 83 21 00 0C */ lwz r25, 0xc(r1) lbl_803106F8: /* 803106F8 0030C358 7C 19 F0 40 */ cmplw r25, r30 /* 803106FC 0030C35C 41 80 FE 08 */ blt lbl_80310504 lbl_80310700: /* 80310700 0030C360 80 81 00 08 */ lwz r4, 8(r1) /* 80310704 0030C364 38 60 00 00 */ li r3, 0 /* 80310708 0030C368 A0 04 00 00 */ lhz r0, 0(r4) /* 8031070C 0030C36C 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e /* 80310710 0030C370 2C 00 00 02 */ cmpwi r0, 2 /* 80310714 0030C374 40 82 00 0C */ bne lbl_80310720 /* 80310718 0030C378 7F E3 FB 78 */ mr r3, r31 /* 8031071C 0030C37C 4B FF A2 61 */ bl VFiPFCACHE_WriteFATPage lbl_80310720: /* 80310720 0030C380 2C 03 00 00 */ cmpwi r3, 0 /* 80310724 0030C384 41 82 00 08 */ beq lbl_8031072C /* 80310728 0030C388 48 00 00 68 */ b lbl_80310790 lbl_8031072C: /* 8031072C 0030C38C 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 80310730 0030C390 2C 80 00 02 */ cmpwi cr1, r0, 2 /* 80310734 0030C394 40 86 00 58 */ bne cr1, lbl_8031078C /* 80310738 0030C398 A0 1F 18 7C */ lhz r0, 0x187c(r31) /* 8031073C 0030C39C 54 03 07 BD */ rlwinm. r3, r0, 0, 0x1e, 0x1e /* 80310740 0030C3A0 41 82 00 4C */ beq lbl_8031078C /* 80310744 0030C3A4 38 60 00 00 */ li r3, 0 /* 80310748 0030C3A8 41 86 00 0C */ beq cr1, lbl_80310754 /* 8031074C 0030C3AC 38 60 00 0C */ li r3, 0xc /* 80310750 0030C3B0 48 00 00 20 */ b lbl_80310770 lbl_80310754: /* 80310754 0030C3B4 40 82 00 0C */ bne lbl_80310760 /* 80310758 0030C3B8 38 60 00 24 */ li r3, 0x24 /* 8031075C 0030C3BC 48 00 00 14 */ b lbl_80310770 lbl_80310760: /* 80310760 0030C3C0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d /* 80310764 0030C3C4 41 82 00 0C */ beq lbl_80310770 /* 80310768 0030C3C8 7F E3 FB 78 */ mr r3, r31 /* 8031076C 0030C3CC 4B FF 54 31 */ bl VFiPFDRV_StoreFreeCountToFSINFO lbl_80310770: /* 80310770 0030C3D0 2C 03 00 00 */ cmpwi r3, 0 /* 80310774 0030C3D4 41 82 00 18 */ beq lbl_8031078C /* 80310778 0030C3D8 38 00 FF FF */ li r0, -1 /* 8031077C 0030C3DC 90 1F 00 38 */ stw r0, 0x38(r31) /* 80310780 0030C3E0 A0 1F 18 7C */ lhz r0, 0x187c(r31) /* 80310784 0030C3E4 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c /* 80310788 0030C3E8 B0 1F 18 7C */ sth r0, 0x187c(r31) lbl_8031078C: /* 8031078C 0030C3EC 38 60 00 00 */ li r3, 0 lbl_80310790: /* 80310790 0030C3F0 39 61 00 40 */ addi r11, r1, 0x40 /* 80310794 0030C3F4 4B EB 69 D1 */ bl _restgpr_23 /* 80310798 0030C3F8 80 01 00 44 */ lwz r0, 0x44(r1) /* 8031079C 0030C3FC 7C 08 03 A6 */ mtlr r0 /* 803107A0 0030C400 38 21 00 40 */ addi r1, r1, 0x40 /* 803107A4 0030C404 4E 80 00 20 */ blr .global VFiPFFAT_GetBeforeChain VFiPFFAT_GetBeforeChain: /* 803107A8 0030C408 94 21 FF D0 */ stwu r1, -0x30(r1) /* 803107AC 0030C40C 7C 08 02 A6 */ mflr r0 /* 803107B0 0030C410 90 01 00 34 */ stw r0, 0x34(r1) /* 803107B4 0030C414 39 61 00 30 */ addi r11, r1, 0x30 /* 803107B8 0030C418 4B EB 69 71 */ bl _savegpr_27 /* 803107BC 0030C41C 2C 03 00 00 */ cmpwi r3, 0 /* 803107C0 0030C420 7C 7C 1B 78 */ mr r28, r3 /* 803107C4 0030C424 7C 9D 23 78 */ mr r29, r4 /* 803107C8 0030C428 7C BE 2B 78 */ mr r30, r5 /* 803107CC 0030C42C 7C DF 33 78 */ mr r31, r6 /* 803107D0 0030C430 40 82 00 14 */ bne lbl_803107E4 /* 803107D4 0030C434 38 00 FF FF */ li r0, -1 /* 803107D8 0030C438 38 60 00 0A */ li r3, 0xa /* 803107DC 0030C43C 90 06 00 00 */ stw r0, 0(r6) /* 803107E0 0030C440 48 00 01 48 */ b lbl_80310928 lbl_803107E4: /* 803107E4 0030C444 28 04 00 02 */ cmplwi r4, 2 /* 803107E8 0030C448 41 80 00 14 */ blt lbl_803107FC /* 803107EC 0030C44C 80 A3 00 34 */ lwz r5, 0x34(r3) /* 803107F0 0030C450 38 05 00 02 */ addi r0, r5, 2 /* 803107F4 0030C454 7C 04 00 40 */ cmplw r4, r0 /* 803107F8 0030C458 41 80 00 14 */ blt lbl_8031080C lbl_803107FC: /* 803107FC 0030C45C 38 00 FF FF */ li r0, -1 /* 80310800 0030C460 38 60 00 0A */ li r3, 0xa /* 80310804 0030C464 90 06 00 00 */ stw r0, 0(r6) /* 80310808 0030C468 48 00 01 20 */ b lbl_80310928 lbl_8031080C: /* 8031080C 0030C46C 80 83 00 1C */ lwz r4, 0x1c(r3) /* 80310810 0030C470 3D 00 80 40 */ lis r8, lbl_803FE280@ha /* 80310814 0030C474 38 00 FF FF */ li r0, -1 /* 80310818 0030C478 7F A5 EB 78 */ mr r5, r29 /* 8031081C 0030C47C 1C E4 00 14 */ mulli r7, r4, 0x14 /* 80310820 0030C480 39 08 E2 80 */ addi r8, r8, lbl_803FE280@l /* 80310824 0030C484 90 06 00 00 */ stw r0, 0(r6) /* 80310828 0030C488 38 81 00 08 */ addi r4, r1, 8 /* 8031082C 0030C48C 7C C8 3A 14 */ add r6, r8, r7 /* 80310830 0030C490 83 66 00 04 */ lwz r27, 4(r6) /* 80310834 0030C494 4B FF DD 05 */ bl VFiPFFAT_ReadFATSector /* 80310838 0030C498 2C 03 00 00 */ cmpwi r3, 0 /* 8031083C 0030C49C 41 82 00 08 */ beq lbl_80310844 /* 80310840 0030C4A0 48 00 00 E8 */ b lbl_80310928 lbl_80310844: /* 80310844 0030C4A4 80 61 00 08 */ lwz r3, 8(r1) /* 80310848 0030C4A8 38 00 00 00 */ li r0, 0 /* 8031084C 0030C4AC B0 03 00 02 */ sth r0, 2(r3) /* 80310850 0030C4B0 48 00 00 CC */ b lbl_8031091C lbl_80310854: /* 80310854 0030C4B4 80 1C 00 1C */ lwz r0, 0x1c(r28) /* 80310858 0030C4B8 2C 00 00 01 */ cmpwi r0, 1 /* 8031085C 0030C4BC 41 82 00 38 */ beq lbl_80310894 /* 80310860 0030C4C0 40 80 00 10 */ bge lbl_80310870 /* 80310864 0030C4C4 2C 00 00 00 */ cmpwi r0, 0 /* 80310868 0030C4C8 40 80 00 14 */ bge lbl_8031087C /* 8031086C 0030C4CC 48 00 00 58 */ b lbl_803108C4 lbl_80310870: /* 80310870 0030C4D0 2C 00 00 03 */ cmpwi r0, 3 /* 80310874 0030C4D4 40 80 00 50 */ bge lbl_803108C4 /* 80310878 0030C4D8 48 00 00 34 */ b lbl_803108AC lbl_8031087C: /* 8031087C 0030C4DC 7F 83 E3 78 */ mr r3, r28 /* 80310880 0030C4E0 57 A4 04 3E */ clrlwi r4, r29, 0x10 /* 80310884 0030C4E4 38 A1 00 0C */ addi r5, r1, 0xc /* 80310888 0030C4E8 38 C1 00 08 */ addi r6, r1, 8 /* 8031088C 0030C4EC 48 00 0A C9 */ bl VFiPFFAT12_ReadFATEntryPage /* 80310890 0030C4F0 48 00 00 38 */ b lbl_803108C8 lbl_80310894: /* 80310894 0030C4F4 7F 83 E3 78 */ mr r3, r28 /* 80310898 0030C4F8 7F A4 EB 78 */ mr r4, r29 /* 8031089C 0030C4FC 38 A1 00 0C */ addi r5, r1, 0xc /* 803108A0 0030C500 38 C1 00 08 */ addi r6, r1, 8 /* 803108A4 0030C504 48 00 15 19 */ bl VFiPFFAT16_ReadFATEntryPage /* 803108A8 0030C508 48 00 00 20 */ b lbl_803108C8 lbl_803108AC: /* 803108AC 0030C50C 7F 83 E3 78 */ mr r3, r28 /* 803108B0 0030C510 7F A4 EB 78 */ mr r4, r29 /* 803108B4 0030C514 38 A1 00 0C */ addi r5, r1, 0xc /* 803108B8 0030C518 38 C1 00 08 */ addi r6, r1, 8 /* 803108BC 0030C51C 48 00 1A 89 */ bl VFiPFFAT32_ReadFATEntryPage /* 803108C0 0030C520 48 00 00 08 */ b lbl_803108C8 lbl_803108C4: /* 803108C4 0030C524 38 60 00 0F */ li r3, 0xf lbl_803108C8: /* 803108C8 0030C528 2C 03 00 00 */ cmpwi r3, 0 /* 803108CC 0030C52C 41 82 00 08 */ beq lbl_803108D4 /* 803108D0 0030C530 48 00 00 58 */ b lbl_80310928 lbl_803108D4: /* 803108D4 0030C534 80 01 00 0C */ lwz r0, 0xc(r1) /* 803108D8 0030C538 7C 1E 00 40 */ cmplw r30, r0 /* 803108DC 0030C53C 40 82 00 10 */ bne lbl_803108EC /* 803108E0 0030C540 93 BF 00 00 */ stw r29, 0(r31) /* 803108E4 0030C544 38 60 00 00 */ li r3, 0 /* 803108E8 0030C548 48 00 00 40 */ b lbl_80310928 lbl_803108EC: /* 803108EC 0030C54C 3B BD FF FF */ addi r29, r29, -1 /* 803108F0 0030C550 28 1D 00 02 */ cmplwi r29, 2 /* 803108F4 0030C554 41 80 00 14 */ blt lbl_80310908 /* 803108F8 0030C558 80 7C 00 34 */ lwz r3, 0x34(r28) /* 803108FC 0030C55C 38 03 00 02 */ addi r0, r3, 2 /* 80310900 0030C560 7C 1D 00 40 */ cmplw r29, r0 /* 80310904 0030C564 41 80 00 18 */ blt lbl_8031091C lbl_80310908: /* 80310908 0030C568 7C 1D D8 40 */ cmplw r29, r27 /* 8031090C 0030C56C 40 80 00 10 */ bge lbl_8031091C /* 80310910 0030C570 93 DF 00 00 */ stw r30, 0(r31) /* 80310914 0030C574 38 60 00 00 */ li r3, 0 /* 80310918 0030C578 48 00 00 10 */ b lbl_80310928 lbl_8031091C: /* 8031091C 0030C57C 7C 1D D8 40 */ cmplw r29, r27 /* 80310920 0030C580 41 80 FF 34 */ blt lbl_80310854 /* 80310924 0030C584 38 60 00 0D */ li r3, 0xd lbl_80310928: /* 80310928 0030C588 39 61 00 30 */ addi r11, r1, 0x30 /* 8031092C 0030C58C 4B EB 68 49 */ bl _restgpr_27 /* 80310930 0030C590 80 01 00 34 */ lwz r0, 0x34(r1) /* 80310934 0030C594 7C 08 03 A6 */ mtlr r0 /* 80310938 0030C598 38 21 00 30 */ addi r1, r1, 0x30 /* 8031093C 0030C59C 4E 80 00 20 */ blr .global VFiPFFAT_InitFATRegion VFiPFFAT_InitFATRegion: /* 80310940 0030C5A0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80310944 0030C5A4 7C 08 02 A6 */ mflr r0 /* 80310948 0030C5A8 2C 03 00 00 */ cmpwi r3, 0 /* 8031094C 0030C5AC 90 01 00 24 */ stw r0, 0x24(r1) /* 80310950 0030C5B0 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80310954 0030C5B4 7C 7F 1B 78 */ mr r31, r3 /* 80310958 0030C5B8 93 C1 00 18 */ stw r30, 0x18(r1) /* 8031095C 0030C5BC 93 A1 00 14 */ stw r29, 0x14(r1) /* 80310960 0030C5C0 40 82 00 0C */ bne lbl_8031096C /* 80310964 0030C5C4 38 60 00 0A */ li r3, 0xa /* 80310968 0030C5C8 48 00 02 40 */ b lbl_80310BA8 lbl_8031096C: /* 8031096C 0030C5CC 80 03 00 1C */ lwz r0, 0x1c(r3) /* 80310970 0030C5D0 2C 00 00 00 */ cmpwi r0, 0 /* 80310974 0030C5D4 41 82 00 1C */ beq lbl_80310990 /* 80310978 0030C5D8 2C 00 00 01 */ cmpwi r0, 1 /* 8031097C 0030C5DC 41 82 00 14 */ beq lbl_80310990 /* 80310980 0030C5E0 2C 00 00 02 */ cmpwi r0, 2 /* 80310984 0030C5E4 41 82 00 0C */ beq lbl_80310990 /* 80310988 0030C5E8 38 60 00 0F */ li r3, 0xf /* 8031098C 0030C5EC 48 00 02 1C */ b lbl_80310BA8 lbl_80310990: /* 80310990 0030C5F0 7F E3 FB 78 */ mr r3, r31 /* 80310994 0030C5F4 38 A1 00 08 */ addi r5, r1, 8 /* 80310998 0030C5F8 38 80 FF FF */ li r4, -1 /* 8031099C 0030C5FC 4B FF 9C A9 */ bl VFiPFCACHE_AllocateFATPage /* 803109A0 0030C600 2C 03 00 00 */ cmpwi r3, 0 /* 803109A4 0030C604 41 82 00 08 */ beq lbl_803109AC /* 803109A8 0030C608 48 00 02 00 */ b lbl_80310BA8 lbl_803109AC: /* 803109AC 0030C60C 80 61 00 08 */ lwz r3, 8(r1) /* 803109B0 0030C610 38 80 00 00 */ li r4, 0 /* 803109B4 0030C614 A0 BF 00 00 */ lhz r5, 0(r31) /* 803109B8 0030C618 80 63 00 08 */ lwz r3, 8(r3) /* 803109BC 0030C61C 4B FF 46 19 */ bl VFipf_memset /* 803109C0 0030C620 A3 BF 00 02 */ lhz r29, 2(r31) /* 803109C4 0030C624 48 00 00 3C */ b lbl_80310A00 lbl_803109C8: /* 803109C8 0030C628 80 81 00 08 */ lwz r4, 8(r1) /* 803109CC 0030C62C 7F E3 FB 78 */ mr r3, r31 /* 803109D0 0030C630 7F A5 EB 78 */ mr r5, r29 /* 803109D4 0030C634 80 84 00 08 */ lwz r4, 8(r4) /* 803109D8 0030C638 4B FF A0 1D */ bl VFiPFCACHE_WriteFATSectorAndFreeIfNeeded /* 803109DC 0030C63C 2C 03 00 00 */ cmpwi r3, 0 /* 803109E0 0030C640 7C 7E 1B 78 */ mr r30, r3 /* 803109E4 0030C644 41 82 00 18 */ beq lbl_803109FC /* 803109E8 0030C648 80 81 00 08 */ lwz r4, 8(r1) /* 803109EC 0030C64C 7F E3 FB 78 */ mr r3, r31 /* 803109F0 0030C650 4B FF 9D 3D */ bl VFiPFCACHE_FreeFATPage /* 803109F4 0030C654 7F C3 F3 78 */ mr r3, r30 /* 803109F8 0030C658 48 00 01 B0 */ b lbl_80310BA8 lbl_803109FC: /* 803109FC 0030C65C 3B BD 00 01 */ addi r29, r29, 1 lbl_80310A00: /* 80310A00 0030C660 80 1F 00 2C */ lwz r0, 0x2c(r31) /* 80310A04 0030C664 7C 1D 00 40 */ cmplw r29, r0 /* 80310A08 0030C668 41 80 FF C0 */ blt lbl_803109C8 /* 80310A0C 0030C66C 80 81 00 08 */ lwz r4, 8(r1) /* 80310A10 0030C670 7F E3 FB 78 */ mr r3, r31 /* 80310A14 0030C674 4B FF 9D 19 */ bl VFiPFCACHE_FreeFATPage /* 80310A18 0030C678 80 DF 00 1C */ lwz r6, 0x1c(r31) /* 80310A1C 0030C67C 3C 60 80 40 */ lis r3, lbl_803FE280@ha /* 80310A20 0030C680 38 63 E2 80 */ addi r3, r3, lbl_803FE280@l /* 80310A24 0030C684 88 9F 00 1A */ lbz r4, 0x1a(r31) /* 80310A28 0030C688 1C 06 00 14 */ mulli r0, r6, 0x14 /* 80310A2C 0030C68C 2C 06 00 01 */ cmpwi r6, 1 /* 80310A30 0030C690 7C 63 02 14 */ add r3, r3, r0 /* 80310A34 0030C694 80 03 00 0C */ lwz r0, 0xc(r3) /* 80310A38 0030C698 7C 85 03 78 */ or r5, r4, r0 /* 80310A3C 0030C69C 41 82 00 44 */ beq lbl_80310A80 /* 80310A40 0030C6A0 40 80 00 10 */ bge lbl_80310A50 /* 80310A44 0030C6A4 2C 06 00 00 */ cmpwi r6, 0 /* 80310A48 0030C6A8 40 80 00 14 */ bge lbl_80310A5C /* 80310A4C 0030C6AC 48 00 00 7C */ b lbl_80310AC8 lbl_80310A50: /* 80310A50 0030C6B0 2C 06 00 03 */ cmpwi r6, 3 /* 80310A54 0030C6B4 40 80 00 74 */ bge lbl_80310AC8 /* 80310A58 0030C6B8 48 00 00 48 */ b lbl_80310AA0 lbl_80310A5C: /* 80310A5C 0030C6BC 28 05 0F FF */ cmplwi r5, 0xfff /* 80310A60 0030C6C0 40 81 00 0C */ ble lbl_80310A6C /* 80310A64 0030C6C4 38 60 00 10 */ li r3, 0x10 /* 80310A68 0030C6C8 48 00 00 64 */ b lbl_80310ACC lbl_80310A6C: /* 80310A6C 0030C6CC 7F E3 FB 78 */ mr r3, r31 /* 80310A70 0030C6D0 54 A5 04 3E */ clrlwi r5, r5, 0x10 /* 80310A74 0030C6D4 38 80 00 00 */ li r4, 0 /* 80310A78 0030C6D8 48 00 0B B1 */ bl VFiPFFAT12_WriteFATEntry /* 80310A7C 0030C6DC 48 00 00 50 */ b lbl_80310ACC lbl_80310A80: /* 80310A80 0030C6E0 28 05 FF FF */ cmplwi r5, 0xffff /* 80310A84 0030C6E4 40 81 00 0C */ ble lbl_80310A90 /* 80310A88 0030C6E8 38 60 00 10 */ li r3, 0x10 /* 80310A8C 0030C6EC 48 00 00 40 */ b lbl_80310ACC lbl_80310A90: /* 80310A90 0030C6F0 7F E3 FB 78 */ mr r3, r31 /* 80310A94 0030C6F4 38 80 00 00 */ li r4, 0 /* 80310A98 0030C6F8 48 00 14 E1 */ bl VFiPFFAT16_WriteFATEntry /* 80310A9C 0030C6FC 48 00 00 30 */ b lbl_80310ACC lbl_80310AA0: /* 80310AA0 0030C700 3C 60 10 00 */ lis r3, 0x0FFFFFFF@ha /* 80310AA4 0030C704 38 03 FF FF */ addi r0, r3, 0x0FFFFFFF@l /* 80310AA8 0030C708 7C 05 00 40 */ cmplw r5, r0 /* 80310AAC 0030C70C 40 81 00 0C */ ble lbl_80310AB8 /* 80310AB0 0030C710 38 60 00 10 */ li r3, 0x10 /* 80310AB4 0030C714 48 00 00 18 */ b lbl_80310ACC lbl_80310AB8: /* 80310AB8 0030C718 7F E3 FB 78 */ mr r3, r31 /* 80310ABC 0030C71C 38 80 00 00 */ li r4, 0 /* 80310AC0 0030C720 48 00 1A 51 */ bl VFiPFFAT32_WriteFATEntry /* 80310AC4 0030C724 48 00 00 08 */ b lbl_80310ACC lbl_80310AC8: /* 80310AC8 0030C728 38 60 00 0F */ li r3, 0xf lbl_80310ACC: /* 80310ACC 0030C72C 2C 03 00 00 */ cmpwi r3, 0 /* 80310AD0 0030C730 41 82 00 08 */ beq lbl_80310AD8 /* 80310AD4 0030C734 48 00 00 D4 */ b lbl_80310BA8 lbl_80310AD8: /* 80310AD8 0030C738 80 9F 00 1C */ lwz r4, 0x1c(r31) /* 80310ADC 0030C73C 3C 60 80 40 */ lis r3, lbl_803FE280@ha /* 80310AE0 0030C740 38 63 E2 80 */ addi r3, r3, lbl_803FE280@l /* 80310AE4 0030C744 1C 04 00 14 */ mulli r0, r4, 0x14 /* 80310AE8 0030C748 2C 04 00 01 */ cmpwi r4, 1 /* 80310AEC 0030C74C 7C 63 02 14 */ add r3, r3, r0 /* 80310AF0 0030C750 80 A3 00 10 */ lwz r5, 0x10(r3) /* 80310AF4 0030C754 41 82 00 44 */ beq lbl_80310B38 /* 80310AF8 0030C758 40 80 00 10 */ bge lbl_80310B08 /* 80310AFC 0030C75C 2C 04 00 00 */ cmpwi r4, 0 /* 80310B00 0030C760 40 80 00 14 */ bge lbl_80310B14 /* 80310B04 0030C764 48 00 00 7C */ b lbl_80310B80 lbl_80310B08: /* 80310B08 0030C768 2C 04 00 03 */ cmpwi r4, 3 /* 80310B0C 0030C76C 40 80 00 74 */ bge lbl_80310B80 /* 80310B10 0030C770 48 00 00 48 */ b lbl_80310B58 lbl_80310B14: /* 80310B14 0030C774 28 05 0F FF */ cmplwi r5, 0xfff /* 80310B18 0030C778 40 81 00 0C */ ble lbl_80310B24 /* 80310B1C 0030C77C 38 60 00 10 */ li r3, 0x10 /* 80310B20 0030C780 48 00 00 64 */ b lbl_80310B84 lbl_80310B24: /* 80310B24 0030C784 7F E3 FB 78 */ mr r3, r31 /* 80310B28 0030C788 54 A5 04 3E */ clrlwi r5, r5, 0x10 /* 80310B2C 0030C78C 38 80 00 01 */ li r4, 1 /* 80310B30 0030C790 48 00 0A F9 */ bl VFiPFFAT12_WriteFATEntry /* 80310B34 0030C794 48 00 00 50 */ b lbl_80310B84 lbl_80310B38: /* 80310B38 0030C798 28 05 FF FF */ cmplwi r5, 0xffff /* 80310B3C 0030C79C 40 81 00 0C */ ble lbl_80310B48 /* 80310B40 0030C7A0 38 60 00 10 */ li r3, 0x10 /* 80310B44 0030C7A4 48 00 00 40 */ b lbl_80310B84 lbl_80310B48: /* 80310B48 0030C7A8 7F E3 FB 78 */ mr r3, r31 /* 80310B4C 0030C7AC 38 80 00 01 */ li r4, 1 /* 80310B50 0030C7B0 48 00 14 29 */ bl VFiPFFAT16_WriteFATEntry /* 80310B54 0030C7B4 48 00 00 30 */ b lbl_80310B84 lbl_80310B58: /* 80310B58 0030C7B8 3C 60 10 00 */ lis r3, 0x0FFFFFFF@ha /* 80310B5C 0030C7BC 38 03 FF FF */ addi r0, r3, 0x0FFFFFFF@l /* 80310B60 0030C7C0 7C 05 00 40 */ cmplw r5, r0 /* 80310B64 0030C7C4 40 81 00 0C */ ble lbl_80310B70 /* 80310B68 0030C7C8 38 60 00 10 */ li r3, 0x10 /* 80310B6C 0030C7CC 48 00 00 18 */ b lbl_80310B84 lbl_80310B70: /* 80310B70 0030C7D0 7F E3 FB 78 */ mr r3, r31 /* 80310B74 0030C7D4 38 80 00 01 */ li r4, 1 /* 80310B78 0030C7D8 48 00 19 99 */ bl VFiPFFAT32_WriteFATEntry /* 80310B7C 0030C7DC 48 00 00 08 */ b lbl_80310B84 lbl_80310B80: /* 80310B80 0030C7E0 38 60 00 0F */ li r3, 0xf lbl_80310B84: /* 80310B84 0030C7E4 2C 03 00 00 */ cmpwi r3, 0 /* 80310B88 0030C7E8 41 82 00 08 */ beq lbl_80310B90 /* 80310B8C 0030C7EC 48 00 00 1C */ b lbl_80310BA8 lbl_80310B90: /* 80310B90 0030C7F0 7F E3 FB 78 */ mr r3, r31 /* 80310B94 0030C7F4 4B FF 9F 1D */ bl VFiPFCACHE_FlushFATCache /* 80310B98 0030C7F8 7C 03 00 D0 */ neg r0, r3 /* 80310B9C 0030C7FC 7C 00 1B 78 */ or r0, r0, r3 /* 80310BA0 0030C800 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 80310BA4 0030C804 7C 63 00 38 */ and r3, r3, r0 lbl_80310BA8: /* 80310BA8 0030C808 80 01 00 24 */ lwz r0, 0x24(r1) /* 80310BAC 0030C80C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80310BB0 0030C810 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80310BB4 0030C814 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80310BB8 0030C818 7C 08 03 A6 */ mtlr r0 /* 80310BBC 0030C81C 38 21 00 20 */ addi r1, r1, 0x20 /* 80310BC0 0030C820 4E 80 00 20 */ blr .global VFiPFFAT_MakeRootDir VFiPFFAT_MakeRootDir: /* 80310BC4 0030C824 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80310BC8 0030C828 7C 08 02 A6 */ mflr r0 /* 80310BCC 0030C82C 3C A0 80 40 */ lis r5, lbl_803FE280@ha /* 80310BD0 0030C830 90 01 00 24 */ stw r0, 0x24(r1) /* 80310BD4 0030C834 38 A5 E2 80 */ addi r5, r5, lbl_803FE280@l /* 80310BD8 0030C838 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80310BDC 0030C83C 7C 7F 1B 78 */ mr r31, r3 /* 80310BE0 0030C840 93 C1 00 18 */ stw r30, 0x18(r1) /* 80310BE4 0030C844 93 A1 00 14 */ stw r29, 0x14(r1) /* 80310BE8 0030C848 93 81 00 10 */ stw r28, 0x10(r1) /* 80310BEC 0030C84C 80 C3 00 1C */ lwz r6, 0x1c(r3) /* 80310BF0 0030C850 80 83 00 10 */ lwz r4, 0x10(r3) /* 80310BF4 0030C854 1C 06 00 14 */ mulli r0, r6, 0x14 /* 80310BF8 0030C858 2C 06 00 01 */ cmpwi r6, 1 /* 80310BFC 0030C85C 7C A5 02 14 */ add r5, r5, r0 /* 80310C00 0030C860 80 A5 00 08 */ lwz r5, 8(r5) /* 80310C04 0030C864 41 82 00 40 */ beq lbl_80310C44 /* 80310C08 0030C868 40 80 00 10 */ bge lbl_80310C18 /* 80310C0C 0030C86C 2C 06 00 00 */ cmpwi r6, 0 /* 80310C10 0030C870 40 80 00 14 */ bge lbl_80310C24 /* 80310C14 0030C874 48 00 00 68 */ b lbl_80310C7C lbl_80310C18: /* 80310C18 0030C878 2C 06 00 03 */ cmpwi r6, 3 /* 80310C1C 0030C87C 40 80 00 60 */ bge lbl_80310C7C /* 80310C20 0030C880 48 00 00 3C */ b lbl_80310C5C lbl_80310C24: /* 80310C24 0030C884 28 05 0F FF */ cmplwi r5, 0xfff /* 80310C28 0030C888 40 81 00 0C */ ble lbl_80310C34 /* 80310C2C 0030C88C 38 60 00 10 */ li r3, 0x10 /* 80310C30 0030C890 48 00 00 50 */ b lbl_80310C80 lbl_80310C34: /* 80310C34 0030C894 54 84 04 3E */ clrlwi r4, r4, 0x10 /* 80310C38 0030C898 54 A5 04 3E */ clrlwi r5, r5, 0x10 /* 80310C3C 0030C89C 48 00 09 ED */ bl VFiPFFAT12_WriteFATEntry /* 80310C40 0030C8A0 48 00 00 40 */ b lbl_80310C80 lbl_80310C44: /* 80310C44 0030C8A4 28 05 FF FF */ cmplwi r5, 0xffff /* 80310C48 0030C8A8 40 81 00 0C */ ble lbl_80310C54 /* 80310C4C 0030C8AC 38 60 00 10 */ li r3, 0x10 /* 80310C50 0030C8B0 48 00 00 30 */ b lbl_80310C80 lbl_80310C54: /* 80310C54 0030C8B4 48 00 13 25 */ bl VFiPFFAT16_WriteFATEntry /* 80310C58 0030C8B8 48 00 00 28 */ b lbl_80310C80 lbl_80310C5C: /* 80310C5C 0030C8BC 3C C0 10 00 */ lis r6, 0x0FFFFFFF@ha /* 80310C60 0030C8C0 38 06 FF FF */ addi r0, r6, 0x0FFFFFFF@l /* 80310C64 0030C8C4 7C 05 00 40 */ cmplw r5, r0 /* 80310C68 0030C8C8 40 81 00 0C */ ble lbl_80310C74 /* 80310C6C 0030C8CC 38 60 00 10 */ li r3, 0x10 /* 80310C70 0030C8D0 48 00 00 10 */ b lbl_80310C80 lbl_80310C74: /* 80310C74 0030C8D4 48 00 18 9D */ bl VFiPFFAT32_WriteFATEntry /* 80310C78 0030C8D8 48 00 00 08 */ b lbl_80310C80 lbl_80310C7C: /* 80310C7C 0030C8DC 38 60 00 0F */ li r3, 0xf lbl_80310C80: /* 80310C80 0030C8E0 2C 03 00 00 */ cmpwi r3, 0 /* 80310C84 0030C8E4 41 82 00 08 */ beq lbl_80310C8C /* 80310C88 0030C8E8 48 00 00 F0 */ b lbl_80310D78 lbl_80310C8C: /* 80310C8C 0030C8EC 7F E3 FB 78 */ mr r3, r31 /* 80310C90 0030C8F0 4B FF 9E 21 */ bl VFiPFCACHE_FlushFATCache /* 80310C94 0030C8F4 2C 03 00 00 */ cmpwi r3, 0 /* 80310C98 0030C8F8 41 82 00 08 */ beq lbl_80310CA0 /* 80310C9C 0030C8FC 48 00 00 DC */ b lbl_80310D78 lbl_80310CA0: /* 80310CA0 0030C900 7F E3 FB 78 */ mr r3, r31 /* 80310CA4 0030C904 38 A1 00 08 */ addi r5, r1, 8 /* 80310CA8 0030C908 38 80 FF FF */ li r4, -1 /* 80310CAC 0030C90C 4B FF 9A 0D */ bl VFiPFCACHE_AllocateDataPage /* 80310CB0 0030C910 2C 03 00 00 */ cmpwi r3, 0 /* 80310CB4 0030C914 41 82 00 08 */ beq lbl_80310CBC /* 80310CB8 0030C918 48 00 00 C0 */ b lbl_80310D78 lbl_80310CBC: /* 80310CBC 0030C91C 80 61 00 08 */ lwz r3, 8(r1) /* 80310CC0 0030C920 38 80 00 00 */ li r4, 0 /* 80310CC4 0030C924 A0 BF 00 00 */ lhz r5, 0(r31) /* 80310CC8 0030C928 80 63 00 08 */ lwz r3, 8(r3) /* 80310CCC 0030C92C 4B FF 43 09 */ bl VFipf_memset /* 80310CD0 0030C930 80 7F 00 10 */ lwz r3, 0x10(r31) /* 80310CD4 0030C934 3B 80 00 00 */ li r28, 0 /* 80310CD8 0030C938 88 1F 00 21 */ lbz r0, 0x21(r31) /* 80310CDC 0030C93C 38 63 FF FE */ addi r3, r3, -2 /* 80310CE0 0030C940 80 9F 00 30 */ lwz r4, 0x30(r31) /* 80310CE4 0030C944 7C 60 00 30 */ slw r0, r3, r0 /* 80310CE8 0030C948 7F A4 02 14 */ add r29, r4, r0 /* 80310CEC 0030C94C 48 00 00 70 */ b lbl_80310D5C lbl_80310CF0: /* 80310CF0 0030C950 80 81 00 08 */ lwz r4, 8(r1) /* 80310CF4 0030C954 7F E3 FB 78 */ mr r3, r31 /* 80310CF8 0030C958 A0 FF 00 00 */ lhz r7, 0(r31) /* 80310CFC 0030C95C 7C BD E2 14 */ add r5, r29, r28 /* 80310D00 0030C960 80 84 00 08 */ lwz r4, 8(r4) /* 80310D04 0030C964 39 01 00 0C */ addi r8, r1, 0xc /* 80310D08 0030C968 38 C0 00 00 */ li r6, 0 /* 80310D0C 0030C96C 39 20 00 00 */ li r9, 0 /* 80310D10 0030C970 48 00 80 D9 */ bl VFiPFSEC_WriteData /* 80310D14 0030C974 2C 03 00 00 */ cmpwi r3, 0 /* 80310D18 0030C978 7C 7E 1B 78 */ mr r30, r3 /* 80310D1C 0030C97C 41 82 00 18 */ beq lbl_80310D34 /* 80310D20 0030C980 80 81 00 08 */ lwz r4, 8(r1) /* 80310D24 0030C984 7F E3 FB 78 */ mr r3, r31 /* 80310D28 0030C988 4B FF 9A 95 */ bl VFiPFCACHE_FreeDataPage /* 80310D2C 0030C98C 7F C3 F3 78 */ mr r3, r30 /* 80310D30 0030C990 48 00 00 48 */ b lbl_80310D78 lbl_80310D34: /* 80310D34 0030C994 80 61 00 0C */ lwz r3, 0xc(r1) /* 80310D38 0030C998 A0 1F 00 00 */ lhz r0, 0(r31) /* 80310D3C 0030C99C 7C 03 00 40 */ cmplw r3, r0 /* 80310D40 0030C9A0 41 82 00 18 */ beq lbl_80310D58 /* 80310D44 0030C9A4 80 81 00 08 */ lwz r4, 8(r1) /* 80310D48 0030C9A8 7F E3 FB 78 */ mr r3, r31 /* 80310D4C 0030C9AC 4B FF 9A 71 */ bl VFiPFCACHE_FreeDataPage /* 80310D50 0030C9B0 38 60 00 11 */ li r3, 0x11 /* 80310D54 0030C9B4 48 00 00 24 */ b lbl_80310D78 lbl_80310D58: /* 80310D58 0030C9B8 3B 9C 00 01 */ addi r28, r28, 1 lbl_80310D5C: /* 80310D5C 0030C9BC 88 1F 00 06 */ lbz r0, 6(r31) /* 80310D60 0030C9C0 7C 1C 00 40 */ cmplw r28, r0 /* 80310D64 0030C9C4 41 80 FF 8C */ blt lbl_80310CF0 /* 80310D68 0030C9C8 80 81 00 08 */ lwz r4, 8(r1) /* 80310D6C 0030C9CC 7F E3 FB 78 */ mr r3, r31 /* 80310D70 0030C9D0 4B FF 9A 4D */ bl VFiPFCACHE_FreeDataPage /* 80310D74 0030C9D4 38 60 00 00 */ li r3, 0 lbl_80310D78: /* 80310D78 0030C9D8 80 01 00 24 */ lwz r0, 0x24(r1) /* 80310D7C 0030C9DC 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80310D80 0030C9E0 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80310D84 0030C9E4 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80310D88 0030C9E8 83 81 00 10 */ lwz r28, 0x10(r1) /* 80310D8C 0030C9EC 7C 08 03 A6 */ mtlr r0 /* 80310D90 0030C9F0 38 21 00 20 */ addi r1, r1, 0x20 /* 80310D94 0030C9F4 4E 80 00 20 */ blr .global VFiPFFAT_InitHint VFiPFFAT_InitHint: /* 80310D98 0030C9F8 38 00 00 00 */ li r0, 0 /* 80310D9C 0030C9FC 90 03 00 00 */ stw r0, 0(r3) /* 80310DA0 0030CA00 90 03 00 04 */ stw r0, 4(r3) /* 80310DA4 0030CA04 90 03 00 08 */ stw r0, 8(r3) /* 80310DA8 0030CA08 4E 80 00 20 */ blr .global VFiPFFAT_TraceClustersChain VFiPFFAT_TraceClustersChain: /* 80310DAC 0030CA0C 94 21 FF C0 */ stwu r1, -0x40(r1) /* 80310DB0 0030CA10 7C 08 02 A6 */ mflr r0 /* 80310DB4 0030CA14 90 01 00 44 */ stw r0, 0x44(r1) /* 80310DB8 0030CA18 39 61 00 40 */ addi r11, r1, 0x40 /* 80310DBC 0030CA1C 4B EB 63 59 */ bl _savegpr_22 /* 80310DC0 0030CA20 38 00 00 00 */ li r0, 0 /* 80310DC4 0030CA24 7C 99 23 78 */ mr r25, r4 /* 80310DC8 0030CA28 90 06 00 00 */ stw r0, 0(r6) /* 80310DCC 0030CA2C 2C 03 00 00 */ cmpwi r3, 0 /* 80310DD0 0030CA30 7C 78 1B 78 */ mr r24, r3 /* 80310DD4 0030CA34 7C DA 33 78 */ mr r26, r6 /* 80310DD8 0030CA38 90 07 00 00 */ stw r0, 0(r7) /* 80310DDC 0030CA3C 7C FB 3B 78 */ mr r27, r7 /* 80310DE0 0030CA40 7F 3E CB 78 */ mr r30, r25 /* 80310DE4 0030CA44 40 82 00 0C */ bne lbl_80310DF0 /* 80310DE8 0030CA48 38 60 00 0A */ li r3, 0xa /* 80310DEC 0030CA4C 48 00 01 E8 */ b lbl_80310FD4 lbl_80310DF0: /* 80310DF0 0030CA50 81 23 00 30 */ lwz r9, 0x30(r3) /* 80310DF4 0030CA54 2C 09 00 00 */ cmpwi r9, 0 /* 80310DF8 0030CA58 40 82 00 0C */ bne lbl_80310E04 /* 80310DFC 0030CA5C 38 60 00 0A */ li r3, 0xa /* 80310E00 0030CA60 48 00 01 D4 */ b lbl_80310FD4 lbl_80310E04: /* 80310E04 0030CA64 81 03 00 00 */ lwz r8, 0(r3) /* 80310E08 0030CA68 2C 08 00 00 */ cmpwi r8, 0 /* 80310E0C 0030CA6C 40 82 00 0C */ bne lbl_80310E18 /* 80310E10 0030CA70 38 60 00 0A */ li r3, 0xa /* 80310E14 0030CA74 48 00 01 C0 */ b lbl_80310FD4 lbl_80310E18: /* 80310E18 0030CA78 80 09 00 08 */ lwz r0, 8(r9) /* 80310E1C 0030CA7C 7C 00 40 40 */ cmplw r0, r8 /* 80310E20 0030CA80 40 81 00 0C */ ble lbl_80310E2C /* 80310E24 0030CA84 38 60 00 0A */ li r3, 0xa /* 80310E28 0030CA88 48 00 01 AC */ b lbl_80310FD4 lbl_80310E2C: /* 80310E2C 0030CA8C 83 E3 00 34 */ lwz r31, 0x34(r3) /* 80310E30 0030CA90 88 1F 18 7A */ lbz r0, 0x187a(r31) /* 80310E34 0030CA94 7C 00 07 74 */ extsb r0, r0 /* 80310E38 0030CA98 2C 00 00 41 */ cmpwi r0, 0x41 /* 80310E3C 0030CA9C 41 80 00 0C */ blt lbl_80310E48 /* 80310E40 0030CAA0 2C 00 00 5A */ cmpwi r0, 0x5a /* 80310E44 0030CAA4 40 81 00 0C */ ble lbl_80310E50 lbl_80310E48: /* 80310E48 0030CAA8 38 60 00 23 */ li r3, 0x23 /* 80310E4C 0030CAAC 48 00 01 88 */ b lbl_80310FD4 lbl_80310E50: /* 80310E50 0030CAB0 2C 1F 00 00 */ cmpwi r31, 0 /* 80310E54 0030CAB4 40 82 00 0C */ bne lbl_80310E60 /* 80310E58 0030CAB8 38 60 00 0A */ li r3, 0xa /* 80310E5C 0030CABC 48 00 01 78 */ b lbl_80310FD4 lbl_80310E60: /* 80310E60 0030CAC0 81 03 00 08 */ lwz r8, 8(r3) /* 80310E64 0030CAC4 81 08 00 00 */ lwz r8, 0(r8) /* 80310E68 0030CAC8 28 08 00 02 */ cmplwi r8, 2 /* 80310E6C 0030CACC 40 80 00 0C */ bge lbl_80310E78 /* 80310E70 0030CAD0 38 60 00 00 */ li r3, 0 /* 80310E74 0030CAD4 48 00 01 60 */ b lbl_80310FD4 lbl_80310E78: /* 80310E78 0030CAD8 28 04 00 02 */ cmplwi r4, 2 /* 80310E7C 0030CADC 40 80 00 0C */ bge lbl_80310E88 /* 80310E80 0030CAE0 38 60 00 00 */ li r3, 0 /* 80310E84 0030CAE4 48 00 01 50 */ b lbl_80310FD4 lbl_80310E88: /* 80310E88 0030CAE8 2C 05 00 00 */ cmpwi r5, 0 /* 80310E8C 0030CAEC 40 82 00 0C */ bne lbl_80310E98 /* 80310E90 0030CAF0 38 60 00 00 */ li r3, 0 /* 80310E94 0030CAF4 48 00 01 40 */ b lbl_80310FD4 lbl_80310E98: /* 80310E98 0030CAF8 3C 05 00 01 */ addis r0, r5, 1 /* 80310E9C 0030CAFC 28 00 FF FF */ cmplwi r0, 0xffff /* 80310EA0 0030CB00 40 82 00 38 */ bne lbl_80310ED8 /* 80310EA4 0030CB04 80 03 00 0C */ lwz r0, 0xc(r3) /* 80310EA8 0030CB08 2C 00 00 00 */ cmpwi r0, 0 /* 80310EAC 0030CB0C 41 82 00 2C */ beq lbl_80310ED8 /* 80310EB0 0030CB10 90 06 00 00 */ stw r0, 0(r6) /* 80310EB4 0030CB14 3C 80 80 40 */ lis r4, lbl_803FE280@ha /* 80310EB8 0030CB18 38 84 E2 80 */ addi r4, r4, lbl_803FE280@l /* 80310EBC 0030CB1C 38 60 00 00 */ li r3, 0 /* 80310EC0 0030CB20 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 80310EC4 0030CB24 1C 00 00 14 */ mulli r0, r0, 0x14 /* 80310EC8 0030CB28 7C 84 02 14 */ add r4, r4, r0 /* 80310ECC 0030CB2C 80 04 00 08 */ lwz r0, 8(r4) /* 80310ED0 0030CB30 90 07 00 00 */ stw r0, 0(r7) /* 80310ED4 0030CB34 48 00 01 00 */ b lbl_80310FD4 lbl_80310ED8: /* 80310ED8 0030CB38 A0 7F 00 00 */ lhz r3, 0(r31) /* 80310EDC 0030CB3C 88 1F 00 21 */ lbz r0, 0x21(r31) /* 80310EE0 0030CB40 7C 60 00 30 */ slw r0, r3, r0 /* 80310EE4 0030CB44 7F 85 03 96 */ divwu r28, r5, r0 /* 80310EE8 0030CB48 7C 1C 01 D6 */ mullw r0, r28, r0 /* 80310EEC 0030CB4C 7C 00 28 51 */ subf. r0, r0, r5 /* 80310EF0 0030CB50 41 82 00 08 */ beq lbl_80310EF8 /* 80310EF4 0030CB54 3B 9C 00 01 */ addi r28, r28, 1 lbl_80310EF8: /* 80310EF8 0030CB58 7C 08 20 40 */ cmplw r8, r4 /* 80310EFC 0030CB5C 40 82 00 0C */ bne lbl_80310F08 /* 80310F00 0030CB60 3B A0 00 01 */ li r29, 1 /* 80310F04 0030CB64 48 00 00 0C */ b lbl_80310F10 lbl_80310F08: /* 80310F08 0030CB68 80 69 00 00 */ lwz r3, 0(r9) /* 80310F0C 0030CB6C 3B A3 00 01 */ addi r29, r3, 1 lbl_80310F10: /* 80310F10 0030CB70 38 60 FF FF */ li r3, -1 /* 80310F14 0030CB74 38 00 00 01 */ li r0, 1 /* 80310F18 0030CB78 90 61 00 10 */ stw r3, 0x10(r1) /* 80310F1C 0030CB7C 7F E3 FB 78 */ mr r3, r31 /* 80310F20 0030CB80 7F 25 CB 78 */ mr r5, r25 /* 80310F24 0030CB84 38 81 00 08 */ addi r4, r1, 8 /* 80310F28 0030CB88 90 01 00 0C */ stw r0, 0xc(r1) /* 80310F2C 0030CB8C 4B FF D6 0D */ bl VFiPFFAT_ReadFATSector /* 80310F30 0030CB90 2C 03 00 00 */ cmpwi r3, 0 /* 80310F34 0030CB94 41 82 00 08 */ beq lbl_80310F3C /* 80310F38 0030CB98 48 00 00 9C */ b lbl_80310FD4 lbl_80310F3C: /* 80310F3C 0030CB9C 3E E0 80 40 */ lis r23, lbl_803FE280@ha /* 80310F40 0030CBA0 3A C0 00 00 */ li r22, 0 /* 80310F44 0030CBA4 3A F7 E2 80 */ addi r23, r23, lbl_803FE280@l /* 80310F48 0030CBA8 48 00 00 68 */ b lbl_80310FB0 lbl_80310F4C: /* 80310F4C 0030CBAC 7F 03 C3 78 */ mr r3, r24 /* 80310F50 0030CBB0 7F 24 CB 78 */ mr r4, r25 /* 80310F54 0030CBB4 7F A5 EB 78 */ mr r5, r29 /* 80310F58 0030CBB8 38 C1 00 10 */ addi r6, r1, 0x10 /* 80310F5C 0030CBBC 38 E1 00 0C */ addi r7, r1, 0xc /* 80310F60 0030CBC0 39 01 00 08 */ addi r8, r1, 8 /* 80310F64 0030CBC4 4B FF DC 71 */ bl VFiPFFAT_ReadClusterPage /* 80310F68 0030CBC8 2C 03 00 00 */ cmpwi r3, 0 /* 80310F6C 0030CBCC 41 82 00 08 */ beq lbl_80310F74 /* 80310F70 0030CBD0 48 00 00 64 */ b lbl_80310FD4 lbl_80310F74: /* 80310F74 0030CBD4 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 80310F78 0030CBD8 7F 3E CB 78 */ mr r30, r25 /* 80310F7C 0030CBDC 80 81 00 10 */ lwz r4, 0x10(r1) /* 80310F80 0030CBE0 1C 00 00 14 */ mulli r0, r0, 0x14 /* 80310F84 0030CBE4 7C 77 02 14 */ add r3, r23, r0 /* 80310F88 0030CBE8 80 03 00 08 */ lwz r0, 8(r3) /* 80310F8C 0030CBEC 7C 04 00 40 */ cmplw r4, r0 /* 80310F90 0030CBF0 40 82 00 14 */ bne lbl_80310FA4 /* 80310F94 0030CBF4 38 1D FF FF */ addi r0, r29, -1 /* 80310F98 0030CBF8 93 38 00 0C */ stw r25, 0xc(r24) /* 80310F9C 0030CBFC 90 18 00 10 */ stw r0, 0x10(r24) /* 80310FA0 0030CC00 48 00 00 18 */ b lbl_80310FB8 lbl_80310FA4: /* 80310FA4 0030CC04 7C 99 23 78 */ mr r25, r4 /* 80310FA8 0030CC08 3B BD 00 01 */ addi r29, r29, 1 /* 80310FAC 0030CC0C 3A D6 00 01 */ addi r22, r22, 1 lbl_80310FB0: /* 80310FB0 0030CC10 7C 16 E0 40 */ cmplw r22, r28 /* 80310FB4 0030CC14 41 80 FF 98 */ blt lbl_80310F4C lbl_80310FB8: /* 80310FB8 0030CC18 80 98 00 30 */ lwz r4, 0x30(r24) /* 80310FBC 0030CC1C 38 1D FF FF */ addi r0, r29, -1 /* 80310FC0 0030CC20 38 60 00 00 */ li r3, 0 /* 80310FC4 0030CC24 90 04 00 00 */ stw r0, 0(r4) /* 80310FC8 0030CC28 93 DA 00 00 */ stw r30, 0(r26) /* 80310FCC 0030CC2C 80 01 00 10 */ lwz r0, 0x10(r1) /* 80310FD0 0030CC30 90 1B 00 00 */ stw r0, 0(r27) lbl_80310FD4: /* 80310FD4 0030CC34 39 61 00 40 */ addi r11, r1, 0x40 /* 80310FD8 0030CC38 4B EB 61 89 */ bl _restgpr_22 /* 80310FDC 0030CC3C 80 01 00 44 */ lwz r0, 0x44(r1) /* 80310FE0 0030CC40 7C 08 03 A6 */ mtlr r0 /* 80310FE4 0030CC44 38 21 00 40 */ addi r1, r1, 0x40 /* 80310FE8 0030CC48 4E 80 00 20 */ blr .global VFiPFFAT_ReadValueToSpecifiedCluster VFiPFFAT_ReadValueToSpecifiedCluster: /* 80310FEC 0030CC4C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80310FF0 0030CC50 7C 08 02 A6 */ mflr r0 /* 80310FF4 0030CC54 90 01 00 14 */ stw r0, 0x14(r1) /* 80310FF8 0030CC58 80 03 00 1C */ lwz r0, 0x1c(r3) /* 80310FFC 0030CC5C 2C 00 00 01 */ cmpwi r0, 1 /* 80311000 0030CC60 41 82 00 2C */ beq lbl_8031102C /* 80311004 0030CC64 40 80 00 10 */ bge lbl_80311014 /* 80311008 0030CC68 2C 00 00 00 */ cmpwi r0, 0 /* 8031100C 0030CC6C 40 80 00 14 */ bge lbl_80311020 /* 80311010 0030CC70 48 00 00 2C */ b lbl_8031103C lbl_80311014: /* 80311014 0030CC74 2C 00 00 03 */ cmpwi r0, 3 /* 80311018 0030CC78 40 80 00 24 */ bge lbl_8031103C /* 8031101C 0030CC7C 48 00 00 18 */ b lbl_80311034 lbl_80311020: /* 80311020 0030CC80 54 84 04 3E */ clrlwi r4, r4, 0x10 /* 80311024 0030CC84 48 00 01 4D */ bl VFiPFFAT12_ReadFATEntry /* 80311028 0030CC88 48 00 00 20 */ b lbl_80311048 lbl_8031102C: /* 8031102C 0030CC8C 48 00 0C 2D */ bl VFiPFFAT16_ReadFATEntry /* 80311030 0030CC90 48 00 00 18 */ b lbl_80311048 lbl_80311034: /* 80311034 0030CC94 48 00 11 9D */ bl VFiPFFAT32_ReadFATEntry /* 80311038 0030CC98 48 00 00 10 */ b lbl_80311048 lbl_8031103C: /* 8031103C 0030CC9C 38 00 FF FF */ li r0, -1 /* 80311040 0030CCA0 38 60 00 0F */ li r3, 0xf /* 80311044 0030CCA4 90 05 00 00 */ stw r0, 0(r5) lbl_80311048: /* 80311048 0030CCA8 7C 03 00 D0 */ neg r0, r3 /* 8031104C 0030CCAC 7C 00 1B 78 */ or r0, r0, r3 /* 80311050 0030CCB0 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 80311054 0030CCB4 7C 63 00 38 */ and r3, r3, r0 /* 80311058 0030CCB8 80 01 00 14 */ lwz r0, 0x14(r1) /* 8031105C 0030CCBC 7C 08 03 A6 */ mtlr r0 /* 80311060 0030CCC0 38 21 00 10 */ addi r1, r1, 0x10 /* 80311064 0030CCC4 4E 80 00 20 */ blr .global VFiPFFAT_ResetFFD VFiPFFAT_ResetFFD: /* 80311068 0030CCC8 2C 03 00 00 */ cmpwi r3, 0 /* 8031106C 0030CCCC 40 82 00 0C */ bne lbl_80311078 /* 80311070 0030CCD0 38 60 00 0A */ li r3, 0xa /* 80311074 0030CCD4 4E 80 00 20 */ blr lbl_80311078: /* 80311078 0030CCD8 2C 04 00 00 */ cmpwi r4, 0 /* 8031107C 0030CCDC 40 82 00 0C */ bne lbl_80311088 /* 80311080 0030CCE0 38 60 00 0A */ li r3, 0xa /* 80311084 0030CCE4 4E 80 00 20 */ blr lbl_80311088: /* 80311088 0030CCE8 80 A3 00 30 */ lwz r5, 0x30(r3) /* 8031108C 0030CCEC 38 00 00 01 */ li r0, 1 /* 80311090 0030CCF0 90 83 00 08 */ stw r4, 8(r3) /* 80311094 0030CCF4 2C 05 00 00 */ cmpwi r5, 0 /* 80311098 0030CCF8 90 03 00 00 */ stw r0, 0(r3) /* 8031109C 0030CCFC 41 82 00 0C */ beq lbl_803110A8 /* 803110A0 0030CD00 38 00 00 00 */ li r0, 0 /* 803110A4 0030CD04 90 05 00 08 */ stw r0, 8(r5) lbl_803110A8: /* 803110A8 0030CD08 38 00 00 00 */ li r0, 0 /* 803110AC 0030CD0C 90 03 00 18 */ stw r0, 0x18(r3) /* 803110B0 0030CD10 90 03 00 14 */ stw r0, 0x14(r3) /* 803110B4 0030CD14 90 03 00 0C */ stw r0, 0xc(r3) /* 803110B8 0030CD18 90 03 00 10 */ stw r0, 0x10(r3) /* 803110BC 0030CD1C 90 03 00 1C */ stw r0, 0x1c(r3) /* 803110C0 0030CD20 38 60 00 00 */ li r3, 0 /* 803110C4 0030CD24 4E 80 00 20 */ blr .global VFiPFFAT_InitFFD VFiPFFAT_InitFFD: /* 803110C8 0030CD28 2C 83 00 00 */ cmpwi cr1, r3, 0 /* 803110CC 0030CD2C 40 86 00 0C */ bne cr1, lbl_803110D8 /* 803110D0 0030CD30 38 60 00 0A */ li r3, 0xa /* 803110D4 0030CD34 4E 80 00 20 */ blr lbl_803110D8: /* 803110D8 0030CD38 2C 06 00 00 */ cmpwi r6, 0 /* 803110DC 0030CD3C 40 82 00 0C */ bne lbl_803110E8 /* 803110E0 0030CD40 38 60 00 0A */ li r3, 0xa /* 803110E4 0030CD44 4E 80 00 20 */ blr lbl_803110E8: /* 803110E8 0030CD48 90 83 00 30 */ stw r4, 0x30(r3) /* 803110EC 0030CD4C 90 A3 00 34 */ stw r5, 0x34(r3) /* 803110F0 0030CD50 41 86 00 3C */ beq cr1, lbl_8031112C /* 803110F4 0030CD54 41 82 00 38 */ beq lbl_8031112C /* 803110F8 0030CD58 38 00 00 01 */ li r0, 1 /* 803110FC 0030CD5C 2C 04 00 00 */ cmpwi r4, 0 /* 80311100 0030CD60 90 C3 00 08 */ stw r6, 8(r3) /* 80311104 0030CD64 90 03 00 00 */ stw r0, 0(r3) /* 80311108 0030CD68 41 82 00 0C */ beq lbl_80311114 /* 8031110C 0030CD6C 38 00 00 00 */ li r0, 0 /* 80311110 0030CD70 90 04 00 08 */ stw r0, 8(r4) lbl_80311114: /* 80311114 0030CD74 38 00 00 00 */ li r0, 0 /* 80311118 0030CD78 90 03 00 18 */ stw r0, 0x18(r3) /* 8031111C 0030CD7C 90 03 00 14 */ stw r0, 0x14(r3) /* 80311120 0030CD80 90 03 00 0C */ stw r0, 0xc(r3) /* 80311124 0030CD84 90 03 00 10 */ stw r0, 0x10(r3) /* 80311128 0030CD88 90 03 00 1C */ stw r0, 0x1c(r3) lbl_8031112C: /* 8031112C 0030CD8C 38 60 00 00 */ li r3, 0 /* 80311130 0030CD90 4E 80 00 20 */ blr .global VFiPFFAT_FinalizeFFD VFiPFFAT_FinalizeFFD: /* 80311134 0030CD94 2C 03 00 00 */ cmpwi r3, 0 /* 80311138 0030CD98 40 82 00 0C */ bne lbl_80311144 /* 8031113C 0030CD9C 38 60 00 0A */ li r3, 0xa /* 80311140 0030CDA0 4E 80 00 20 */ blr lbl_80311144: /* 80311144 0030CDA4 38 00 00 00 */ li r0, 0 /* 80311148 0030CDA8 90 03 00 1C */ stw r0, 0x1c(r3) /* 8031114C 0030CDAC 38 60 00 00 */ li r3, 0 /* 80311150 0030CDB0 4E 80 00 20 */ blr .global VFiPFFAT_GetValueOfEOC2 VFiPFFAT_GetValueOfEOC2: /* 80311154 0030CDB4 80 03 00 1C */ lwz r0, 0x1c(r3) /* 80311158 0030CDB8 3C 60 80 40 */ lis r3, lbl_803FE280@ha /* 8031115C 0030CDBC 38 63 E2 80 */ addi r3, r3, lbl_803FE280@l /* 80311160 0030CDC0 1C 00 00 14 */ mulli r0, r0, 0x14 /* 80311164 0030CDC4 7C 63 02 14 */ add r3, r3, r0 /* 80311168 0030CDC8 80 63 00 08 */ lwz r3, 8(r3) /* 8031116C 0030CDCC 4E 80 00 20 */ blr