tp/asm/dolphin/card/CARDRead/ReadCallback.s

85 lines
3.4 KiB
ArmAsm

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