.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global VFiPFCACHE_InitPageList VFiPFCACHE_InitPageList: /* 80308ED8 00304B38 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80308EDC 00304B3C 7C 08 02 A6 */ mflr r0 /* 80308EE0 00304B40 90 01 00 34 */ stw r0, 0x34(r1) /* 80308EE4 00304B44 39 61 00 30 */ addi r11, r1, 0x30 /* 80308EE8 00304B48 4B EB E2 39 */ bl _savegpr_25 /* 80308EEC 00304B4C 90 A4 00 00 */ stw r5, 0(r4) /* 80308EF0 00304B50 28 09 00 01 */ cmplwi r9, 1 /* 80308EF4 00304B54 A0 03 00 00 */ lhz r0, 0(r3) /* 80308EF8 00304B58 7C 00 4E 70 */ srawi r0, r0, 9 /* 80308EFC 00304B5C 7D 80 41 D6 */ mullw r12, r0, r8 /* 80308F00 00304B60 40 82 00 10 */ bne lbl_80308F10 /* 80308F04 00304B64 7C 07 63 96 */ divwu r0, r7, r12 /* 80308F08 00304B68 28 00 00 01 */ cmplwi r0, 1 /* 80308F0C 00304B6C 41 80 00 18 */ blt lbl_80308F24 lbl_80308F10: /* 80308F10 00304B70 2C 09 00 00 */ cmpwi r9, 0 /* 80308F14 00304B74 40 82 00 18 */ bne lbl_80308F2C /* 80308F18 00304B78 7C 07 63 96 */ divwu r0, r7, r12 /* 80308F1C 00304B7C 28 00 00 02 */ cmplwi r0, 2 /* 80308F20 00304B80 40 80 00 0C */ bge lbl_80308F2C lbl_80308F24: /* 80308F24 00304B84 38 60 00 1E */ li r3, 0x1e /* 80308F28 00304B88 48 00 02 18 */ b lbl_80309140 lbl_80308F2C: /* 80308F2C 00304B8C 7C 07 63 96 */ divwu r0, r7, r12 /* 80308F30 00304B90 28 00 00 01 */ cmplwi r0, 1 /* 80308F34 00304B94 40 82 00 64 */ bne lbl_80308F98 /* 80308F38 00304B98 A0 05 00 00 */ lhz r0, 0(r5) /* 80308F3C 00304B9C 38 80 00 00 */ li r4, 0 /* 80308F40 00304BA0 38 60 FF FF */ li r3, -1 /* 80308F44 00304BA4 2C 09 00 00 */ cmpwi r9, 0 /* 80308F48 00304BA8 54 00 04 3A */ rlwinm r0, r0, 0, 0x10, 0x1d /* 80308F4C 00304BAC 90 A5 00 24 */ stw r5, 0x24(r5) /* 80308F50 00304BB0 90 A5 00 20 */ stw r5, 0x20(r5) /* 80308F54 00304BB4 90 C5 00 04 */ stw r6, 4(r5) /* 80308F58 00304BB8 90 C5 00 08 */ stw r6, 8(r5) /* 80308F5C 00304BBC 90 85 00 0C */ stw r4, 0xc(r5) /* 80308F60 00304BC0 90 85 00 10 */ stw r4, 0x10(r5) /* 80308F64 00304BC4 91 05 00 14 */ stw r8, 0x14(r5) /* 80308F68 00304BC8 90 65 00 18 */ stw r3, 0x18(r5) /* 80308F6C 00304BCC B0 85 00 02 */ sth r4, 2(r5) /* 80308F70 00304BD0 90 85 00 1C */ stw r4, 0x1c(r5) /* 80308F74 00304BD4 B0 05 00 00 */ sth r0, 0(r5) /* 80308F78 00304BD8 41 82 00 10 */ beq lbl_80308F88 /* 80308F7C 00304BDC 60 00 00 04 */ ori r0, r0, 4 /* 80308F80 00304BE0 B0 05 00 00 */ sth r0, 0(r5) /* 80308F84 00304BE4 48 00 00 0C */ b lbl_80308F90 lbl_80308F88: /* 80308F88 00304BE8 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c /* 80308F8C 00304BEC B0 05 00 00 */ sth r0, 0(r5) lbl_80308F90: /* 80308F90 00304BF0 38 60 00 00 */ li r3, 0 /* 80308F94 00304BF4 48 00 01 AC */ b lbl_80309140 lbl_80308F98: /* 80308F98 00304BF8 7C 60 61 D6 */ mullw r3, r0, r12 /* 80308F9C 00304BFC 3B C0 00 00 */ li r30, 0 /* 80308FA0 00304C00 A0 05 00 00 */ lhz r0, 0(r5) /* 80308FA4 00304C04 3B A0 FF FF */ li r29, -1 /* 80308FA8 00304C08 2C 09 00 00 */ cmpwi r9, 0 /* 80308FAC 00304C0C 90 C5 00 04 */ stw r6, 4(r5) /* 80308FB0 00304C10 54 1C 04 3A */ rlwinm r28, r0, 0, 0x10, 0x1d /* 80308FB4 00304C14 7D 63 38 50 */ subf r11, r3, r7 /* 80308FB8 00304C18 7C 0B 38 50 */ subf r0, r11, r7 /* 80308FBC 00304C1C 90 C5 00 08 */ stw r6, 8(r5) /* 80308FC0 00304C20 7D 4C 00 50 */ subf r10, r12, r0 /* 80308FC4 00304C24 1C 6A 00 28 */ mulli r3, r10, 0x28 /* 80308FC8 00304C28 93 C5 00 0C */ stw r30, 0xc(r5) /* 80308FCC 00304C2C 93 C5 00 10 */ stw r30, 0x10(r5) /* 80308FD0 00304C30 7C 85 1A 14 */ add r4, r5, r3 /* 80308FD4 00304C34 1C 0C 00 28 */ mulli r0, r12, 0x28 /* 80308FD8 00304C38 91 05 00 14 */ stw r8, 0x14(r5) /* 80308FDC 00304C3C 90 85 00 24 */ stw r4, 0x24(r5) /* 80308FE0 00304C40 7C 65 02 14 */ add r3, r5, r0 /* 80308FE4 00304C44 90 65 00 20 */ stw r3, 0x20(r5) /* 80308FE8 00304C48 93 A5 00 18 */ stw r29, 0x18(r5) /* 80308FEC 00304C4C B3 C5 00 02 */ sth r30, 2(r5) /* 80308FF0 00304C50 93 C5 00 1C */ stw r30, 0x1c(r5) /* 80308FF4 00304C54 B3 85 00 00 */ sth r28, 0(r5) /* 80308FF8 00304C58 41 82 00 10 */ beq lbl_80309008 /* 80308FFC 00304C5C 63 9C 00 04 */ ori r28, r28, 4 /* 80309000 00304C60 B3 85 00 00 */ sth r28, 0(r5) /* 80309004 00304C64 48 00 00 0C */ b lbl_80309010 lbl_80309008: /* 80309008 00304C68 57 9C 07 B8 */ rlwinm r28, r28, 0, 0x1e, 0x1c /* 8030900C 00304C6C B3 85 00 00 */ sth r28, 0(r5) lbl_80309010: /* 80309010 00304C70 55 9A 48 2C */ slwi r26, r12, 9 /* 80309014 00304C74 7D 99 63 78 */ mr r25, r12 /* 80309018 00304C78 3B A0 00 00 */ li r29, 0 /* 8030901C 00304C7C 3B C0 FF FF */ li r30, -1 /* 80309020 00304C80 7F 66 D2 14 */ add r27, r6, r26 /* 80309024 00304C84 48 00 00 80 */ b lbl_803090A4 lbl_80309028: /* 80309028 00304C88 7F 8C C8 50 */ subf r28, r12, r25 /* 8030902C 00304C8C 7F F9 62 14 */ add r31, r25, r12 /* 80309030 00304C90 1F 9C 00 28 */ mulli r28, r28, 0x28 /* 80309034 00304C94 2C 09 00 00 */ cmpwi r9, 0 /* 80309038 00304C98 1F FF 00 28 */ mulli r31, r31, 0x28 /* 8030903C 00304C9C 7F 85 E2 14 */ add r28, r5, r28 /* 80309040 00304CA0 93 83 00 24 */ stw r28, 0x24(r3) /* 80309044 00304CA4 7F E5 FA 14 */ add r31, r5, r31 /* 80309048 00304CA8 93 E3 00 20 */ stw r31, 0x20(r3) /* 8030904C 00304CAC 93 63 00 04 */ stw r27, 4(r3) /* 80309050 00304CB0 93 63 00 08 */ stw r27, 8(r3) /* 80309054 00304CB4 93 A3 00 0C */ stw r29, 0xc(r3) /* 80309058 00304CB8 93 A3 00 10 */ stw r29, 0x10(r3) /* 8030905C 00304CBC 91 03 00 14 */ stw r8, 0x14(r3) /* 80309060 00304CC0 93 C3 00 18 */ stw r30, 0x18(r3) /* 80309064 00304CC4 B3 A3 00 02 */ sth r29, 2(r3) /* 80309068 00304CC8 93 A3 00 1C */ stw r29, 0x1c(r3) /* 8030906C 00304CCC A3 E3 00 00 */ lhz r31, 0(r3) /* 80309070 00304CD0 57 FF 04 3A */ rlwinm r31, r31, 0, 0x10, 0x1d /* 80309074 00304CD4 B3 E3 00 00 */ sth r31, 0(r3) /* 80309078 00304CD8 41 82 00 14 */ beq lbl_8030908C /* 8030907C 00304CDC A3 E3 00 00 */ lhz r31, 0(r3) /* 80309080 00304CE0 63 FF 00 04 */ ori r31, r31, 4 /* 80309084 00304CE4 B3 E3 00 00 */ sth r31, 0(r3) /* 80309088 00304CE8 48 00 00 10 */ b lbl_80309098 lbl_8030908C: /* 8030908C 00304CEC A3 E3 00 00 */ lhz r31, 0(r3) /* 80309090 00304CF0 57 FF 07 B8 */ rlwinm r31, r31, 0, 0x1e, 0x1c /* 80309094 00304CF4 B3 E3 00 00 */ sth r31, 0(r3) lbl_80309098: /* 80309098 00304CF8 7C 63 02 14 */ add r3, r3, r0 /* 8030909C 00304CFC 7F 7B D2 14 */ add r27, r27, r26 /* 803090A0 00304D00 7F 39 62 14 */ add r25, r25, r12 lbl_803090A4: /* 803090A4 00304D04 7C 19 50 40 */ cmplw r25, r10 /* 803090A8 00304D08 41 80 FF 80 */ blt lbl_80309028 /* 803090AC 00304D0C 55 80 08 3C */ slwi r0, r12, 1 /* 803090B0 00304D10 7D 4B 38 50 */ subf r10, r11, r7 /* 803090B4 00304D14 7C 00 00 D0 */ neg r0, r0 /* 803090B8 00304D18 2C 09 00 00 */ cmpwi r9, 0 /* 803090BC 00304D1C 7C 0B 00 50 */ subf r0, r11, r0 /* 803090C0 00304D20 7D 6C 50 50 */ subf r11, r12, r10 /* 803090C4 00304D24 7D 40 3A 14 */ add r10, r0, r7 /* 803090C8 00304D28 38 60 00 00 */ li r3, 0 /* 803090CC 00304D2C 55 67 48 2C */ slwi r7, r11, 9 /* 803090D0 00304D30 38 00 FF FF */ li r0, -1 /* 803090D4 00304D34 7D 26 3A 14 */ add r9, r6, r7 /* 803090D8 00304D38 1D 8B 00 28 */ mulli r12, r11, 0x28 /* 803090DC 00304D3C 1C EA 00 28 */ mulli r7, r10, 0x28 /* 803090E0 00304D40 7C C5 62 14 */ add r6, r5, r12 /* 803090E4 00304D44 7C E5 3A 14 */ add r7, r5, r7 /* 803090E8 00304D48 90 E6 00 24 */ stw r7, 0x24(r6) /* 803090EC 00304D4C 90 A6 00 20 */ stw r5, 0x20(r6) /* 803090F0 00304D50 91 26 00 04 */ stw r9, 4(r6) /* 803090F4 00304D54 91 26 00 08 */ stw r9, 8(r6) /* 803090F8 00304D58 90 66 00 0C */ stw r3, 0xc(r6) /* 803090FC 00304D5C 90 66 00 10 */ stw r3, 0x10(r6) /* 80309100 00304D60 91 06 00 14 */ stw r8, 0x14(r6) /* 80309104 00304D64 90 06 00 18 */ stw r0, 0x18(r6) /* 80309108 00304D68 B0 66 00 02 */ sth r3, 2(r6) /* 8030910C 00304D6C 90 66 00 1C */ stw r3, 0x1c(r6) /* 80309110 00304D70 A0 04 00 00 */ lhz r0, 0(r4) /* 80309114 00304D74 54 00 04 3A */ rlwinm r0, r0, 0, 0x10, 0x1d /* 80309118 00304D78 B0 04 00 00 */ sth r0, 0(r4) /* 8030911C 00304D7C 41 82 00 14 */ beq lbl_80309130 /* 80309120 00304D80 A0 04 00 00 */ lhz r0, 0(r4) /* 80309124 00304D84 60 00 00 04 */ ori r0, r0, 4 /* 80309128 00304D88 B0 04 00 00 */ sth r0, 0(r4) /* 8030912C 00304D8C 48 00 00 10 */ b lbl_8030913C lbl_80309130: /* 80309130 00304D90 A0 04 00 00 */ lhz r0, 0(r4) /* 80309134 00304D94 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c /* 80309138 00304D98 B0 04 00 00 */ sth r0, 0(r4) lbl_8030913C: /* 8030913C 00304D9C 38 60 00 00 */ li r3, 0 lbl_80309140: /* 80309140 00304DA0 39 61 00 30 */ addi r11, r1, 0x30 /* 80309144 00304DA4 4B EB E0 29 */ bl _restgpr_25 /* 80309148 00304DA8 80 01 00 34 */ lwz r0, 0x34(r1) /* 8030914C 00304DAC 7C 08 03 A6 */ mtlr r0 /* 80309150 00304DB0 38 21 00 30 */ addi r1, r1, 0x30 /* 80309154 00304DB4 4E 80 00 20 */ blr .global VFiPFCACHE_SearchForPage VFiPFCACHE_SearchForPage: /* 80309158 00304DB8 3C 05 00 01 */ addis r0, r5, 1 /* 8030915C 00304DBC 28 00 FF FF */ cmplwi r0, 0xffff /* 80309160 00304DC0 40 82 00 0C */ bne lbl_8030916C /* 80309164 00304DC4 38 60 00 00 */ li r3, 0 /* 80309168 00304DC8 4E 80 00 20 */ blr lbl_8030916C: /* 8030916C 00304DCC A0 04 00 00 */ lhz r0, 0(r4) /* 80309170 00304DD0 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80309174 00304DD4 40 82 00 0C */ bne lbl_80309180 /* 80309178 00304DD8 38 60 00 00 */ li r3, 0 /* 8030917C 00304DDC 4E 80 00 20 */ blr lbl_80309180: /* 80309180 00304DE0 80 E4 00 18 */ lwz r7, 0x18(r4) /* 80309184 00304DE4 7C 07 28 40 */ cmplw r7, r5 /* 80309188 00304DE8 41 81 00 38 */ bgt lbl_803091C0 /* 8030918C 00304DEC 80 04 00 14 */ lwz r0, 0x14(r4) /* 80309190 00304DF0 7C C7 02 14 */ add r6, r7, r0 /* 80309194 00304DF4 38 06 FF FF */ addi r0, r6, -1 /* 80309198 00304DF8 7C 00 28 40 */ cmplw r0, r5 /* 8030919C 00304DFC 41 80 00 24 */ blt lbl_803091C0 /* 803091A0 00304E00 88 03 00 20 */ lbz r0, 0x20(r3) /* 803091A4 00304E04 7C A7 28 50 */ subf r5, r7, r5 /* 803091A8 00304E08 80 C4 00 04 */ lwz r6, 4(r4) /* 803091AC 00304E0C 7C 83 23 78 */ mr r3, r4 /* 803091B0 00304E10 7C A0 00 30 */ slw r0, r5, r0 /* 803091B4 00304E14 7C 06 02 14 */ add r0, r6, r0 /* 803091B8 00304E18 90 04 00 08 */ stw r0, 8(r4) /* 803091BC 00304E1C 4E 80 00 20 */ blr lbl_803091C0: /* 803091C0 00304E20 81 04 00 20 */ lwz r8, 0x20(r4) /* 803091C4 00304E24 48 00 00 5C */ b lbl_80309220 lbl_803091C8: /* 803091C8 00304E28 A0 08 00 00 */ lhz r0, 0(r8) /* 803091CC 00304E2C 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 803091D0 00304E30 40 82 00 0C */ bne lbl_803091DC /* 803091D4 00304E34 38 60 00 00 */ li r3, 0 /* 803091D8 00304E38 4E 80 00 20 */ blr lbl_803091DC: /* 803091DC 00304E3C 80 E8 00 18 */ lwz r7, 0x18(r8) /* 803091E0 00304E40 7C 07 28 40 */ cmplw r7, r5 /* 803091E4 00304E44 41 81 00 38 */ bgt lbl_8030921C /* 803091E8 00304E48 80 08 00 14 */ lwz r0, 0x14(r8) /* 803091EC 00304E4C 7C C7 02 14 */ add r6, r7, r0 /* 803091F0 00304E50 38 06 FF FF */ addi r0, r6, -1 /* 803091F4 00304E54 7C 00 28 40 */ cmplw r0, r5 /* 803091F8 00304E58 41 80 00 24 */ blt lbl_8030921C /* 803091FC 00304E5C 88 03 00 20 */ lbz r0, 0x20(r3) /* 80309200 00304E60 7C 87 28 50 */ subf r4, r7, r5 /* 80309204 00304E64 80 A8 00 04 */ lwz r5, 4(r8) /* 80309208 00304E68 7D 03 43 78 */ mr r3, r8 /* 8030920C 00304E6C 7C 80 00 30 */ slw r0, r4, r0 /* 80309210 00304E70 7C 05 02 14 */ add r0, r5, r0 /* 80309214 00304E74 90 08 00 08 */ stw r0, 8(r8) /* 80309218 00304E78 4E 80 00 20 */ blr lbl_8030921C: /* 8030921C 00304E7C 81 08 00 20 */ lwz r8, 0x20(r8) lbl_80309220: /* 80309220 00304E80 7C 08 20 40 */ cmplw r8, r4 /* 80309224 00304E84 40 82 FF A4 */ bne lbl_803091C8 /* 80309228 00304E88 38 60 00 00 */ li r3, 0 /* 8030922C 00304E8C 4E 80 00 20 */ blr .global VFiPFCACHE_SearchForFreePage VFiPFCACHE_SearchForFreePage: /* 80309230 00304E90 80 C3 00 24 */ lwz r6, 0x24(r3) /* 80309234 00304E94 48 00 00 3C */ b lbl_80309270 lbl_80309238: /* 80309238 00304E98 A0 06 00 00 */ lhz r0, 0(r6) /* 8030923C 00304E9C 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80309240 00304EA0 40 82 00 10 */ bne lbl_80309250 /* 80309244 00304EA4 90 C4 00 00 */ stw r6, 0(r4) /* 80309248 00304EA8 38 60 00 01 */ li r3, 1 /* 8030924C 00304EAC 4E 80 00 20 */ blr lbl_80309250: /* 80309250 00304EB0 80 A6 00 18 */ lwz r5, 0x18(r6) /* 80309254 00304EB4 3C 05 00 01 */ addis r0, r5, 1 /* 80309258 00304EB8 28 00 FF FF */ cmplwi r0, 0xffff /* 8030925C 00304EBC 41 82 00 10 */ beq lbl_8030926C /* 80309260 00304EC0 90 C4 00 00 */ stw r6, 0(r4) /* 80309264 00304EC4 38 60 00 00 */ li r3, 0 /* 80309268 00304EC8 4E 80 00 20 */ blr lbl_8030926C: /* 8030926C 00304ECC 80 C6 00 24 */ lwz r6, 0x24(r6) lbl_80309270: /* 80309270 00304ED0 7C 06 18 40 */ cmplw r6, r3 /* 80309274 00304ED4 40 82 FF C4 */ bne lbl_80309238 /* 80309278 00304ED8 A0 06 00 00 */ lhz r0, 0(r6) /* 8030927C 00304EDC 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80309280 00304EE0 40 82 00 10 */ bne lbl_80309290 /* 80309284 00304EE4 90 C4 00 00 */ stw r6, 0(r4) /* 80309288 00304EE8 38 60 00 01 */ li r3, 1 /* 8030928C 00304EEC 4E 80 00 20 */ blr lbl_80309290: /* 80309290 00304EF0 80 66 00 18 */ lwz r3, 0x18(r6) /* 80309294 00304EF4 3C 03 00 01 */ addis r0, r3, 1 /* 80309298 00304EF8 28 00 FF FF */ cmplwi r0, 0xffff /* 8030929C 00304EFC 41 82 00 10 */ beq lbl_803092AC /* 803092A0 00304F00 90 C4 00 00 */ stw r6, 0(r4) /* 803092A4 00304F04 38 60 00 00 */ li r3, 0 /* 803092A8 00304F08 4E 80 00 20 */ blr lbl_803092AC: /* 803092AC 00304F0C 38 00 00 00 */ li r0, 0 /* 803092B0 00304F10 38 60 00 00 */ li r3, 0 /* 803092B4 00304F14 90 04 00 00 */ stw r0, 0(r4) /* 803092B8 00304F18 4E 80 00 20 */ blr .global VFiPFCACHE_FlushPageIfNeeded VFiPFCACHE_FlushPageIfNeeded: /* 803092BC 00304F1C 94 21 FF D0 */ stwu r1, -0x30(r1) /* 803092C0 00304F20 7C 08 02 A6 */ mflr r0 /* 803092C4 00304F24 90 01 00 34 */ stw r0, 0x34(r1) /* 803092C8 00304F28 39 61 00 30 */ addi r11, r1, 0x30 /* 803092CC 00304F2C 4B EB DE 5D */ bl _savegpr_27 /* 803092D0 00304F30 2C 04 00 00 */ cmpwi r4, 0 /* 803092D4 00304F34 7C 7E 1B 78 */ mr r30, r3 /* 803092D8 00304F38 7C 9F 23 78 */ mr r31, r4 /* 803092DC 00304F3C 41 82 00 C4 */ beq lbl_803093A0 /* 803092E0 00304F40 A0 04 00 00 */ lhz r0, 0(r4) /* 803092E4 00304F44 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 803092E8 00304F48 41 82 00 B8 */ beq lbl_803093A0 /* 803092EC 00304F4C 81 04 00 18 */ lwz r8, 0x18(r4) /* 803092F0 00304F50 3C 08 00 01 */ addis r0, r8, 1 /* 803092F4 00304F54 28 00 FF FF */ cmplwi r0, 0xffff /* 803092F8 00304F58 41 82 00 A8 */ beq lbl_803093A0 /* 803092FC 00304F5C 83 A4 00 0C */ lwz r29, 0xc(r4) /* 80309300 00304F60 38 E1 00 08 */ addi r7, r1, 8 /* 80309304 00304F64 89 23 00 20 */ lbz r9, 0x20(r3) /* 80309308 00304F68 80 C4 00 04 */ lwz r6, 4(r4) /* 8030930C 00304F6C 80 04 00 10 */ lwz r0, 0x10(r4) /* 80309310 00304F70 7F A5 4C 30 */ srw r5, r29, r9 /* 80309314 00304F74 7C C6 E8 50 */ subf r6, r6, r29 /* 80309318 00304F78 7F A4 EB 78 */ mr r4, r29 /* 8030931C 00304F7C 7C 00 4C 30 */ srw r0, r0, r9 /* 80309320 00304F80 7C C6 4C 30 */ srw r6, r6, r9 /* 80309324 00304F84 7C A5 00 50 */ subf r5, r5, r0 /* 80309328 00304F88 7F 68 32 14 */ add r27, r8, r6 /* 8030932C 00304F8C 3B 85 00 01 */ addi r28, r5, 1 /* 80309330 00304F90 7F 65 DB 78 */ mr r5, r27 /* 80309334 00304F94 7F 86 E3 78 */ mr r6, r28 /* 80309338 00304F98 4B FF CF 09 */ bl VFiPFDRV_lwrite /* 8030933C 00304F9C 2C 03 00 00 */ cmpwi r3, 0 /* 80309340 00304FA0 41 82 00 08 */ beq lbl_80309348 /* 80309344 00304FA4 48 00 00 60 */ b lbl_803093A4 lbl_80309348: /* 80309348 00304FA8 80 01 00 08 */ lwz r0, 8(r1) /* 8030934C 00304FAC 7C 00 E0 40 */ cmplw r0, r28 /* 80309350 00304FB0 41 82 00 0C */ beq lbl_8030935C /* 80309354 00304FB4 38 60 00 11 */ li r3, 0x11 /* 80309358 00304FB8 48 00 00 4C */ b lbl_803093A4 lbl_8030935C: /* 8030935C 00304FBC A0 1F 00 00 */ lhz r0, 0(r31) /* 80309360 00304FC0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d /* 80309364 00304FC4 41 82 00 24 */ beq lbl_80309388 /* 80309368 00304FC8 7F C3 F3 78 */ mr r3, r30 /* 8030936C 00304FCC 7F A4 EB 78 */ mr r4, r29 /* 80309370 00304FD0 7F 65 DB 78 */ mr r5, r27 /* 80309374 00304FD4 7F 86 E3 78 */ mr r6, r28 /* 80309378 00304FD8 48 00 6B 2D */ bl VFiPFFAT_UpdateAlternateFATEntry /* 8030937C 00304FDC 2C 03 00 00 */ cmpwi r3, 0 /* 80309380 00304FE0 41 82 00 08 */ beq lbl_80309388 /* 80309384 00304FE4 48 00 00 20 */ b lbl_803093A4 lbl_80309388: /* 80309388 00304FE8 A0 1F 00 00 */ lhz r0, 0(r31) /* 8030938C 00304FEC 38 60 00 00 */ li r3, 0 /* 80309390 00304FF0 90 7F 00 0C */ stw r3, 0xc(r31) /* 80309394 00304FF4 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d /* 80309398 00304FF8 90 7F 00 10 */ stw r3, 0x10(r31) /* 8030939C 00304FFC B0 1F 00 00 */ sth r0, 0(r31) lbl_803093A0: /* 803093A0 00305000 38 60 00 00 */ li r3, 0 lbl_803093A4: /* 803093A4 00305004 39 61 00 30 */ addi r11, r1, 0x30 /* 803093A8 00305008 4B EB DD CD */ bl _restgpr_27 /* 803093AC 0030500C 80 01 00 34 */ lwz r0, 0x34(r1) /* 803093B0 00305010 7C 08 03 A6 */ mtlr r0 /* 803093B4 00305014 38 21 00 30 */ addi r1, r1, 0x30 /* 803093B8 00305018 4E 80 00 20 */ blr .global VFiPFCACHE_DoAllocatePage VFiPFCACHE_DoAllocatePage: /* 803093BC 0030501C 94 21 FF D0 */ stwu r1, -0x30(r1) /* 803093C0 00305020 7C 08 02 A6 */ mflr r0 /* 803093C4 00305024 90 01 00 34 */ stw r0, 0x34(r1) /* 803093C8 00305028 39 61 00 30 */ addi r11, r1, 0x30 /* 803093CC 0030502C 4B EB DD 55 */ bl _savegpr_25 /* 803093D0 00305030 7C 9D 23 78 */ mr r29, r4 /* 803093D4 00305034 80 84 00 00 */ lwz r4, 0(r4) /* 803093D8 00305038 7C 7C 1B 78 */ mr r28, r3 /* 803093DC 0030503C 7C BE 2B 78 */ mr r30, r5 /* 803093E0 00305040 7C DF 33 78 */ mr r31, r6 /* 803093E4 00305044 7C F9 3B 78 */ mr r25, r7 /* 803093E8 00305048 3B 40 00 00 */ li r26, 0 /* 803093EC 0030504C 4B FF FD 6D */ bl VFiPFCACHE_SearchForPage /* 803093F0 00305050 2C 03 00 00 */ cmpwi r3, 0 /* 803093F4 00305054 90 7F 00 00 */ stw r3, 0(r31) /* 803093F8 00305058 41 82 00 10 */ beq lbl_80309408 /* 803093FC 0030505C 38 00 00 01 */ li r0, 1 /* 80309400 00305060 90 19 00 00 */ stw r0, 0(r25) /* 80309404 00305064 48 00 01 B4 */ b lbl_803095B8 lbl_80309408: /* 80309408 00305068 3B 60 00 00 */ li r27, 0 /* 8030940C 0030506C 7F E4 FB 78 */ mr r4, r31 /* 80309410 00305070 93 79 00 00 */ stw r27, 0(r25) /* 80309414 00305074 80 7D 00 00 */ lwz r3, 0(r29) /* 80309418 00305078 4B FF FE 19 */ bl VFiPFCACHE_SearchForFreePage /* 8030941C 0030507C 2C 03 00 00 */ cmpwi r3, 0 /* 80309420 00305080 40 82 00 94 */ bne lbl_803094B4 /* 80309424 00305084 80 9F 00 00 */ lwz r4, 0(r31) /* 80309428 00305088 2C 04 00 00 */ cmpwi r4, 0 /* 8030942C 0030508C 40 82 00 10 */ bne lbl_8030943C /* 80309430 00305090 93 7F 00 00 */ stw r27, 0(r31) /* 80309434 00305094 38 60 00 1E */ li r3, 0x1e /* 80309438 00305098 48 00 01 E4 */ b lbl_8030961C lbl_8030943C: /* 8030943C 0030509C 41 82 00 24 */ beq lbl_80309460 /* 80309440 003050A0 A0 04 00 00 */ lhz r0, 0(r4) /* 80309444 003050A4 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 80309448 003050A8 41 82 00 18 */ beq lbl_80309460 /* 8030944C 003050AC 80 64 00 18 */ lwz r3, 0x18(r4) /* 80309450 003050B0 3C 03 00 01 */ addis r0, r3, 1 /* 80309454 003050B4 28 00 FF FF */ cmplwi r0, 0xffff /* 80309458 003050B8 41 82 00 08 */ beq lbl_80309460 /* 8030945C 003050BC 3B 40 00 01 */ li r26, 1 lbl_80309460: /* 80309460 003050C0 7F 83 E3 78 */ mr r3, r28 /* 80309464 003050C4 4B FF FE 59 */ bl VFiPFCACHE_FlushPageIfNeeded /* 80309468 003050C8 2C 03 00 00 */ cmpwi r3, 0 /* 8030946C 003050CC 41 82 00 10 */ beq lbl_8030947C /* 80309470 003050D0 38 00 00 00 */ li r0, 0 /* 80309474 003050D4 90 1F 00 00 */ stw r0, 0(r31) /* 80309478 003050D8 48 00 01 A4 */ b lbl_8030961C lbl_8030947C: /* 8030947C 003050DC 80 7F 00 00 */ lwz r3, 0(r31) /* 80309480 003050E0 38 00 00 00 */ li r0, 0 /* 80309484 003050E4 2C 1A 00 00 */ cmpwi r26, 0 /* 80309488 003050E8 90 03 00 0C */ stw r0, 0xc(r3) /* 8030948C 003050EC 80 7F 00 00 */ lwz r3, 0(r31) /* 80309490 003050F0 90 03 00 10 */ stw r0, 0x10(r3) /* 80309494 003050F4 41 82 00 20 */ beq lbl_803094B4 /* 80309498 003050F8 7F 83 E3 78 */ mr r3, r28 /* 8030949C 003050FC 38 80 00 01 */ li r4, 1 /* 803094A0 00305100 48 01 29 01 */ bl dCommon_FlushFromVol /* 803094A4 00305104 2C 03 00 00 */ cmpwi r3, 0 /* 803094A8 00305108 41 82 00 0C */ beq lbl_803094B4 /* 803094AC 0030510C 38 60 00 11 */ li r3, 0x11 /* 803094B0 00305110 48 00 01 6C */ b lbl_8030961C lbl_803094B4: /* 803094B4 00305114 3C 1E 00 01 */ addis r0, r30, 1 /* 803094B8 00305118 28 00 FF FF */ cmplwi r0, 0xffff /* 803094BC 0030511C 41 82 00 D8 */ beq lbl_80309594 /* 803094C0 00305120 80 9F 00 00 */ lwz r4, 0(r31) /* 803094C4 00305124 A0 04 00 00 */ lhz r0, 0(r4) /* 803094C8 00305128 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d /* 803094CC 0030512C 41 82 00 48 */ beq lbl_80309514 /* 803094D0 00305130 80 64 00 14 */ lwz r3, 0x14(r4) /* 803094D4 00305134 7C 1E 1B 96 */ divwu r0, r30, r3 /* 803094D8 00305138 7C 00 19 D6 */ mullw r0, r0, r3 /* 803094DC 0030513C 7C 00 F0 50 */ subf r0, r0, r30 /* 803094E0 00305140 7C 00 F0 50 */ subf r0, r0, r30 /* 803094E4 00305144 90 04 00 18 */ stw r0, 0x18(r4) /* 803094E8 00305148 80 DF 00 00 */ lwz r6, 0(r31) /* 803094EC 0030514C 88 1C 00 20 */ lbz r0, 0x20(r28) /* 803094F0 00305150 80 86 00 14 */ lwz r4, 0x14(r6) /* 803094F4 00305154 80 A6 00 04 */ lwz r5, 4(r6) /* 803094F8 00305158 7C 7E 23 96 */ divwu r3, r30, r4 /* 803094FC 0030515C 7C 63 21 D6 */ mullw r3, r3, r4 /* 80309500 00305160 7C 63 F0 50 */ subf r3, r3, r30 /* 80309504 00305164 7C 60 00 30 */ slw r0, r3, r0 /* 80309508 00305168 7C 05 02 14 */ add r0, r5, r0 /* 8030950C 0030516C 90 06 00 08 */ stw r0, 8(r6) /* 80309510 00305170 48 00 00 98 */ b lbl_803095A8 lbl_80309514: /* 80309514 00305174 80 1C 00 1C */ lwz r0, 0x1c(r28) /* 80309518 00305178 2C 00 00 02 */ cmpwi r0, 2 /* 8030951C 0030517C 40 82 00 30 */ bne lbl_8030954C /* 80309520 00305180 80 1C 00 30 */ lwz r0, 0x30(r28) /* 80309524 00305184 7C 1E 00 40 */ cmplw r30, r0 /* 80309528 00305188 41 80 00 10 */ blt lbl_80309538 /* 8030952C 0030518C 80 1C 00 08 */ lwz r0, 8(r28) /* 80309530 00305190 7C 1E 00 40 */ cmplw r30, r0 /* 80309534 00305194 41 80 00 18 */ blt lbl_8030954C lbl_80309538: /* 80309538 00305198 A0 1C 00 14 */ lhz r0, 0x14(r28) /* 8030953C 0030519C 7C 1E 00 40 */ cmplw r30, r0 /* 80309540 003051A0 40 82 00 0C */ bne lbl_8030954C /* 80309544 003051A4 38 00 00 01 */ li r0, 1 /* 80309548 003051A8 90 04 00 14 */ stw r0, 0x14(r4) lbl_8030954C: /* 8030954C 003051AC 80 9F 00 00 */ lwz r4, 0(r31) /* 80309550 003051B0 80 64 00 14 */ lwz r3, 0x14(r4) /* 80309554 003051B4 7C 1E 1B 96 */ divwu r0, r30, r3 /* 80309558 003051B8 7C 00 19 D6 */ mullw r0, r0, r3 /* 8030955C 003051BC 7C 00 F0 50 */ subf r0, r0, r30 /* 80309560 003051C0 7C 00 F0 50 */ subf r0, r0, r30 /* 80309564 003051C4 90 04 00 18 */ stw r0, 0x18(r4) /* 80309568 003051C8 80 DF 00 00 */ lwz r6, 0(r31) /* 8030956C 003051CC 88 1C 00 20 */ lbz r0, 0x20(r28) /* 80309570 003051D0 80 86 00 14 */ lwz r4, 0x14(r6) /* 80309574 003051D4 80 A6 00 04 */ lwz r5, 4(r6) /* 80309578 003051D8 7C 7E 23 96 */ divwu r3, r30, r4 /* 8030957C 003051DC 7C 63 21 D6 */ mullw r3, r3, r4 /* 80309580 003051E0 7C 63 F0 50 */ subf r3, r3, r30 /* 80309584 003051E4 7C 60 00 30 */ slw r0, r3, r0 /* 80309588 003051E8 7C 05 02 14 */ add r0, r5, r0 /* 8030958C 003051EC 90 06 00 08 */ stw r0, 8(r6) /* 80309590 003051F0 48 00 00 18 */ b lbl_803095A8 lbl_80309594: /* 80309594 003051F4 80 7F 00 00 */ lwz r3, 0(r31) /* 80309598 003051F8 93 C3 00 18 */ stw r30, 0x18(r3) /* 8030959C 003051FC 80 7F 00 00 */ lwz r3, 0(r31) /* 803095A0 00305200 80 03 00 04 */ lwz r0, 4(r3) /* 803095A4 00305204 90 03 00 08 */ stw r0, 8(r3) lbl_803095A8: /* 803095A8 00305208 80 7F 00 00 */ lwz r3, 0(r31) /* 803095AC 0030520C A0 03 00 00 */ lhz r0, 0(r3) /* 803095B0 00305210 60 00 00 01 */ ori r0, r0, 1 /* 803095B4 00305214 B0 03 00 00 */ sth r0, 0(r3) lbl_803095B8: /* 803095B8 00305218 80 BF 00 00 */ lwz r5, 0(r31) /* 803095BC 0030521C 80 7D 00 00 */ lwz r3, 0(r29) /* 803095C0 00305220 7C 05 18 40 */ cmplw r5, r3 /* 803095C4 00305224 41 82 00 54 */ beq lbl_80309618 /* 803095C8 00305228 80 03 00 24 */ lwz r0, 0x24(r3) /* 803095CC 0030522C 7C 05 00 40 */ cmplw r5, r0 /* 803095D0 00305230 40 82 00 0C */ bne lbl_803095DC /* 803095D4 00305234 90 BD 00 00 */ stw r5, 0(r29) /* 803095D8 00305238 48 00 00 40 */ b lbl_80309618 lbl_803095DC: /* 803095DC 0030523C 80 05 00 20 */ lwz r0, 0x20(r5) /* 803095E0 00305240 80 65 00 24 */ lwz r3, 0x24(r5) /* 803095E4 00305244 90 03 00 20 */ stw r0, 0x20(r3) /* 803095E8 00305248 80 05 00 24 */ lwz r0, 0x24(r5) /* 803095EC 0030524C 80 65 00 20 */ lwz r3, 0x20(r5) /* 803095F0 00305250 90 03 00 24 */ stw r0, 0x24(r3) /* 803095F4 00305254 80 9D 00 00 */ lwz r4, 0(r29) /* 803095F8 00305258 90 85 00 20 */ stw r4, 0x20(r5) /* 803095FC 0030525C 80 7D 00 00 */ lwz r3, 0(r29) /* 80309600 00305260 80 03 00 24 */ lwz r0, 0x24(r3) /* 80309604 00305264 90 05 00 24 */ stw r0, 0x24(r5) /* 80309608 00305268 90 A4 00 24 */ stw r5, 0x24(r4) /* 8030960C 0030526C 80 65 00 24 */ lwz r3, 0x24(r5) /* 80309610 00305270 90 A3 00 20 */ stw r5, 0x20(r3) /* 80309614 00305274 90 BD 00 00 */ stw r5, 0(r29) lbl_80309618: /* 80309618 00305278 38 60 00 00 */ li r3, 0 lbl_8030961C: /* 8030961C 0030527C 39 61 00 30 */ addi r11, r1, 0x30 /* 80309620 00305280 4B EB DB 4D */ bl _restgpr_25 /* 80309624 00305284 80 01 00 34 */ lwz r0, 0x34(r1) /* 80309628 00305288 7C 08 03 A6 */ mtlr r0 /* 8030962C 0030528C 38 21 00 30 */ addi r1, r1, 0x30 /* 80309630 00305290 4E 80 00 20 */ blr .global VFiPFCACHE_DoReadPage VFiPFCACHE_DoReadPage: /* 80309634 00305294 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80309638 00305298 7C 08 02 A6 */ mflr r0 /* 8030963C 0030529C 90 01 00 24 */ stw r0, 0x24(r1) /* 80309640 003052A0 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80309644 003052A4 7C 9F 23 78 */ mr r31, r4 /* 80309648 003052A8 93 C1 00 18 */ stw r30, 0x18(r1) /* 8030964C 003052AC 7C FE 3B 78 */ mr r30, r7 /* 80309650 003052B0 38 E1 00 08 */ addi r7, r1, 8 /* 80309654 003052B4 93 A1 00 14 */ stw r29, 0x14(r1) /* 80309658 003052B8 7C DD 33 78 */ mr r29, r6 /* 8030965C 003052BC 93 81 00 10 */ stw r28, 0x10(r1) /* 80309660 003052C0 7C 7C 1B 78 */ mr r28, r3 /* 80309664 003052C4 4B FF FD 59 */ bl VFiPFCACHE_DoAllocatePage /* 80309668 003052C8 2C 03 00 00 */ cmpwi r3, 0 /* 8030966C 003052CC 41 82 00 08 */ beq lbl_80309674 /* 80309670 003052D0 48 00 01 B0 */ b lbl_80309820 lbl_80309674: /* 80309674 003052D4 80 01 00 08 */ lwz r0, 8(r1) /* 80309678 003052D8 2C 00 00 00 */ cmpwi r0, 0 /* 8030967C 003052DC 40 82 01 A0 */ bne lbl_8030981C /* 80309680 003052E0 80 DD 00 00 */ lwz r6, 0(r29) /* 80309684 003052E4 7F 83 E3 78 */ mr r3, r28 /* 80309688 003052E8 38 E1 00 0C */ addi r7, r1, 0xc /* 8030968C 003052EC 80 86 00 04 */ lwz r4, 4(r6) /* 80309690 003052F0 80 A6 00 18 */ lwz r5, 0x18(r6) /* 80309694 003052F4 80 C6 00 14 */ lwz r6, 0x14(r6) /* 80309698 003052F8 4B FF CB 25 */ bl VFiPFDRV_lread /* 8030969C 003052FC 2C 03 00 00 */ cmpwi r3, 0 /* 803096A0 00305300 41 82 00 8C */ beq lbl_8030972C /* 803096A4 00305304 80 DD 00 00 */ lwz r6, 0(r29) /* 803096A8 00305308 38 80 00 00 */ li r4, 0 /* 803096AC 0030530C 38 00 FF FF */ li r0, -1 /* 803096B0 00305310 A0 A6 00 00 */ lhz r5, 0(r6) /* 803096B4 00305314 54 A5 04 3A */ rlwinm r5, r5, 0, 0x10, 0x1d /* 803096B8 00305318 B0 A6 00 00 */ sth r5, 0(r6) /* 803096BC 0030531C 90 86 00 0C */ stw r4, 0xc(r6) /* 803096C0 00305320 90 86 00 10 */ stw r4, 0x10(r6) /* 803096C4 00305324 90 06 00 18 */ stw r0, 0x18(r6) /* 803096C8 00305328 90 86 00 1C */ stw r4, 0x1c(r6) /* 803096CC 0030532C 80 9F 00 00 */ lwz r4, 0(r31) /* 803096D0 00305330 7C 06 20 40 */ cmplw r6, r4 /* 803096D4 00305334 40 82 00 10 */ bne lbl_803096E4 /* 803096D8 00305338 80 06 00 20 */ lwz r0, 0x20(r6) /* 803096DC 0030533C 90 1F 00 00 */ stw r0, 0(r31) /* 803096E0 00305340 48 00 01 40 */ b lbl_80309820 lbl_803096E4: /* 803096E4 00305344 80 04 00 24 */ lwz r0, 0x24(r4) /* 803096E8 00305348 7C 06 00 40 */ cmplw r6, r0 /* 803096EC 0030534C 41 82 01 34 */ beq lbl_80309820 /* 803096F0 00305350 80 06 00 20 */ lwz r0, 0x20(r6) /* 803096F4 00305354 80 86 00 24 */ lwz r4, 0x24(r6) /* 803096F8 00305358 90 04 00 20 */ stw r0, 0x20(r4) /* 803096FC 0030535C 80 06 00 24 */ lwz r0, 0x24(r6) /* 80309700 00305360 80 86 00 20 */ lwz r4, 0x20(r6) /* 80309704 00305364 90 04 00 24 */ stw r0, 0x24(r4) /* 80309708 00305368 80 BF 00 00 */ lwz r5, 0(r31) /* 8030970C 0030536C 90 A6 00 20 */ stw r5, 0x20(r6) /* 80309710 00305370 80 9F 00 00 */ lwz r4, 0(r31) /* 80309714 00305374 80 04 00 24 */ lwz r0, 0x24(r4) /* 80309718 00305378 90 06 00 24 */ stw r0, 0x24(r6) /* 8030971C 0030537C 90 C5 00 24 */ stw r6, 0x24(r5) /* 80309720 00305380 80 86 00 24 */ lwz r4, 0x24(r6) /* 80309724 00305384 90 C4 00 20 */ stw r6, 0x20(r4) /* 80309728 00305388 48 00 00 F8 */ b lbl_80309820 lbl_8030972C: /* 8030972C 0030538C 80 BD 00 00 */ lwz r5, 0(r29) /* 80309730 00305390 80 81 00 0C */ lwz r4, 0xc(r1) /* 80309734 00305394 80 05 00 14 */ lwz r0, 0x14(r5) /* 80309738 00305398 7C 04 00 40 */ cmplw r4, r0 /* 8030973C 0030539C 41 82 00 A0 */ beq lbl_803097DC /* 80309740 003053A0 80 05 00 18 */ lwz r0, 0x18(r5) /* 80309744 003053A4 80 7C 00 08 */ lwz r3, 8(r28) /* 80309748 003053A8 7C 00 22 14 */ add r0, r0, r4 /* 8030974C 003053AC 7C 03 00 40 */ cmplw r3, r0 /* 80309750 003053B0 41 82 00 8C */ beq lbl_803097DC /* 80309754 003053B4 A0 85 00 00 */ lhz r4, 0(r5) /* 80309758 003053B8 38 60 00 00 */ li r3, 0 /* 8030975C 003053BC 38 00 FF FF */ li r0, -1 /* 80309760 003053C0 54 84 04 3A */ rlwinm r4, r4, 0, 0x10, 0x1d /* 80309764 003053C4 B0 85 00 00 */ sth r4, 0(r5) /* 80309768 003053C8 90 65 00 0C */ stw r3, 0xc(r5) /* 8030976C 003053CC 90 65 00 10 */ stw r3, 0x10(r5) /* 80309770 003053D0 90 05 00 18 */ stw r0, 0x18(r5) /* 80309774 003053D4 90 65 00 1C */ stw r3, 0x1c(r5) /* 80309778 003053D8 80 7F 00 00 */ lwz r3, 0(r31) /* 8030977C 003053DC 7C 05 18 40 */ cmplw r5, r3 /* 80309780 003053E0 40 82 00 10 */ bne lbl_80309790 /* 80309784 003053E4 80 05 00 20 */ lwz r0, 0x20(r5) /* 80309788 003053E8 90 1F 00 00 */ stw r0, 0(r31) /* 8030978C 003053EC 48 00 00 48 */ b lbl_803097D4 lbl_80309790: /* 80309790 003053F0 80 03 00 24 */ lwz r0, 0x24(r3) /* 80309794 003053F4 7C 05 00 40 */ cmplw r5, r0 /* 80309798 003053F8 41 82 00 3C */ beq lbl_803097D4 /* 8030979C 003053FC 80 05 00 20 */ lwz r0, 0x20(r5) /* 803097A0 00305400 80 65 00 24 */ lwz r3, 0x24(r5) /* 803097A4 00305404 90 03 00 20 */ stw r0, 0x20(r3) /* 803097A8 00305408 80 05 00 24 */ lwz r0, 0x24(r5) /* 803097AC 0030540C 80 65 00 20 */ lwz r3, 0x20(r5) /* 803097B0 00305410 90 03 00 24 */ stw r0, 0x24(r3) /* 803097B4 00305414 80 9F 00 00 */ lwz r4, 0(r31) /* 803097B8 00305418 90 85 00 20 */ stw r4, 0x20(r5) /* 803097BC 0030541C 80 7F 00 00 */ lwz r3, 0(r31) /* 803097C0 00305420 80 03 00 24 */ lwz r0, 0x24(r3) /* 803097C4 00305424 90 05 00 24 */ stw r0, 0x24(r5) /* 803097C8 00305428 90 A4 00 24 */ stw r5, 0x24(r4) /* 803097CC 0030542C 80 65 00 24 */ lwz r3, 0x24(r5) /* 803097D0 00305430 90 A3 00 20 */ stw r5, 0x20(r3) lbl_803097D4: /* 803097D4 00305434 38 60 00 11 */ li r3, 0x11 /* 803097D8 00305438 48 00 00 48 */ b lbl_80309820 lbl_803097DC: /* 803097DC 0030543C A0 65 00 00 */ lhz r3, 0(r5) /* 803097E0 00305440 38 00 00 00 */ li r0, 0 /* 803097E4 00305444 2C 1E 00 00 */ cmpwi r30, 0 /* 803097E8 00305448 54 63 07 FA */ rlwinm r3, r3, 0, 0x1f, 0x1d /* 803097EC 0030544C B0 65 00 00 */ sth r3, 0(r5) /* 803097F0 00305450 80 7D 00 00 */ lwz r3, 0(r29) /* 803097F4 00305454 90 03 00 0C */ stw r0, 0xc(r3) /* 803097F8 00305458 80 7D 00 00 */ lwz r3, 0(r29) /* 803097FC 0030545C 90 03 00 10 */ stw r0, 0x10(r3) /* 80309800 00305460 41 82 00 14 */ beq lbl_80309814 /* 80309804 00305464 80 1C 16 08 */ lwz r0, 0x1608(r28) /* 80309808 00305468 80 7D 00 00 */ lwz r3, 0(r29) /* 8030980C 0030546C 90 03 00 1C */ stw r0, 0x1c(r3) /* 80309810 00305470 48 00 00 0C */ b lbl_8030981C lbl_80309814: /* 80309814 00305474 80 7D 00 00 */ lwz r3, 0(r29) /* 80309818 00305478 90 03 00 1C */ stw r0, 0x1c(r3) lbl_8030981C: /* 8030981C 0030547C 38 60 00 00 */ li r3, 0 lbl_80309820: /* 80309820 00305480 80 01 00 24 */ lwz r0, 0x24(r1) /* 80309824 00305484 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80309828 00305488 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8030982C 0030548C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80309830 00305490 83 81 00 10 */ lwz r28, 0x10(r1) /* 80309834 00305494 7C 08 03 A6 */ mtlr r0 /* 80309838 00305498 38 21 00 20 */ addi r1, r1, 0x20 /* 8030983C 0030549C 4E 80 00 20 */ blr .global VFiPFCACHE_DoReadPageAndFlushIfNeeded VFiPFCACHE_DoReadPageAndFlushIfNeeded: /* 80309840 003054A0 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80309844 003054A4 7C 08 02 A6 */ mflr r0 /* 80309848 003054A8 90 01 00 34 */ stw r0, 0x34(r1) /* 8030984C 003054AC 39 61 00 30 */ addi r11, r1, 0x30 /* 80309850 003054B0 4B EB D8 D9 */ bl _savegpr_27 /* 80309854 003054B4 7C FB 3B 78 */ mr r27, r7 /* 80309858 003054B8 7C 7D 1B 78 */ mr r29, r3 /* 8030985C 003054BC 7C 9E 23 78 */ mr r30, r4 /* 80309860 003054C0 7C DF 33 78 */ mr r31, r6 /* 80309864 003054C4 38 E1 00 08 */ addi r7, r1, 8 /* 80309868 003054C8 3B 80 00 01 */ li r28, 1 /* 8030986C 003054CC 4B FF FB 51 */ bl VFiPFCACHE_DoAllocatePage /* 80309870 003054D0 2C 03 00 00 */ cmpwi r3, 0 /* 80309874 003054D4 41 82 00 08 */ beq lbl_8030987C /* 80309878 003054D8 48 00 02 4C */ b lbl_80309AC4 lbl_8030987C: /* 8030987C 003054DC 80 01 00 08 */ lwz r0, 8(r1) /* 80309880 003054E0 2C 00 00 00 */ cmpwi r0, 0 /* 80309884 003054E4 40 82 01 A4 */ bne lbl_80309A28 /* 80309888 003054E8 80 DF 00 00 */ lwz r6, 0(r31) /* 8030988C 003054EC 7F A3 EB 78 */ mr r3, r29 /* 80309890 003054F0 38 E1 00 0C */ addi r7, r1, 0xc /* 80309894 003054F4 80 86 00 04 */ lwz r4, 4(r6) /* 80309898 003054F8 80 A6 00 18 */ lwz r5, 0x18(r6) /* 8030989C 003054FC 80 C6 00 14 */ lwz r6, 0x14(r6) /* 803098A0 00305500 4B FF C9 1D */ bl VFiPFDRV_lread /* 803098A4 00305504 2C 03 00 00 */ cmpwi r3, 0 /* 803098A8 00305508 41 82 00 8C */ beq lbl_80309934 /* 803098AC 0030550C 80 DF 00 00 */ lwz r6, 0(r31) /* 803098B0 00305510 38 80 00 00 */ li r4, 0 /* 803098B4 00305514 38 00 FF FF */ li r0, -1 /* 803098B8 00305518 A0 A6 00 00 */ lhz r5, 0(r6) /* 803098BC 0030551C 54 A5 04 3A */ rlwinm r5, r5, 0, 0x10, 0x1d /* 803098C0 00305520 B0 A6 00 00 */ sth r5, 0(r6) /* 803098C4 00305524 90 86 00 0C */ stw r4, 0xc(r6) /* 803098C8 00305528 90 86 00 10 */ stw r4, 0x10(r6) /* 803098CC 0030552C 90 06 00 18 */ stw r0, 0x18(r6) /* 803098D0 00305530 90 86 00 1C */ stw r4, 0x1c(r6) /* 803098D4 00305534 80 9E 00 00 */ lwz r4, 0(r30) /* 803098D8 00305538 7C 06 20 40 */ cmplw r6, r4 /* 803098DC 0030553C 40 82 00 10 */ bne lbl_803098EC /* 803098E0 00305540 80 06 00 20 */ lwz r0, 0x20(r6) /* 803098E4 00305544 90 1E 00 00 */ stw r0, 0(r30) /* 803098E8 00305548 48 00 01 DC */ b lbl_80309AC4 lbl_803098EC: /* 803098EC 0030554C 80 04 00 24 */ lwz r0, 0x24(r4) /* 803098F0 00305550 7C 06 00 40 */ cmplw r6, r0 /* 803098F4 00305554 41 82 01 D0 */ beq lbl_80309AC4 /* 803098F8 00305558 80 06 00 20 */ lwz r0, 0x20(r6) /* 803098FC 0030555C 80 86 00 24 */ lwz r4, 0x24(r6) /* 80309900 00305560 90 04 00 20 */ stw r0, 0x20(r4) /* 80309904 00305564 80 06 00 24 */ lwz r0, 0x24(r6) /* 80309908 00305568 80 86 00 20 */ lwz r4, 0x20(r6) /* 8030990C 0030556C 90 04 00 24 */ stw r0, 0x24(r4) /* 80309910 00305570 80 BE 00 00 */ lwz r5, 0(r30) /* 80309914 00305574 90 A6 00 20 */ stw r5, 0x20(r6) /* 80309918 00305578 80 9E 00 00 */ lwz r4, 0(r30) /* 8030991C 0030557C 80 04 00 24 */ lwz r0, 0x24(r4) /* 80309920 00305580 90 06 00 24 */ stw r0, 0x24(r6) /* 80309924 00305584 90 C5 00 24 */ stw r6, 0x24(r5) /* 80309928 00305588 80 86 00 24 */ lwz r4, 0x24(r6) /* 8030992C 0030558C 90 C4 00 20 */ stw r6, 0x20(r4) /* 80309930 00305590 48 00 01 94 */ b lbl_80309AC4 lbl_80309934: /* 80309934 00305594 80 BF 00 00 */ lwz r5, 0(r31) /* 80309938 00305598 80 81 00 0C */ lwz r4, 0xc(r1) /* 8030993C 0030559C 80 05 00 14 */ lwz r0, 0x14(r5) /* 80309940 003055A0 7C 04 00 40 */ cmplw r4, r0 /* 80309944 003055A4 41 82 00 A0 */ beq lbl_803099E4 /* 80309948 003055A8 80 05 00 18 */ lwz r0, 0x18(r5) /* 8030994C 003055AC 80 7D 00 08 */ lwz r3, 8(r29) /* 80309950 003055B0 7C 00 22 14 */ add r0, r0, r4 /* 80309954 003055B4 7C 03 00 40 */ cmplw r3, r0 /* 80309958 003055B8 41 82 00 8C */ beq lbl_803099E4 /* 8030995C 003055BC A0 85 00 00 */ lhz r4, 0(r5) /* 80309960 003055C0 38 60 00 00 */ li r3, 0 /* 80309964 003055C4 38 00 FF FF */ li r0, -1 /* 80309968 003055C8 54 84 04 3A */ rlwinm r4, r4, 0, 0x10, 0x1d /* 8030996C 003055CC B0 85 00 00 */ sth r4, 0(r5) /* 80309970 003055D0 90 65 00 0C */ stw r3, 0xc(r5) /* 80309974 003055D4 90 65 00 10 */ stw r3, 0x10(r5) /* 80309978 003055D8 90 05 00 18 */ stw r0, 0x18(r5) /* 8030997C 003055DC 90 65 00 1C */ stw r3, 0x1c(r5) /* 80309980 003055E0 80 7E 00 00 */ lwz r3, 0(r30) /* 80309984 003055E4 7C 05 18 40 */ cmplw r5, r3 /* 80309988 003055E8 40 82 00 10 */ bne lbl_80309998 /* 8030998C 003055EC 80 05 00 20 */ lwz r0, 0x20(r5) /* 80309990 003055F0 90 1E 00 00 */ stw r0, 0(r30) /* 80309994 003055F4 48 00 00 48 */ b lbl_803099DC lbl_80309998: /* 80309998 003055F8 80 03 00 24 */ lwz r0, 0x24(r3) /* 8030999C 003055FC 7C 05 00 40 */ cmplw r5, r0 /* 803099A0 00305600 41 82 00 3C */ beq lbl_803099DC /* 803099A4 00305604 80 05 00 20 */ lwz r0, 0x20(r5) /* 803099A8 00305608 80 65 00 24 */ lwz r3, 0x24(r5) /* 803099AC 0030560C 90 03 00 20 */ stw r0, 0x20(r3) /* 803099B0 00305610 80 05 00 24 */ lwz r0, 0x24(r5) /* 803099B4 00305614 80 65 00 20 */ lwz r3, 0x20(r5) /* 803099B8 00305618 90 03 00 24 */ stw r0, 0x24(r3) /* 803099BC 0030561C 80 9E 00 00 */ lwz r4, 0(r30) /* 803099C0 00305620 90 85 00 20 */ stw r4, 0x20(r5) /* 803099C4 00305624 80 7E 00 00 */ lwz r3, 0(r30) /* 803099C8 00305628 80 03 00 24 */ lwz r0, 0x24(r3) /* 803099CC 0030562C 90 05 00 24 */ stw r0, 0x24(r5) /* 803099D0 00305630 90 A4 00 24 */ stw r5, 0x24(r4) /* 803099D4 00305634 80 65 00 24 */ lwz r3, 0x24(r5) /* 803099D8 00305638 90 A3 00 20 */ stw r5, 0x20(r3) lbl_803099DC: /* 803099DC 0030563C 38 60 00 11 */ li r3, 0x11 /* 803099E0 00305640 48 00 00 E4 */ b lbl_80309AC4 lbl_803099E4: /* 803099E4 00305644 A0 65 00 00 */ lhz r3, 0(r5) /* 803099E8 00305648 38 00 00 00 */ li r0, 0 /* 803099EC 0030564C 2C 1B 00 00 */ cmpwi r27, 0 /* 803099F0 00305650 54 63 07 FA */ rlwinm r3, r3, 0, 0x1f, 0x1d /* 803099F4 00305654 B0 65 00 00 */ sth r3, 0(r5) /* 803099F8 00305658 80 7F 00 00 */ lwz r3, 0(r31) /* 803099FC 0030565C 90 03 00 0C */ stw r0, 0xc(r3) /* 80309A00 00305660 80 7F 00 00 */ lwz r3, 0(r31) /* 80309A04 00305664 90 03 00 10 */ stw r0, 0x10(r3) /* 80309A08 00305668 41 82 00 14 */ beq lbl_80309A1C /* 80309A0C 0030566C 80 1D 16 08 */ lwz r0, 0x1608(r29) /* 80309A10 00305670 80 7F 00 00 */ lwz r3, 0(r31) /* 80309A14 00305674 90 03 00 1C */ stw r0, 0x1c(r3) /* 80309A18 00305678 48 00 00 A8 */ b lbl_80309AC0 lbl_80309A1C: /* 80309A1C 0030567C 80 7F 00 00 */ lwz r3, 0(r31) /* 80309A20 00305680 90 03 00 1C */ stw r0, 0x1c(r3) /* 80309A24 00305684 48 00 00 9C */ b lbl_80309AC0 lbl_80309A28: /* 80309A28 00305688 2C 1B 00 00 */ cmpwi r27, 0 /* 80309A2C 0030568C 41 82 00 94 */ beq lbl_80309AC0 /* 80309A30 00305690 80 9F 00 00 */ lwz r4, 0(r31) /* 80309A34 00305694 A0 04 00 00 */ lhz r0, 0(r4) /* 80309A38 00305698 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e /* 80309A3C 0030569C 2C 80 00 00 */ cmpwi cr1, r0, 0 /* 80309A40 003056A0 41 86 00 80 */ beq cr1, lbl_80309AC0 /* 80309A44 003056A4 80 1D 15 E8 */ lwz r0, 0x15e8(r29) /* 80309A48 003056A8 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 80309A4C 003056AC 41 82 00 74 */ beq lbl_80309AC0 /* 80309A50 003056B0 80 64 00 1C */ lwz r3, 0x1c(r4) /* 80309A54 003056B4 80 1D 16 08 */ lwz r0, 0x1608(r29) /* 80309A58 003056B8 7C 03 00 40 */ cmplw r3, r0 /* 80309A5C 003056BC 41 82 00 64 */ beq lbl_80309AC0 /* 80309A60 003056C0 2C 04 00 00 */ cmpwi r4, 0 /* 80309A64 003056C4 41 82 00 1C */ beq lbl_80309A80 /* 80309A68 003056C8 41 86 00 18 */ beq cr1, lbl_80309A80 /* 80309A6C 003056CC 80 64 00 18 */ lwz r3, 0x18(r4) /* 80309A70 003056D0 3C 03 00 01 */ addis r0, r3, 1 /* 80309A74 003056D4 28 00 FF FF */ cmplwi r0, 0xffff /* 80309A78 003056D8 41 82 00 08 */ beq lbl_80309A80 /* 80309A7C 003056DC 3B 80 00 01 */ li r28, 1 lbl_80309A80: /* 80309A80 003056E0 7F A3 EB 78 */ mr r3, r29 /* 80309A84 003056E4 4B FF F8 39 */ bl VFiPFCACHE_FlushPageIfNeeded /* 80309A88 003056E8 2C 03 00 00 */ cmpwi r3, 0 /* 80309A8C 003056EC 41 82 00 10 */ beq lbl_80309A9C /* 80309A90 003056F0 38 00 00 00 */ li r0, 0 /* 80309A94 003056F4 90 1F 00 00 */ stw r0, 0(r31) /* 80309A98 003056F8 48 00 00 2C */ b lbl_80309AC4 lbl_80309A9C: /* 80309A9C 003056FC 2C 1C 00 00 */ cmpwi r28, 0 /* 80309AA0 00305700 41 82 00 20 */ beq lbl_80309AC0 /* 80309AA4 00305704 7F A3 EB 78 */ mr r3, r29 /* 80309AA8 00305708 38 80 00 01 */ li r4, 1 /* 80309AAC 0030570C 48 01 22 F5 */ bl dCommon_FlushFromVol /* 80309AB0 00305710 2C 03 00 00 */ cmpwi r3, 0 /* 80309AB4 00305714 41 82 00 0C */ beq lbl_80309AC0 /* 80309AB8 00305718 38 60 00 11 */ li r3, 0x11 /* 80309ABC 0030571C 48 00 00 08 */ b lbl_80309AC4 lbl_80309AC0: /* 80309AC0 00305720 38 60 00 00 */ li r3, 0 lbl_80309AC4: /* 80309AC4 00305724 39 61 00 30 */ addi r11, r1, 0x30 /* 80309AC8 00305728 4B EB D6 AD */ bl _restgpr_27 /* 80309ACC 0030572C 80 01 00 34 */ lwz r0, 0x34(r1) /* 80309AD0 00305730 7C 08 03 A6 */ mtlr r0 /* 80309AD4 00305734 38 21 00 30 */ addi r1, r1, 0x30 /* 80309AD8 00305738 4E 80 00 20 */ blr .global VFiPFCACHE_DoReadNumSector VFiPFCACHE_DoReadNumSector: /* 80309ADC 0030573C 94 21 FF C0 */ stwu r1, -0x40(r1) /* 80309AE0 00305740 7C 08 02 A6 */ mflr r0 /* 80309AE4 00305744 90 01 00 44 */ stw r0, 0x44(r1) /* 80309AE8 00305748 39 61 00 40 */ addi r11, r1, 0x40 /* 80309AEC 0030574C 4B EB D6 25 */ bl _savegpr_21 /* 80309AF0 00305750 38 00 00 00 */ li r0, 0 /* 80309AF4 00305754 7C B8 2B 78 */ mr r24, r5 /* 80309AF8 00305758 7C D9 33 78 */ mr r25, r6 /* 80309AFC 0030575C 7C FA 3B 78 */ mr r26, r7 /* 80309B00 00305760 7D 1B 43 78 */ mr r27, r8 /* 80309B04 00305764 7C 97 23 78 */ mr r23, r4 /* 80309B08 00305768 90 08 00 00 */ stw r0, 0(r8) /* 80309B0C 0030576C 7C 76 1B 78 */ mr r22, r3 /* 80309B10 00305770 7F 04 C3 78 */ mr r4, r24 /* 80309B14 00305774 7F 25 CB 78 */ mr r5, r25 /* 80309B18 00305778 7F 46 D3 78 */ mr r6, r26 /* 80309B1C 0030577C 7F 67 DB 78 */ mr r7, r27 /* 80309B20 00305780 4B FF C6 9D */ bl VFiPFDRV_lread /* 80309B24 00305784 2C 03 00 00 */ cmpwi r3, 0 /* 80309B28 00305788 41 82 00 08 */ beq lbl_80309B30 /* 80309B2C 0030578C 48 00 01 EC */ b lbl_80309D18 lbl_80309B30: /* 80309B30 00305790 83 FB 00 00 */ lwz r31, 0(r27) /* 80309B34 00305794 3B A0 00 00 */ li r29, 0 /* 80309B38 00305798 7F FC FB 78 */ mr r28, r31 /* 80309B3C 0030579C 7F D9 FA 14 */ add r30, r25, r31 lbl_80309B40: /* 80309B40 003057A0 2C 1D 00 00 */ cmpwi r29, 0 /* 80309B44 003057A4 40 82 00 0C */ bne lbl_80309B50 /* 80309B48 003057A8 83 B7 00 00 */ lwz r29, 0(r23) /* 80309B4C 003057AC 48 00 00 40 */ b lbl_80309B8C lbl_80309B50: /* 80309B50 003057B0 83 BD 00 20 */ lwz r29, 0x20(r29) /* 80309B54 003057B4 80 17 00 00 */ lwz r0, 0(r23) /* 80309B58 003057B8 7C 1D 00 40 */ cmplw r29, r0 /* 80309B5C 003057BC 40 82 00 30 */ bne lbl_80309B8C /* 80309B60 003057C0 3B A0 00 00 */ li r29, 0 /* 80309B64 003057C4 48 00 00 38 */ b lbl_80309B9C /* 80309B68 003057C8 48 00 00 24 */ b lbl_80309B8C lbl_80309B6C: /* 80309B6C 003057CC 80 7D 00 18 */ lwz r3, 0x18(r29) /* 80309B70 003057D0 3C 03 00 01 */ addis r0, r3, 1 /* 80309B74 003057D4 28 00 FF FF */ cmplwi r0, 0xffff /* 80309B78 003057D8 41 82 00 10 */ beq lbl_80309B88 /* 80309B7C 003057DC 80 1D 00 04 */ lwz r0, 4(r29) /* 80309B80 003057E0 90 1D 00 08 */ stw r0, 8(r29) /* 80309B84 003057E4 48 00 00 18 */ b lbl_80309B9C lbl_80309B88: /* 80309B88 003057E8 83 BD 00 20 */ lwz r29, 0x20(r29) lbl_80309B8C: /* 80309B8C 003057EC A0 1D 00 00 */ lhz r0, 0(r29) /* 80309B90 003057F0 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80309B94 003057F4 40 82 FF D8 */ bne lbl_80309B6C /* 80309B98 003057F8 3B A0 00 00 */ li r29, 0 lbl_80309B9C: /* 80309B9C 003057FC 2C 1D 00 00 */ cmpwi r29, 0 /* 80309BA0 00305800 41 82 01 40 */ beq lbl_80309CE0 /* 80309BA4 00305804 80 FD 00 18 */ lwz r7, 0x18(r29) /* 80309BA8 00305808 3C 07 00 01 */ addis r0, r7, 1 /* 80309BAC 0030580C 28 00 FF FF */ cmplwi r0, 0xffff /* 80309BB0 00305810 41 82 01 30 */ beq lbl_80309CE0 /* 80309BB4 00305814 7C 07 C8 40 */ cmplw r7, r25 /* 80309BB8 00305818 41 81 00 3C */ bgt lbl_80309BF4 /* 80309BBC 0030581C 80 1D 00 14 */ lwz r0, 0x14(r29) /* 80309BC0 00305820 7C 07 02 14 */ add r0, r7, r0 /* 80309BC4 00305824 7C 00 F0 40 */ cmplw r0, r30 /* 80309BC8 00305828 41 80 00 2C */ blt lbl_80309BF4 /* 80309BCC 0030582C 88 B6 00 20 */ lbz r5, 0x20(r22) /* 80309BD0 00305830 7C 07 C8 50 */ subf r0, r7, r25 /* 80309BD4 00305834 80 9D 00 04 */ lwz r4, 4(r29) /* 80309BD8 00305838 7F 03 C3 78 */ mr r3, r24 /* 80309BDC 0030583C 7C 00 28 30 */ slw r0, r0, r5 /* 80309BE0 00305840 7F E5 28 30 */ slw r5, r31, r5 /* 80309BE4 00305844 7C 84 02 14 */ add r4, r4, r0 /* 80309BE8 00305848 4B FF B2 C5 */ bl VFipf_memcpy /* 80309BEC 0030584C 7F 9F E0 50 */ subf r28, r31, r28 /* 80309BF0 00305850 48 00 00 F0 */ b lbl_80309CE0 lbl_80309BF4: /* 80309BF4 00305854 7C 07 C8 40 */ cmplw r7, r25 /* 80309BF8 00305858 41 80 00 3C */ blt lbl_80309C34 /* 80309BFC 0030585C 80 7D 00 14 */ lwz r3, 0x14(r29) /* 80309C00 00305860 7C 07 1A 14 */ add r0, r7, r3 /* 80309C04 00305864 7C 00 F0 40 */ cmplw r0, r30 /* 80309C08 00305868 41 81 00 2C */ bgt lbl_80309C34 /* 80309C0C 0030586C 88 B6 00 20 */ lbz r5, 0x20(r22) /* 80309C10 00305870 7C 19 38 50 */ subf r0, r25, r7 /* 80309C14 00305874 80 9D 00 04 */ lwz r4, 4(r29) /* 80309C18 00305878 7C 00 28 30 */ slw r0, r0, r5 /* 80309C1C 0030587C 7C 65 28 30 */ slw r5, r3, r5 /* 80309C20 00305880 7C 78 02 14 */ add r3, r24, r0 /* 80309C24 00305884 4B FF B2 89 */ bl VFipf_memcpy /* 80309C28 00305888 80 1D 00 14 */ lwz r0, 0x14(r29) /* 80309C2C 0030588C 7F 80 E0 50 */ subf r28, r0, r28 /* 80309C30 00305890 48 00 00 B0 */ b lbl_80309CE0 lbl_80309C34: /* 80309C34 00305894 7C 07 C8 40 */ cmplw r7, r25 /* 80309C38 00305898 40 81 00 50 */ ble lbl_80309C88 /* 80309C3C 0030589C 7C 07 F0 40 */ cmplw r7, r30 /* 80309C40 003058A0 40 80 00 48 */ bge lbl_80309C88 /* 80309C44 003058A4 80 1D 00 14 */ lwz r0, 0x14(r29) /* 80309C48 003058A8 7C 07 02 14 */ add r0, r7, r0 /* 80309C4C 003058AC 7C 00 F0 40 */ cmplw r0, r30 /* 80309C50 003058B0 41 80 00 38 */ blt lbl_80309C88 /* 80309C54 003058B4 88 B6 00 20 */ lbz r5, 0x20(r22) /* 80309C58 003058B8 7C 19 38 50 */ subf r0, r25, r7 /* 80309C5C 003058BC 7E BF CA 14 */ add r21, r31, r25 /* 80309C60 003058C0 80 9D 00 04 */ lwz r4, 4(r29) /* 80309C64 003058C4 7C 03 28 30 */ slw r3, r0, r5 /* 80309C68 003058C8 7C 07 A8 50 */ subf r0, r7, r21 /* 80309C6C 003058CC 7C 78 1A 14 */ add r3, r24, r3 /* 80309C70 003058D0 7C 05 28 30 */ slw r5, r0, r5 /* 80309C74 003058D4 4B FF B2 39 */ bl VFipf_memcpy /* 80309C78 003058D8 80 1D 00 18 */ lwz r0, 0x18(r29) /* 80309C7C 003058DC 7C 00 A8 50 */ subf r0, r0, r21 /* 80309C80 003058E0 7F 80 E0 50 */ subf r28, r0, r28 /* 80309C84 003058E4 48 00 00 5C */ b lbl_80309CE0 lbl_80309C88: /* 80309C88 003058E8 7C 07 C8 40 */ cmplw r7, r25 /* 80309C8C 003058EC 40 80 00 54 */ bge lbl_80309CE0 /* 80309C90 003058F0 80 1D 00 14 */ lwz r0, 0x14(r29) /* 80309C94 003058F4 7C 67 02 14 */ add r3, r7, r0 /* 80309C98 003058F8 7C 03 C8 40 */ cmplw r3, r25 /* 80309C9C 003058FC 40 81 00 44 */ ble lbl_80309CE0 /* 80309CA0 00305900 7C 03 F0 40 */ cmplw r3, r30 /* 80309CA4 00305904 41 81 00 3C */ bgt lbl_80309CE0 /* 80309CA8 00305908 88 D6 00 20 */ lbz r6, 0x20(r22) /* 80309CAC 0030590C 7C 67 C8 50 */ subf r3, r7, r25 /* 80309CB0 00305910 80 BD 00 04 */ lwz r5, 4(r29) /* 80309CB4 00305914 7C 03 00 50 */ subf r0, r3, r0 /* 80309CB8 00305918 7C 64 30 30 */ slw r4, r3, r6 /* 80309CBC 0030591C 7F 03 C3 78 */ mr r3, r24 /* 80309CC0 00305920 7C 85 22 14 */ add r4, r5, r4 /* 80309CC4 00305924 7C 05 30 30 */ slw r5, r0, r6 /* 80309CC8 00305928 4B FF B1 E5 */ bl VFipf_memcpy /* 80309CCC 0030592C 80 7D 00 18 */ lwz r3, 0x18(r29) /* 80309CD0 00305930 80 1D 00 14 */ lwz r0, 0x14(r29) /* 80309CD4 00305934 7C 63 C8 50 */ subf r3, r3, r25 /* 80309CD8 00305938 7C 03 00 50 */ subf r0, r3, r0 /* 80309CDC 0030593C 7F 80 E0 50 */ subf r28, r0, r28 lbl_80309CE0: /* 80309CE0 00305940 2C 1D 00 00 */ cmpwi r29, 0 /* 80309CE4 00305944 41 82 00 0C */ beq lbl_80309CF0 /* 80309CE8 00305948 2C 1C 00 00 */ cmpwi r28, 0 /* 80309CEC 0030594C 40 82 FE 54 */ bne lbl_80309B40 lbl_80309CF0: /* 80309CF0 00305950 80 1B 00 00 */ lwz r0, 0(r27) /* 80309CF4 00305954 7C 00 D0 40 */ cmplw r0, r26 /* 80309CF8 00305958 41 82 00 1C */ beq lbl_80309D14 /* 80309CFC 0030595C 80 76 00 08 */ lwz r3, 8(r22) /* 80309D00 00305960 7C 19 02 14 */ add r0, r25, r0 /* 80309D04 00305964 7C 03 00 40 */ cmplw r3, r0 /* 80309D08 00305968 41 82 00 0C */ beq lbl_80309D14 /* 80309D0C 0030596C 38 60 00 11 */ li r3, 0x11 /* 80309D10 00305970 48 00 00 08 */ b lbl_80309D18 lbl_80309D14: /* 80309D14 00305974 38 60 00 00 */ li r3, 0 lbl_80309D18: /* 80309D18 00305978 39 61 00 40 */ addi r11, r1, 0x40 /* 80309D1C 0030597C 4B EB D4 41 */ bl _restgpr_21 /* 80309D20 00305980 80 01 00 44 */ lwz r0, 0x44(r1) /* 80309D24 00305984 7C 08 03 A6 */ mtlr r0 /* 80309D28 00305988 38 21 00 40 */ addi r1, r1, 0x40 /* 80309D2C 0030598C 4E 80 00 20 */ blr .global VFiPFCACHE_DoWritePage VFiPFCACHE_DoWritePage: /* 80309D30 00305990 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80309D34 00305994 7C 08 02 A6 */ mflr r0 /* 80309D38 00305998 90 01 00 14 */ stw r0, 0x14(r1) /* 80309D3C 0030599C 93 E1 00 0C */ stw r31, 0xc(r1) /* 80309D40 003059A0 3B E0 00 00 */ li r31, 0 /* 80309D44 003059A4 93 C1 00 08 */ stw r30, 8(r1) /* 80309D48 003059A8 7C 7E 1B 78 */ mr r30, r3 /* 80309D4C 003059AC 80 E4 00 00 */ lwz r7, 0(r4) /* 80309D50 003059B0 7C 05 38 40 */ cmplw r5, r7 /* 80309D54 003059B4 41 82 00 54 */ beq lbl_80309DA8 /* 80309D58 003059B8 80 07 00 24 */ lwz r0, 0x24(r7) /* 80309D5C 003059BC 7C 05 00 40 */ cmplw r5, r0 /* 80309D60 003059C0 40 82 00 0C */ bne lbl_80309D6C /* 80309D64 003059C4 90 A4 00 00 */ stw r5, 0(r4) /* 80309D68 003059C8 48 00 00 40 */ b lbl_80309DA8 lbl_80309D6C: /* 80309D6C 003059CC 80 05 00 20 */ lwz r0, 0x20(r5) /* 80309D70 003059D0 80 E5 00 24 */ lwz r7, 0x24(r5) /* 80309D74 003059D4 90 07 00 20 */ stw r0, 0x20(r7) /* 80309D78 003059D8 80 05 00 24 */ lwz r0, 0x24(r5) /* 80309D7C 003059DC 80 E5 00 20 */ lwz r7, 0x20(r5) /* 80309D80 003059E0 90 07 00 24 */ stw r0, 0x24(r7) /* 80309D84 003059E4 81 04 00 00 */ lwz r8, 0(r4) /* 80309D88 003059E8 91 05 00 20 */ stw r8, 0x20(r5) /* 80309D8C 003059EC 80 E4 00 00 */ lwz r7, 0(r4) /* 80309D90 003059F0 80 07 00 24 */ lwz r0, 0x24(r7) /* 80309D94 003059F4 90 05 00 24 */ stw r0, 0x24(r5) /* 80309D98 003059F8 90 A8 00 24 */ stw r5, 0x24(r8) /* 80309D9C 003059FC 80 E5 00 24 */ lwz r7, 0x24(r5) /* 80309DA0 00305A00 90 A7 00 20 */ stw r5, 0x20(r7) /* 80309DA4 00305A04 90 A4 00 00 */ stw r5, 0(r4) lbl_80309DA8: /* 80309DA8 00305A08 80 05 00 0C */ lwz r0, 0xc(r5) /* 80309DAC 00305A0C 2C 00 00 00 */ cmpwi r0, 0 /* 80309DB0 00305A10 40 82 00 20 */ bne lbl_80309DD0 /* 80309DB4 00305A14 A0 85 00 00 */ lhz r4, 0(r5) /* 80309DB8 00305A18 80 05 00 08 */ lwz r0, 8(r5) /* 80309DBC 00305A1C 60 84 00 02 */ ori r4, r4, 2 /* 80309DC0 00305A20 B0 85 00 00 */ sth r4, 0(r5) /* 80309DC4 00305A24 90 05 00 0C */ stw r0, 0xc(r5) /* 80309DC8 00305A28 90 05 00 10 */ stw r0, 0x10(r5) /* 80309DCC 00305A2C 48 00 00 28 */ b lbl_80309DF4 lbl_80309DD0: /* 80309DD0 00305A30 80 85 00 08 */ lwz r4, 8(r5) /* 80309DD4 00305A34 7C 04 00 40 */ cmplw r4, r0 /* 80309DD8 00305A38 40 80 00 0C */ bge lbl_80309DE4 /* 80309DDC 00305A3C 90 85 00 0C */ stw r4, 0xc(r5) /* 80309DE0 00305A40 48 00 00 14 */ b lbl_80309DF4 lbl_80309DE4: /* 80309DE4 00305A44 80 05 00 10 */ lwz r0, 0x10(r5) /* 80309DE8 00305A48 7C 04 00 40 */ cmplw r4, r0 /* 80309DEC 00305A4C 40 81 00 08 */ ble lbl_80309DF4 /* 80309DF0 00305A50 90 85 00 10 */ stw r4, 0x10(r5) lbl_80309DF4: /* 80309DF4 00305A54 2C 06 00 00 */ cmpwi r6, 0 /* 80309DF8 00305A58 41 82 00 10 */ beq lbl_80309E08 /* 80309DFC 00305A5C 80 03 16 08 */ lwz r0, 0x1608(r3) /* 80309E00 00305A60 90 05 00 1C */ stw r0, 0x1c(r5) /* 80309E04 00305A64 48 00 00 0C */ b lbl_80309E10 lbl_80309E08: /* 80309E08 00305A68 38 00 00 00 */ li r0, 0 /* 80309E0C 00305A6C 90 05 00 1C */ stw r0, 0x1c(r5) lbl_80309E10: /* 80309E10 00305A70 80 63 15 E8 */ lwz r3, 0x15e8(r3) /* 80309E14 00305A74 54 60 07 FF */ clrlwi. r0, r3, 0x1f /* 80309E18 00305A78 40 82 00 18 */ bne lbl_80309E30 /* 80309E1C 00305A7C 54 60 07 7B */ rlwinm. r0, r3, 0, 0x1d, 0x1d /* 80309E20 00305A80 41 82 00 74 */ beq lbl_80309E94 /* 80309E24 00305A84 A0 05 00 00 */ lhz r0, 0(r5) /* 80309E28 00305A88 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d /* 80309E2C 00305A8C 41 82 00 68 */ beq lbl_80309E94 lbl_80309E30: /* 80309E30 00305A90 2C 05 00 00 */ cmpwi r5, 0 /* 80309E34 00305A94 41 82 00 24 */ beq lbl_80309E58 /* 80309E38 00305A98 A0 05 00 00 */ lhz r0, 0(r5) /* 80309E3C 00305A9C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 80309E40 00305AA0 41 82 00 18 */ beq lbl_80309E58 /* 80309E44 00305AA4 80 65 00 18 */ lwz r3, 0x18(r5) /* 80309E48 00305AA8 3C 03 00 01 */ addis r0, r3, 1 /* 80309E4C 00305AAC 28 00 FF FF */ cmplwi r0, 0xffff /* 80309E50 00305AB0 41 82 00 08 */ beq lbl_80309E58 /* 80309E54 00305AB4 3B E0 00 01 */ li r31, 1 lbl_80309E58: /* 80309E58 00305AB8 7F C3 F3 78 */ mr r3, r30 /* 80309E5C 00305ABC 7C A4 2B 78 */ mr r4, r5 /* 80309E60 00305AC0 4B FF F4 5D */ bl VFiPFCACHE_FlushPageIfNeeded /* 80309E64 00305AC4 2C 03 00 00 */ cmpwi r3, 0 /* 80309E68 00305AC8 41 82 00 08 */ beq lbl_80309E70 /* 80309E6C 00305ACC 48 00 00 2C */ b lbl_80309E98 lbl_80309E70: /* 80309E70 00305AD0 2C 1F 00 00 */ cmpwi r31, 0 /* 80309E74 00305AD4 41 82 00 20 */ beq lbl_80309E94 /* 80309E78 00305AD8 7F C3 F3 78 */ mr r3, r30 /* 80309E7C 00305ADC 38 80 00 01 */ li r4, 1 /* 80309E80 00305AE0 48 01 1F 21 */ bl dCommon_FlushFromVol /* 80309E84 00305AE4 2C 03 00 00 */ cmpwi r3, 0 /* 80309E88 00305AE8 41 82 00 0C */ beq lbl_80309E94 /* 80309E8C 00305AEC 38 60 00 11 */ li r3, 0x11 /* 80309E90 00305AF0 48 00 00 08 */ b lbl_80309E98 lbl_80309E94: /* 80309E94 00305AF4 38 60 00 00 */ li r3, 0 lbl_80309E98: /* 80309E98 00305AF8 80 01 00 14 */ lwz r0, 0x14(r1) /* 80309E9C 00305AFC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80309EA0 00305B00 83 C1 00 08 */ lwz r30, 8(r1) /* 80309EA4 00305B04 7C 08 03 A6 */ mtlr r0 /* 80309EA8 00305B08 38 21 00 10 */ addi r1, r1, 0x10 /* 80309EAC 00305B0C 4E 80 00 20 */ blr .global VFiPFCACHE_DoWriteSector VFiPFCACHE_DoWriteSector: /* 80309EB0 00305B10 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80309EB4 00305B14 7C 08 02 A6 */ mflr r0 /* 80309EB8 00305B18 90 01 00 34 */ stw r0, 0x34(r1) /* 80309EBC 00305B1C 39 61 00 30 */ addi r11, r1, 0x30 /* 80309EC0 00305B20 4B EB D2 69 */ bl _savegpr_27 /* 80309EC4 00305B24 7C DD 33 78 */ mr r29, r6 /* 80309EC8 00305B28 80 84 00 00 */ lwz r4, 0(r4) /* 80309ECC 00305B2C 7C BC 2B 78 */ mr r28, r5 /* 80309ED0 00305B30 7C 7B 1B 78 */ mr r27, r3 /* 80309ED4 00305B34 7F A5 EB 78 */ mr r5, r29 /* 80309ED8 00305B38 3B C0 00 00 */ li r30, 0 /* 80309EDC 00305B3C 4B FF F2 7D */ bl VFiPFCACHE_SearchForPage /* 80309EE0 00305B40 2C 03 00 00 */ cmpwi r3, 0 /* 80309EE4 00305B44 7C 7F 1B 78 */ mr r31, r3 /* 80309EE8 00305B48 41 82 00 C8 */ beq lbl_80309FB0 /* 80309EEC 00305B4C 80 63 00 08 */ lwz r3, 8(r3) /* 80309EF0 00305B50 7F 84 E3 78 */ mr r4, r28 /* 80309EF4 00305B54 A0 BB 00 00 */ lhz r5, 0(r27) /* 80309EF8 00305B58 4B FF AF B5 */ bl VFipf_memcpy /* 80309EFC 00305B5C 80 1F 00 0C */ lwz r0, 0xc(r31) /* 80309F00 00305B60 2C 00 00 00 */ cmpwi r0, 0 /* 80309F04 00305B64 40 82 00 24 */ bne lbl_80309F28 /* 80309F08 00305B68 A0 1F 00 00 */ lhz r0, 0(r31) /* 80309F0C 00305B6C 60 00 00 02 */ ori r0, r0, 2 /* 80309F10 00305B70 B0 1F 00 00 */ sth r0, 0(r31) /* 80309F14 00305B74 80 1F 00 08 */ lwz r0, 8(r31) /* 80309F18 00305B78 90 1F 00 0C */ stw r0, 0xc(r31) /* 80309F1C 00305B7C 80 1F 00 08 */ lwz r0, 8(r31) /* 80309F20 00305B80 90 1F 00 10 */ stw r0, 0x10(r31) /* 80309F24 00305B84 48 00 00 28 */ b lbl_80309F4C lbl_80309F28: /* 80309F28 00305B88 80 7F 00 08 */ lwz r3, 8(r31) /* 80309F2C 00305B8C 7C 03 00 40 */ cmplw r3, r0 /* 80309F30 00305B90 40 80 00 0C */ bge lbl_80309F3C /* 80309F34 00305B94 90 7F 00 0C */ stw r3, 0xc(r31) /* 80309F38 00305B98 48 00 00 14 */ b lbl_80309F4C lbl_80309F3C: /* 80309F3C 00305B9C 80 1F 00 10 */ lwz r0, 0x10(r31) /* 80309F40 00305BA0 7C 03 00 40 */ cmplw r3, r0 /* 80309F44 00305BA4 40 81 00 08 */ ble lbl_80309F4C /* 80309F48 00305BA8 90 7F 00 10 */ stw r3, 0x10(r31) lbl_80309F4C: /* 80309F4C 00305BAC 2C 1F 00 00 */ cmpwi r31, 0 /* 80309F50 00305BB0 41 82 00 24 */ beq lbl_80309F74 /* 80309F54 00305BB4 A0 1F 00 00 */ lhz r0, 0(r31) /* 80309F58 00305BB8 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 80309F5C 00305BBC 41 82 00 18 */ beq lbl_80309F74 /* 80309F60 00305BC0 80 7F 00 18 */ lwz r3, 0x18(r31) /* 80309F64 00305BC4 3C 03 00 01 */ addis r0, r3, 1 /* 80309F68 00305BC8 28 00 FF FF */ cmplwi r0, 0xffff /* 80309F6C 00305BCC 41 82 00 08 */ beq lbl_80309F74 /* 80309F70 00305BD0 3B C0 00 01 */ li r30, 1 lbl_80309F74: /* 80309F74 00305BD4 7F 63 DB 78 */ mr r3, r27 /* 80309F78 00305BD8 7F E4 FB 78 */ mr r4, r31 /* 80309F7C 00305BDC 4B FF F3 41 */ bl VFiPFCACHE_FlushPageIfNeeded /* 80309F80 00305BE0 2C 03 00 00 */ cmpwi r3, 0 /* 80309F84 00305BE4 41 82 00 08 */ beq lbl_80309F8C /* 80309F88 00305BE8 48 00 00 80 */ b lbl_8030A008 lbl_80309F8C: /* 80309F8C 00305BEC 2C 1E 00 00 */ cmpwi r30, 0 /* 80309F90 00305BF0 41 82 00 74 */ beq lbl_8030A004 /* 80309F94 00305BF4 7F 63 DB 78 */ mr r3, r27 /* 80309F98 00305BF8 38 80 00 01 */ li r4, 1 /* 80309F9C 00305BFC 48 01 1E 05 */ bl dCommon_FlushFromVol /* 80309FA0 00305C00 2C 03 00 00 */ cmpwi r3, 0 /* 80309FA4 00305C04 41 82 00 60 */ beq lbl_8030A004 /* 80309FA8 00305C08 38 60 00 11 */ li r3, 0x11 /* 80309FAC 00305C0C 48 00 00 5C */ b lbl_8030A008 lbl_80309FB0: /* 80309FB0 00305C10 7F 63 DB 78 */ mr r3, r27 /* 80309FB4 00305C14 7F 84 E3 78 */ mr r4, r28 /* 80309FB8 00305C18 7F A5 EB 78 */ mr r5, r29 /* 80309FBC 00305C1C 38 E1 00 08 */ addi r7, r1, 8 /* 80309FC0 00305C20 38 C0 00 01 */ li r6, 1 /* 80309FC4 00305C24 4B FF C2 7D */ bl VFiPFDRV_lwrite /* 80309FC8 00305C28 2C 03 00 00 */ cmpwi r3, 0 /* 80309FCC 00305C2C 41 82 00 08 */ beq lbl_80309FD4 /* 80309FD0 00305C30 48 00 00 38 */ b lbl_8030A008 lbl_80309FD4: /* 80309FD4 00305C34 80 01 00 08 */ lwz r0, 8(r1) /* 80309FD8 00305C38 28 00 00 01 */ cmplwi r0, 1 /* 80309FDC 00305C3C 41 82 00 0C */ beq lbl_80309FE8 /* 80309FE0 00305C40 38 60 00 11 */ li r3, 0x11 /* 80309FE4 00305C44 48 00 00 24 */ b lbl_8030A008 lbl_80309FE8: /* 80309FE8 00305C48 7F 63 DB 78 */ mr r3, r27 /* 80309FEC 00305C4C 38 80 00 01 */ li r4, 1 /* 80309FF0 00305C50 48 01 1D B1 */ bl dCommon_FlushFromVol /* 80309FF4 00305C54 2C 03 00 00 */ cmpwi r3, 0 /* 80309FF8 00305C58 41 82 00 0C */ beq lbl_8030A004 /* 80309FFC 00305C5C 38 60 00 11 */ li r3, 0x11 /* 8030A000 00305C60 48 00 00 08 */ b lbl_8030A008 lbl_8030A004: /* 8030A004 00305C64 38 60 00 00 */ li r3, 0 lbl_8030A008: /* 8030A008 00305C68 39 61 00 30 */ addi r11, r1, 0x30 /* 8030A00C 00305C6C 4B EB D1 69 */ bl _restgpr_27 /* 8030A010 00305C70 80 01 00 34 */ lwz r0, 0x34(r1) /* 8030A014 00305C74 7C 08 03 A6 */ mtlr r0 /* 8030A018 00305C78 38 21 00 30 */ addi r1, r1, 0x30 /* 8030A01C 00305C7C 4E 80 00 20 */ blr .global VFiPFCACHE_DoWriteNumSectorAndFreeIfNeeded VFiPFCACHE_DoWriteNumSectorAndFreeIfNeeded: /* 8030A020 00305C80 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8030A024 00305C84 7C 08 02 A6 */ mflr r0 /* 8030A028 00305C88 90 01 00 34 */ stw r0, 0x34(r1) /* 8030A02C 00305C8C 39 61 00 30 */ addi r11, r1, 0x30 /* 8030A030 00305C90 4B EB D0 E9 */ bl _savegpr_23 /* 8030A034 00305C94 3B C0 00 00 */ li r30, 0 /* 8030A038 00305C98 7C FB 3B 78 */ mr r27, r7 /* 8030A03C 00305C9C 93 C8 00 00 */ stw r30, 0(r8) /* 8030A040 00305CA0 7C 77 1B 78 */ mr r23, r3 /* 8030A044 00305CA4 7C 98 23 78 */ mr r24, r4 /* 8030A048 00305CA8 7C B9 2B 78 */ mr r25, r5 /* 8030A04C 00305CAC 7C DA 33 78 */ mr r26, r6 /* 8030A050 00305CB0 7D 1C 43 78 */ mr r28, r8 /* 8030A054 00305CB4 7F 7D DB 78 */ mr r29, r27 /* 8030A058 00305CB8 7F E6 3A 14 */ add r31, r6, r7 lbl_8030A05C: /* 8030A05C 00305CBC 2C 1E 00 00 */ cmpwi r30, 0 /* 8030A060 00305CC0 40 82 00 0C */ bne lbl_8030A06C /* 8030A064 00305CC4 83 D8 00 00 */ lwz r30, 0(r24) /* 8030A068 00305CC8 48 00 00 40 */ b lbl_8030A0A8 lbl_8030A06C: /* 8030A06C 00305CCC 83 DE 00 20 */ lwz r30, 0x20(r30) /* 8030A070 00305CD0 80 18 00 00 */ lwz r0, 0(r24) /* 8030A074 00305CD4 7C 1E 00 40 */ cmplw r30, r0 /* 8030A078 00305CD8 40 82 00 30 */ bne lbl_8030A0A8 /* 8030A07C 00305CDC 3B C0 00 00 */ li r30, 0 /* 8030A080 00305CE0 48 00 00 38 */ b lbl_8030A0B8 /* 8030A084 00305CE4 48 00 00 24 */ b lbl_8030A0A8 lbl_8030A088: /* 8030A088 00305CE8 80 7E 00 18 */ lwz r3, 0x18(r30) /* 8030A08C 00305CEC 3C 03 00 01 */ addis r0, r3, 1 /* 8030A090 00305CF0 28 00 FF FF */ cmplwi r0, 0xffff /* 8030A094 00305CF4 41 82 00 10 */ beq lbl_8030A0A4 /* 8030A098 00305CF8 80 1E 00 04 */ lwz r0, 4(r30) /* 8030A09C 00305CFC 90 1E 00 08 */ stw r0, 8(r30) /* 8030A0A0 00305D00 48 00 00 18 */ b lbl_8030A0B8 lbl_8030A0A4: /* 8030A0A4 00305D04 83 DE 00 20 */ lwz r30, 0x20(r30) lbl_8030A0A8: /* 8030A0A8 00305D08 A0 1E 00 00 */ lhz r0, 0(r30) /* 8030A0AC 00305D0C 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 8030A0B0 00305D10 40 82 FF D8 */ bne lbl_8030A088 /* 8030A0B4 00305D14 3B C0 00 00 */ li r30, 0 lbl_8030A0B8: /* 8030A0B8 00305D18 2C 1E 00 00 */ cmpwi r30, 0 /* 8030A0BC 00305D1C 41 82 02 B0 */ beq lbl_8030A36C /* 8030A0C0 00305D20 80 FE 00 18 */ lwz r7, 0x18(r30) /* 8030A0C4 00305D24 3C 07 00 01 */ addis r0, r7, 1 /* 8030A0C8 00305D28 28 00 FF FF */ cmplwi r0, 0xffff /* 8030A0CC 00305D2C 41 82 02 A0 */ beq lbl_8030A36C /* 8030A0D0 00305D30 7C 07 D0 40 */ cmplw r7, r26 /* 8030A0D4 00305D34 41 81 00 B0 */ bgt lbl_8030A184 /* 8030A0D8 00305D38 80 1E 00 14 */ lwz r0, 0x14(r30) /* 8030A0DC 00305D3C 7C 07 02 14 */ add r0, r7, r0 /* 8030A0E0 00305D40 7C 00 F8 40 */ cmplw r0, r31 /* 8030A0E4 00305D44 41 80 00 A0 */ blt lbl_8030A184 /* 8030A0E8 00305D48 88 B7 00 20 */ lbz r5, 0x20(r23) /* 8030A0EC 00305D4C 7C 07 D0 50 */ subf r0, r7, r26 /* 8030A0F0 00305D50 80 7E 00 04 */ lwz r3, 4(r30) /* 8030A0F4 00305D54 7F 24 CB 78 */ mr r4, r25 /* 8030A0F8 00305D58 7C 00 28 30 */ slw r0, r0, r5 /* 8030A0FC 00305D5C 7F 65 28 30 */ slw r5, r27, r5 /* 8030A100 00305D60 7C 63 02 14 */ add r3, r3, r0 /* 8030A104 00305D64 4B FF AD A9 */ bl VFipf_memcpy /* 8030A108 00305D68 80 7C 00 00 */ lwz r3, 0(r28) /* 8030A10C 00305D6C 38 1B FF FF */ addi r0, r27, -1 /* 8030A110 00305D70 7C 63 EA 14 */ add r3, r3, r29 /* 8030A114 00305D74 3B A0 00 00 */ li r29, 0 /* 8030A118 00305D78 90 7C 00 00 */ stw r3, 0(r28) /* 8030A11C 00305D7C A0 7E 00 00 */ lhz r3, 0(r30) /* 8030A120 00305D80 60 63 00 02 */ ori r3, r3, 2 /* 8030A124 00305D84 B0 7E 00 00 */ sth r3, 0(r30) /* 8030A128 00305D88 80 7E 00 18 */ lwz r3, 0x18(r30) /* 8030A12C 00305D8C 88 B7 00 20 */ lbz r5, 0x20(r23) /* 8030A130 00305D90 80 DE 00 0C */ lwz r6, 0xc(r30) /* 8030A134 00305D94 7C 63 D0 50 */ subf r3, r3, r26 /* 8030A138 00305D98 80 9E 00 04 */ lwz r4, 4(r30) /* 8030A13C 00305D9C 7C 63 28 30 */ slw r3, r3, r5 /* 8030A140 00305DA0 2C 06 00 00 */ cmpwi r6, 0 /* 8030A144 00305DA4 7C 00 28 30 */ slw r0, r0, r5 /* 8030A148 00305DA8 7C 64 1A 14 */ add r3, r4, r3 /* 8030A14C 00305DAC 7C 83 02 14 */ add r4, r3, r0 /* 8030A150 00305DB0 40 82 00 10 */ bne lbl_8030A160 /* 8030A154 00305DB4 90 7E 00 0C */ stw r3, 0xc(r30) /* 8030A158 00305DB8 90 9E 00 10 */ stw r4, 0x10(r30) /* 8030A15C 00305DBC 48 00 02 10 */ b lbl_8030A36C lbl_8030A160: /* 8030A160 00305DC0 7C 03 30 40 */ cmplw r3, r6 /* 8030A164 00305DC4 40 80 00 0C */ bge lbl_8030A170 /* 8030A168 00305DC8 90 7E 00 0C */ stw r3, 0xc(r30) /* 8030A16C 00305DCC 48 00 02 00 */ b lbl_8030A36C lbl_8030A170: /* 8030A170 00305DD0 80 1E 00 10 */ lwz r0, 0x10(r30) /* 8030A174 00305DD4 7C 00 20 40 */ cmplw r0, r4 /* 8030A178 00305DD8 40 80 01 F4 */ bge lbl_8030A36C /* 8030A17C 00305DDC 90 9E 00 10 */ stw r4, 0x10(r30) /* 8030A180 00305DE0 48 00 01 EC */ b lbl_8030A36C lbl_8030A184: /* 8030A184 00305DE4 7C 07 D0 40 */ cmplw r7, r26 /* 8030A188 00305DE8 41 80 00 78 */ blt lbl_8030A200 /* 8030A18C 00305DEC 80 9E 00 14 */ lwz r4, 0x14(r30) /* 8030A190 00305DF0 7C 07 22 14 */ add r0, r7, r4 /* 8030A194 00305DF4 7C 00 F8 40 */ cmplw r0, r31 /* 8030A198 00305DF8 41 81 00 68 */ bgt lbl_8030A200 /* 8030A19C 00305DFC 88 B7 00 20 */ lbz r5, 0x20(r23) /* 8030A1A0 00305E00 7C 1A 38 50 */ subf r0, r26, r7 /* 8030A1A4 00305E04 80 7E 00 04 */ lwz r3, 4(r30) /* 8030A1A8 00305E08 7C 00 28 30 */ slw r0, r0, r5 /* 8030A1AC 00305E0C 7C 85 28 30 */ slw r5, r4, r5 /* 8030A1B0 00305E10 7C 99 02 14 */ add r4, r25, r0 /* 8030A1B4 00305E14 4B FF AC F9 */ bl VFipf_memcpy /* 8030A1B8 00305E18 80 7E 00 14 */ lwz r3, 0x14(r30) /* 8030A1BC 00305E1C 80 1C 00 00 */ lwz r0, 0(r28) /* 8030A1C0 00305E20 7F A3 E8 50 */ subf r29, r3, r29 /* 8030A1C4 00305E24 7C 00 1A 14 */ add r0, r0, r3 /* 8030A1C8 00305E28 90 1C 00 00 */ stw r0, 0(r28) /* 8030A1CC 00305E2C A0 1E 00 00 */ lhz r0, 0(r30) /* 8030A1D0 00305E30 60 00 00 02 */ ori r0, r0, 2 /* 8030A1D4 00305E34 B0 1E 00 00 */ sth r0, 0(r30) /* 8030A1D8 00305E38 80 1E 00 04 */ lwz r0, 4(r30) /* 8030A1DC 00305E3C 90 1E 00 0C */ stw r0, 0xc(r30) /* 8030A1E0 00305E40 80 7E 00 14 */ lwz r3, 0x14(r30) /* 8030A1E4 00305E44 88 17 00 20 */ lbz r0, 0x20(r23) /* 8030A1E8 00305E48 38 63 FF FF */ addi r3, r3, -1 /* 8030A1EC 00305E4C 80 9E 00 04 */ lwz r4, 4(r30) /* 8030A1F0 00305E50 7C 60 00 30 */ slw r0, r3, r0 /* 8030A1F4 00305E54 7C 04 02 14 */ add r0, r4, r0 /* 8030A1F8 00305E58 90 1E 00 10 */ stw r0, 0x10(r30) /* 8030A1FC 00305E5C 48 00 01 70 */ b lbl_8030A36C lbl_8030A200: /* 8030A200 00305E60 7C 07 D0 40 */ cmplw r7, r26 /* 8030A204 00305E64 40 81 00 A0 */ ble lbl_8030A2A4 /* 8030A208 00305E68 7C 07 F8 40 */ cmplw r7, r31 /* 8030A20C 00305E6C 40 80 00 98 */ bge lbl_8030A2A4 /* 8030A210 00305E70 80 1E 00 14 */ lwz r0, 0x14(r30) /* 8030A214 00305E74 7C 07 02 14 */ add r0, r7, r0 /* 8030A218 00305E78 7C 00 F8 40 */ cmplw r0, r31 /* 8030A21C 00305E7C 41 80 00 88 */ blt lbl_8030A2A4 /* 8030A220 00305E80 88 B7 00 20 */ lbz r5, 0x20(r23) /* 8030A224 00305E84 7C 9A 38 50 */ subf r4, r26, r7 /* 8030A228 00305E88 7C 07 F8 50 */ subf r0, r7, r31 /* 8030A22C 00305E8C 80 7E 00 04 */ lwz r3, 4(r30) /* 8030A230 00305E90 7C 84 28 30 */ slw r4, r4, r5 /* 8030A234 00305E94 7C 99 22 14 */ add r4, r25, r4 /* 8030A238 00305E98 7C 05 28 30 */ slw r5, r0, r5 /* 8030A23C 00305E9C 4B FF AC 71 */ bl VFipf_memcpy /* 8030A240 00305EA0 80 BE 00 18 */ lwz r5, 0x18(r30) /* 8030A244 00305EA4 7C 9B D2 14 */ add r4, r27, r26 /* 8030A248 00305EA8 80 1C 00 00 */ lwz r0, 0(r28) /* 8030A24C 00305EAC 38 64 FF FF */ addi r3, r4, -1 /* 8030A250 00305EB0 7C 85 20 50 */ subf r4, r5, r4 /* 8030A254 00305EB4 7C 00 22 14 */ add r0, r0, r4 /* 8030A258 00305EB8 90 1C 00 00 */ stw r0, 0(r28) /* 8030A25C 00305EBC 7F A4 E8 50 */ subf r29, r4, r29 /* 8030A260 00305EC0 A0 1E 00 00 */ lhz r0, 0(r30) /* 8030A264 00305EC4 60 00 00 02 */ ori r0, r0, 2 /* 8030A268 00305EC8 B0 1E 00 00 */ sth r0, 0(r30) /* 8030A26C 00305ECC 80 9E 00 18 */ lwz r4, 0x18(r30) /* 8030A270 00305ED0 80 BE 00 04 */ lwz r5, 4(r30) /* 8030A274 00305ED4 88 17 00 20 */ lbz r0, 0x20(r23) /* 8030A278 00305ED8 7C 64 18 50 */ subf r3, r4, r3 /* 8030A27C 00305EDC 7C 60 00 30 */ slw r0, r3, r0 /* 8030A280 00305EE0 90 BE 00 0C */ stw r5, 0xc(r30) /* 8030A284 00305EE4 7C 65 02 14 */ add r3, r5, r0 /* 8030A288 00305EE8 80 1E 00 10 */ lwz r0, 0x10(r30) /* 8030A28C 00305EEC 2C 00 00 00 */ cmpwi r0, 0 /* 8030A290 00305EF0 41 82 00 0C */ beq lbl_8030A29C /* 8030A294 00305EF4 7C 00 18 40 */ cmplw r0, r3 /* 8030A298 00305EF8 40 80 00 D4 */ bge lbl_8030A36C lbl_8030A29C: /* 8030A29C 00305EFC 90 7E 00 10 */ stw r3, 0x10(r30) /* 8030A2A0 00305F00 48 00 00 CC */ b lbl_8030A36C lbl_8030A2A4: /* 8030A2A4 00305F04 7C 07 D0 40 */ cmplw r7, r26 /* 8030A2A8 00305F08 40 80 00 C4 */ bge lbl_8030A36C /* 8030A2AC 00305F0C 80 1E 00 14 */ lwz r0, 0x14(r30) /* 8030A2B0 00305F10 7C 67 02 14 */ add r3, r7, r0 /* 8030A2B4 00305F14 7C 03 D0 40 */ cmplw r3, r26 /* 8030A2B8 00305F18 40 81 00 B4 */ ble lbl_8030A36C /* 8030A2BC 00305F1C 7C 03 F8 40 */ cmplw r3, r31 /* 8030A2C0 00305F20 41 81 00 AC */ bgt lbl_8030A36C /* 8030A2C4 00305F24 88 D7 00 20 */ lbz r6, 0x20(r23) /* 8030A2C8 00305F28 7C 67 D0 50 */ subf r3, r7, r26 /* 8030A2CC 00305F2C 80 BE 00 04 */ lwz r5, 4(r30) /* 8030A2D0 00305F30 7C 03 00 50 */ subf r0, r3, r0 /* 8030A2D4 00305F34 7C 63 30 30 */ slw r3, r3, r6 /* 8030A2D8 00305F38 7F 24 CB 78 */ mr r4, r25 /* 8030A2DC 00305F3C 7C 65 1A 14 */ add r3, r5, r3 /* 8030A2E0 00305F40 7C 05 30 30 */ slw r5, r0, r6 /* 8030A2E4 00305F44 4B FF AB C9 */ bl VFipf_memcpy /* 8030A2E8 00305F48 80 1E 00 18 */ lwz r0, 0x18(r30) /* 8030A2EC 00305F4C 80 7E 00 14 */ lwz r3, 0x14(r30) /* 8030A2F0 00305F50 7C 80 D0 50 */ subf r4, r0, r26 /* 8030A2F4 00305F54 80 1C 00 00 */ lwz r0, 0(r28) /* 8030A2F8 00305F58 7C 64 18 50 */ subf r3, r4, r3 /* 8030A2FC 00305F5C 7C 00 1A 14 */ add r0, r0, r3 /* 8030A300 00305F60 90 1C 00 00 */ stw r0, 0(r28) /* 8030A304 00305F64 7F A3 E8 50 */ subf r29, r3, r29 /* 8030A308 00305F68 A0 1E 00 00 */ lhz r0, 0(r30) /* 8030A30C 00305F6C 60 00 00 02 */ ori r0, r0, 2 /* 8030A310 00305F70 B0 1E 00 00 */ sth r0, 0(r30) /* 8030A314 00305F74 80 7E 00 18 */ lwz r3, 0x18(r30) /* 8030A318 00305F78 80 1E 00 14 */ lwz r0, 0x14(r30) /* 8030A31C 00305F7C 7C 63 D0 50 */ subf r3, r3, r26 /* 8030A320 00305F80 80 BE 00 0C */ lwz r5, 0xc(r30) /* 8030A324 00305F84 7C 63 00 50 */ subf r3, r3, r0 /* 8030A328 00305F88 88 17 00 20 */ lbz r0, 0x20(r23) /* 8030A32C 00305F8C 38 63 FF FF */ addi r3, r3, -1 /* 8030A330 00305F90 2C 05 00 00 */ cmpwi r5, 0 /* 8030A334 00305F94 80 9E 00 04 */ lwz r4, 4(r30) /* 8030A338 00305F98 7C 60 00 30 */ slw r0, r3, r0 /* 8030A33C 00305F9C 7C 04 02 14 */ add r0, r4, r0 /* 8030A340 00305FA0 41 82 00 0C */ beq lbl_8030A34C /* 8030A344 00305FA4 7C 00 28 40 */ cmplw r0, r5 /* 8030A348 00305FA8 40 80 00 08 */ bge lbl_8030A350 lbl_8030A34C: /* 8030A34C 00305FAC 90 1E 00 0C */ stw r0, 0xc(r30) lbl_8030A350: /* 8030A350 00305FB0 80 7E 00 14 */ lwz r3, 0x14(r30) /* 8030A354 00305FB4 88 17 00 20 */ lbz r0, 0x20(r23) /* 8030A358 00305FB8 38 63 FF FF */ addi r3, r3, -1 /* 8030A35C 00305FBC 80 9E 00 04 */ lwz r4, 4(r30) /* 8030A360 00305FC0 7C 60 00 30 */ slw r0, r3, r0 /* 8030A364 00305FC4 7C 04 02 14 */ add r0, r4, r0 /* 8030A368 00305FC8 90 1E 00 10 */ stw r0, 0x10(r30) lbl_8030A36C: /* 8030A36C 00305FCC 2C 1E 00 00 */ cmpwi r30, 0 /* 8030A370 00305FD0 41 82 00 0C */ beq lbl_8030A37C /* 8030A374 00305FD4 2C 1D 00 00 */ cmpwi r29, 0 /* 8030A378 00305FD8 40 82 FC E4 */ bne lbl_8030A05C lbl_8030A37C: /* 8030A37C 00305FDC 2C 1D 00 00 */ cmpwi r29, 0 /* 8030A380 00305FE0 40 82 00 10 */ bne lbl_8030A390 /* 8030A384 00305FE4 80 17 15 E8 */ lwz r0, 0x15e8(r23) /* 8030A388 00305FE8 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 8030A38C 00305FEC 41 82 00 44 */ beq lbl_8030A3D0 lbl_8030A390: /* 8030A390 00305FF0 7E E3 BB 78 */ mr r3, r23 /* 8030A394 00305FF4 7F 24 CB 78 */ mr r4, r25 /* 8030A398 00305FF8 7F 45 D3 78 */ mr r5, r26 /* 8030A39C 00305FFC 7F 66 DB 78 */ mr r6, r27 /* 8030A3A0 00306000 7F 87 E3 78 */ mr r7, r28 /* 8030A3A4 00306004 4B FF BE 9D */ bl VFiPFDRV_lwrite /* 8030A3A8 00306008 2C 03 00 00 */ cmpwi r3, 0 /* 8030A3AC 0030600C 41 82 00 08 */ beq lbl_8030A3B4 /* 8030A3B0 00306010 48 00 00 60 */ b lbl_8030A410 lbl_8030A3B4: /* 8030A3B4 00306014 7E E3 BB 78 */ mr r3, r23 /* 8030A3B8 00306018 38 80 00 01 */ li r4, 1 /* 8030A3BC 0030601C 48 01 19 E5 */ bl dCommon_FlushFromVol /* 8030A3C0 00306020 2C 03 00 00 */ cmpwi r3, 0 /* 8030A3C4 00306024 41 82 00 0C */ beq lbl_8030A3D0 /* 8030A3C8 00306028 38 60 00 11 */ li r3, 0x11 /* 8030A3CC 0030602C 48 00 00 44 */ b lbl_8030A410 lbl_8030A3D0: /* 8030A3D0 00306030 80 17 15 E8 */ lwz r0, 0x15e8(r23) /* 8030A3D4 00306034 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 8030A3D8 00306038 41 82 00 34 */ beq lbl_8030A40C /* 8030A3DC 0030603C 7C 1B E8 40 */ cmplw r27, r29 /* 8030A3E0 00306040 41 82 00 2C */ beq lbl_8030A40C /* 8030A3E4 00306044 80 97 15 F8 */ lwz r4, 0x15f8(r23) /* 8030A3E8 00306048 7C 85 23 78 */ mr r5, r4 lbl_8030A3EC: /* 8030A3EC 0030604C A0 65 00 00 */ lhz r3, 0(r5) /* 8030A3F0 00306050 54 60 07 FF */ clrlwi. r0, r3, 0x1f /* 8030A3F4 00306054 41 82 00 18 */ beq lbl_8030A40C /* 8030A3F8 00306058 54 60 07 FA */ rlwinm r0, r3, 0, 0x1f, 0x1d /* 8030A3FC 0030605C B0 05 00 00 */ sth r0, 0(r5) /* 8030A400 00306060 80 A5 00 20 */ lwz r5, 0x20(r5) /* 8030A404 00306064 7C 05 20 40 */ cmplw r5, r4 /* 8030A408 00306068 40 82 FF E4 */ bne lbl_8030A3EC lbl_8030A40C: /* 8030A40C 0030606C 38 60 00 00 */ li r3, 0 lbl_8030A410: /* 8030A410 00306070 39 61 00 30 */ addi r11, r1, 0x30 /* 8030A414 00306074 4B EB CD 51 */ bl _restgpr_23 /* 8030A418 00306078 80 01 00 34 */ lwz r0, 0x34(r1) /* 8030A41C 0030607C 7C 08 03 A6 */ mtlr r0 /* 8030A420 00306080 38 21 00 30 */ addi r1, r1, 0x30 /* 8030A424 00306084 4E 80 00 20 */ blr .global VFiPFCACHE_DoFlushCache VFiPFCACHE_DoFlushCache: /* 8030A428 00306088 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8030A42C 0030608C 7C 08 02 A6 */ mflr r0 /* 8030A430 00306090 90 01 00 24 */ stw r0, 0x24(r1) /* 8030A434 00306094 39 61 00 20 */ addi r11, r1, 0x20 /* 8030A438 00306098 4B EB CC ED */ bl _savegpr_26 /* 8030A43C 0030609C A0 04 00 00 */ lhz r0, 0(r4) /* 8030A440 003060A0 7C 9B 23 78 */ mr r27, r4 /* 8030A444 003060A4 7C 7A 1B 78 */ mr r26, r3 /* 8030A448 003060A8 3B 80 00 00 */ li r28, 0 /* 8030A44C 003060AC 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 8030A450 003060B0 7F 7F DB 78 */ mr r31, r27 /* 8030A454 003060B4 3B C0 00 00 */ li r30, 0 /* 8030A458 003060B8 40 82 00 0C */ bne lbl_8030A464 /* 8030A45C 003060BC 38 60 00 00 */ li r3, 0 /* 8030A460 003060C0 48 00 00 B0 */ b lbl_8030A510 lbl_8030A464: /* 8030A464 003060C4 A0 7F 00 00 */ lhz r3, 0(r31) /* 8030A468 003060C8 54 60 07 FF */ clrlwi. r0, r3, 0x1f /* 8030A46C 003060CC 41 82 00 6C */ beq lbl_8030A4D8 /* 8030A470 003060D0 2C 1F 00 00 */ cmpwi r31, 0 /* 8030A474 003060D4 3B A0 00 00 */ li r29, 0 /* 8030A478 003060D8 41 82 00 20 */ beq lbl_8030A498 /* 8030A47C 003060DC 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e /* 8030A480 003060E0 41 82 00 18 */ beq lbl_8030A498 /* 8030A484 003060E4 80 7F 00 18 */ lwz r3, 0x18(r31) /* 8030A488 003060E8 3C 03 00 01 */ addis r0, r3, 1 /* 8030A48C 003060EC 28 00 FF FF */ cmplwi r0, 0xffff /* 8030A490 003060F0 41 82 00 08 */ beq lbl_8030A498 /* 8030A494 003060F4 3B A0 00 01 */ li r29, 1 lbl_8030A498: /* 8030A498 003060F8 7F 43 D3 78 */ mr r3, r26 /* 8030A49C 003060FC 7F E4 FB 78 */ mr r4, r31 /* 8030A4A0 00306100 4B FF EE 1D */ bl VFiPFCACHE_FlushPageIfNeeded /* 8030A4A4 00306104 2C 1D 00 00 */ cmpwi r29, 0 /* 8030A4A8 00306108 41 82 00 10 */ beq lbl_8030A4B8 /* 8030A4AC 0030610C 2C 03 00 00 */ cmpwi r3, 0 /* 8030A4B0 00306110 40 82 00 08 */ bne lbl_8030A4B8 /* 8030A4B4 00306114 3B 80 00 01 */ li r28, 1 lbl_8030A4B8: /* 8030A4B8 00306118 2C 03 00 00 */ cmpwi r3, 0 /* 8030A4BC 0030611C 41 82 00 10 */ beq lbl_8030A4CC /* 8030A4C0 00306120 2C 1E 00 00 */ cmpwi r30, 0 /* 8030A4C4 00306124 40 82 00 08 */ bne lbl_8030A4CC /* 8030A4C8 00306128 7C 7E 1B 78 */ mr r30, r3 lbl_8030A4CC: /* 8030A4CC 0030612C 83 FF 00 20 */ lwz r31, 0x20(r31) /* 8030A4D0 00306130 7C 1F D8 40 */ cmplw r31, r27 /* 8030A4D4 00306134 40 82 FF 90 */ bne lbl_8030A464 lbl_8030A4D8: /* 8030A4D8 00306138 2C 1C 00 00 */ cmpwi r28, 0 /* 8030A4DC 0030613C 41 82 00 30 */ beq lbl_8030A50C /* 8030A4E0 00306140 7F C0 00 34 */ cntlzw r0, r30 /* 8030A4E4 00306144 7F 43 D3 78 */ mr r3, r26 /* 8030A4E8 00306148 54 1C D9 7E */ srwi r28, r0, 5 /* 8030A4EC 0030614C 7F 84 E3 78 */ mr r4, r28 /* 8030A4F0 00306150 48 01 18 B1 */ bl dCommon_FlushFromVol /* 8030A4F4 00306154 2C 03 00 00 */ cmpwi r3, 0 /* 8030A4F8 00306158 41 82 00 14 */ beq lbl_8030A50C /* 8030A4FC 0030615C 2C 1C 00 01 */ cmpwi r28, 1 /* 8030A500 00306160 40 82 00 0C */ bne lbl_8030A50C /* 8030A504 00306164 38 60 00 11 */ li r3, 0x11 /* 8030A508 00306168 48 00 00 08 */ b lbl_8030A510 lbl_8030A50C: /* 8030A50C 0030616C 7F C3 F3 78 */ mr r3, r30 lbl_8030A510: /* 8030A510 00306170 39 61 00 20 */ addi r11, r1, 0x20 /* 8030A514 00306174 4B EB CC 5D */ bl _restgpr_26 /* 8030A518 00306178 80 01 00 24 */ lwz r0, 0x24(r1) /* 8030A51C 0030617C 7C 08 03 A6 */ mtlr r0 /* 8030A520 00306180 38 21 00 20 */ addi r1, r1, 0x20 /* 8030A524 00306184 4E 80 00 20 */ blr .global VFiPFCACHE_InitCaches VFiPFCACHE_InitCaches: /* 8030A528 00306188 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030A52C 0030618C 7C 08 02 A6 */ mflr r0 /* 8030A530 00306190 38 80 00 00 */ li r4, 0 /* 8030A534 00306194 90 01 00 14 */ stw r0, 0x14(r1) /* 8030A538 00306198 93 E1 00 0C */ stw r31, 0xc(r1) /* 8030A53C 0030619C 7C 7F 1B 78 */ mr r31, r3 /* 8030A540 003061A0 80 03 15 E8 */ lwz r0, 0x15e8(r3) /* 8030A544 003061A4 A0 A3 15 EC */ lhz r5, 0x15ec(r3) /* 8030A548 003061A8 54 06 00 3C */ rlwinm r6, r0, 0, 0, 0x1e /* 8030A54C 003061AC A0 03 15 EE */ lhz r0, 0x15ee(r3) /* 8030A550 003061B0 60 C6 00 02 */ ori r6, r6, 2 /* 8030A554 003061B4 54 C6 07 B8 */ rlwinm r6, r6, 0, 0x1e, 0x1c /* 8030A558 003061B8 7C 05 02 14 */ add r0, r5, r0 /* 8030A55C 003061BC 90 C3 15 E8 */ stw r6, 0x15e8(r3) /* 8030A560 003061C0 54 05 48 2C */ slwi r5, r0, 9 /* 8030A564 003061C4 80 63 15 FC */ lwz r3, 0x15fc(r3) /* 8030A568 003061C8 4B FF AA 6D */ bl VFipf_memset /* 8030A56C 003061CC 80 BF 15 F0 */ lwz r5, 0x15f0(r31) /* 8030A570 003061D0 7F E3 FB 78 */ mr r3, r31 /* 8030A574 003061D4 80 DF 15 FC */ lwz r6, 0x15fc(r31) /* 8030A578 003061D8 38 9F 15 F4 */ addi r4, r31, 0x15f4 /* 8030A57C 003061DC A0 FF 15 EC */ lhz r7, 0x15ec(r31) /* 8030A580 003061E0 39 20 00 01 */ li r9, 1 /* 8030A584 003061E4 81 1F 16 00 */ lwz r8, 0x1600(r31) /* 8030A588 003061E8 4B FF E9 51 */ bl VFiPFCACHE_InitPageList /* 8030A58C 003061EC 2C 03 00 00 */ cmpwi r3, 0 /* 8030A590 003061F0 41 82 00 08 */ beq lbl_8030A598 /* 8030A594 003061F4 48 00 00 48 */ b lbl_8030A5DC lbl_8030A598: /* 8030A598 003061F8 A0 1F 15 EC */ lhz r0, 0x15ec(r31) /* 8030A59C 003061FC 7F E3 FB 78 */ mr r3, r31 /* 8030A5A0 00306200 81 5F 15 F0 */ lwz r10, 0x15f0(r31) /* 8030A5A4 00306204 38 9F 15 F8 */ addi r4, r31, 0x15f8 /* 8030A5A8 00306208 1C A0 00 28 */ mulli r5, r0, 0x28 /* 8030A5AC 0030620C 80 DF 15 FC */ lwz r6, 0x15fc(r31) /* 8030A5B0 00306210 54 00 48 2C */ slwi r0, r0, 9 /* 8030A5B4 00306214 A0 FF 15 EE */ lhz r7, 0x15ee(r31) /* 8030A5B8 00306218 81 1F 16 04 */ lwz r8, 0x1604(r31) /* 8030A5BC 0030621C 39 20 00 00 */ li r9, 0 /* 8030A5C0 00306220 7C AA 2A 14 */ add r5, r10, r5 /* 8030A5C4 00306224 7C C6 02 14 */ add r6, r6, r0 /* 8030A5C8 00306228 4B FF E9 11 */ bl VFiPFCACHE_InitPageList /* 8030A5CC 0030622C 7C 03 00 D0 */ neg r0, r3 /* 8030A5D0 00306230 7C 00 1B 78 */ or r0, r0, r3 /* 8030A5D4 00306234 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 8030A5D8 00306238 7C 63 00 38 */ and r3, r3, r0 lbl_8030A5DC: /* 8030A5DC 0030623C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030A5E0 00306240 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8030A5E4 00306244 7C 08 03 A6 */ mtlr r0 /* 8030A5E8 00306248 38 21 00 10 */ addi r1, r1, 0x10 /* 8030A5EC 0030624C 4E 80 00 20 */ blr .global VFiPFCACHE_UpdateModifiedSector VFiPFCACHE_UpdateModifiedSector: /* 8030A5F0 00306250 80 03 00 0C */ lwz r0, 0xc(r3) /* 8030A5F4 00306254 2C 00 00 00 */ cmpwi r0, 0 /* 8030A5F8 00306258 40 82 00 20 */ bne lbl_8030A618 /* 8030A5FC 0030625C A0 83 00 00 */ lhz r4, 0(r3) /* 8030A600 00306260 80 03 00 08 */ lwz r0, 8(r3) /* 8030A604 00306264 60 84 00 02 */ ori r4, r4, 2 /* 8030A608 00306268 B0 83 00 00 */ sth r4, 0(r3) /* 8030A60C 0030626C 90 03 00 0C */ stw r0, 0xc(r3) /* 8030A610 00306270 90 03 00 10 */ stw r0, 0x10(r3) /* 8030A614 00306274 48 00 00 28 */ b lbl_8030A63C lbl_8030A618: /* 8030A618 00306278 80 83 00 08 */ lwz r4, 8(r3) /* 8030A61C 0030627C 7C 04 00 40 */ cmplw r4, r0 /* 8030A620 00306280 40 80 00 0C */ bge lbl_8030A62C /* 8030A624 00306284 90 83 00 0C */ stw r4, 0xc(r3) /* 8030A628 00306288 48 00 00 14 */ b lbl_8030A63C lbl_8030A62C: /* 8030A62C 0030628C 80 03 00 10 */ lwz r0, 0x10(r3) /* 8030A630 00306290 7C 04 00 40 */ cmplw r4, r0 /* 8030A634 00306294 40 81 00 08 */ ble lbl_8030A63C /* 8030A638 00306298 90 83 00 10 */ stw r4, 0x10(r3) lbl_8030A63C: /* 8030A63C 0030629C 38 60 00 00 */ li r3, 0 /* 8030A640 003062A0 4E 80 00 20 */ blr .global VFiPFCACHE_AllocateFATPage VFiPFCACHE_AllocateFATPage: /* 8030A644 003062A4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030A648 003062A8 7C 08 02 A6 */ mflr r0 /* 8030A64C 003062AC 7C A6 2B 78 */ mr r6, r5 /* 8030A650 003062B0 90 01 00 14 */ stw r0, 0x14(r1) /* 8030A654 003062B4 80 03 15 F4 */ lwz r0, 0x15f4(r3) /* 8030A658 003062B8 2C 00 00 00 */ cmpwi r0, 0 /* 8030A65C 003062BC 40 82 00 2C */ bne lbl_8030A688 /* 8030A660 003062C0 80 03 15 FC */ lwz r0, 0x15fc(r3) /* 8030A664 003062C4 80 83 15 F0 */ lwz r4, 0x15f0(r3) /* 8030A668 003062C8 90 04 00 04 */ stw r0, 4(r4) /* 8030A66C 003062CC 80 03 15 FC */ lwz r0, 0x15fc(r3) /* 8030A670 003062D0 80 83 15 F0 */ lwz r4, 0x15f0(r3) /* 8030A674 003062D4 90 04 00 08 */ stw r0, 8(r4) /* 8030A678 003062D8 80 03 15 F0 */ lwz r0, 0x15f0(r3) /* 8030A67C 003062DC 38 60 00 00 */ li r3, 0 /* 8030A680 003062E0 90 05 00 00 */ stw r0, 0(r5) /* 8030A684 003062E4 48 00 00 24 */ b lbl_8030A6A8 lbl_8030A688: /* 8030A688 003062E8 7C 85 23 78 */ mr r5, r4 /* 8030A68C 003062EC 38 83 15 F4 */ addi r4, r3, 0x15f4 /* 8030A690 003062F0 38 E1 00 08 */ addi r7, r1, 8 /* 8030A694 003062F4 4B FF ED 29 */ bl VFiPFCACHE_DoAllocatePage /* 8030A698 003062F8 7C 03 00 D0 */ neg r0, r3 /* 8030A69C 003062FC 7C 00 1B 78 */ or r0, r0, r3 /* 8030A6A0 00306300 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 8030A6A4 00306304 7C 63 00 38 */ and r3, r3, r0 lbl_8030A6A8: /* 8030A6A8 00306308 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030A6AC 0030630C 7C 08 03 A6 */ mtlr r0 /* 8030A6B0 00306310 38 21 00 10 */ addi r1, r1, 0x10 /* 8030A6B4 00306314 4E 80 00 20 */ blr .global VFiPFCACHE_AllocateDataPage VFiPFCACHE_AllocateDataPage: /* 8030A6B8 00306318 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030A6BC 0030631C 7C 08 02 A6 */ mflr r0 /* 8030A6C0 00306320 7C A6 2B 78 */ mr r6, r5 /* 8030A6C4 00306324 90 01 00 14 */ stw r0, 0x14(r1) /* 8030A6C8 00306328 80 03 15 F8 */ lwz r0, 0x15f8(r3) /* 8030A6CC 0030632C 2C 00 00 00 */ cmpwi r0, 0 /* 8030A6D0 00306330 40 82 00 2C */ bne lbl_8030A6FC /* 8030A6D4 00306334 80 03 15 FC */ lwz r0, 0x15fc(r3) /* 8030A6D8 00306338 80 83 15 F0 */ lwz r4, 0x15f0(r3) /* 8030A6DC 0030633C 90 04 00 04 */ stw r0, 4(r4) /* 8030A6E0 00306340 80 03 15 FC */ lwz r0, 0x15fc(r3) /* 8030A6E4 00306344 80 83 15 F0 */ lwz r4, 0x15f0(r3) /* 8030A6E8 00306348 90 04 00 08 */ stw r0, 8(r4) /* 8030A6EC 0030634C 80 03 15 F0 */ lwz r0, 0x15f0(r3) /* 8030A6F0 00306350 38 60 00 00 */ li r3, 0 /* 8030A6F4 00306354 90 05 00 00 */ stw r0, 0(r5) /* 8030A6F8 00306358 48 00 00 24 */ b lbl_8030A71C lbl_8030A6FC: /* 8030A6FC 0030635C 7C 85 23 78 */ mr r5, r4 /* 8030A700 00306360 38 83 15 F8 */ addi r4, r3, 0x15f8 /* 8030A704 00306364 38 E1 00 08 */ addi r7, r1, 8 /* 8030A708 00306368 4B FF EC B5 */ bl VFiPFCACHE_DoAllocatePage /* 8030A70C 0030636C 7C 03 00 D0 */ neg r0, r3 /* 8030A710 00306370 7C 00 1B 78 */ or r0, r0, r3 /* 8030A714 00306374 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 8030A718 00306378 7C 63 00 38 */ and r3, r3, r0 lbl_8030A71C: /* 8030A71C 0030637C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030A720 00306380 7C 08 03 A6 */ mtlr r0 /* 8030A724 00306384 38 21 00 10 */ addi r1, r1, 0x10 /* 8030A728 00306388 4E 80 00 20 */ blr .global VFiPFCACHE_FreeFATPage VFiPFCACHE_FreeFATPage: /* 8030A72C 0030638C 80 03 15 F4 */ lwz r0, 0x15f4(r3) /* 8030A730 00306390 2C 00 00 00 */ cmpwi r0, 0 /* 8030A734 00306394 4D 82 00 20 */ beqlr /* 8030A738 00306398 A0 A4 00 00 */ lhz r5, 0(r4) /* 8030A73C 0030639C 38 C0 00 00 */ li r6, 0 /* 8030A740 003063A0 38 00 FF FF */ li r0, -1 /* 8030A744 003063A4 90 C4 00 0C */ stw r6, 0xc(r4) /* 8030A748 003063A8 54 A5 04 3A */ rlwinm r5, r5, 0, 0x10, 0x1d /* 8030A74C 003063AC B0 A4 00 00 */ sth r5, 0(r4) /* 8030A750 003063B0 90 C4 00 10 */ stw r6, 0x10(r4) /* 8030A754 003063B4 90 04 00 18 */ stw r0, 0x18(r4) /* 8030A758 003063B8 90 C4 00 1C */ stw r6, 0x1c(r4) /* 8030A75C 003063BC 80 A3 15 F4 */ lwz r5, 0x15f4(r3) /* 8030A760 003063C0 7C 04 28 40 */ cmplw r4, r5 /* 8030A764 003063C4 40 82 00 10 */ bne lbl_8030A774 /* 8030A768 003063C8 80 04 00 20 */ lwz r0, 0x20(r4) /* 8030A76C 003063CC 90 03 15 F4 */ stw r0, 0x15f4(r3) /* 8030A770 003063D0 4E 80 00 20 */ blr lbl_8030A774: /* 8030A774 003063D4 80 05 00 24 */ lwz r0, 0x24(r5) /* 8030A778 003063D8 7C 04 00 40 */ cmplw r4, r0 /* 8030A77C 003063DC 4D 82 00 20 */ beqlr /* 8030A780 003063E0 80 04 00 20 */ lwz r0, 0x20(r4) /* 8030A784 003063E4 80 A4 00 24 */ lwz r5, 0x24(r4) /* 8030A788 003063E8 90 05 00 20 */ stw r0, 0x20(r5) /* 8030A78C 003063EC 80 04 00 24 */ lwz r0, 0x24(r4) /* 8030A790 003063F0 80 A4 00 20 */ lwz r5, 0x20(r4) /* 8030A794 003063F4 90 05 00 24 */ stw r0, 0x24(r5) /* 8030A798 003063F8 80 A3 15 F4 */ lwz r5, 0x15f4(r3) /* 8030A79C 003063FC 90 A4 00 20 */ stw r5, 0x20(r4) /* 8030A7A0 00306400 80 63 15 F4 */ lwz r3, 0x15f4(r3) /* 8030A7A4 00306404 80 03 00 24 */ lwz r0, 0x24(r3) /* 8030A7A8 00306408 90 04 00 24 */ stw r0, 0x24(r4) /* 8030A7AC 0030640C 90 85 00 24 */ stw r4, 0x24(r5) /* 8030A7B0 00306410 80 64 00 24 */ lwz r3, 0x24(r4) /* 8030A7B4 00306414 90 83 00 20 */ stw r4, 0x20(r3) /* 8030A7B8 00306418 4E 80 00 20 */ blr .global VFiPFCACHE_FreeDataPage VFiPFCACHE_FreeDataPage: /* 8030A7BC 0030641C 80 03 15 F8 */ lwz r0, 0x15f8(r3) /* 8030A7C0 00306420 2C 00 00 00 */ cmpwi r0, 0 /* 8030A7C4 00306424 4D 82 00 20 */ beqlr /* 8030A7C8 00306428 A0 A4 00 00 */ lhz r5, 0(r4) /* 8030A7CC 0030642C 38 C0 00 00 */ li r6, 0 /* 8030A7D0 00306430 38 00 FF FF */ li r0, -1 /* 8030A7D4 00306434 90 C4 00 0C */ stw r6, 0xc(r4) /* 8030A7D8 00306438 54 A5 04 3A */ rlwinm r5, r5, 0, 0x10, 0x1d /* 8030A7DC 0030643C B0 A4 00 00 */ sth r5, 0(r4) /* 8030A7E0 00306440 90 C4 00 10 */ stw r6, 0x10(r4) /* 8030A7E4 00306444 90 04 00 18 */ stw r0, 0x18(r4) /* 8030A7E8 00306448 90 C4 00 1C */ stw r6, 0x1c(r4) /* 8030A7EC 0030644C 80 A3 15 F8 */ lwz r5, 0x15f8(r3) /* 8030A7F0 00306450 7C 04 28 40 */ cmplw r4, r5 /* 8030A7F4 00306454 40 82 00 10 */ bne lbl_8030A804 /* 8030A7F8 00306458 80 04 00 20 */ lwz r0, 0x20(r4) /* 8030A7FC 0030645C 90 03 15 F8 */ stw r0, 0x15f8(r3) /* 8030A800 00306460 4E 80 00 20 */ blr lbl_8030A804: /* 8030A804 00306464 80 05 00 24 */ lwz r0, 0x24(r5) /* 8030A808 00306468 7C 04 00 40 */ cmplw r4, r0 /* 8030A80C 0030646C 4D 82 00 20 */ beqlr /* 8030A810 00306470 80 04 00 20 */ lwz r0, 0x20(r4) /* 8030A814 00306474 80 A4 00 24 */ lwz r5, 0x24(r4) /* 8030A818 00306478 90 05 00 20 */ stw r0, 0x20(r5) /* 8030A81C 0030647C 80 04 00 24 */ lwz r0, 0x24(r4) /* 8030A820 00306480 80 A4 00 20 */ lwz r5, 0x20(r4) /* 8030A824 00306484 90 05 00 24 */ stw r0, 0x24(r5) /* 8030A828 00306488 80 A3 15 F8 */ lwz r5, 0x15f8(r3) /* 8030A82C 0030648C 90 A4 00 20 */ stw r5, 0x20(r4) /* 8030A830 00306490 80 63 15 F8 */ lwz r3, 0x15f8(r3) /* 8030A834 00306494 80 03 00 24 */ lwz r0, 0x24(r3) /* 8030A838 00306498 90 04 00 24 */ stw r0, 0x24(r4) /* 8030A83C 0030649C 90 85 00 24 */ stw r4, 0x24(r5) /* 8030A840 003064A0 80 64 00 24 */ lwz r3, 0x24(r4) /* 8030A844 003064A4 90 83 00 20 */ stw r4, 0x20(r3) /* 8030A848 003064A8 4E 80 00 20 */ blr .global VFiPFCACHE_ReadFATPage VFiPFCACHE_ReadFATPage: /* 8030A84C 003064AC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030A850 003064B0 7C 08 02 A6 */ mflr r0 /* 8030A854 003064B4 7C A6 2B 78 */ mr r6, r5 /* 8030A858 003064B8 7C 85 23 78 */ mr r5, r4 /* 8030A85C 003064BC 90 01 00 14 */ stw r0, 0x14(r1) /* 8030A860 003064C0 38 83 15 F4 */ addi r4, r3, 0x15f4 /* 8030A864 003064C4 38 E0 00 00 */ li r7, 0 /* 8030A868 003064C8 4B FF ED CD */ bl VFiPFCACHE_DoReadPage /* 8030A86C 003064CC 7C 03 00 D0 */ neg r0, r3 /* 8030A870 003064D0 7C 00 1B 78 */ or r0, r0, r3 /* 8030A874 003064D4 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 8030A878 003064D8 7C 63 00 38 */ and r3, r3, r0 /* 8030A87C 003064DC 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030A880 003064E0 7C 08 03 A6 */ mtlr r0 /* 8030A884 003064E4 38 21 00 10 */ addi r1, r1, 0x10 /* 8030A888 003064E8 4E 80 00 20 */ blr .global VFiPFCACHE_ReadDataPage VFiPFCACHE_ReadDataPage: /* 8030A88C 003064EC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030A890 003064F0 7C 08 02 A6 */ mflr r0 /* 8030A894 003064F4 7C 88 23 78 */ mr r8, r4 /* 8030A898 003064F8 7C C7 33 78 */ mr r7, r6 /* 8030A89C 003064FC 90 01 00 14 */ stw r0, 0x14(r1) /* 8030A8A0 00306500 7C A0 2B 78 */ mr r0, r5 /* 8030A8A4 00306504 38 83 15 F8 */ addi r4, r3, 0x15f8 /* 8030A8A8 00306508 7D 05 43 78 */ mr r5, r8 /* 8030A8AC 0030650C 7C 06 03 78 */ mr r6, r0 /* 8030A8B0 00306510 4B FF ED 85 */ bl VFiPFCACHE_DoReadPage /* 8030A8B4 00306514 7C 03 00 D0 */ neg r0, r3 /* 8030A8B8 00306518 7C 00 1B 78 */ or r0, r0, r3 /* 8030A8BC 0030651C 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 8030A8C0 00306520 7C 63 00 38 */ and r3, r3, r0 /* 8030A8C4 00306524 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030A8C8 00306528 7C 08 03 A6 */ mtlr r0 /* 8030A8CC 0030652C 38 21 00 10 */ addi r1, r1, 0x10 /* 8030A8D0 00306530 4E 80 00 20 */ blr .global VFiPFCACHE_ReadDataPageAndFlushIfNeeded VFiPFCACHE_ReadDataPageAndFlushIfNeeded: /* 8030A8D4 00306534 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030A8D8 00306538 7C 08 02 A6 */ mflr r0 /* 8030A8DC 0030653C 7C 88 23 78 */ mr r8, r4 /* 8030A8E0 00306540 7C C7 33 78 */ mr r7, r6 /* 8030A8E4 00306544 90 01 00 14 */ stw r0, 0x14(r1) /* 8030A8E8 00306548 7C A0 2B 78 */ mr r0, r5 /* 8030A8EC 0030654C 38 83 15 F8 */ addi r4, r3, 0x15f8 /* 8030A8F0 00306550 7D 05 43 78 */ mr r5, r8 /* 8030A8F4 00306554 7C 06 03 78 */ mr r6, r0 /* 8030A8F8 00306558 4B FF EF 49 */ bl VFiPFCACHE_DoReadPageAndFlushIfNeeded /* 8030A8FC 0030655C 7C 03 00 D0 */ neg r0, r3 /* 8030A900 00306560 7C 00 1B 78 */ or r0, r0, r3 /* 8030A904 00306564 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 8030A908 00306568 7C 63 00 38 */ and r3, r3, r0 /* 8030A90C 0030656C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030A910 00306570 7C 08 03 A6 */ mtlr r0 /* 8030A914 00306574 38 21 00 10 */ addi r1, r1, 0x10 /* 8030A918 00306578 4E 80 00 20 */ blr .global VFiPFCACHE_ReadDataNumSector VFiPFCACHE_ReadDataNumSector: /* 8030A91C 0030657C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030A920 00306580 7C 08 02 A6 */ mflr r0 /* 8030A924 00306584 7C AA 2B 78 */ mr r10, r5 /* 8030A928 00306588 7C C9 33 78 */ mr r9, r6 /* 8030A92C 0030658C 90 01 00 14 */ stw r0, 0x14(r1) /* 8030A930 00306590 7C E8 3B 78 */ mr r8, r7 /* 8030A934 00306594 80 03 00 08 */ lwz r0, 8(r3) /* 8030A938 00306598 7C 05 00 40 */ cmplw r5, r0 /* 8030A93C 0030659C 41 80 00 0C */ blt lbl_8030A948 /* 8030A940 003065A0 38 60 00 10 */ li r3, 0x10 /* 8030A944 003065A4 48 00 00 28 */ b lbl_8030A96C lbl_8030A948: /* 8030A948 003065A8 7C 85 23 78 */ mr r5, r4 /* 8030A94C 003065AC 7D 46 53 78 */ mr r6, r10 /* 8030A950 003065B0 7D 27 4B 78 */ mr r7, r9 /* 8030A954 003065B4 38 83 15 F8 */ addi r4, r3, 0x15f8 /* 8030A958 003065B8 4B FF F1 85 */ bl VFiPFCACHE_DoReadNumSector /* 8030A95C 003065BC 7C 03 00 D0 */ neg r0, r3 /* 8030A960 003065C0 7C 00 1B 78 */ or r0, r0, r3 /* 8030A964 003065C4 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 8030A968 003065C8 7C 63 00 38 */ and r3, r3, r0 lbl_8030A96C: /* 8030A96C 003065CC 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030A970 003065D0 7C 08 03 A6 */ mtlr r0 /* 8030A974 003065D4 38 21 00 10 */ addi r1, r1, 0x10 /* 8030A978 003065D8 4E 80 00 20 */ blr .global VFiPFCACHE_WriteFATPage VFiPFCACHE_WriteFATPage: /* 8030A97C 003065DC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030A980 003065E0 7C 08 02 A6 */ mflr r0 /* 8030A984 003065E4 7C 85 23 78 */ mr r5, r4 /* 8030A988 003065E8 38 83 15 F4 */ addi r4, r3, 0x15f4 /* 8030A98C 003065EC 90 01 00 14 */ stw r0, 0x14(r1) /* 8030A990 003065F0 38 C0 00 00 */ li r6, 0 /* 8030A994 003065F4 4B FF F3 9D */ bl VFiPFCACHE_DoWritePage /* 8030A998 003065F8 7C 03 00 D0 */ neg r0, r3 /* 8030A99C 003065FC 7C 00 1B 78 */ or r0, r0, r3 /* 8030A9A0 00306600 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 8030A9A4 00306604 7C 63 00 38 */ and r3, r3, r0 /* 8030A9A8 00306608 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030A9AC 0030660C 7C 08 03 A6 */ mtlr r0 /* 8030A9B0 00306610 38 21 00 10 */ addi r1, r1, 0x10 /* 8030A9B4 00306614 4E 80 00 20 */ blr .global VFiPFCACHE_WriteDataPage VFiPFCACHE_WriteDataPage: /* 8030A9B8 00306618 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030A9BC 0030661C 7C 08 02 A6 */ mflr r0 /* 8030A9C0 00306620 7C A6 2B 78 */ mr r6, r5 /* 8030A9C4 00306624 7C 85 23 78 */ mr r5, r4 /* 8030A9C8 00306628 90 01 00 14 */ stw r0, 0x14(r1) /* 8030A9CC 0030662C 38 83 15 F8 */ addi r4, r3, 0x15f8 /* 8030A9D0 00306630 4B FF F3 61 */ bl VFiPFCACHE_DoWritePage /* 8030A9D4 00306634 7C 03 00 D0 */ neg r0, r3 /* 8030A9D8 00306638 7C 00 1B 78 */ or r0, r0, r3 /* 8030A9DC 0030663C 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 8030A9E0 00306640 7C 63 00 38 */ and r3, r3, r0 /* 8030A9E4 00306644 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030A9E8 00306648 7C 08 03 A6 */ mtlr r0 /* 8030A9EC 0030664C 38 21 00 10 */ addi r1, r1, 0x10 /* 8030A9F0 00306650 4E 80 00 20 */ blr .global VFiPFCACHE_WriteFATSectorAndFreeIfNeeded VFiPFCACHE_WriteFATSectorAndFreeIfNeeded: /* 8030A9F4 00306654 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030A9F8 00306658 7C 08 02 A6 */ mflr r0 /* 8030A9FC 0030665C 7C A6 2B 78 */ mr r6, r5 /* 8030AA00 00306660 90 01 00 14 */ stw r0, 0x14(r1) /* 8030AA04 00306664 80 03 00 08 */ lwz r0, 8(r3) /* 8030AA08 00306668 7C 05 00 40 */ cmplw r5, r0 /* 8030AA0C 0030666C 41 80 00 0C */ blt lbl_8030AA18 /* 8030AA10 00306670 38 60 00 10 */ li r3, 0x10 /* 8030AA14 00306674 48 00 00 20 */ b lbl_8030AA34 lbl_8030AA18: /* 8030AA18 00306678 7C 85 23 78 */ mr r5, r4 /* 8030AA1C 0030667C 38 83 15 F4 */ addi r4, r3, 0x15f4 /* 8030AA20 00306680 4B FF F4 91 */ bl VFiPFCACHE_DoWriteSector /* 8030AA24 00306684 7C 03 00 D0 */ neg r0, r3 /* 8030AA28 00306688 7C 00 1B 78 */ or r0, r0, r3 /* 8030AA2C 0030668C 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 8030AA30 00306690 7C 63 00 38 */ and r3, r3, r0 lbl_8030AA34: /* 8030AA34 00306694 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030AA38 00306698 7C 08 03 A6 */ mtlr r0 /* 8030AA3C 0030669C 38 21 00 10 */ addi r1, r1, 0x10 /* 8030AA40 003066A0 4E 80 00 20 */ blr .global VFiPFCACHE_WriteDataNumSectorAndFreeIfNeeded VFiPFCACHE_WriteDataNumSectorAndFreeIfNeeded: /* 8030AA44 003066A4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030AA48 003066A8 7C 08 02 A6 */ mflr r0 /* 8030AA4C 003066AC 7C AA 2B 78 */ mr r10, r5 /* 8030AA50 003066B0 7C C9 33 78 */ mr r9, r6 /* 8030AA54 003066B4 90 01 00 14 */ stw r0, 0x14(r1) /* 8030AA58 003066B8 7C E8 3B 78 */ mr r8, r7 /* 8030AA5C 003066BC 80 03 00 08 */ lwz r0, 8(r3) /* 8030AA60 003066C0 7C 05 00 40 */ cmplw r5, r0 /* 8030AA64 003066C4 41 80 00 0C */ blt lbl_8030AA70 /* 8030AA68 003066C8 38 60 00 10 */ li r3, 0x10 /* 8030AA6C 003066CC 48 00 00 28 */ b lbl_8030AA94 lbl_8030AA70: /* 8030AA70 003066D0 7C 85 23 78 */ mr r5, r4 /* 8030AA74 003066D4 7D 46 53 78 */ mr r6, r10 /* 8030AA78 003066D8 7D 27 4B 78 */ mr r7, r9 /* 8030AA7C 003066DC 38 83 15 F8 */ addi r4, r3, 0x15f8 /* 8030AA80 003066E0 4B FF F5 A1 */ bl VFiPFCACHE_DoWriteNumSectorAndFreeIfNeeded /* 8030AA84 003066E4 7C 03 00 D0 */ neg r0, r3 /* 8030AA88 003066E8 7C 00 1B 78 */ or r0, r0, r3 /* 8030AA8C 003066EC 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 8030AA90 003066F0 7C 63 00 38 */ and r3, r3, r0 lbl_8030AA94: /* 8030AA94 003066F4 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030AA98 003066F8 7C 08 03 A6 */ mtlr r0 /* 8030AA9C 003066FC 38 21 00 10 */ addi r1, r1, 0x10 /* 8030AAA0 00306700 4E 80 00 20 */ blr .global VFiPFCACHE_SearchDataCache VFiPFCACHE_SearchDataCache: /* 8030AAA4 00306704 7C 85 23 78 */ mr r5, r4 /* 8030AAA8 00306708 80 83 15 F8 */ lwz r4, 0x15f8(r3) /* 8030AAAC 0030670C 4B FF E6 AC */ b VFiPFCACHE_SearchForPage .global VFiPFCACHE_FlushFATCache VFiPFCACHE_FlushFATCache: /* 8030AAB0 00306710 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8030AAB4 00306714 7C 08 02 A6 */ mflr r0 /* 8030AAB8 00306718 90 01 00 14 */ stw r0, 0x14(r1) /* 8030AABC 0030671C 80 83 15 F4 */ lwz r4, 0x15f4(r3) /* 8030AAC0 00306720 4B FF F9 69 */ bl VFiPFCACHE_DoFlushCache /* 8030AAC4 00306724 7C 03 00 D0 */ neg r0, r3 /* 8030AAC8 00306728 7C 00 1B 78 */ or r0, r0, r3 /* 8030AACC 0030672C 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 8030AAD0 00306730 7C 63 00 38 */ and r3, r3, r0 /* 8030AAD4 00306734 80 01 00 14 */ lwz r0, 0x14(r1) /* 8030AAD8 00306738 7C 08 03 A6 */ mtlr r0 /* 8030AADC 0030673C 38 21 00 10 */ addi r1, r1, 0x10 /* 8030AAE0 00306740 4E 80 00 20 */ blr .global VFiPFCACHE_FlushDataCacheSpecific VFiPFCACHE_FlushDataCacheSpecific: /* 8030AAE4 00306744 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8030AAE8 00306748 7C 08 02 A6 */ mflr r0 /* 8030AAEC 0030674C 90 01 00 34 */ stw r0, 0x34(r1) /* 8030AAF0 00306750 39 61 00 30 */ addi r11, r1, 0x30 /* 8030AAF4 00306754 4B EB C6 2D */ bl _savegpr_25 /* 8030AAF8 00306758 80 03 15 E8 */ lwz r0, 0x15e8(r3) /* 8030AAFC 0030675C 7C 7E 1B 78 */ mr r30, r3 /* 8030AB00 00306760 7C 9F 23 78 */ mr r31, r4 /* 8030AB04 00306764 3B A0 00 00 */ li r29, 0 /* 8030AB08 00306768 54 00 07 7F */ clrlwi. r0, r0, 0x1d /* 8030AB0C 0030676C 3B 20 00 00 */ li r25, 0 /* 8030AB10 00306770 41 82 01 18 */ beq lbl_8030AC28 /* 8030AB14 00306774 83 83 15 F8 */ lwz r28, 0x15f8(r3) /* 8030AB18 00306778 80 1C 00 1C */ lwz r0, 0x1c(r28) /* 8030AB1C 0030677C 2C 00 00 00 */ cmpwi r0, 0 /* 8030AB20 00306780 41 82 00 0C */ beq lbl_8030AB2C /* 8030AB24 00306784 7C 00 20 40 */ cmplw r0, r4 /* 8030AB28 00306788 40 82 00 48 */ bne lbl_8030AB70 lbl_8030AB2C: /* 8030AB2C 0030678C 2C 1C 00 00 */ cmpwi r28, 0 /* 8030AB30 00306790 41 82 00 24 */ beq lbl_8030AB54 /* 8030AB34 00306794 A0 1C 00 00 */ lhz r0, 0(r28) /* 8030AB38 00306798 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 8030AB3C 0030679C 41 82 00 18 */ beq lbl_8030AB54 /* 8030AB40 003067A0 80 7C 00 18 */ lwz r3, 0x18(r28) /* 8030AB44 003067A4 3C 03 00 01 */ addis r0, r3, 1 /* 8030AB48 003067A8 28 00 FF FF */ cmplwi r0, 0xffff /* 8030AB4C 003067AC 41 82 00 08 */ beq lbl_8030AB54 /* 8030AB50 003067B0 3B 20 00 01 */ li r25, 1 lbl_8030AB54: /* 8030AB54 003067B4 7F C3 F3 78 */ mr r3, r30 /* 8030AB58 003067B8 7F 84 E3 78 */ mr r4, r28 /* 8030AB5C 003067BC 4B FF E7 61 */ bl VFiPFCACHE_FlushPageIfNeeded /* 8030AB60 003067C0 2C 03 00 00 */ cmpwi r3, 0 /* 8030AB64 003067C4 7C 7D 1B 78 */ mr r29, r3 /* 8030AB68 003067C8 41 82 00 08 */ beq lbl_8030AB70 /* 8030AB6C 003067CC 48 00 00 C0 */ b lbl_8030AC2C lbl_8030AB70: /* 8030AB70 003067D0 83 7C 00 20 */ lwz r27, 0x20(r28) /* 8030AB74 003067D4 48 00 00 88 */ b lbl_8030ABFC lbl_8030AB78: /* 8030AB78 003067D8 80 1B 00 1C */ lwz r0, 0x1c(r27) /* 8030AB7C 003067DC 2C 00 00 00 */ cmpwi r0, 0 /* 8030AB80 003067E0 41 82 00 0C */ beq lbl_8030AB8C /* 8030AB84 003067E4 7C 00 F8 40 */ cmplw r0, r31 /* 8030AB88 003067E8 40 82 00 70 */ bne lbl_8030ABF8 lbl_8030AB8C: /* 8030AB8C 003067EC 2C 1B 00 00 */ cmpwi r27, 0 /* 8030AB90 003067F0 3B 40 00 00 */ li r26, 0 /* 8030AB94 003067F4 41 82 00 24 */ beq lbl_8030ABB8 /* 8030AB98 003067F8 A0 1B 00 00 */ lhz r0, 0(r27) /* 8030AB9C 003067FC 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 8030ABA0 00306800 41 82 00 18 */ beq lbl_8030ABB8 /* 8030ABA4 00306804 80 7B 00 18 */ lwz r3, 0x18(r27) /* 8030ABA8 00306808 3C 03 00 01 */ addis r0, r3, 1 /* 8030ABAC 0030680C 28 00 FF FF */ cmplwi r0, 0xffff /* 8030ABB0 00306810 41 82 00 08 */ beq lbl_8030ABB8 /* 8030ABB4 00306814 3B 40 00 01 */ li r26, 1 lbl_8030ABB8: /* 8030ABB8 00306818 7F C3 F3 78 */ mr r3, r30 /* 8030ABBC 0030681C 7F 64 DB 78 */ mr r4, r27 /* 8030ABC0 00306820 4B FF E6 FD */ bl VFiPFCACHE_FlushPageIfNeeded /* 8030ABC4 00306824 2C 03 00 00 */ cmpwi r3, 0 /* 8030ABC8 00306828 7C 7D 1B 78 */ mr r29, r3 /* 8030ABCC 0030682C 41 82 00 20 */ beq lbl_8030ABEC /* 8030ABD0 00306830 2C 19 00 00 */ cmpwi r25, 0 /* 8030ABD4 00306834 41 82 00 10 */ beq lbl_8030ABE4 /* 8030ABD8 00306838 7F C3 F3 78 */ mr r3, r30 /* 8030ABDC 0030683C 38 80 00 00 */ li r4, 0 /* 8030ABE0 00306840 48 01 11 C1 */ bl dCommon_FlushFromVol lbl_8030ABE4: /* 8030ABE4 00306844 7F A3 EB 78 */ mr r3, r29 /* 8030ABE8 00306848 48 00 00 44 */ b lbl_8030AC2C lbl_8030ABEC: /* 8030ABEC 0030684C 2C 1A 00 00 */ cmpwi r26, 0 /* 8030ABF0 00306850 41 82 00 08 */ beq lbl_8030ABF8 /* 8030ABF4 00306854 3B 20 00 01 */ li r25, 1 lbl_8030ABF8: /* 8030ABF8 00306858 83 7B 00 20 */ lwz r27, 0x20(r27) lbl_8030ABFC: /* 8030ABFC 0030685C 7C 1B E0 40 */ cmplw r27, r28 /* 8030AC00 00306860 40 82 FF 78 */ bne lbl_8030AB78 /* 8030AC04 00306864 2C 19 00 00 */ cmpwi r25, 0 /* 8030AC08 00306868 41 82 00 20 */ beq lbl_8030AC28 /* 8030AC0C 0030686C 7F C3 F3 78 */ mr r3, r30 /* 8030AC10 00306870 38 80 00 01 */ li r4, 1 /* 8030AC14 00306874 48 01 11 8D */ bl dCommon_FlushFromVol /* 8030AC18 00306878 2C 03 00 00 */ cmpwi r3, 0 /* 8030AC1C 0030687C 41 82 00 0C */ beq lbl_8030AC28 /* 8030AC20 00306880 38 60 00 11 */ li r3, 0x11 /* 8030AC24 00306884 48 00 00 08 */ b lbl_8030AC2C lbl_8030AC28: /* 8030AC28 00306888 7F A3 EB 78 */ mr r3, r29 lbl_8030AC2C: /* 8030AC2C 0030688C 39 61 00 30 */ addi r11, r1, 0x30 /* 8030AC30 00306890 4B EB C5 3D */ bl _restgpr_25 /* 8030AC34 00306894 80 01 00 34 */ lwz r0, 0x34(r1) /* 8030AC38 00306898 7C 08 03 A6 */ mtlr r0 /* 8030AC3C 0030689C 38 21 00 30 */ addi r1, r1, 0x30 /* 8030AC40 003068A0 4E 80 00 20 */ blr .global VFiPFCACHE_FreeAllCaches VFiPFCACHE_FreeAllCaches: /* 8030AC44 003068A4 38 E0 00 00 */ li r7, 0 /* 8030AC48 003068A8 38 C0 FF FF */ li r6, -1 /* 8030AC4C 003068AC 48 00 00 84 */ b lbl_8030ACD0 lbl_8030AC50: /* 8030AC50 003068B0 2C 08 00 00 */ cmpwi r8, 0 /* 8030AC54 003068B4 41 82 00 7C */ beq lbl_8030ACD0 /* 8030AC58 003068B8 A0 08 00 00 */ lhz r0, 0(r8) /* 8030AC5C 003068BC 54 00 04 3A */ rlwinm r0, r0, 0, 0x10, 0x1d /* 8030AC60 003068C0 B0 08 00 00 */ sth r0, 0(r8) /* 8030AC64 003068C4 90 E8 00 0C */ stw r7, 0xc(r8) /* 8030AC68 003068C8 90 E8 00 10 */ stw r7, 0x10(r8) /* 8030AC6C 003068CC 90 C8 00 18 */ stw r6, 0x18(r8) /* 8030AC70 003068D0 90 E8 00 1C */ stw r7, 0x1c(r8) /* 8030AC74 003068D4 80 83 15 F4 */ lwz r4, 0x15f4(r3) /* 8030AC78 003068D8 7C 08 20 40 */ cmplw r8, r4 /* 8030AC7C 003068DC 40 82 00 10 */ bne lbl_8030AC8C /* 8030AC80 003068E0 80 08 00 20 */ lwz r0, 0x20(r8) /* 8030AC84 003068E4 90 03 15 F4 */ stw r0, 0x15f4(r3) /* 8030AC88 003068E8 48 00 00 48 */ b lbl_8030ACD0 lbl_8030AC8C: /* 8030AC8C 003068EC 80 04 00 24 */ lwz r0, 0x24(r4) /* 8030AC90 003068F0 7C 08 00 40 */ cmplw r8, r0 /* 8030AC94 003068F4 41 82 00 3C */ beq lbl_8030ACD0 /* 8030AC98 003068F8 80 08 00 20 */ lwz r0, 0x20(r8) /* 8030AC9C 003068FC 80 88 00 24 */ lwz r4, 0x24(r8) /* 8030ACA0 00306900 90 04 00 20 */ stw r0, 0x20(r4) /* 8030ACA4 00306904 80 08 00 24 */ lwz r0, 0x24(r8) /* 8030ACA8 00306908 80 88 00 20 */ lwz r4, 0x20(r8) /* 8030ACAC 0030690C 90 04 00 24 */ stw r0, 0x24(r4) /* 8030ACB0 00306910 80 A3 15 F4 */ lwz r5, 0x15f4(r3) /* 8030ACB4 00306914 90 A8 00 20 */ stw r5, 0x20(r8) /* 8030ACB8 00306918 80 83 15 F4 */ lwz r4, 0x15f4(r3) /* 8030ACBC 0030691C 80 04 00 24 */ lwz r0, 0x24(r4) /* 8030ACC0 00306920 90 08 00 24 */ stw r0, 0x24(r8) /* 8030ACC4 00306924 91 05 00 24 */ stw r8, 0x24(r5) /* 8030ACC8 00306928 80 88 00 24 */ lwz r4, 0x24(r8) /* 8030ACCC 0030692C 91 04 00 20 */ stw r8, 0x20(r4) lbl_8030ACD0: /* 8030ACD0 00306930 81 03 15 F4 */ lwz r8, 0x15f4(r3) /* 8030ACD4 00306934 A0 08 00 00 */ lhz r0, 0(r8) /* 8030ACD8 00306938 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 8030ACDC 0030693C 40 82 FF 74 */ bne lbl_8030AC50 /* 8030ACE0 00306940 38 E0 00 00 */ li r7, 0 /* 8030ACE4 00306944 38 C0 FF FF */ li r6, -1 /* 8030ACE8 00306948 48 00 00 84 */ b lbl_8030AD6C lbl_8030ACEC: /* 8030ACEC 0030694C 2C 08 00 00 */ cmpwi r8, 0 /* 8030ACF0 00306950 41 82 00 7C */ beq lbl_8030AD6C /* 8030ACF4 00306954 A0 08 00 00 */ lhz r0, 0(r8) /* 8030ACF8 00306958 54 00 04 3A */ rlwinm r0, r0, 0, 0x10, 0x1d /* 8030ACFC 0030695C B0 08 00 00 */ sth r0, 0(r8) /* 8030AD00 00306960 90 E8 00 0C */ stw r7, 0xc(r8) /* 8030AD04 00306964 90 E8 00 10 */ stw r7, 0x10(r8) /* 8030AD08 00306968 90 C8 00 18 */ stw r6, 0x18(r8) /* 8030AD0C 0030696C 90 E8 00 1C */ stw r7, 0x1c(r8) /* 8030AD10 00306970 80 83 15 F8 */ lwz r4, 0x15f8(r3) /* 8030AD14 00306974 7C 08 20 40 */ cmplw r8, r4 /* 8030AD18 00306978 40 82 00 10 */ bne lbl_8030AD28 /* 8030AD1C 0030697C 80 08 00 20 */ lwz r0, 0x20(r8) /* 8030AD20 00306980 90 03 15 F8 */ stw r0, 0x15f8(r3) /* 8030AD24 00306984 48 00 00 48 */ b lbl_8030AD6C lbl_8030AD28: /* 8030AD28 00306988 80 04 00 24 */ lwz r0, 0x24(r4) /* 8030AD2C 0030698C 7C 08 00 40 */ cmplw r8, r0 /* 8030AD30 00306990 41 82 00 3C */ beq lbl_8030AD6C /* 8030AD34 00306994 80 08 00 20 */ lwz r0, 0x20(r8) /* 8030AD38 00306998 80 88 00 24 */ lwz r4, 0x24(r8) /* 8030AD3C 0030699C 90 04 00 20 */ stw r0, 0x20(r4) /* 8030AD40 003069A0 80 08 00 24 */ lwz r0, 0x24(r8) /* 8030AD44 003069A4 80 88 00 20 */ lwz r4, 0x20(r8) /* 8030AD48 003069A8 90 04 00 24 */ stw r0, 0x24(r4) /* 8030AD4C 003069AC 80 A3 15 F8 */ lwz r5, 0x15f8(r3) /* 8030AD50 003069B0 90 A8 00 20 */ stw r5, 0x20(r8) /* 8030AD54 003069B4 80 83 15 F8 */ lwz r4, 0x15f8(r3) /* 8030AD58 003069B8 80 04 00 24 */ lwz r0, 0x24(r4) /* 8030AD5C 003069BC 90 08 00 24 */ stw r0, 0x24(r8) /* 8030AD60 003069C0 91 05 00 24 */ stw r8, 0x24(r5) /* 8030AD64 003069C4 80 88 00 24 */ lwz r4, 0x24(r8) /* 8030AD68 003069C8 91 04 00 20 */ stw r8, 0x20(r4) lbl_8030AD6C: /* 8030AD6C 003069CC 81 03 15 F8 */ lwz r8, 0x15f8(r3) /* 8030AD70 003069D0 A0 08 00 00 */ lhz r0, 0(r8) /* 8030AD74 003069D4 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 8030AD78 003069D8 40 82 FF 74 */ bne lbl_8030ACEC /* 8030AD7C 003069DC 4E 80 00 20 */ blr