mirror of https://github.com/zeldaret/tp.git
338 lines
16 KiB
ArmAsm
338 lines
16 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .text, "ax" # 803584a0
|
|
|
|
|
|
.global __CARDSeek
|
|
__CARDSeek:
|
|
/* 803584A0 003553E0 7C 08 02 A6 */ mflr r0
|
|
/* 803584A4 003553E4 90 01 00 04 */ stw r0, 4(r1)
|
|
/* 803584A8 003553E8 94 21 FF D0 */ stwu r1, -0x30(r1)
|
|
/* 803584AC 003553EC 93 E1 00 2C */ stw r31, 0x2c(r1)
|
|
/* 803584B0 003553F0 3B E6 00 00 */ addi r31, r6, 0
|
|
/* 803584B4 003553F4 93 C1 00 28 */ stw r30, 0x28(r1)
|
|
/* 803584B8 003553F8 3B C5 00 00 */ addi r30, r5, 0
|
|
/* 803584BC 003553FC 93 A1 00 24 */ stw r29, 0x24(r1)
|
|
/* 803584C0 00355400 3B A4 00 00 */ addi r29, r4, 0
|
|
/* 803584C4 00355404 38 81 00 18 */ addi r4, r1, 0x18
|
|
/* 803584C8 00355408 93 81 00 20 */ stw r28, 0x20(r1)
|
|
/* 803584CC 0035540C 7C 7C 1B 78 */ mr r28, r3
|
|
/* 803584D0 00355410 80 63 00 00 */ lwz r3, 0(r3)
|
|
/* 803584D4 00355414 4B FF B6 E1 */ bl __CARDGetControlBlock
|
|
/* 803584D8 00355418 2C 03 00 00 */ cmpwi r3, 0
|
|
/* 803584DC 0035541C 40 80 00 08 */ bge lbl_803584E4
|
|
/* 803584E0 00355420 48 00 01 58 */ b lbl_80358638
|
|
lbl_803584E4:
|
|
/* 803584E4 00355424 A0 1C 00 10 */ lhz r0, 0x10(r28)
|
|
/* 803584E8 00355428 28 00 00 05 */ cmplwi r0, 5
|
|
/* 803584EC 0035542C 41 80 00 28 */ blt lbl_80358514
|
|
/* 803584F0 00355430 80 61 00 18 */ lwz r3, 0x18(r1)
|
|
/* 803584F4 00355434 A0 A3 00 10 */ lhz r5, 0x10(r3)
|
|
/* 803584F8 00355438 7C 00 28 40 */ cmplw r0, r5
|
|
/* 803584FC 0035543C 40 80 00 18 */ bge lbl_80358514
|
|
/* 80358500 00355440 80 83 00 0C */ lwz r4, 0xc(r3)
|
|
/* 80358504 00355444 80 1C 00 08 */ lwz r0, 8(r28)
|
|
/* 80358508 00355448 7C 85 21 D6 */ mullw r4, r5, r4
|
|
/* 8035850C 0035544C 7C 04 00 00 */ cmpw r4, r0
|
|
/* 80358510 00355450 41 81 00 14 */ bgt lbl_80358524
|
|
lbl_80358514:
|
|
/* 80358514 00355454 80 61 00 18 */ lwz r3, 0x18(r1)
|
|
/* 80358518 00355458 38 80 FF 80 */ li r4, -128
|
|
/* 8035851C 0035545C 4B FF B7 51 */ bl __CARDPutControlBlock
|
|
/* 80358520 00355460 48 00 01 18 */ b lbl_80358638
|
|
lbl_80358524:
|
|
/* 80358524 00355464 4B FF D2 59 */ bl __CARDGetDirBlock
|
|
/* 80358528 00355468 80 1C 00 04 */ lwz r0, 4(r28)
|
|
/* 8035852C 0035546C 80 A1 00 18 */ lwz r5, 0x18(r1)
|
|
/* 80358530 00355470 54 00 30 32 */ slwi r0, r0, 6
|
|
/* 80358534 00355474 7C 83 02 14 */ add r4, r3, r0
|
|
/* 80358538 00355478 80 65 00 0C */ lwz r3, 0xc(r5)
|
|
/* 8035853C 0035547C A0 04 00 38 */ lhz r0, 0x38(r4)
|
|
/* 80358540 00355480 7C 60 19 D6 */ mullw r3, r0, r3
|
|
/* 80358544 00355484 7C 03 F0 00 */ cmpw r3, r30
|
|
/* 80358548 00355488 40 81 00 10 */ ble lbl_80358558
|
|
/* 8035854C 0035548C 7C 1E EA 14 */ add r0, r30, r29
|
|
/* 80358550 00355490 7C 03 00 00 */ cmpw r3, r0
|
|
/* 80358554 00355494 40 80 00 14 */ bge lbl_80358568
|
|
lbl_80358558:
|
|
/* 80358558 00355498 38 65 00 00 */ addi r3, r5, 0
|
|
/* 8035855C 0035549C 38 80 FF F5 */ li r4, -11
|
|
/* 80358560 003554A0 4B FF B7 0D */ bl __CARDPutControlBlock
|
|
/* 80358564 003554A4 48 00 00 D4 */ b lbl_80358638
|
|
lbl_80358568:
|
|
/* 80358568 003554A8 93 85 00 C0 */ stw r28, 0xc0(r5)
|
|
/* 8035856C 003554AC 93 BC 00 0C */ stw r29, 0xc(r28)
|
|
/* 80358570 003554B0 80 1C 00 08 */ lwz r0, 8(r28)
|
|
/* 80358574 003554B4 7C 1E 00 00 */ cmpw r30, r0
|
|
/* 80358578 003554B8 40 80 00 40 */ bge lbl_803585B8
|
|
/* 8035857C 003554BC 38 00 00 00 */ li r0, 0
|
|
/* 80358580 003554C0 90 1C 00 08 */ stw r0, 8(r28)
|
|
/* 80358584 003554C4 A0 04 00 36 */ lhz r0, 0x36(r4)
|
|
/* 80358588 003554C8 B0 1C 00 10 */ sth r0, 0x10(r28)
|
|
/* 8035858C 003554CC A0 9C 00 10 */ lhz r4, 0x10(r28)
|
|
/* 80358590 003554D0 28 04 00 05 */ cmplwi r4, 5
|
|
/* 80358594 003554D4 41 80 00 14 */ blt lbl_803585A8
|
|
/* 80358598 003554D8 80 61 00 18 */ lwz r3, 0x18(r1)
|
|
/* 8035859C 003554DC A0 03 00 10 */ lhz r0, 0x10(r3)
|
|
/* 803585A0 003554E0 7C 04 00 40 */ cmplw r4, r0
|
|
/* 803585A4 003554E4 41 80 00 14 */ blt lbl_803585B8
|
|
lbl_803585A8:
|
|
/* 803585A8 003554E8 80 61 00 18 */ lwz r3, 0x18(r1)
|
|
/* 803585AC 003554EC 38 80 FF FA */ li r4, -6
|
|
/* 803585B0 003554F0 4B FF B6 BD */ bl __CARDPutControlBlock
|
|
/* 803585B4 003554F4 48 00 00 84 */ b lbl_80358638
|
|
lbl_803585B8:
|
|
/* 803585B8 003554F8 80 61 00 18 */ lwz r3, 0x18(r1)
|
|
/* 803585BC 003554FC 4B FF CE 59 */ bl __CARDGetFatBlock
|
|
/* 803585C0 00355500 48 00 00 4C */ b lbl_8035860C
|
|
lbl_803585C4:
|
|
/* 803585C4 00355504 80 1C 00 08 */ lwz r0, 8(r28)
|
|
/* 803585C8 00355508 7C 00 22 14 */ add r0, r0, r4
|
|
/* 803585CC 0035550C 90 1C 00 08 */ stw r0, 8(r28)
|
|
/* 803585D0 00355510 A0 1C 00 10 */ lhz r0, 0x10(r28)
|
|
/* 803585D4 00355514 54 00 08 3C */ slwi r0, r0, 1
|
|
/* 803585D8 00355518 7C 03 02 2E */ lhzx r0, r3, r0
|
|
/* 803585DC 0035551C B0 1C 00 10 */ sth r0, 0x10(r28)
|
|
/* 803585E0 00355520 A0 BC 00 10 */ lhz r5, 0x10(r28)
|
|
/* 803585E4 00355524 28 05 00 05 */ cmplwi r5, 5
|
|
/* 803585E8 00355528 41 80 00 14 */ blt lbl_803585FC
|
|
/* 803585EC 0035552C 80 81 00 18 */ lwz r4, 0x18(r1)
|
|
/* 803585F0 00355530 A0 04 00 10 */ lhz r0, 0x10(r4)
|
|
/* 803585F4 00355534 7C 05 00 40 */ cmplw r5, r0
|
|
/* 803585F8 00355538 41 80 00 14 */ blt lbl_8035860C
|
|
lbl_803585FC:
|
|
/* 803585FC 0035553C 80 61 00 18 */ lwz r3, 0x18(r1)
|
|
/* 80358600 00355540 38 80 FF FA */ li r4, -6
|
|
/* 80358604 00355544 4B FF B6 69 */ bl __CARDPutControlBlock
|
|
/* 80358608 00355548 48 00 00 30 */ b lbl_80358638
|
|
lbl_8035860C:
|
|
/* 8035860C 0035554C 80 81 00 18 */ lwz r4, 0x18(r1)
|
|
/* 80358610 00355550 80 BC 00 08 */ lwz r5, 8(r28)
|
|
/* 80358614 00355554 80 84 00 0C */ lwz r4, 0xc(r4)
|
|
/* 80358618 00355558 38 04 FF FF */ addi r0, r4, -1
|
|
/* 8035861C 0035555C 7F C0 00 78 */ andc r0, r30, r0
|
|
/* 80358620 00355560 7C 05 00 40 */ cmplw r5, r0
|
|
/* 80358624 00355564 41 80 FF A0 */ blt lbl_803585C4
|
|
/* 80358628 00355568 93 DC 00 08 */ stw r30, 8(r28)
|
|
/* 8035862C 0035556C 38 60 00 00 */ li r3, 0
|
|
/* 80358630 00355570 80 01 00 18 */ lwz r0, 0x18(r1)
|
|
/* 80358634 00355574 90 1F 00 00 */ stw r0, 0(r31)
|
|
lbl_80358638:
|
|
/* 80358638 00355578 80 01 00 34 */ lwz r0, 0x34(r1)
|
|
/* 8035863C 0035557C 83 E1 00 2C */ lwz r31, 0x2c(r1)
|
|
/* 80358640 00355580 83 C1 00 28 */ lwz r30, 0x28(r1)
|
|
/* 80358644 00355584 83 A1 00 24 */ lwz r29, 0x24(r1)
|
|
/* 80358648 00355588 83 81 00 20 */ lwz r28, 0x20(r1)
|
|
/* 8035864C 0035558C 38 21 00 30 */ addi r1, r1, 0x30
|
|
/* 80358650 00355590 7C 08 03 A6 */ mtlr r0
|
|
/* 80358654 00355594 4E 80 00 20 */ blr
|
|
.global ReadCallback
|
|
ReadCallback:
|
|
/* 80358658 00355598 7C 08 02 A6 */ mflr r0
|
|
/* 8035865C 0035559C 90 01 00 04 */ stw r0, 4(r1)
|
|
/* 80358660 003555A0 94 21 FF D8 */ stwu r1, -0x28(r1)
|
|
/* 80358664 003555A4 BF 61 00 14 */ stmw r27, 0x14(r1)
|
|
/* 80358668 003555A8 3B A3 00 00 */ addi r29, r3, 0
|
|
/* 8035866C 003555AC 3C 60 80 45 */ lis r3, lbl_8044CBC0@ha
|
|
/* 80358670 003555B0 1C BD 01 10 */ mulli r5, r29, 0x110
|
|
/* 80358674 003555B4 38 03 CB C0 */ addi r0, r3, lbl_8044CBC0@l
|
|
/* 80358678 003555B8 7C 9E 23 79 */ or. r30, r4, r4
|
|
/* 8035867C 003555BC 7F E0 2A 14 */ add r31, r0, r5
|
|
/* 80358680 003555C0 41 80 00 C8 */ blt lbl_80358748
|
|
/* 80358684 003555C4 83 9F 00 C0 */ lwz r28, 0xc0(r31)
|
|
/* 80358688 003555C8 80 9C 00 0C */ lwz r4, 0xc(r28)
|
|
/* 8035868C 003555CC 2C 04 00 00 */ cmpwi r4, 0
|
|
/* 80358690 003555D0 40 80 00 0C */ bge lbl_8035869C
|
|
/* 80358694 003555D4 3B C0 FF F2 */ li r30, -14
|
|
/* 80358698 003555D8 48 00 00 B0 */ b lbl_80358748
|
|
lbl_8035869C:
|
|
/* 8035869C 003555DC 80 BF 00 0C */ lwz r5, 0xc(r31)
|
|
/* 803586A0 003555E0 80 DC 00 08 */ lwz r6, 8(r28)
|
|
/* 803586A4 003555E4 38 05 FF FF */ addi r0, r5, -1
|
|
/* 803586A8 003555E8 7C 03 00 F8 */ nor r3, r0, r0
|
|
/* 803586AC 003555EC 7C 06 2A 14 */ add r0, r6, r5
|
|
/* 803586B0 003555F0 7C 60 00 38 */ and r0, r3, r0
|
|
/* 803586B4 003555F4 7F 66 00 50 */ subf r27, r6, r0
|
|
/* 803586B8 003555F8 7C 1B 20 50 */ subf r0, r27, r4
|
|
/* 803586BC 003555FC 90 1C 00 0C */ stw r0, 0xc(r28)
|
|
/* 803586C0 00355600 80 1C 00 0C */ lwz r0, 0xc(r28)
|
|
/* 803586C4 00355604 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 803586C8 00355608 40 81 00 80 */ ble lbl_80358748
|
|
/* 803586CC 0035560C 7F E3 FB 78 */ mr r3, r31
|
|
/* 803586D0 00355610 4B FF CD 45 */ bl __CARDGetFatBlock
|
|
/* 803586D4 00355614 80 1C 00 08 */ lwz r0, 8(r28)
|
|
/* 803586D8 00355618 7C 00 DA 14 */ add r0, r0, r27
|
|
/* 803586DC 0035561C 90 1C 00 08 */ stw r0, 8(r28)
|
|
/* 803586E0 00355620 A0 1C 00 10 */ lhz r0, 0x10(r28)
|
|
/* 803586E4 00355624 54 00 08 3C */ slwi r0, r0, 1
|
|
/* 803586E8 00355628 7C 03 02 2E */ lhzx r0, r3, r0
|
|
/* 803586EC 0035562C B0 1C 00 10 */ sth r0, 0x10(r28)
|
|
/* 803586F0 00355630 A0 7C 00 10 */ lhz r3, 0x10(r28)
|
|
/* 803586F4 00355634 28 03 00 05 */ cmplwi r3, 5
|
|
/* 803586F8 00355638 41 80 00 10 */ blt lbl_80358708
|
|
/* 803586FC 0035563C A0 1F 00 10 */ lhz r0, 0x10(r31)
|
|
/* 80358700 00355640 7C 03 00 40 */ cmplw r3, r0
|
|
/* 80358704 00355644 41 80 00 0C */ blt lbl_80358710
|
|
lbl_80358708:
|
|
/* 80358708 00355648 3B C0 FF FA */ li r30, -6
|
|
/* 8035870C 0035564C 48 00 00 3C */ b lbl_80358748
|
|
lbl_80358710:
|
|
/* 80358710 00355650 80 BC 00 0C */ lwz r5, 0xc(r28)
|
|
/* 80358714 00355654 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80358718 00355658 7C 05 00 00 */ cmpw r5, r0
|
|
/* 8035871C 0035565C 40 80 00 08 */ bge lbl_80358724
|
|
/* 80358720 00355660 48 00 00 08 */ b lbl_80358728
|
|
lbl_80358724:
|
|
/* 80358724 00355664 7C 05 03 78 */ mr r5, r0
|
|
lbl_80358728:
|
|
/* 80358728 00355668 7C 80 19 D6 */ mullw r4, r0, r3
|
|
/* 8035872C 0035566C 80 DF 00 B4 */ lwz r6, 0xb4(r31)
|
|
.global ReadCallback
|
|
/* 80358730 00355670 3C 60 80 36 */ lis r3, ReadCallback@ha
|
|
.global ReadCallback
|
|
/* 80358734 00355674 38 E3 86 58 */ addi r7, r3, ReadCallback@l
|
|
/* 80358738 00355678 38 7D 00 00 */ addi r3, r29, 0
|
|
/* 8035873C 0035567C 4B FF CB 25 */ bl __CARDRead
|
|
/* 80358740 00355680 7C 7E 1B 79 */ or. r30, r3, r3
|
|
/* 80358744 00355684 40 80 00 30 */ bge lbl_80358774
|
|
lbl_80358748:
|
|
/* 80358748 00355688 83 7F 00 D0 */ lwz r27, 0xd0(r31)
|
|
/* 8035874C 0035568C 38 00 00 00 */ li r0, 0
|
|
/* 80358750 00355690 38 7F 00 00 */ addi r3, r31, 0
|
|
/* 80358754 00355694 90 1F 00 D0 */ stw r0, 0xd0(r31)
|
|
/* 80358758 00355698 7F C4 F3 78 */ mr r4, r30
|
|
/* 8035875C 0035569C 4B FF B5 11 */ bl __CARDPutControlBlock
|
|
/* 80358760 003556A0 39 9B 00 00 */ addi r12, r27, 0
|
|
/* 80358764 003556A4 7D 88 03 A6 */ mtlr r12
|
|
/* 80358768 003556A8 38 7D 00 00 */ addi r3, r29, 0
|
|
/* 8035876C 003556AC 38 9E 00 00 */ addi r4, r30, 0
|
|
/* 80358770 003556B0 4E 80 00 21 */ blrl
|
|
lbl_80358774:
|
|
/* 80358774 003556B4 BB 61 00 14 */ lmw r27, 0x14(r1)
|
|
/* 80358778 003556B8 80 01 00 2C */ lwz r0, 0x2c(r1)
|
|
/* 8035877C 003556BC 38 21 00 28 */ addi r1, r1, 0x28
|
|
/* 80358780 003556C0 7C 08 03 A6 */ mtlr r0
|
|
/* 80358784 003556C4 4E 80 00 20 */ blr
|
|
|
|
.global CARDReadAsync
|
|
CARDReadAsync:
|
|
/* 80358788 003556C8 7C 08 02 A6 */ mflr r0
|
|
/* 8035878C 003556CC 90 01 00 04 */ stw r0, 4(r1)
|
|
/* 80358790 003556D0 54 C0 05 FF */ clrlwi. r0, r6, 0x17
|
|
/* 80358794 003556D4 94 21 FF D0 */ stwu r1, -0x30(r1)
|
|
/* 80358798 003556D8 93 E1 00 2C */ stw r31, 0x2c(r1)
|
|
/* 8035879C 003556DC 3B E5 00 00 */ addi r31, r5, 0
|
|
/* 803587A0 003556E0 93 C1 00 28 */ stw r30, 0x28(r1)
|
|
/* 803587A4 003556E4 3B C4 00 00 */ addi r30, r4, 0
|
|
/* 803587A8 003556E8 93 A1 00 24 */ stw r29, 0x24(r1)
|
|
/* 803587AC 003556EC 3B A3 00 00 */ addi r29, r3, 0
|
|
/* 803587B0 003556F0 93 81 00 20 */ stw r28, 0x20(r1)
|
|
/* 803587B4 003556F4 3B 87 00 00 */ addi r28, r7, 0
|
|
/* 803587B8 003556F8 40 82 00 0C */ bne lbl_803587C4
|
|
/* 803587BC 003556FC 57 E0 05 FF */ clrlwi. r0, r31, 0x17
|
|
/* 803587C0 00355700 41 82 00 0C */ beq lbl_803587CC
|
|
lbl_803587C4:
|
|
/* 803587C4 00355704 38 60 FF 80 */ li r3, -128
|
|
/* 803587C8 00355708 48 00 00 E4 */ b lbl_803588AC
|
|
lbl_803587CC:
|
|
/* 803587CC 0035570C 38 7D 00 00 */ addi r3, r29, 0
|
|
/* 803587D0 00355710 38 9F 00 00 */ addi r4, r31, 0
|
|
/* 803587D4 00355714 38 A6 00 00 */ addi r5, r6, 0
|
|
/* 803587D8 00355718 38 C1 00 1C */ addi r6, r1, 0x1c
|
|
/* 803587DC 0035571C 4B FF FC C5 */ bl __CARDSeek
|
|
/* 803587E0 00355720 2C 03 00 00 */ cmpwi r3, 0
|
|
/* 803587E4 00355724 40 80 00 08 */ bge lbl_803587EC
|
|
/* 803587E8 00355728 48 00 00 C4 */ b lbl_803588AC
|
|
lbl_803587EC:
|
|
/* 803587EC 0035572C 80 61 00 1C */ lwz r3, 0x1c(r1)
|
|
/* 803587F0 00355730 4B FF CF 8D */ bl __CARDGetDirBlock
|
|
/* 803587F4 00355734 80 1D 00 04 */ lwz r0, 4(r29)
|
|
/* 803587F8 00355738 54 00 30 32 */ slwi r0, r0, 6
|
|
/* 803587FC 0035573C 7C 83 02 14 */ add r4, r3, r0
|
|
/* 80358800 00355740 80 61 00 1C */ lwz r3, 0x1c(r1)
|
|
/* 80358804 00355744 4B FF F6 A1 */ bl __CARDIsReadable
|
|
/* 80358808 00355748 7C 64 1B 79 */ or. r4, r3, r3
|
|
/* 8035880C 0035574C 40 80 00 10 */ bge lbl_8035881C
|
|
/* 80358810 00355750 80 61 00 1C */ lwz r3, 0x1c(r1)
|
|
/* 80358814 00355754 4B FF B4 59 */ bl __CARDPutControlBlock
|
|
/* 80358818 00355758 48 00 00 94 */ b lbl_803588AC
|
|
lbl_8035881C:
|
|
/* 8035881C 0035575C 38 7E 00 00 */ addi r3, r30, 0
|
|
/* 80358820 00355760 38 9F 00 00 */ addi r4, r31, 0
|
|
/* 80358824 00355764 4B FE 2D 5D */ bl DCInvalidateRange
|
|
/* 80358828 00355768 28 1C 00 00 */ cmplwi r28, 0
|
|
/* 8035882C 0035576C 41 82 00 0C */ beq lbl_80358838
|
|
/* 80358830 00355770 7F 80 E3 78 */ mr r0, r28
|
|
/* 80358834 00355774 48 00 00 0C */ b lbl_80358840
|
|
lbl_80358838:
|
|
.global __CARDDefaultApiCallback
|
|
/* 80358838 00355778 3C 60 80 35 */ lis r3, __CARDDefaultApiCallback@ha
|
|
.global __CARDDefaultApiCallback
|
|
/* 8035883C 0035577C 38 03 2A 30 */ addi r0, r3, __CARDDefaultApiCallback@l
|
|
lbl_80358840:
|
|
/* 80358840 00355780 80 61 00 1C */ lwz r3, 0x1c(r1)
|
|
/* 80358844 00355784 90 03 00 D0 */ stw r0, 0xd0(r3)
|
|
/* 80358848 00355788 80 61 00 1C */ lwz r3, 0x1c(r1)
|
|
/* 8035884C 0035578C 80 9D 00 08 */ lwz r4, 8(r29)
|
|
/* 80358850 00355790 80 A3 00 0C */ lwz r5, 0xc(r3)
|
|
/* 80358854 00355794 38 05 FF FF */ addi r0, r5, -1
|
|
/* 80358858 00355798 7C 88 00 38 */ and r8, r4, r0
|
|
/* 8035885C 0035579C 7C 68 28 50 */ subf r3, r8, r5
|
|
/* 80358860 003557A0 7C 1F 18 00 */ cmpw r31, r3
|
|
/* 80358864 003557A4 40 80 00 08 */ bge lbl_8035886C
|
|
/* 80358868 003557A8 7F E3 FB 78 */ mr r3, r31
|
|
lbl_8035886C:
|
|
/* 8035886C 003557AC A0 1D 00 10 */ lhz r0, 0x10(r29)
|
|
.global ReadCallback
|
|
/* 80358870 003557B0 3C 80 80 36 */ lis r4, ReadCallback@ha
|
|
/* 80358874 003557B4 3B E3 00 00 */ addi r31, r3, 0
|
|
/* 80358878 003557B8 80 7D 00 00 */ lwz r3, 0(r29)
|
|
/* 8035887C 003557BC 7C 05 01 D6 */ mullw r0, r5, r0
|
|
.global ReadCallback
|
|
/* 80358880 003557C0 38 E4 86 58 */ addi r7, r4, ReadCallback@l
|
|
/* 80358884 003557C4 38 BF 00 00 */ addi r5, r31, 0
|
|
/* 80358888 003557C8 38 DE 00 00 */ addi r6, r30, 0
|
|
/* 8035888C 003557CC 7C 88 02 14 */ add r4, r8, r0
|
|
/* 80358890 003557D0 4B FF C9 D1 */ bl __CARDRead
|
|
/* 80358894 003557D4 7C 7D 1B 79 */ or. r29, r3, r3
|
|
/* 80358898 003557D8 40 80 00 10 */ bge lbl_803588A8
|
|
/* 8035889C 003557DC 80 61 00 1C */ lwz r3, 0x1c(r1)
|
|
/* 803588A0 003557E0 7F A4 EB 78 */ mr r4, r29
|
|
/* 803588A4 003557E4 4B FF B3 C9 */ bl __CARDPutControlBlock
|
|
lbl_803588A8:
|
|
/* 803588A8 003557E8 7F A3 EB 78 */ mr r3, r29
|
|
lbl_803588AC:
|
|
/* 803588AC 003557EC 80 01 00 34 */ lwz r0, 0x34(r1)
|
|
/* 803588B0 003557F0 83 E1 00 2C */ lwz r31, 0x2c(r1)
|
|
/* 803588B4 003557F4 83 C1 00 28 */ lwz r30, 0x28(r1)
|
|
/* 803588B8 003557F8 83 A1 00 24 */ lwz r29, 0x24(r1)
|
|
/* 803588BC 003557FC 83 81 00 20 */ lwz r28, 0x20(r1)
|
|
/* 803588C0 00355800 38 21 00 30 */ addi r1, r1, 0x30
|
|
/* 803588C4 00355804 7C 08 03 A6 */ mtlr r0
|
|
/* 803588C8 00355808 4E 80 00 20 */ blr
|
|
|
|
.global CARDRead
|
|
CARDRead:
|
|
/* 803588CC 0035580C 7C 08 02 A6 */ mflr r0
|
|
.global __CARDSyncCallback
|
|
/* 803588D0 00355810 3C E0 80 35 */ lis r7, __CARDSyncCallback@ha
|
|
/* 803588D4 00355814 90 01 00 04 */ stw r0, 4(r1)
|
|
.global __CARDSyncCallback
|
|
/* 803588D8 00355818 38 E7 2A 34 */ addi r7, r7, __CARDSyncCallback@l
|
|
/* 803588DC 0035581C 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 803588E0 00355820 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 803588E4 00355824 3B E3 00 00 */ addi r31, r3, 0
|
|
/* 803588E8 00355828 4B FF FE A1 */ bl CARDReadAsync
|
|
/* 803588EC 0035582C 2C 03 00 00 */ cmpwi r3, 0
|
|
/* 803588F0 00355830 40 80 00 08 */ bge lbl_803588F8
|
|
/* 803588F4 00355834 48 00 00 0C */ b lbl_80358900
|
|
lbl_803588F8:
|
|
/* 803588F8 00355838 80 7F 00 00 */ lwz r3, 0(r31)
|
|
/* 803588FC 0035583C 4B FF B5 25 */ bl __CARDSync
|
|
lbl_80358900:
|
|
/* 80358900 00355840 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 80358904 00355844 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 80358908 00355848 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 8035890C 0035584C 7C 08 03 A6 */ mtlr r0
|
|
/* 80358910 00355850 4E 80 00 20 */ blr
|