lbl_80358658: /* 80358658 7C 08 02 A6 */ mflr r0 /* 8035865C 90 01 00 04 */ stw r0, 4(r1) /* 80358660 94 21 FF D8 */ stwu r1, -0x28(r1) /* 80358664 BF 61 00 14 */ stmw r27, 0x14(r1) /* 80358668 3B A3 00 00 */ addi r29, r3, 0 /* 8035866C 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */ /* 80358670 1C BD 01 10 */ mulli r5, r29, 0x110 /* 80358674 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */ /* 80358678 7C 9E 23 79 */ or. r30, r4, r4 /* 8035867C 7F E0 2A 14 */ add r31, r0, r5 /* 80358680 41 80 00 C8 */ blt lbl_80358748 /* 80358684 83 9F 00 C0 */ lwz r28, 0xc0(r31) /* 80358688 80 9C 00 0C */ lwz r4, 0xc(r28) /* 8035868C 2C 04 00 00 */ cmpwi r4, 0 /* 80358690 40 80 00 0C */ bge lbl_8035869C /* 80358694 3B C0 FF F2 */ li r30, -14 /* 80358698 48 00 00 B0 */ b lbl_80358748 lbl_8035869C: /* 8035869C 80 BF 00 0C */ lwz r5, 0xc(r31) /* 803586A0 80 DC 00 08 */ lwz r6, 8(r28) /* 803586A4 38 05 FF FF */ addi r0, r5, -1 /* 803586A8 7C 03 00 F8 */ nor r3, r0, r0 /* 803586AC 7C 06 2A 14 */ add r0, r6, r5 /* 803586B0 7C 60 00 38 */ and r0, r3, r0 /* 803586B4 7F 66 00 50 */ subf r27, r6, r0 /* 803586B8 7C 1B 20 50 */ subf r0, r27, r4 /* 803586BC 90 1C 00 0C */ stw r0, 0xc(r28) /* 803586C0 80 1C 00 0C */ lwz r0, 0xc(r28) /* 803586C4 2C 00 00 00 */ cmpwi r0, 0 /* 803586C8 40 81 00 80 */ ble lbl_80358748 /* 803586CC 7F E3 FB 78 */ mr r3, r31 /* 803586D0 4B FF CD 45 */ bl __CARDGetFatBlock /* 803586D4 80 1C 00 08 */ lwz r0, 8(r28) /* 803586D8 7C 00 DA 14 */ add r0, r0, r27 /* 803586DC 90 1C 00 08 */ stw r0, 8(r28) /* 803586E0 A0 1C 00 10 */ lhz r0, 0x10(r28) /* 803586E4 54 00 08 3C */ slwi r0, r0, 1 /* 803586E8 7C 03 02 2E */ lhzx r0, r3, r0 /* 803586EC B0 1C 00 10 */ sth r0, 0x10(r28) /* 803586F0 A0 7C 00 10 */ lhz r3, 0x10(r28) /* 803586F4 28 03 00 05 */ cmplwi r3, 5 /* 803586F8 41 80 00 10 */ blt lbl_80358708 /* 803586FC A0 1F 00 10 */ lhz r0, 0x10(r31) /* 80358700 7C 03 00 40 */ cmplw r3, r0 /* 80358704 41 80 00 0C */ blt lbl_80358710 lbl_80358708: /* 80358708 3B C0 FF FA */ li r30, -6 /* 8035870C 48 00 00 3C */ b lbl_80358748 lbl_80358710: /* 80358710 80 BC 00 0C */ lwz r5, 0xc(r28) /* 80358714 80 1F 00 0C */ lwz r0, 0xc(r31) /* 80358718 7C 05 00 00 */ cmpw r5, r0 /* 8035871C 40 80 00 08 */ bge lbl_80358724 /* 80358720 48 00 00 08 */ b lbl_80358728 lbl_80358724: /* 80358724 7C 05 03 78 */ mr r5, r0 lbl_80358728: /* 80358728 7C 80 19 D6 */ mullw r4, r0, r3 /* 8035872C 80 DF 00 B4 */ lwz r6, 0xb4(r31) /* 80358730 3C 60 80 36 */ lis r3, ReadCallback@ha /* 0x80358658@ha */ /* 80358734 38 E3 86 58 */ addi r7, r3, ReadCallback@l /* 0x80358658@l */ /* 80358738 38 7D 00 00 */ addi r3, r29, 0 /* 8035873C 4B FF CB 25 */ bl __CARDRead /* 80358740 7C 7E 1B 79 */ or. r30, r3, r3 /* 80358744 40 80 00 30 */ bge lbl_80358774 lbl_80358748: /* 80358748 83 7F 00 D0 */ lwz r27, 0xd0(r31) /* 8035874C 38 00 00 00 */ li r0, 0 /* 80358750 38 7F 00 00 */ addi r3, r31, 0 /* 80358754 90 1F 00 D0 */ stw r0, 0xd0(r31) /* 80358758 7F C4 F3 78 */ mr r4, r30 /* 8035875C 4B FF B5 11 */ bl __CARDPutControlBlock /* 80358760 39 9B 00 00 */ addi r12, r27, 0 /* 80358764 7D 88 03 A6 */ mtlr r12 /* 80358768 38 7D 00 00 */ addi r3, r29, 0 /* 8035876C 38 9E 00 00 */ addi r4, r30, 0 /* 80358770 4E 80 00 21 */ blrl lbl_80358774: /* 80358774 BB 61 00 14 */ lmw r27, 0x14(r1) /* 80358778 80 01 00 2C */ lwz r0, 0x2c(r1) /* 8035877C 38 21 00 28 */ addi r1, r1, 0x28 /* 80358780 7C 08 03 A6 */ mtlr r0 /* 80358784 4E 80 00 20 */ blr