tp/asm/card/CARDFormat.s

554 lines
27 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 80357484
.global FormatCallback
FormatCallback:
/* 80357484 003543C4 7C 08 02 A6 */ mflr r0
/* 80357488 003543C8 90 01 00 04 */ stw r0, 4(r1)
/* 8035748C 003543CC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80357490 003543D0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80357494 003543D4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80357498 003543D8 3B C3 00 00 */ addi r30, r3, 0
/* 8035749C 003543DC 3C 60 80 45 */ lis r3, lbl_8044CBC0@ha
/* 803574A0 003543E0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803574A4 003543E4 1C BE 01 10 */ mulli r5, r30, 0x110
/* 803574A8 003543E8 93 81 00 10 */ stw r28, 0x10(r1)
/* 803574AC 003543EC 38 03 CB C0 */ addi r0, r3, lbl_8044CBC0@l
/* 803574B0 003543F0 7C 9C 23 79 */ or. r28, r4, r4
/* 803574B4 003543F4 7F E0 2A 14 */ add r31, r0, r5
/* 803574B8 003543F8 41 80 00 C4 */ blt lbl_8035757C
/* 803574BC 003543FC 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 803574C0 00354400 38 03 00 01 */ addi r0, r3, 1
/* 803574C4 00354404 90 1F 00 28 */ stw r0, 0x28(r31)
/* 803574C8 00354408 80 9F 00 28 */ lwz r4, 0x28(r31)
/* 803574CC 0035440C 2C 04 00 05 */ cmpwi r4, 5
/* 803574D0 00354410 40 80 00 28 */ bge lbl_803574F8
/* 803574D4 00354414 80 1F 00 0C */ lwz r0, 0xc(r31)
.global FormatCallback
/* 803574D8 00354418 3C 60 80 35 */ lis r3, FormatCallback@ha
.global FormatCallback
/* 803574DC 0035441C 38 A3 74 84 */ addi r5, r3, FormatCallback@l
/* 803574E0 00354420 7C 80 21 D6 */ mullw r4, r0, r4
/* 803574E4 00354424 38 7E 00 00 */ addi r3, r30, 0
/* 803574E8 00354428 4B FF C4 D1 */ bl __CARDEraseSector
/* 803574EC 0035442C 7C 7C 1B 79 */ or. r28, r3, r3
/* 803574F0 00354430 41 80 00 8C */ blt lbl_8035757C
/* 803574F4 00354434 48 00 00 B4 */ b lbl_803575A8
lbl_803574F8:
/* 803574F8 00354438 2C 04 00 0A */ cmpwi r4, 0xa
/* 803574FC 0035443C 40 80 00 3C */ bge lbl_80357538
/* 80357500 00354440 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80357504 00354444 38 C4 FF FB */ addi r6, r4, -5
.global FormatCallback
/* 80357508 00354448 3C 60 80 35 */ lis r3, FormatCallback@ha
/* 8035750C 0035444C 80 BF 00 80 */ lwz r5, 0x80(r31)
/* 80357510 00354450 7C 80 31 D6 */ mullw r4, r0, r6
/* 80357514 00354454 54 C0 68 24 */ slwi r0, r6, 0xd
.global FormatCallback
/* 80357518 00354458 38 E3 74 84 */ addi r7, r3, FormatCallback@l
/* 8035751C 0035445C 7C C5 02 14 */ add r6, r5, r0
/* 80357520 00354460 38 7E 00 00 */ addi r3, r30, 0
/* 80357524 00354464 38 A0 20 00 */ li r5, 0x2000
/* 80357528 00354468 4B FF DE 85 */ bl __CARDWrite
/* 8035752C 0035446C 7C 7C 1B 79 */ or. r28, r3, r3
/* 80357530 00354470 41 80 00 4C */ blt lbl_8035757C
/* 80357534 00354474 48 00 00 74 */ b lbl_803575A8
lbl_80357538:
/* 80357538 00354478 80 7F 00 80 */ lwz r3, 0x80(r31)
/* 8035753C 0035447C 38 A0 20 00 */ li r5, 0x2000
/* 80357540 00354480 38 03 20 00 */ addi r0, r3, 0x2000
/* 80357544 00354484 90 1F 00 84 */ stw r0, 0x84(r31)
/* 80357548 00354488 80 9F 00 80 */ lwz r4, 0x80(r31)
/* 8035754C 0035448C 80 7F 00 84 */ lwz r3, 0x84(r31)
/* 80357550 00354490 38 84 40 00 */ addi r4, r4, 0x4000
/* 80357554 00354494 4B CA BF ED */ bl func_80003540
/* 80357558 00354498 80 7F 00 80 */ lwz r3, 0x80(r31)
/* 8035755C 0035449C 38 A0 20 00 */ li r5, 0x2000
/* 80357560 003544A0 38 03 60 00 */ addi r0, r3, 0x6000
/* 80357564 003544A4 90 1F 00 88 */ stw r0, 0x88(r31)
/* 80357568 003544A8 80 9F 00 80 */ lwz r4, 0x80(r31)
/* 8035756C 003544AC 80 7F 00 88 */ lwz r3, 0x88(r31)
/* 80357570 003544B0 3C 84 00 01 */ addis r4, r4, 1
/* 80357574 003544B4 38 84 80 00 */ addi r4, r4, -32768
/* 80357578 003544B8 4B CA BF C9 */ bl func_80003540
lbl_8035757C:
/* 8035757C 003544BC 83 BF 00 D0 */ lwz r29, 0xd0(r31)
/* 80357580 003544C0 38 00 00 00 */ li r0, 0
/* 80357584 003544C4 38 7F 00 00 */ addi r3, r31, 0
/* 80357588 003544C8 90 1F 00 D0 */ stw r0, 0xd0(r31)
/* 8035758C 003544CC 7F 84 E3 78 */ mr r4, r28
/* 80357590 003544D0 4B FF C6 DD */ bl __CARDPutControlBlock
/* 80357594 003544D4 39 9D 00 00 */ addi r12, r29, 0
/* 80357598 003544D8 7D 88 03 A6 */ mtlr r12
/* 8035759C 003544DC 38 7E 00 00 */ addi r3, r30, 0
/* 803575A0 003544E0 38 9C 00 00 */ addi r4, r28, 0
/* 803575A4 003544E4 4E 80 00 21 */ blrl
lbl_803575A8:
/* 803575A8 003544E8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803575AC 003544EC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803575B0 003544F0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803575B4 003544F4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803575B8 003544F8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 803575BC 003544FC 38 21 00 20 */ addi r1, r1, 0x20
/* 803575C0 00354500 7C 08 03 A6 */ mtlr r0
/* 803575C4 00354504 4E 80 00 20 */ blr
.global __CARDFormatRegionAsync
__CARDFormatRegionAsync:
/* 803575C8 00354508 7C 08 02 A6 */ mflr r0
/* 803575CC 0035450C 90 01 00 04 */ stw r0, 4(r1)
/* 803575D0 00354510 94 21 FF A8 */ stwu r1, -0x58(r1)
/* 803575D4 00354514 BE 41 00 20 */ stmw r18, 0x20(r1)
/* 803575D8 00354518 3A 84 00 00 */ addi r20, r4, 0
/* 803575DC 0035451C 3A C3 00 00 */ addi r22, r3, 0
/* 803575E0 00354520 3A 65 00 00 */ addi r19, r5, 0
/* 803575E4 00354524 38 81 00 18 */ addi r4, r1, 0x18
/* 803575E8 00354528 4B FF C5 CD */ bl __CARDGetControlBlock
/* 803575EC 0035452C 2C 03 00 00 */ cmpwi r3, 0
/* 803575F0 00354530 40 80 00 08 */ bge lbl_803575F8
/* 803575F4 00354534 48 00 06 18 */ b lbl_80357C0C
lbl_803575F8:
/* 803575F8 00354538 80 61 00 18 */ lwz r3, 0x18(r1)
/* 803575FC 0035453C 38 80 00 FF */ li r4, 0xff
/* 80357600 00354540 38 A0 20 00 */ li r5, 0x2000
/* 80357604 00354544 83 63 00 80 */ lwz r27, 0x80(r3)
/* 80357608 00354548 7F 63 DB 78 */ mr r3, r27
/* 8035760C 0035454C 4B CA BE 4D */ bl func_80003458
/* 80357610 00354550 3C 60 CC 00 */ lis r3, 0xCC00206E@ha
/* 80357614 00354554 A2 43 20 6E */ lhz r18, 0xCC00206E@l(r3)
/* 80357618 00354558 B2 9B 00 24 */ sth r20, 0x24(r27)
/* 8035761C 0035455C 4B FE 8B 29 */ bl __OSLockSram
/* 80357620 00354560 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80357624 00354564 90 1B 00 14 */ stw r0, 0x14(r27)
/* 80357628 00354568 88 03 00 12 */ lbz r0, 0x12(r3)
/* 8035762C 0035456C 38 60 00 00 */ li r3, 0
/* 80357630 00354570 90 1B 00 18 */ stw r0, 0x18(r27)
/* 80357634 00354574 4B FE 8F 05 */ bl __OSUnlockSram
/* 80357638 00354578 4B FE B0 C5 */ bl OSGetTime
/* 8035763C 0035457C 3A A4 00 00 */ addi r21, r4, 0
/* 80357640 00354580 3A 83 00 00 */ addi r20, r3, 0
/* 80357644 00354584 3B 55 00 00 */ addi r26, r21, 0
/* 80357648 00354588 3B D4 00 00 */ addi r30, r20, 0
/* 8035764C 0035458C 4B FE 8B 55 */ bl __OSLockSramEx
/* 80357650 00354590 1C 16 00 0C */ mulli r0, r22, 0xc
/* 80357654 00354594 7F 23 02 14 */ add r25, r3, r0
/* 80357658 00354598 3C 60 41 C6 */ lis r3, 0x41C64E6D@ha
/* 8035765C 0035459C 3B 19 00 00 */ addi r24, r25, 0
/* 80357660 003545A0 3B E3 4E 6D */ addi r31, r3, 0x41C64E6D@l
/* 80357664 003545A4 3B 80 00 00 */ li r28, 0
/* 80357668 003545A8 3A E0 00 04 */ li r23, 4
/* 8035766C 003545AC 48 00 03 74 */ b lbl_803579E0
lbl_80357670:
/* 80357670 003545B0 7C BE F9 D6 */ mullw r5, r30, r31
/* 80357674 003545B4 7C 7A F8 16 */ mulhwu r3, r26, r31
/* 80357678 003545B8 3B C0 00 00 */ li r30, 0
/* 8035767C 003545BC 7C A5 1A 14 */ add r5, r5, r3
/* 80357680 003545C0 7C 7A F1 D6 */ mullw r3, r26, r30
/* 80357684 003545C4 7C 1A F9 D6 */ mullw r0, r26, r31
/* 80357688 003545C8 3B A0 30 39 */ li r29, 0x3039
/* 8035768C 003545CC 7C 80 E8 14 */ addc r4, r0, r29
/* 80357690 003545D0 7C 05 1A 14 */ add r0, r5, r3
/* 80357694 003545D4 7C 60 F1 14 */ adde r3, r0, r30
/* 80357698 003545D8 38 A0 00 10 */ li r5, 0x10
/* 8035769C 003545DC 48 00 AF F9 */ bl func_80362694
/* 803576A0 003545E0 7C C3 F9 D6 */ mullw r6, r3, r31
/* 803576A4 003545E4 88 18 00 00 */ lbz r0, 0(r24)
/* 803576A8 003545E8 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 803576AC 003545EC 7C C6 2A 14 */ add r6, r6, r5
/* 803576B0 003545F0 7D 04 00 14 */ addc r8, r4, r0
/* 803576B4 003545F4 7F 87 07 34 */ extsh r7, r28
/* 803576B8 003545F8 7C A4 F1 D6 */ mullw r5, r4, r30
/* 803576BC 003545FC 7D 1B 39 AE */ stbx r8, r27, r7
/* 803576C0 00354600 7C 04 F9 D6 */ mullw r0, r4, r31
/* 803576C4 00354604 7C 80 E8 14 */ addc r4, r0, r29
/* 803576C8 00354608 7C 06 2A 14 */ add r0, r6, r5
/* 803576CC 0035460C 7C 60 F1 14 */ adde r3, r0, r30
/* 803576D0 00354610 38 A0 00 10 */ li r5, 0x10
/* 803576D4 00354614 48 00 AF C1 */ bl func_80362694
/* 803576D8 00354618 3B 40 7F FF */ li r26, 0x7fff
/* 803576DC 0035461C 7C 60 F0 38 */ and r0, r3, r30
/* 803576E0 00354620 7C 84 D0 38 */ and r4, r4, r26
/* 803576E4 00354624 7C A0 F9 D6 */ mullw r5, r0, r31
/* 803576E8 00354628 7C 64 F8 16 */ mulhwu r3, r4, r31
/* 803576EC 0035462C 7C A5 1A 14 */ add r5, r5, r3
/* 803576F0 00354630 7C 64 F1 D6 */ mullw r3, r4, r30
/* 803576F4 00354634 7C 04 F9 D6 */ mullw r0, r4, r31
/* 803576F8 00354638 7C 80 E8 14 */ addc r4, r0, r29
/* 803576FC 0035463C 7C 05 1A 14 */ add r0, r5, r3
/* 80357700 00354640 7C 60 F1 14 */ adde r3, r0, r30
/* 80357704 00354644 38 A0 00 10 */ li r5, 0x10
/* 80357708 00354648 48 00 AF 8D */ bl func_80362694
/* 8035770C 0035464C 7C C3 F9 D6 */ mullw r6, r3, r31
/* 80357710 00354650 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 80357714 00354654 39 3C 00 01 */ addi r9, r28, 1
/* 80357718 00354658 7D 29 07 34 */ extsh r9, r9
/* 8035771C 0035465C 7C 19 48 AE */ lbzx r0, r25, r9
/* 80357720 00354660 7C C6 2A 14 */ add r6, r6, r5
/* 80357724 00354664 7C A4 F1 D6 */ mullw r5, r4, r30
/* 80357728 00354668 7C E4 00 14 */ addc r7, r4, r0
/* 8035772C 0035466C 7C 04 F9 D6 */ mullw r0, r4, r31
/* 80357730 00354670 7C FB 49 AE */ stbx r7, r27, r9
/* 80357734 00354674 7C 80 E8 14 */ addc r4, r0, r29
/* 80357738 00354678 7C 06 2A 14 */ add r0, r6, r5
/* 8035773C 0035467C 7C 60 F1 14 */ adde r3, r0, r30
/* 80357740 00354680 38 A0 00 10 */ li r5, 0x10
/* 80357744 00354684 48 00 AF 51 */ bl func_80362694
/* 80357748 00354688 7C 60 F0 38 */ and r0, r3, r30
/* 8035774C 0035468C 7C 84 D0 38 */ and r4, r4, r26
/* 80357750 00354690 7C A0 F9 D6 */ mullw r5, r0, r31
/* 80357754 00354694 7C 64 F8 16 */ mulhwu r3, r4, r31
/* 80357758 00354698 7C A5 1A 14 */ add r5, r5, r3
/* 8035775C 0035469C 7C 64 F1 D6 */ mullw r3, r4, r30
/* 80357760 003546A0 7C 04 F9 D6 */ mullw r0, r4, r31
/* 80357764 003546A4 7C 80 E8 14 */ addc r4, r0, r29
/* 80357768 003546A8 7C 05 1A 14 */ add r0, r5, r3
/* 8035776C 003546AC 7C 60 F1 14 */ adde r3, r0, r30
/* 80357770 003546B0 38 A0 00 10 */ li r5, 0x10
/* 80357774 003546B4 48 00 AF 21 */ bl func_80362694
/* 80357778 003546B8 7C C3 F9 D6 */ mullw r6, r3, r31
/* 8035777C 003546BC 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 80357780 003546C0 39 3C 00 02 */ addi r9, r28, 2
/* 80357784 003546C4 7D 29 07 34 */ extsh r9, r9
/* 80357788 003546C8 7C 19 48 AE */ lbzx r0, r25, r9
/* 8035778C 003546CC 7C C6 2A 14 */ add r6, r6, r5
/* 80357790 003546D0 7C A4 F1 D6 */ mullw r5, r4, r30
/* 80357794 003546D4 7C E4 00 14 */ addc r7, r4, r0
/* 80357798 003546D8 7C 04 F9 D6 */ mullw r0, r4, r31
/* 8035779C 003546DC 7C FB 49 AE */ stbx r7, r27, r9
/* 803577A0 003546E0 7C 80 E8 14 */ addc r4, r0, r29
/* 803577A4 003546E4 7C 06 2A 14 */ add r0, r6, r5
/* 803577A8 003546E8 7C 60 F1 14 */ adde r3, r0, r30
/* 803577AC 003546EC 38 A0 00 10 */ li r5, 0x10
/* 803577B0 003546F0 48 00 AE E5 */ bl func_80362694
/* 803577B4 003546F4 7C 60 F0 38 */ and r0, r3, r30
/* 803577B8 003546F8 7C 84 D0 38 */ and r4, r4, r26
/* 803577BC 003546FC 7C A0 F9 D6 */ mullw r5, r0, r31
/* 803577C0 00354700 7C 64 F8 16 */ mulhwu r3, r4, r31
/* 803577C4 00354704 7C A5 1A 14 */ add r5, r5, r3
/* 803577C8 00354708 7C 64 F1 D6 */ mullw r3, r4, r30
/* 803577CC 0035470C 7C 04 F9 D6 */ mullw r0, r4, r31
/* 803577D0 00354710 7C 80 E8 14 */ addc r4, r0, r29
/* 803577D4 00354714 7C 05 1A 14 */ add r0, r5, r3
/* 803577D8 00354718 7C 60 F1 14 */ adde r3, r0, r30
/* 803577DC 0035471C 38 A0 00 10 */ li r5, 0x10
/* 803577E0 00354720 48 00 AE B5 */ bl func_80362694
/* 803577E4 00354724 7C C3 F9 D6 */ mullw r6, r3, r31
/* 803577E8 00354728 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 803577EC 0035472C 39 3C 00 03 */ addi r9, r28, 3
/* 803577F0 00354730 7D 29 07 34 */ extsh r9, r9
/* 803577F4 00354734 7C 19 48 AE */ lbzx r0, r25, r9
/* 803577F8 00354738 7C C6 2A 14 */ add r6, r6, r5
/* 803577FC 0035473C 7C A4 F1 D6 */ mullw r5, r4, r30
/* 80357800 00354740 7C E4 00 14 */ addc r7, r4, r0
/* 80357804 00354744 7C 04 F9 D6 */ mullw r0, r4, r31
/* 80357808 00354748 7C FB 49 AE */ stbx r7, r27, r9
/* 8035780C 0035474C 7C 80 E8 14 */ addc r4, r0, r29
/* 80357810 00354750 7C 06 2A 14 */ add r0, r6, r5
/* 80357814 00354754 7C 60 F1 14 */ adde r3, r0, r30
/* 80357818 00354758 38 A0 00 10 */ li r5, 0x10
/* 8035781C 0035475C 48 00 AE 79 */ bl func_80362694
/* 80357820 00354760 7C 60 F0 38 */ and r0, r3, r30
/* 80357824 00354764 7C 84 D0 38 */ and r4, r4, r26
/* 80357828 00354768 7C A0 F9 D6 */ mullw r5, r0, r31
/* 8035782C 0035476C 7C 64 F8 16 */ mulhwu r3, r4, r31
/* 80357830 00354770 7C A5 1A 14 */ add r5, r5, r3
/* 80357834 00354774 7C 64 F1 D6 */ mullw r3, r4, r30
/* 80357838 00354778 7C 04 F9 D6 */ mullw r0, r4, r31
/* 8035783C 0035477C 7C 80 E8 14 */ addc r4, r0, r29
/* 80357840 00354780 7C 05 1A 14 */ add r0, r5, r3
/* 80357844 00354784 7C 60 F1 14 */ adde r3, r0, r30
/* 80357848 00354788 38 A0 00 10 */ li r5, 0x10
/* 8035784C 0035478C 48 00 AE 49 */ bl func_80362694
/* 80357850 00354790 7C C3 F9 D6 */ mullw r6, r3, r31
/* 80357854 00354794 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 80357858 00354798 39 3C 00 04 */ addi r9, r28, 4
/* 8035785C 0035479C 7D 29 07 34 */ extsh r9, r9
/* 80357860 003547A0 7C 19 48 AE */ lbzx r0, r25, r9
/* 80357864 003547A4 7C C6 2A 14 */ add r6, r6, r5
/* 80357868 003547A8 7C A4 F1 D6 */ mullw r5, r4, r30
/* 8035786C 003547AC 7C E4 00 14 */ addc r7, r4, r0
/* 80357870 003547B0 7C 04 F9 D6 */ mullw r0, r4, r31
/* 80357874 003547B4 7C FB 49 AE */ stbx r7, r27, r9
/* 80357878 003547B8 7C 80 E8 14 */ addc r4, r0, r29
/* 8035787C 003547BC 7C 06 2A 14 */ add r0, r6, r5
/* 80357880 003547C0 7C 60 F1 14 */ adde r3, r0, r30
/* 80357884 003547C4 38 A0 00 10 */ li r5, 0x10
/* 80357888 003547C8 48 00 AE 0D */ bl func_80362694
/* 8035788C 003547CC 7C 60 F0 38 */ and r0, r3, r30
/* 80357890 003547D0 7C 84 D0 38 */ and r4, r4, r26
/* 80357894 003547D4 7C A0 F9 D6 */ mullw r5, r0, r31
/* 80357898 003547D8 7C 64 F8 16 */ mulhwu r3, r4, r31
/* 8035789C 003547DC 7C A5 1A 14 */ add r5, r5, r3
/* 803578A0 003547E0 7C 64 F1 D6 */ mullw r3, r4, r30
/* 803578A4 003547E4 7C 04 F9 D6 */ mullw r0, r4, r31
/* 803578A8 003547E8 7C 80 E8 14 */ addc r4, r0, r29
/* 803578AC 003547EC 7C 05 1A 14 */ add r0, r5, r3
/* 803578B0 003547F0 7C 60 F1 14 */ adde r3, r0, r30
/* 803578B4 003547F4 38 A0 00 10 */ li r5, 0x10
/* 803578B8 003547F8 48 00 AD DD */ bl func_80362694
/* 803578BC 003547FC 7C C3 F9 D6 */ mullw r6, r3, r31
/* 803578C0 00354800 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 803578C4 00354804 39 3C 00 05 */ addi r9, r28, 5
/* 803578C8 00354808 7D 29 07 34 */ extsh r9, r9
/* 803578CC 0035480C 7C 19 48 AE */ lbzx r0, r25, r9
/* 803578D0 00354810 7C C6 2A 14 */ add r6, r6, r5
/* 803578D4 00354814 7C A4 F1 D6 */ mullw r5, r4, r30
/* 803578D8 00354818 7C E4 00 14 */ addc r7, r4, r0
/* 803578DC 0035481C 7C 04 F9 D6 */ mullw r0, r4, r31
/* 803578E0 00354820 7C FB 49 AE */ stbx r7, r27, r9
/* 803578E4 00354824 7C 80 E8 14 */ addc r4, r0, r29
/* 803578E8 00354828 7C 06 2A 14 */ add r0, r6, r5
/* 803578EC 0035482C 7C 60 F1 14 */ adde r3, r0, r30
/* 803578F0 00354830 38 A0 00 10 */ li r5, 0x10
/* 803578F4 00354834 48 00 AD A1 */ bl func_80362694
/* 803578F8 00354838 7C 60 F0 38 */ and r0, r3, r30
/* 803578FC 0035483C 7C 84 D0 38 */ and r4, r4, r26
/* 80357900 00354840 7C A0 F9 D6 */ mullw r5, r0, r31
/* 80357904 00354844 7C 64 F8 16 */ mulhwu r3, r4, r31
/* 80357908 00354848 7C A5 1A 14 */ add r5, r5, r3
/* 8035790C 0035484C 7C 64 F1 D6 */ mullw r3, r4, r30
/* 80357910 00354850 7C 04 F9 D6 */ mullw r0, r4, r31
/* 80357914 00354854 7C 80 E8 14 */ addc r4, r0, r29
/* 80357918 00354858 7C 05 1A 14 */ add r0, r5, r3
/* 8035791C 0035485C 7C 60 F1 14 */ adde r3, r0, r30
/* 80357920 00354860 38 A0 00 10 */ li r5, 0x10
/* 80357924 00354864 48 00 AD 71 */ bl func_80362694
/* 80357928 00354868 7C C3 F9 D6 */ mullw r6, r3, r31
/* 8035792C 0035486C 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 80357930 00354870 39 3C 00 06 */ addi r9, r28, 6
/* 80357934 00354874 7D 29 07 34 */ extsh r9, r9
/* 80357938 00354878 7C 19 48 AE */ lbzx r0, r25, r9
/* 8035793C 0035487C 7C C6 2A 14 */ add r6, r6, r5
/* 80357940 00354880 7C A4 F1 D6 */ mullw r5, r4, r30
/* 80357944 00354884 7C E4 00 14 */ addc r7, r4, r0
/* 80357948 00354888 7C 04 F9 D6 */ mullw r0, r4, r31
/* 8035794C 0035488C 7C FB 49 AE */ stbx r7, r27, r9
/* 80357950 00354890 7C 80 E8 14 */ addc r4, r0, r29
/* 80357954 00354894 7C 06 2A 14 */ add r0, r6, r5
/* 80357958 00354898 7C 60 F1 14 */ adde r3, r0, r30
/* 8035795C 0035489C 38 A0 00 10 */ li r5, 0x10
/* 80357960 003548A0 48 00 AD 35 */ bl func_80362694
/* 80357964 003548A4 7C 60 F0 38 */ and r0, r3, r30
/* 80357968 003548A8 7C 84 D0 38 */ and r4, r4, r26
/* 8035796C 003548AC 7C A0 F9 D6 */ mullw r5, r0, r31
/* 80357970 003548B0 7C 64 F8 16 */ mulhwu r3, r4, r31
/* 80357974 003548B4 7C A5 1A 14 */ add r5, r5, r3
/* 80357978 003548B8 7C 64 F1 D6 */ mullw r3, r4, r30
/* 8035797C 003548BC 7C 04 F9 D6 */ mullw r0, r4, r31
/* 80357980 003548C0 7C 80 E8 14 */ addc r4, r0, r29
/* 80357984 003548C4 7C 05 1A 14 */ add r0, r5, r3
/* 80357988 003548C8 7C 60 F1 14 */ adde r3, r0, r30
/* 8035798C 003548CC 38 A0 00 10 */ li r5, 0x10
/* 80357990 003548D0 48 00 AD 05 */ bl func_80362694
/* 80357994 003548D4 7C C3 F9 D6 */ mullw r6, r3, r31
/* 80357998 003548D8 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 8035799C 003548DC 39 3C 00 07 */ addi r9, r28, 7
/* 803579A0 003548E0 7D 29 07 34 */ extsh r9, r9
/* 803579A4 003548E4 7C 19 48 AE */ lbzx r0, r25, r9
/* 803579A8 003548E8 7C C6 2A 14 */ add r6, r6, r5
/* 803579AC 003548EC 7C A4 F1 D6 */ mullw r5, r4, r30
/* 803579B0 003548F0 7C E4 00 14 */ addc r7, r4, r0
/* 803579B4 003548F4 7C 04 F9 D6 */ mullw r0, r4, r31
/* 803579B8 003548F8 7C FB 49 AE */ stbx r7, r27, r9
/* 803579BC 003548FC 7C 80 E8 14 */ addc r4, r0, r29
/* 803579C0 00354900 7C 06 2A 14 */ add r0, r6, r5
/* 803579C4 00354904 7C 60 F1 14 */ adde r3, r0, r30
/* 803579C8 00354908 38 A0 00 10 */ li r5, 0x10
/* 803579CC 0035490C 48 00 AC C9 */ bl func_80362694
/* 803579D0 00354910 7C 9A D0 38 */ and r26, r4, r26
/* 803579D4 00354914 7C 7E F0 38 */ and r30, r3, r30
/* 803579D8 00354918 3B 18 00 08 */ addi r24, r24, 8
/* 803579DC 0035491C 3B 9C 00 08 */ addi r28, r28, 8
lbl_803579E0:
/* 803579E0 00354920 7F 80 07 34 */ extsh r0, r28
/* 803579E4 00354924 7C 00 B8 00 */ cmpw r0, r23
/* 803579E8 00354928 41 80 FC 88 */ blt lbl_80357670
/* 803579EC 0035492C 48 00 02 18 */ b lbl_80357C04
lbl_803579F0:
/* 803579F0 00354930 3C 60 41 C6 */ lis r3, 0x41C64E6D@ha
/* 803579F4 00354934 3B 23 4E 6D */ addi r25, r3, 0x41C64E6D@l
/* 803579F8 00354938 48 00 00 80 */ b lbl_80357A78
lbl_803579FC:
/* 803579FC 0035493C 7C BE C9 D6 */ mullw r5, r30, r25
/* 80357A00 00354940 7C 7A C8 16 */ mulhwu r3, r26, r25
/* 80357A04 00354944 3B 00 00 00 */ li r24, 0
/* 80357A08 00354948 7C A5 1A 14 */ add r5, r5, r3
/* 80357A0C 0035494C 7C 7A C1 D6 */ mullw r3, r26, r24
/* 80357A10 00354950 7C 1A C9 D6 */ mullw r0, r26, r25
/* 80357A14 00354954 3A E0 30 39 */ li r23, 0x3039
/* 80357A18 00354958 7C 80 B8 14 */ addc r4, r0, r23
/* 80357A1C 0035495C 7C 05 1A 14 */ add r0, r5, r3
/* 80357A20 00354960 7C 60 C1 14 */ adde r3, r0, r24
/* 80357A24 00354964 38 A0 00 10 */ li r5, 0x10
/* 80357A28 00354968 48 00 AC 6D */ bl func_80362694
/* 80357A2C 0035496C 7C C3 C9 D6 */ mullw r6, r3, r25
/* 80357A30 00354970 88 1D 00 00 */ lbz r0, 0(r29)
/* 80357A34 00354974 7C A4 C8 16 */ mulhwu r5, r4, r25
/* 80357A38 00354978 7C C6 2A 14 */ add r6, r6, r5
/* 80357A3C 0035497C 7D 04 00 14 */ addc r8, r4, r0
/* 80357A40 00354980 7F 87 07 34 */ extsh r7, r28
/* 80357A44 00354984 7C A4 C1 D6 */ mullw r5, r4, r24
/* 80357A48 00354988 7D 1B 39 AE */ stbx r8, r27, r7
/* 80357A4C 0035498C 7C 04 C9 D6 */ mullw r0, r4, r25
/* 80357A50 00354990 7C 80 B8 14 */ addc r4, r0, r23
/* 80357A54 00354994 7C 06 2A 14 */ add r0, r6, r5
/* 80357A58 00354998 7C 60 C1 14 */ adde r3, r0, r24
/* 80357A5C 0035499C 38 A0 00 10 */ li r5, 0x10
/* 80357A60 003549A0 48 00 AC 35 */ bl func_80362694
/* 80357A64 003549A4 38 00 7F FF */ li r0, 0x7fff
/* 80357A68 003549A8 7C 9A 00 38 */ and r26, r4, r0
/* 80357A6C 003549AC 7C 7E C0 38 */ and r30, r3, r24
/* 80357A70 003549B0 3B BD 00 01 */ addi r29, r29, 1
/* 80357A74 003549B4 3B 9C 00 01 */ addi r28, r28, 1
lbl_80357A78:
/* 80357A78 003549B8 7F 80 07 34 */ extsh r0, r28
/* 80357A7C 003549BC 2C 00 00 0C */ cmpwi r0, 0xc
/* 80357A80 003549C0 41 80 FF 7C */ blt lbl_803579FC
/* 80357A84 003549C4 38 60 00 00 */ li r3, 0
/* 80357A88 003549C8 4B FE 8A D5 */ bl __OSUnlockSramEx
/* 80357A8C 003549CC 92 5B 00 1C */ stw r18, 0x1c(r27)
/* 80357A90 003549D0 3A 40 00 00 */ li r18, 0
/* 80357A94 003549D4 38 7B 00 00 */ addi r3, r27, 0
/* 80357A98 003549D8 92 BB 00 10 */ stw r21, 0x10(r27)
/* 80357A9C 003549DC 38 BB 01 FC */ addi r5, r27, 0x1fc
/* 80357AA0 003549E0 38 DB 01 FE */ addi r6, r27, 0x1fe
/* 80357AA4 003549E4 92 9B 00 0C */ stw r20, 0xc(r27)
/* 80357AA8 003549E8 38 80 01 FC */ li r4, 0x1fc
/* 80357AAC 003549EC B2 5B 00 20 */ sth r18, 0x20(r27)
/* 80357AB0 003549F0 80 E1 00 18 */ lwz r7, 0x18(r1)
/* 80357AB4 003549F4 A0 07 00 08 */ lhz r0, 8(r7)
/* 80357AB8 003549F8 B0 1B 00 22 */ sth r0, 0x22(r27)
/* 80357ABC 003549FC 4B FF DF 25 */ bl __CARDCheckSum
/* 80357AC0 00354A00 48 00 00 4C */ b lbl_80357B0C
lbl_80357AC4:
/* 80357AC4 00354A04 80 81 00 18 */ lwz r4, 0x18(r1)
/* 80357AC8 00354A08 7E 43 07 34 */ extsh r3, r18
/* 80357ACC 00354A0C 38 03 00 01 */ addi r0, r3, 1
/* 80357AD0 00354A10 80 64 00 80 */ lwz r3, 0x80(r4)
/* 80357AD4 00354A14 54 00 68 24 */ slwi r0, r0, 0xd
/* 80357AD8 00354A18 38 80 00 FF */ li r4, 0xff
/* 80357ADC 00354A1C 7E 83 02 14 */ add r20, r3, r0
/* 80357AE0 00354A20 38 74 00 00 */ addi r3, r20, 0
/* 80357AE4 00354A24 38 A0 20 00 */ li r5, 0x2000
/* 80357AE8 00354A28 4B CA B9 71 */ bl func_80003458
/* 80357AEC 00354A2C 38 94 1F C0 */ addi r4, r20, 0x1fc0
/* 80357AF0 00354A30 B2 54 1F FA */ sth r18, 0x1ffa(r20)
/* 80357AF4 00354A34 38 74 00 00 */ addi r3, r20, 0
/* 80357AF8 00354A38 38 A4 00 3C */ addi r5, r4, 0x3c
/* 80357AFC 00354A3C 38 C4 00 3E */ addi r6, r4, 0x3e
/* 80357B00 00354A40 38 80 1F FC */ li r4, 0x1ffc
/* 80357B04 00354A44 4B FF DE DD */ bl __CARDCheckSum
/* 80357B08 00354A48 3A 52 00 01 */ addi r18, r18, 1
lbl_80357B0C:
/* 80357B0C 00354A4C 7E 40 07 34 */ extsh r0, r18
/* 80357B10 00354A50 2C 00 00 02 */ cmpwi r0, 2
/* 80357B14 00354A54 41 80 FF B0 */ blt lbl_80357AC4
/* 80357B18 00354A58 3A 40 00 00 */ li r18, 0
/* 80357B1C 00354A5C 48 00 00 60 */ b lbl_80357B7C
lbl_80357B20:
/* 80357B20 00354A60 80 81 00 18 */ lwz r4, 0x18(r1)
/* 80357B24 00354A64 7E 43 07 34 */ extsh r3, r18
/* 80357B28 00354A68 38 03 00 03 */ addi r0, r3, 3
/* 80357B2C 00354A6C 80 64 00 80 */ lwz r3, 0x80(r4)
/* 80357B30 00354A70 54 00 68 24 */ slwi r0, r0, 0xd
/* 80357B34 00354A74 38 80 00 00 */ li r4, 0
/* 80357B38 00354A78 7E 83 02 14 */ add r20, r3, r0
/* 80357B3C 00354A7C 38 74 00 00 */ addi r3, r20, 0
/* 80357B40 00354A80 38 A0 20 00 */ li r5, 0x2000
/* 80357B44 00354A84 4B CA B9 15 */ bl func_80003458
/* 80357B48 00354A88 B2 54 00 04 */ sth r18, 4(r20)
/* 80357B4C 00354A8C 38 00 00 04 */ li r0, 4
/* 80357B50 00354A90 38 B4 00 00 */ addi r5, r20, 0
/* 80357B54 00354A94 80 81 00 18 */ lwz r4, 0x18(r1)
/* 80357B58 00354A98 38 74 00 04 */ addi r3, r20, 4
/* 80357B5C 00354A9C 38 D4 00 02 */ addi r6, r20, 2
/* 80357B60 00354AA0 A0 E4 00 10 */ lhz r7, 0x10(r4)
/* 80357B64 00354AA4 38 80 1F FC */ li r4, 0x1ffc
/* 80357B68 00354AA8 38 E7 FF FB */ addi r7, r7, -5
/* 80357B6C 00354AAC B0 F4 00 06 */ sth r7, 6(r20)
/* 80357B70 00354AB0 B0 14 00 08 */ sth r0, 8(r20)
/* 80357B74 00354AB4 4B FF DE 6D */ bl __CARDCheckSum
/* 80357B78 00354AB8 3A 52 00 01 */ addi r18, r18, 1
lbl_80357B7C:
/* 80357B7C 00354ABC 7E 40 07 34 */ extsh r0, r18
/* 80357B80 00354AC0 2C 00 00 02 */ cmpwi r0, 2
/* 80357B84 00354AC4 41 80 FF 9C */ blt lbl_80357B20
/* 80357B88 00354AC8 28 13 00 00 */ cmplwi r19, 0
/* 80357B8C 00354ACC 41 82 00 0C */ beq lbl_80357B98
/* 80357B90 00354AD0 7E 60 9B 78 */ mr r0, r19
/* 80357B94 00354AD4 48 00 00 0C */ b lbl_80357BA0
lbl_80357B98:
.global __CARDDefaultApiCallback
/* 80357B98 00354AD8 3C 60 80 35 */ lis r3, __CARDDefaultApiCallback@ha
.global __CARDDefaultApiCallback
/* 80357B9C 00354ADC 38 03 2A 30 */ addi r0, r3, __CARDDefaultApiCallback@l
lbl_80357BA0:
/* 80357BA0 00354AE0 80 A1 00 18 */ lwz r5, 0x18(r1)
/* 80357BA4 00354AE4 3C 60 00 01 */ lis r3, 0x0000A000@ha
/* 80357BA8 00354AE8 38 83 A0 00 */ addi r4, r3, 0x0000A000@l
/* 80357BAC 00354AEC 90 05 00 D0 */ stw r0, 0xd0(r5)
/* 80357BB0 00354AF0 80 61 00 18 */ lwz r3, 0x18(r1)
/* 80357BB4 00354AF4 80 63 00 80 */ lwz r3, 0x80(r3)
/* 80357BB8 00354AF8 4B FE 3A 25 */ bl DCStoreRange
/* 80357BBC 00354AFC 80 81 00 18 */ lwz r4, 0x18(r1)
/* 80357BC0 00354B00 38 00 00 00 */ li r0, 0
.global FormatCallback
/* 80357BC4 00354B04 3C 60 80 35 */ lis r3, FormatCallback@ha
/* 80357BC8 00354B08 90 04 00 28 */ stw r0, 0x28(r4)
.global FormatCallback
/* 80357BCC 00354B0C 38 A3 74 84 */ addi r5, r3, FormatCallback@l
/* 80357BD0 00354B10 38 76 00 00 */ addi r3, r22, 0
/* 80357BD4 00354B14 80 C1 00 18 */ lwz r6, 0x18(r1)
/* 80357BD8 00354B18 80 86 00 0C */ lwz r4, 0xc(r6)
/* 80357BDC 00354B1C 80 06 00 28 */ lwz r0, 0x28(r6)
/* 80357BE0 00354B20 7C 84 01 D6 */ mullw r4, r4, r0
/* 80357BE4 00354B24 4B FF BD D5 */ bl __CARDEraseSector
/* 80357BE8 00354B28 7C 72 1B 79 */ or. r18, r3, r3
/* 80357BEC 00354B2C 40 80 00 10 */ bge lbl_80357BFC
/* 80357BF0 00354B30 80 61 00 18 */ lwz r3, 0x18(r1)
/* 80357BF4 00354B34 7E 44 93 78 */ mr r4, r18
/* 80357BF8 00354B38 4B FF C0 75 */ bl __CARDPutControlBlock
lbl_80357BFC:
/* 80357BFC 00354B3C 7E 43 93 78 */ mr r3, r18
/* 80357C00 00354B40 48 00 00 0C */ b lbl_80357C0C
lbl_80357C04:
/* 80357C04 00354B44 7F B9 02 14 */ add r29, r25, r0
/* 80357C08 00354B48 4B FF FD E8 */ b lbl_803579F0
lbl_80357C0C:
/* 80357C0C 00354B4C BA 41 00 20 */ lmw r18, 0x20(r1)
/* 80357C10 00354B50 80 01 00 5C */ lwz r0, 0x5c(r1)
/* 80357C14 00354B54 38 21 00 58 */ addi r1, r1, 0x58
/* 80357C18 00354B58 7C 08 03 A6 */ mtlr r0
/* 80357C1C 00354B5C 4E 80 00 20 */ blr
.global CARDFormat
CARDFormat:
/* 80357C20 00354B60 7C 08 02 A6 */ mflr r0
/* 80357C24 00354B64 90 01 00 04 */ stw r0, 4(r1)
/* 80357C28 00354B68 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80357C2C 00354B6C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80357C30 00354B70 7C 7F 1B 78 */ mr r31, r3
/* 80357C34 00354B74 4B FF BF 41 */ bl __CARDGetFontEncode
.global __CARDSyncCallback
/* 80357C38 00354B78 3C A0 80 35 */ lis r5, __CARDSyncCallback@ha
/* 80357C3C 00354B7C 38 83 00 00 */ addi r4, r3, 0
.global __CARDSyncCallback
/* 80357C40 00354B80 38 A5 2A 34 */ addi r5, r5, __CARDSyncCallback@l
/* 80357C44 00354B84 38 7F 00 00 */ addi r3, r31, 0
/* 80357C48 00354B88 4B FF F9 81 */ bl __CARDFormatRegionAsync
/* 80357C4C 00354B8C 2C 03 00 00 */ cmpwi r3, 0
/* 80357C50 00354B90 40 80 00 08 */ bge lbl_80357C58
/* 80357C54 00354B94 48 00 00 0C */ b lbl_80357C60
lbl_80357C58:
/* 80357C58 00354B98 7F E3 FB 78 */ mr r3, r31
/* 80357C5C 00354B9C 4B FF C1 C5 */ bl __CARDSync
lbl_80357C60:
/* 80357C60 00354BA0 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80357C64 00354BA4 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80357C68 00354BA8 38 21 00 18 */ addi r1, r1, 0x18
/* 80357C6C 00354BAC 7C 08 03 A6 */ mtlr r0
/* 80357C70 00354BB0 4E 80 00 20 */ blr