Files
oot-gc/asm/CARDCheck.s

1103 lines
50 KiB
ArmAsm

# CARDCheck.c
.include "macros.inc"
.section .text, "ax"
.balign 4
glabel __CARDCheckSum
/* 0B8600 800BDBA0 38000000 */ li r0, 0
/* 0B8604 800BDBA4 7C840E70 */ srawi r4, r4, 1
/* 0B8608 800BDBA8 B0060000 */ sth r0, 0(r6)
/* 0B860C 800BDBAC 7C840195 */ addze. r4, r4
/* 0B8610 800BDBB0 B0050000 */ sth r0, 0(r5)
/* 0B8614 800BDBB4 40810170 */ ble lbl_800BDD24
/* 0B8618 800BDBB8 5480E8FF */ rlwinm. r0, r4, 0x1d, 3, 0x1f
/* 0B861C 800BDBBC 7C0903A6 */ mtctr r0
/* 0B8620 800BDBC0 41820134 */ beq lbl_800BDCF4
lbl_800BDBC4:
/* 0B8624 800BDBC4 A0E50000 */ lhz r7, 0(r5)
/* 0B8628 800BDBC8 A0030000 */ lhz r0, 0(r3)
/* 0B862C 800BDBCC 7C070214 */ add r0, r7, r0
/* 0B8630 800BDBD0 B0050000 */ sth r0, 0(r5)
/* 0B8634 800BDBD4 A0030000 */ lhz r0, 0(r3)
/* 0B8638 800BDBD8 A0E60000 */ lhz r7, 0(r6)
/* 0B863C 800BDBDC 7C0000F8 */ nor r0, r0, r0
/* 0B8640 800BDBE0 7C070214 */ add r0, r7, r0
/* 0B8644 800BDBE4 B0060000 */ sth r0, 0(r6)
/* 0B8648 800BDBE8 A0E50000 */ lhz r7, 0(r5)
/* 0B864C 800BDBEC A0030002 */ lhz r0, 2(r3)
/* 0B8650 800BDBF0 7C070214 */ add r0, r7, r0
/* 0B8654 800BDBF4 B0050000 */ sth r0, 0(r5)
/* 0B8658 800BDBF8 A0030002 */ lhz r0, 2(r3)
/* 0B865C 800BDBFC A0E60000 */ lhz r7, 0(r6)
/* 0B8660 800BDC00 7C0000F8 */ nor r0, r0, r0
/* 0B8664 800BDC04 7C070214 */ add r0, r7, r0
/* 0B8668 800BDC08 B0060000 */ sth r0, 0(r6)
/* 0B866C 800BDC0C A0E50000 */ lhz r7, 0(r5)
/* 0B8670 800BDC10 A0030004 */ lhz r0, 4(r3)
/* 0B8674 800BDC14 7C070214 */ add r0, r7, r0
/* 0B8678 800BDC18 B0050000 */ sth r0, 0(r5)
/* 0B867C 800BDC1C A0030004 */ lhz r0, 4(r3)
/* 0B8680 800BDC20 A0E60000 */ lhz r7, 0(r6)
/* 0B8684 800BDC24 7C0000F8 */ nor r0, r0, r0
/* 0B8688 800BDC28 7C070214 */ add r0, r7, r0
/* 0B868C 800BDC2C B0060000 */ sth r0, 0(r6)
/* 0B8690 800BDC30 A0E50000 */ lhz r7, 0(r5)
/* 0B8694 800BDC34 A0030006 */ lhz r0, 6(r3)
/* 0B8698 800BDC38 7C070214 */ add r0, r7, r0
/* 0B869C 800BDC3C B0050000 */ sth r0, 0(r5)
/* 0B86A0 800BDC40 A0030006 */ lhz r0, 6(r3)
/* 0B86A4 800BDC44 A0E60000 */ lhz r7, 0(r6)
/* 0B86A8 800BDC48 7C0000F8 */ nor r0, r0, r0
/* 0B86AC 800BDC4C 7C070214 */ add r0, r7, r0
/* 0B86B0 800BDC50 B0060000 */ sth r0, 0(r6)
/* 0B86B4 800BDC54 A0E50000 */ lhz r7, 0(r5)
/* 0B86B8 800BDC58 A0030008 */ lhz r0, 8(r3)
/* 0B86BC 800BDC5C 7C070214 */ add r0, r7, r0
/* 0B86C0 800BDC60 B0050000 */ sth r0, 0(r5)
/* 0B86C4 800BDC64 A0030008 */ lhz r0, 8(r3)
/* 0B86C8 800BDC68 A0E60000 */ lhz r7, 0(r6)
/* 0B86CC 800BDC6C 7C0000F8 */ nor r0, r0, r0
/* 0B86D0 800BDC70 7C070214 */ add r0, r7, r0
/* 0B86D4 800BDC74 B0060000 */ sth r0, 0(r6)
/* 0B86D8 800BDC78 A0E50000 */ lhz r7, 0(r5)
/* 0B86DC 800BDC7C A003000A */ lhz r0, 0xa(r3)
/* 0B86E0 800BDC80 7C070214 */ add r0, r7, r0
/* 0B86E4 800BDC84 B0050000 */ sth r0, 0(r5)
/* 0B86E8 800BDC88 A003000A */ lhz r0, 0xa(r3)
/* 0B86EC 800BDC8C A0E60000 */ lhz r7, 0(r6)
/* 0B86F0 800BDC90 7C0000F8 */ nor r0, r0, r0
/* 0B86F4 800BDC94 7C070214 */ add r0, r7, r0
/* 0B86F8 800BDC98 B0060000 */ sth r0, 0(r6)
/* 0B86FC 800BDC9C A0E50000 */ lhz r7, 0(r5)
/* 0B8700 800BDCA0 A003000C */ lhz r0, 0xc(r3)
/* 0B8704 800BDCA4 7C070214 */ add r0, r7, r0
/* 0B8708 800BDCA8 B0050000 */ sth r0, 0(r5)
/* 0B870C 800BDCAC A003000C */ lhz r0, 0xc(r3)
/* 0B8710 800BDCB0 A0E60000 */ lhz r7, 0(r6)
/* 0B8714 800BDCB4 7C0000F8 */ nor r0, r0, r0
/* 0B8718 800BDCB8 7C070214 */ add r0, r7, r0
/* 0B871C 800BDCBC B0060000 */ sth r0, 0(r6)
/* 0B8720 800BDCC0 A0E50000 */ lhz r7, 0(r5)
/* 0B8724 800BDCC4 A003000E */ lhz r0, 0xe(r3)
/* 0B8728 800BDCC8 7C070214 */ add r0, r7, r0
/* 0B872C 800BDCCC B0050000 */ sth r0, 0(r5)
/* 0B8730 800BDCD0 A003000E */ lhz r0, 0xe(r3)
/* 0B8734 800BDCD4 38630010 */ addi r3, r3, 0x10
/* 0B8738 800BDCD8 A0E60000 */ lhz r7, 0(r6)
/* 0B873C 800BDCDC 7C0000F8 */ nor r0, r0, r0
/* 0B8740 800BDCE0 7C070214 */ add r0, r7, r0
/* 0B8744 800BDCE4 B0060000 */ sth r0, 0(r6)
/* 0B8748 800BDCE8 4200FEDC */ bdnz lbl_800BDBC4
/* 0B874C 800BDCEC 70840007 */ andi. r4, r4, 7
/* 0B8750 800BDCF0 41820034 */ beq lbl_800BDD24
lbl_800BDCF4:
/* 0B8754 800BDCF4 7C8903A6 */ mtctr r4
lbl_800BDCF8:
/* 0B8758 800BDCF8 A0E50000 */ lhz r7, 0(r5)
/* 0B875C 800BDCFC A0030000 */ lhz r0, 0(r3)
/* 0B8760 800BDD00 7C070214 */ add r0, r7, r0
/* 0B8764 800BDD04 B0050000 */ sth r0, 0(r5)
/* 0B8768 800BDD08 A0030000 */ lhz r0, 0(r3)
/* 0B876C 800BDD0C 38630002 */ addi r3, r3, 2
/* 0B8770 800BDD10 A0E60000 */ lhz r7, 0(r6)
/* 0B8774 800BDD14 7C0000F8 */ nor r0, r0, r0
/* 0B8778 800BDD18 7C070214 */ add r0, r7, r0
/* 0B877C 800BDD1C B0060000 */ sth r0, 0(r6)
/* 0B8780 800BDD20 4200FFD8 */ bdnz lbl_800BDCF8
lbl_800BDD24:
/* 0B8784 800BDD24 A0050000 */ lhz r0, 0(r5)
/* 0B8788 800BDD28 2800FFFF */ cmplwi r0, 0xffff
/* 0B878C 800BDD2C 4082000C */ bne lbl_800BDD38
/* 0B8790 800BDD30 38000000 */ li r0, 0
/* 0B8794 800BDD34 B0050000 */ sth r0, 0(r5)
lbl_800BDD38:
/* 0B8798 800BDD38 A0060000 */ lhz r0, 0(r6)
/* 0B879C 800BDD3C 2800FFFF */ cmplwi r0, 0xffff
/* 0B87A0 800BDD40 4C820020 */ bnelr
/* 0B87A4 800BDD44 38000000 */ li r0, 0
/* 0B87A8 800BDD48 B0060000 */ sth r0, 0(r6)
/* 0B87AC 800BDD4C 4E800020 */ blr
VerifyID:
/* 0B87B0 800BDD50 7C0802A6 */ mflr r0
/* 0B87B4 800BDD54 90010004 */ stw r0, 4(r1)
/* 0B87B8 800BDD58 9421FFD0 */ stwu r1, -0x30(r1)
/* 0B87BC 800BDD5C BF210014 */ stmw r25, 0x14(r1)
/* 0B87C0 800BDD60 7C7A1B78 */ mr r26, r3
/* 0B87C4 800BDD64 80630080 */ lwz r3, 0x80(r3)
/* 0B87C8 800BDD68 A0030020 */ lhz r0, 0x20(r3)
/* 0B87CC 800BDD6C 3B630000 */ addi r27, r3, 0
/* 0B87D0 800BDD70 28000000 */ cmplwi r0, 0
/* 0B87D4 800BDD74 40820014 */ bne lbl_800BDD88
/* 0B87D8 800BDD78 A07B0022 */ lhz r3, 0x22(r27)
/* 0B87DC 800BDD7C A01A0008 */ lhz r0, 8(r26)
/* 0B87E0 800BDD80 7C030040 */ cmplw r3, r0
/* 0B87E4 800BDD84 4182000C */ beq lbl_800BDD90
lbl_800BDD88:
/* 0B87E8 800BDD88 3860FFFA */ li r3, -6
/* 0B87EC 800BDD8C 48000234 */ b lbl_800BDFC0
lbl_800BDD90:
/* 0B87F0 800BDD90 380001FC */ li r0, 0x1fc
/* 0B87F4 800BDD94 7C000E70 */ srawi r0, r0, 1
/* 0B87F8 800BDD98 7C000195 */ addze. r0, r0
/* 0B87FC 800BDD9C 389B0000 */ addi r4, r27, 0
/* 0B8800 800BDDA0 38E00000 */ li r7, 0
/* 0B8804 800BDDA4 7C030378 */ mr r3, r0
/* 0B8808 800BDDA8 38C00000 */ li r6, 0
/* 0B880C 800BDDAC 408100BC */ ble lbl_800BDE68
/* 0B8810 800BDDB0 5460E8FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
/* 0B8814 800BDDB4 7C0903A6 */ mtctr r0
/* 0B8818 800BDDB8 41820094 */ beq lbl_800BDE4C
lbl_800BDDBC:
/* 0B881C 800BDDBC A0A40000 */ lhz r5, 0(r4)
/* 0B8820 800BDDC0 7CA028F8 */ nor r0, r5, r5
/* 0B8824 800BDDC4 7CC62A14 */ add r6, r6, r5
/* 0B8828 800BDDC8 A0A40002 */ lhz r5, 2(r4)
/* 0B882C 800BDDCC 7CE70214 */ add r7, r7, r0
/* 0B8830 800BDDD0 7CA028F8 */ nor r0, r5, r5
/* 0B8834 800BDDD4 7CC62A14 */ add r6, r6, r5
/* 0B8838 800BDDD8 A0A40004 */ lhz r5, 4(r4)
/* 0B883C 800BDDDC 7CE70214 */ add r7, r7, r0
/* 0B8840 800BDDE0 7CA028F8 */ nor r0, r5, r5
/* 0B8844 800BDDE4 7CC62A14 */ add r6, r6, r5
/* 0B8848 800BDDE8 A0A40006 */ lhz r5, 6(r4)
/* 0B884C 800BDDEC 7CE70214 */ add r7, r7, r0
/* 0B8850 800BDDF0 7CA028F8 */ nor r0, r5, r5
/* 0B8854 800BDDF4 7CC62A14 */ add r6, r6, r5
/* 0B8858 800BDDF8 A0A40008 */ lhz r5, 8(r4)
/* 0B885C 800BDDFC 7CE70214 */ add r7, r7, r0
/* 0B8860 800BDE00 7CA028F8 */ nor r0, r5, r5
/* 0B8864 800BDE04 7CC62A14 */ add r6, r6, r5
/* 0B8868 800BDE08 A0A4000A */ lhz r5, 0xa(r4)
/* 0B886C 800BDE0C 7CE70214 */ add r7, r7, r0
/* 0B8870 800BDE10 7CA028F8 */ nor r0, r5, r5
/* 0B8874 800BDE14 7CC62A14 */ add r6, r6, r5
/* 0B8878 800BDE18 A0A4000C */ lhz r5, 0xc(r4)
/* 0B887C 800BDE1C 7CE70214 */ add r7, r7, r0
/* 0B8880 800BDE20 7CA028F8 */ nor r0, r5, r5
/* 0B8884 800BDE24 7CC62A14 */ add r6, r6, r5
/* 0B8888 800BDE28 A0A4000E */ lhz r5, 0xe(r4)
/* 0B888C 800BDE2C 7CE70214 */ add r7, r7, r0
/* 0B8890 800BDE30 7CA028F8 */ nor r0, r5, r5
/* 0B8894 800BDE34 7CC62A14 */ add r6, r6, r5
/* 0B8898 800BDE38 7CE70214 */ add r7, r7, r0
/* 0B889C 800BDE3C 38840010 */ addi r4, r4, 0x10
/* 0B88A0 800BDE40 4200FF7C */ bdnz lbl_800BDDBC
/* 0B88A4 800BDE44 70630007 */ andi. r3, r3, 7
/* 0B88A8 800BDE48 41820020 */ beq lbl_800BDE68
lbl_800BDE4C:
/* 0B88AC 800BDE4C 7C6903A6 */ mtctr r3
lbl_800BDE50:
/* 0B88B0 800BDE50 A0A40000 */ lhz r5, 0(r4)
/* 0B88B4 800BDE54 38840002 */ addi r4, r4, 2
/* 0B88B8 800BDE58 7CA028F8 */ nor r0, r5, r5
/* 0B88BC 800BDE5C 7CC62A14 */ add r6, r6, r5
/* 0B88C0 800BDE60 7CE70214 */ add r7, r7, r0
/* 0B88C4 800BDE64 4200FFEC */ bdnz lbl_800BDE50
lbl_800BDE68:
/* 0B88C8 800BDE68 54C0043E */ clrlwi r0, r6, 0x10
/* 0B88CC 800BDE6C 2800FFFF */ cmplwi r0, 0xffff
/* 0B88D0 800BDE70 40820008 */ bne lbl_800BDE78
/* 0B88D4 800BDE74 38C00000 */ li r6, 0
lbl_800BDE78:
/* 0B88D8 800BDE78 54E0043E */ clrlwi r0, r7, 0x10
/* 0B88DC 800BDE7C 2800FFFF */ cmplwi r0, 0xffff
/* 0B88E0 800BDE80 40820008 */ bne lbl_800BDE88
/* 0B88E4 800BDE84 38E00000 */ li r7, 0
lbl_800BDE88:
/* 0B88E8 800BDE88 A07B01FC */ lhz r3, 0x1fc(r27)
/* 0B88EC 800BDE8C 54C0043E */ clrlwi r0, r6, 0x10
/* 0B88F0 800BDE90 7C030040 */ cmplw r3, r0
/* 0B88F4 800BDE94 40820014 */ bne lbl_800BDEA8
/* 0B88F8 800BDE98 A07B01FE */ lhz r3, 0x1fe(r27)
/* 0B88FC 800BDE9C 54E0043E */ clrlwi r0, r7, 0x10
/* 0B8900 800BDEA0 7C030040 */ cmplw r3, r0
/* 0B8904 800BDEA4 4182000C */ beq lbl_800BDEB0
lbl_800BDEA8:
/* 0B8908 800BDEA8 3860FFFA */ li r3, -6
/* 0B890C 800BDEAC 48000114 */ b lbl_800BDFC0
lbl_800BDEB0:
/* 0B8910 800BDEB0 83FB000C */ lwz r31, 0xc(r27)
/* 0B8914 800BDEB4 839B0010 */ lwz r28, 0x10(r27)
/* 0B8918 800BDEB8 4BFE2A31 */ bl __OSLockSramEx
/* 0B891C 800BDEBC 3C808013 */ lis r4, __CARDBlock@ha
/* 0B8920 800BDEC0 380427D0 */ addi r0, r4, __CARDBlock@l
/* 0B8924 800BDEC4 3C807878 */ lis r4, 0x7878
/* 0B8928 800BDEC8 7C00D050 */ subf r0, r0, r26
/* 0B892C 800BDECC 38847879 */ addi r4, r4, 0x7879
/* 0B8930 800BDED0 7C040096 */ mulhw r0, r4, r0
/* 0B8934 800BDED4 7C003E70 */ srawi r0, r0, 7
/* 0B8938 800BDED8 54040FFE */ srwi r4, r0, 0x1f
/* 0B893C 800BDEDC 7C002214 */ add r0, r0, r4
/* 0B8940 800BDEE0 1C00000C */ mulli r0, r0, 0xc
/* 0B8944 800BDEE4 3C8041C6 */ lis r4, 0x41c6
/* 0B8948 800BDEE8 3B3B0000 */ addi r25, r27, 0
/* 0B894C 800BDEEC 7FA30214 */ add r29, r3, r0
/* 0B8950 800BDEF0 3BC44E6D */ addi r30, r4, 0x4e6d
/* 0B8954 800BDEF4 3B400000 */ li r26, 0
lbl_800BDEF8:
/* 0B8958 800BDEF8 7CBFF1D6 */ mullw r5, r31, r30
/* 0B895C 800BDEFC 7C7CF016 */ mulhwu r3, r28, r30
/* 0B8960 800BDF00 3BE00000 */ li r31, 0
/* 0B8964 800BDF04 7CA51A14 */ add r5, r5, r3
/* 0B8968 800BDF08 7C7CF9D6 */ mullw r3, r28, r31
/* 0B896C 800BDF0C 7C1CF1D6 */ mullw r0, r28, r30
/* 0B8970 800BDF10 3B803039 */ li r28, 0x3039
/* 0B8974 800BDF14 7C80E014 */ addc r4, r0, r28
/* 0B8978 800BDF18 7C051A14 */ add r0, r5, r3
/* 0B897C 800BDF1C 7C60F914 */ adde r3, r0, r31
/* 0B8980 800BDF20 38A00010 */ li r5, 0x10
/* 0B8984 800BDF24 4800FE69 */ bl __shr2i
/* 0B8988 800BDF28 881D0000 */ lbz r0, 0(r29)
/* 0B898C 800BDF2C 88D90000 */ lbz r6, 0(r25)
/* 0B8990 800BDF30 7C040014 */ addc r0, r4, r0
/* 0B8994 800BDF34 5400063E */ clrlwi r0, r0, 0x18
/* 0B8998 800BDF38 7C060040 */ cmplw r6, r0
/* 0B899C 800BDF3C 41820014 */ beq lbl_800BDF50
/* 0B89A0 800BDF40 38600000 */ li r3, 0
/* 0B89A4 800BDF44 4BFE2D61 */ bl __OSUnlockSramEx
/* 0B89A8 800BDF48 3860FFFA */ li r3, -6
/* 0B89AC 800BDF4C 48000074 */ b lbl_800BDFC0
lbl_800BDF50:
/* 0B89B0 800BDF50 7CA3F1D6 */ mullw r5, r3, r30
/* 0B89B4 800BDF54 7C64F016 */ mulhwu r3, r4, r30
/* 0B89B8 800BDF58 7CA51A14 */ add r5, r5, r3
/* 0B89BC 800BDF5C 7C64F9D6 */ mullw r3, r4, r31
/* 0B89C0 800BDF60 7C04F1D6 */ mullw r0, r4, r30
/* 0B89C4 800BDF64 7C80E014 */ addc r4, r0, r28
/* 0B89C8 800BDF68 7C051A14 */ add r0, r5, r3
/* 0B89CC 800BDF6C 7C60F914 */ adde r3, r0, r31
/* 0B89D0 800BDF70 38A00010 */ li r5, 0x10
/* 0B89D4 800BDF74 4800FE19 */ bl __shr2i
/* 0B89D8 800BDF78 3B5A0001 */ addi r26, r26, 1
/* 0B89DC 800BDF7C 2C1A000C */ cmpwi r26, 0xc
/* 0B89E0 800BDF80 38007FFF */ li r0, 0x7fff
/* 0B89E4 800BDF84 7C9C0038 */ and r28, r4, r0
/* 0B89E8 800BDF88 7C7FF838 */ and r31, r3, r31
/* 0B89EC 800BDF8C 3BBD0001 */ addi r29, r29, 1
/* 0B89F0 800BDF90 3B390001 */ addi r25, r25, 1
/* 0B89F4 800BDF94 4180FF64 */ blt lbl_800BDEF8
/* 0B89F8 800BDF98 38600000 */ li r3, 0
/* 0B89FC 800BDF9C 4BFE2D09 */ bl __OSUnlockSramEx
/* 0B8A00 800BDFA0 4BFFDCDD */ bl __CARDGetFontEncode
/* 0B8A04 800BDFA4 A01B0024 */ lhz r0, 0x24(r27)
/* 0B8A08 800BDFA8 5463043E */ clrlwi r3, r3, 0x10
/* 0B8A0C 800BDFAC 7C001840 */ cmplw r0, r3
/* 0B8A10 800BDFB0 4182000C */ beq lbl_800BDFBC
/* 0B8A14 800BDFB4 3860FFF3 */ li r3, -13
/* 0B8A18 800BDFB8 48000008 */ b lbl_800BDFC0
lbl_800BDFBC:
/* 0B8A1C 800BDFBC 38600000 */ li r3, 0
lbl_800BDFC0:
/* 0B8A20 800BDFC0 BB210014 */ lmw r25, 0x14(r1)
/* 0B8A24 800BDFC4 80010034 */ lwz r0, 0x34(r1)
/* 0B8A28 800BDFC8 38210030 */ addi r1, r1, 0x30
/* 0B8A2C 800BDFCC 7C0803A6 */ mtlr r0
/* 0B8A30 800BDFD0 4E800020 */ blr
VerifyDir:
/* 0B8A34 800BDFD4 7C0802A6 */ mflr r0
/* 0B8A38 800BDFD8 90010004 */ stw r0, 4(r1)
/* 0B8A3C 800BDFDC 9421FFC8 */ stwu r1, -0x38(r1)
/* 0B8A40 800BDFE0 93E10034 */ stw r31, 0x34(r1)
/* 0B8A44 800BDFE4 38E1001C */ addi r7, r1, 0x1c
/* 0B8A48 800BDFE8 39010014 */ addi r8, r1, 0x14
/* 0B8A4C 800BDFEC 93C10030 */ stw r30, 0x30(r1)
/* 0B8A50 800BDFF0 3BE00000 */ li r31, 0
/* 0B8A54 800BDFF4 3BC00000 */ li r30, 0
/* 0B8A58 800BDFF8 93A1002C */ stw r29, 0x2c(r1)
/* 0B8A5C 800BDFFC 3BA40000 */ addi r29, r4, 0
/* 0B8A60 800BE000 38800000 */ li r4, 0
lbl_800BE004:
/* 0B8A64 800BE004 38040001 */ addi r0, r4, 1
/* 0B8A68 800BE008 80A30080 */ lwz r5, 0x80(r3)
/* 0B8A6C 800BE00C 54006824 */ slwi r0, r0, 0xd
/* 0B8A70 800BE010 7C050214 */ add r0, r5, r0
/* 0B8A74 800BE014 90070000 */ stw r0, 0(r7)
/* 0B8A78 800BE018 38C01FFC */ li r6, 0x1ffc
/* 0B8A7C 800BE01C 7CC60E70 */ srawi r6, r6, 1
/* 0B8A80 800BE020 80A70000 */ lwz r5, 0(r7)
/* 0B8A84 800BE024 7CC60195 */ addze. r6, r6
/* 0B8A88 800BE028 39600000 */ li r11, 0
/* 0B8A8C 800BE02C 38051FC0 */ addi r0, r5, 0x1fc0
/* 0B8A90 800BE030 90080000 */ stw r0, 0(r8)
/* 0B8A94 800BE034 39400000 */ li r10, 0
/* 0B8A98 800BE038 80A70000 */ lwz r5, 0(r7)
/* 0B8A9C 800BE03C 408100BC */ ble lbl_800BE0F8
/* 0B8AA0 800BE040 54C0E8FF */ rlwinm. r0, r6, 0x1d, 3, 0x1f
/* 0B8AA4 800BE044 7C0903A6 */ mtctr r0
/* 0B8AA8 800BE048 41820094 */ beq lbl_800BE0DC
lbl_800BE04C:
/* 0B8AAC 800BE04C A1250000 */ lhz r9, 0(r5)
/* 0B8AB0 800BE050 7D2048F8 */ nor r0, r9, r9
/* 0B8AB4 800BE054 7D4A4A14 */ add r10, r10, r9
/* 0B8AB8 800BE058 A1250002 */ lhz r9, 2(r5)
/* 0B8ABC 800BE05C 7D6B0214 */ add r11, r11, r0
/* 0B8AC0 800BE060 7D2048F8 */ nor r0, r9, r9
/* 0B8AC4 800BE064 7D4A4A14 */ add r10, r10, r9
/* 0B8AC8 800BE068 A1250004 */ lhz r9, 4(r5)
/* 0B8ACC 800BE06C 7D6B0214 */ add r11, r11, r0
/* 0B8AD0 800BE070 7D2048F8 */ nor r0, r9, r9
/* 0B8AD4 800BE074 7D4A4A14 */ add r10, r10, r9
/* 0B8AD8 800BE078 A1250006 */ lhz r9, 6(r5)
/* 0B8ADC 800BE07C 7D6B0214 */ add r11, r11, r0
/* 0B8AE0 800BE080 7D2048F8 */ nor r0, r9, r9
/* 0B8AE4 800BE084 7D4A4A14 */ add r10, r10, r9
/* 0B8AE8 800BE088 A1250008 */ lhz r9, 8(r5)
/* 0B8AEC 800BE08C 7D6B0214 */ add r11, r11, r0
/* 0B8AF0 800BE090 7D2048F8 */ nor r0, r9, r9
/* 0B8AF4 800BE094 7D4A4A14 */ add r10, r10, r9
/* 0B8AF8 800BE098 A125000A */ lhz r9, 0xa(r5)
/* 0B8AFC 800BE09C 7D6B0214 */ add r11, r11, r0
/* 0B8B00 800BE0A0 7D2048F8 */ nor r0, r9, r9
/* 0B8B04 800BE0A4 7D4A4A14 */ add r10, r10, r9
/* 0B8B08 800BE0A8 A125000C */ lhz r9, 0xc(r5)
/* 0B8B0C 800BE0AC 7D6B0214 */ add r11, r11, r0
/* 0B8B10 800BE0B0 7D2048F8 */ nor r0, r9, r9
/* 0B8B14 800BE0B4 7D4A4A14 */ add r10, r10, r9
/* 0B8B18 800BE0B8 A125000E */ lhz r9, 0xe(r5)
/* 0B8B1C 800BE0BC 7D6B0214 */ add r11, r11, r0
/* 0B8B20 800BE0C0 7D2048F8 */ nor r0, r9, r9
/* 0B8B24 800BE0C4 7D4A4A14 */ add r10, r10, r9
/* 0B8B28 800BE0C8 7D6B0214 */ add r11, r11, r0
/* 0B8B2C 800BE0CC 38A50010 */ addi r5, r5, 0x10
/* 0B8B30 800BE0D0 4200FF7C */ bdnz lbl_800BE04C
/* 0B8B34 800BE0D4 70C60007 */ andi. r6, r6, 7
/* 0B8B38 800BE0D8 41820020 */ beq lbl_800BE0F8
lbl_800BE0DC:
/* 0B8B3C 800BE0DC 7CC903A6 */ mtctr r6
lbl_800BE0E0:
/* 0B8B40 800BE0E0 A1250000 */ lhz r9, 0(r5)
/* 0B8B44 800BE0E4 38A50002 */ addi r5, r5, 2
/* 0B8B48 800BE0E8 7D2048F8 */ nor r0, r9, r9
/* 0B8B4C 800BE0EC 7D4A4A14 */ add r10, r10, r9
/* 0B8B50 800BE0F0 7D6B0214 */ add r11, r11, r0
/* 0B8B54 800BE0F4 4200FFEC */ bdnz lbl_800BE0E0
lbl_800BE0F8:
/* 0B8B58 800BE0F8 5540043E */ clrlwi r0, r10, 0x10
/* 0B8B5C 800BE0FC 2800FFFF */ cmplwi r0, 0xffff
/* 0B8B60 800BE100 40820008 */ bne lbl_800BE108
/* 0B8B64 800BE104 39400000 */ li r10, 0
lbl_800BE108:
/* 0B8B68 800BE108 5560043E */ clrlwi r0, r11, 0x10
/* 0B8B6C 800BE10C 2800FFFF */ cmplwi r0, 0xffff
/* 0B8B70 800BE110 40820008 */ bne lbl_800BE118
/* 0B8B74 800BE114 39600000 */ li r11, 0
lbl_800BE118:
/* 0B8B78 800BE118 80C80000 */ lwz r6, 0(r8)
/* 0B8B7C 800BE11C 5545043E */ clrlwi r5, r10, 0x10
/* 0B8B80 800BE120 A006003C */ lhz r0, 0x3c(r6)
/* 0B8B84 800BE124 7C050040 */ cmplw r5, r0
/* 0B8B88 800BE128 40820014 */ bne lbl_800BE13C
/* 0B8B8C 800BE12C A006003E */ lhz r0, 0x3e(r6)
/* 0B8B90 800BE130 5565043E */ clrlwi r5, r11, 0x10
/* 0B8B94 800BE134 7C050040 */ cmplw r5, r0
/* 0B8B98 800BE138 41820014 */ beq lbl_800BE14C
lbl_800BE13C:
/* 0B8B9C 800BE13C 38000000 */ li r0, 0
/* 0B8BA0 800BE140 90030084 */ stw r0, 0x84(r3)
/* 0B8BA4 800BE144 3BC40000 */ addi r30, r4, 0
/* 0B8BA8 800BE148 3BFF0001 */ addi r31, r31, 1
lbl_800BE14C:
/* 0B8BAC 800BE14C 38840001 */ addi r4, r4, 1
/* 0B8BB0 800BE150 2C040002 */ cmpwi r4, 2
/* 0B8BB4 800BE154 38E70004 */ addi r7, r7, 4
/* 0B8BB8 800BE158 39080004 */ addi r8, r8, 4
/* 0B8BBC 800BE15C 4180FEA8 */ blt lbl_800BE004
/* 0B8BC0 800BE160 2C1F0000 */ cmpwi r31, 0
/* 0B8BC4 800BE164 40820084 */ bne lbl_800BE1E8
/* 0B8BC8 800BE168 80830084 */ lwz r4, 0x84(r3)
/* 0B8BCC 800BE16C 28040000 */ cmplwi r4, 0
/* 0B8BD0 800BE170 4082005C */ bne lbl_800BE1CC
/* 0B8BD4 800BE174 80A10018 */ lwz r5, 0x18(r1)
/* 0B8BD8 800BE178 80810014 */ lwz r4, 0x14(r1)
/* 0B8BDC 800BE17C A8A5003A */ lha r5, 0x3a(r5)
/* 0B8BE0 800BE180 A804003A */ lha r0, 0x3a(r4)
/* 0B8BE4 800BE184 7C050051 */ subf. r0, r5, r0
/* 0B8BE8 800BE188 4080000C */ bge lbl_800BE194
/* 0B8BEC 800BE18C 3BC00000 */ li r30, 0
/* 0B8BF0 800BE190 48000008 */ b lbl_800BE198
lbl_800BE194:
/* 0B8BF4 800BE194 3BC00001 */ li r30, 1
lbl_800BE198:
/* 0B8BF8 800BE198 57C0103A */ slwi r0, r30, 2
/* 0B8BFC 800BE19C 38C1001C */ addi r6, r1, 0x1c
/* 0B8C00 800BE1A0 7CC60214 */ add r6, r6, r0
/* 0B8C04 800BE1A4 80860000 */ lwz r4, 0(r6)
/* 0B8C08 800BE1A8 6BC00001 */ xori r0, r30, 1
/* 0B8C0C 800BE1AC 5400103A */ slwi r0, r0, 2
/* 0B8C10 800BE1B0 90830084 */ stw r4, 0x84(r3)
/* 0B8C14 800BE1B4 3881001C */ addi r4, r1, 0x1c
/* 0B8C18 800BE1B8 38A02000 */ li r5, 0x2000
/* 0B8C1C 800BE1BC 80660000 */ lwz r3, 0(r6)
/* 0B8C20 800BE1C0 7C84002E */ lwzx r4, r4, r0
/* 0B8C24 800BE1C4 4BF47301 */ bl memcpy
/* 0B8C28 800BE1C8 48000020 */ b lbl_800BE1E8
lbl_800BE1CC:
/* 0B8C2C 800BE1CC 8001001C */ lwz r0, 0x1c(r1)
/* 0B8C30 800BE1D0 7C040040 */ cmplw r4, r0
/* 0B8C34 800BE1D4 4082000C */ bne lbl_800BE1E0
/* 0B8C38 800BE1D8 38000000 */ li r0, 0
/* 0B8C3C 800BE1DC 48000008 */ b lbl_800BE1E4
lbl_800BE1E0:
/* 0B8C40 800BE1E0 38000001 */ li r0, 1
lbl_800BE1E4:
/* 0B8C44 800BE1E4 7C1E0378 */ mr r30, r0
lbl_800BE1E8:
/* 0B8C48 800BE1E8 281D0000 */ cmplwi r29, 0
/* 0B8C4C 800BE1EC 41820008 */ beq lbl_800BE1F4
/* 0B8C50 800BE1F0 93DD0000 */ stw r30, 0(r29)
lbl_800BE1F4:
/* 0B8C54 800BE1F4 7FE3FB78 */ mr r3, r31
/* 0B8C58 800BE1F8 8001003C */ lwz r0, 0x3c(r1)
/* 0B8C5C 800BE1FC 83E10034 */ lwz r31, 0x34(r1)
/* 0B8C60 800BE200 83C10030 */ lwz r30, 0x30(r1)
/* 0B8C64 800BE204 83A1002C */ lwz r29, 0x2c(r1)
/* 0B8C68 800BE208 38210038 */ addi r1, r1, 0x38
/* 0B8C6C 800BE20C 7C0803A6 */ mtlr r0
/* 0B8C70 800BE210 4E800020 */ blr
VerifyFAT:
/* 0B8C74 800BE214 7C0802A6 */ mflr r0
/* 0B8C78 800BE218 38A00000 */ li r5, 0
/* 0B8C7C 800BE21C 90010004 */ stw r0, 4(r1)
/* 0B8C80 800BE220 9421FFD8 */ stwu r1, -0x28(r1)
/* 0B8C84 800BE224 93E10024 */ stw r31, 0x24(r1)
/* 0B8C88 800BE228 3BE00000 */ li r31, 0
/* 0B8C8C 800BE22C 93C10020 */ stw r30, 0x20(r1)
/* 0B8C90 800BE230 3BC00000 */ li r30, 0
/* 0B8C94 800BE234 93A1001C */ stw r29, 0x1c(r1)
/* 0B8C98 800BE238 3BA40000 */ addi r29, r4, 0
/* 0B8C9C 800BE23C 38810010 */ addi r4, r1, 0x10
lbl_800BE240:
/* 0B8CA0 800BE240 39001FFC */ li r8, 0x1ffc
/* 0B8CA4 800BE244 80C30080 */ lwz r6, 0x80(r3)
/* 0B8CA8 800BE248 38050003 */ addi r0, r5, 3
/* 0B8CAC 800BE24C 7D080E70 */ srawi r8, r8, 1
/* 0B8CB0 800BE250 54006824 */ slwi r0, r0, 0xd
/* 0B8CB4 800BE254 7CE60214 */ add r7, r6, r0
/* 0B8CB8 800BE258 7D080195 */ addze. r8, r8
/* 0B8CBC 800BE25C 90E40000 */ stw r7, 0(r4)
/* 0B8CC0 800BE260 38C70004 */ addi r6, r7, 4
/* 0B8CC4 800BE264 39600000 */ li r11, 0
/* 0B8CC8 800BE268 39400000 */ li r10, 0
/* 0B8CCC 800BE26C 408100BC */ ble lbl_800BE328
/* 0B8CD0 800BE270 5500E8FF */ rlwinm. r0, r8, 0x1d, 3, 0x1f
/* 0B8CD4 800BE274 7C0903A6 */ mtctr r0
/* 0B8CD8 800BE278 41820094 */ beq lbl_800BE30C
lbl_800BE27C:
/* 0B8CDC 800BE27C A1260000 */ lhz r9, 0(r6)
/* 0B8CE0 800BE280 7D2048F8 */ nor r0, r9, r9
/* 0B8CE4 800BE284 7D4A4A14 */ add r10, r10, r9
/* 0B8CE8 800BE288 A1260002 */ lhz r9, 2(r6)
/* 0B8CEC 800BE28C 7D6B0214 */ add r11, r11, r0
/* 0B8CF0 800BE290 7D2048F8 */ nor r0, r9, r9
/* 0B8CF4 800BE294 7D4A4A14 */ add r10, r10, r9
/* 0B8CF8 800BE298 A1260004 */ lhz r9, 4(r6)
/* 0B8CFC 800BE29C 7D6B0214 */ add r11, r11, r0
/* 0B8D00 800BE2A0 7D2048F8 */ nor r0, r9, r9
/* 0B8D04 800BE2A4 7D4A4A14 */ add r10, r10, r9
/* 0B8D08 800BE2A8 A1260006 */ lhz r9, 6(r6)
/* 0B8D0C 800BE2AC 7D6B0214 */ add r11, r11, r0
/* 0B8D10 800BE2B0 7D2048F8 */ nor r0, r9, r9
/* 0B8D14 800BE2B4 7D4A4A14 */ add r10, r10, r9
/* 0B8D18 800BE2B8 A1260008 */ lhz r9, 8(r6)
/* 0B8D1C 800BE2BC 7D6B0214 */ add r11, r11, r0
/* 0B8D20 800BE2C0 7D2048F8 */ nor r0, r9, r9
/* 0B8D24 800BE2C4 7D4A4A14 */ add r10, r10, r9
/* 0B8D28 800BE2C8 A126000A */ lhz r9, 0xa(r6)
/* 0B8D2C 800BE2CC 7D6B0214 */ add r11, r11, r0
/* 0B8D30 800BE2D0 7D2048F8 */ nor r0, r9, r9
/* 0B8D34 800BE2D4 7D4A4A14 */ add r10, r10, r9
/* 0B8D38 800BE2D8 A126000C */ lhz r9, 0xc(r6)
/* 0B8D3C 800BE2DC 7D6B0214 */ add r11, r11, r0
/* 0B8D40 800BE2E0 7D2048F8 */ nor r0, r9, r9
/* 0B8D44 800BE2E4 7D4A4A14 */ add r10, r10, r9
/* 0B8D48 800BE2E8 A126000E */ lhz r9, 0xe(r6)
/* 0B8D4C 800BE2EC 7D6B0214 */ add r11, r11, r0
/* 0B8D50 800BE2F0 7D2048F8 */ nor r0, r9, r9
/* 0B8D54 800BE2F4 7D4A4A14 */ add r10, r10, r9
/* 0B8D58 800BE2F8 7D6B0214 */ add r11, r11, r0
/* 0B8D5C 800BE2FC 38C60010 */ addi r6, r6, 0x10
/* 0B8D60 800BE300 4200FF7C */ bdnz lbl_800BE27C
/* 0B8D64 800BE304 71080007 */ andi. r8, r8, 7
/* 0B8D68 800BE308 41820020 */ beq lbl_800BE328
lbl_800BE30C:
/* 0B8D6C 800BE30C 7D0903A6 */ mtctr r8
lbl_800BE310:
/* 0B8D70 800BE310 A1260000 */ lhz r9, 0(r6)
/* 0B8D74 800BE314 38C60002 */ addi r6, r6, 2
/* 0B8D78 800BE318 7D2048F8 */ nor r0, r9, r9
/* 0B8D7C 800BE31C 7D4A4A14 */ add r10, r10, r9
/* 0B8D80 800BE320 7D6B0214 */ add r11, r11, r0
/* 0B8D84 800BE324 4200FFEC */ bdnz lbl_800BE310
lbl_800BE328:
/* 0B8D88 800BE328 5540043E */ clrlwi r0, r10, 0x10
/* 0B8D8C 800BE32C 2800FFFF */ cmplwi r0, 0xffff
/* 0B8D90 800BE330 40820008 */ bne lbl_800BE338
/* 0B8D94 800BE334 39400000 */ li r10, 0
lbl_800BE338:
/* 0B8D98 800BE338 5560043E */ clrlwi r0, r11, 0x10
/* 0B8D9C 800BE33C 2800FFFF */ cmplwi r0, 0xffff
/* 0B8DA0 800BE340 40820008 */ bne lbl_800BE348
/* 0B8DA4 800BE344 39600000 */ li r11, 0
lbl_800BE348:
/* 0B8DA8 800BE348 A0C70000 */ lhz r6, 0(r7)
/* 0B8DAC 800BE34C 5540043E */ clrlwi r0, r10, 0x10
/* 0B8DB0 800BE350 7C060040 */ cmplw r6, r0
/* 0B8DB4 800BE354 40820014 */ bne lbl_800BE368
/* 0B8DB8 800BE358 A0C70002 */ lhz r6, 2(r7)
/* 0B8DBC 800BE35C 5560043E */ clrlwi r0, r11, 0x10
/* 0B8DC0 800BE360 7C060040 */ cmplw r6, r0
/* 0B8DC4 800BE364 41820018 */ beq lbl_800BE37C
lbl_800BE368:
/* 0B8DC8 800BE368 38000000 */ li r0, 0
/* 0B8DCC 800BE36C 90030088 */ stw r0, 0x88(r3)
/* 0B8DD0 800BE370 3BC50000 */ addi r30, r5, 0
/* 0B8DD4 800BE374 3BFF0001 */ addi r31, r31, 1
/* 0B8DD8 800BE378 4800005C */ b lbl_800BE3D4
lbl_800BE37C:
/* 0B8DDC 800BE37C A1030010 */ lhz r8, 0x10(r3)
/* 0B8DE0 800BE380 38C7000A */ addi r6, r7, 0xa
/* 0B8DE4 800BE384 39400000 */ li r10, 0
/* 0B8DE8 800BE388 39200005 */ li r9, 5
/* 0B8DEC 800BE38C 4800001C */ b lbl_800BE3A8
lbl_800BE390:
/* 0B8DF0 800BE390 A0060000 */ lhz r0, 0(r6)
/* 0B8DF4 800BE394 28000000 */ cmplwi r0, 0
/* 0B8DF8 800BE398 40820008 */ bne lbl_800BE3A0
/* 0B8DFC 800BE39C 394A0001 */ addi r10, r10, 1
lbl_800BE3A0:
/* 0B8E00 800BE3A0 38C60002 */ addi r6, r6, 2
/* 0B8E04 800BE3A4 39290001 */ addi r9, r9, 1
lbl_800BE3A8:
/* 0B8E08 800BE3A8 5520043E */ clrlwi r0, r9, 0x10
/* 0B8E0C 800BE3AC 7C004040 */ cmplw r0, r8
/* 0B8E10 800BE3B0 4180FFE0 */ blt lbl_800BE390
/* 0B8E14 800BE3B4 A0070006 */ lhz r0, 6(r7)
/* 0B8E18 800BE3B8 5546043E */ clrlwi r6, r10, 0x10
/* 0B8E1C 800BE3BC 7C060040 */ cmplw r6, r0
/* 0B8E20 800BE3C0 41820014 */ beq lbl_800BE3D4
/* 0B8E24 800BE3C4 38000000 */ li r0, 0
/* 0B8E28 800BE3C8 90030088 */ stw r0, 0x88(r3)
/* 0B8E2C 800BE3CC 3BC50000 */ addi r30, r5, 0
/* 0B8E30 800BE3D0 3BFF0001 */ addi r31, r31, 1
lbl_800BE3D4:
/* 0B8E34 800BE3D4 38A50001 */ addi r5, r5, 1
/* 0B8E38 800BE3D8 2C050002 */ cmpwi r5, 2
/* 0B8E3C 800BE3DC 38840004 */ addi r4, r4, 4
/* 0B8E40 800BE3E0 4180FE60 */ blt lbl_800BE240
/* 0B8E44 800BE3E4 2C1F0000 */ cmpwi r31, 0
/* 0B8E48 800BE3E8 40820084 */ bne lbl_800BE46C
/* 0B8E4C 800BE3EC 80830088 */ lwz r4, 0x88(r3)
/* 0B8E50 800BE3F0 28040000 */ cmplwi r4, 0
/* 0B8E54 800BE3F4 4082005C */ bne lbl_800BE450
/* 0B8E58 800BE3F8 80A10014 */ lwz r5, 0x14(r1)
/* 0B8E5C 800BE3FC 80810010 */ lwz r4, 0x10(r1)
/* 0B8E60 800BE400 A8A50004 */ lha r5, 4(r5)
/* 0B8E64 800BE404 A8040004 */ lha r0, 4(r4)
/* 0B8E68 800BE408 7C050051 */ subf. r0, r5, r0
/* 0B8E6C 800BE40C 4080000C */ bge lbl_800BE418
/* 0B8E70 800BE410 3BC00000 */ li r30, 0
/* 0B8E74 800BE414 48000008 */ b lbl_800BE41C
lbl_800BE418:
/* 0B8E78 800BE418 3BC00001 */ li r30, 1
lbl_800BE41C:
/* 0B8E7C 800BE41C 57C0103A */ slwi r0, r30, 2
/* 0B8E80 800BE420 38C10010 */ addi r6, r1, 0x10
/* 0B8E84 800BE424 7CC60214 */ add r6, r6, r0
/* 0B8E88 800BE428 80860000 */ lwz r4, 0(r6)
/* 0B8E8C 800BE42C 6BC00001 */ xori r0, r30, 1
/* 0B8E90 800BE430 5400103A */ slwi r0, r0, 2
/* 0B8E94 800BE434 90830088 */ stw r4, 0x88(r3)
/* 0B8E98 800BE438 38810010 */ addi r4, r1, 0x10
/* 0B8E9C 800BE43C 38A02000 */ li r5, 0x2000
/* 0B8EA0 800BE440 80660000 */ lwz r3, 0(r6)
/* 0B8EA4 800BE444 7C84002E */ lwzx r4, r4, r0
/* 0B8EA8 800BE448 4BF4707D */ bl memcpy
/* 0B8EAC 800BE44C 48000020 */ b lbl_800BE46C
lbl_800BE450:
/* 0B8EB0 800BE450 80010010 */ lwz r0, 0x10(r1)
/* 0B8EB4 800BE454 7C040040 */ cmplw r4, r0
/* 0B8EB8 800BE458 4082000C */ bne lbl_800BE464
/* 0B8EBC 800BE45C 38000000 */ li r0, 0
/* 0B8EC0 800BE460 48000008 */ b lbl_800BE468
lbl_800BE464:
/* 0B8EC4 800BE464 38000001 */ li r0, 1
lbl_800BE468:
/* 0B8EC8 800BE468 7C1E0378 */ mr r30, r0
lbl_800BE46C:
/* 0B8ECC 800BE46C 281D0000 */ cmplwi r29, 0
/* 0B8ED0 800BE470 41820008 */ beq lbl_800BE478
/* 0B8ED4 800BE474 93DD0000 */ stw r30, 0(r29)
lbl_800BE478:
/* 0B8ED8 800BE478 7FE3FB78 */ mr r3, r31
/* 0B8EDC 800BE47C 8001002C */ lwz r0, 0x2c(r1)
/* 0B8EE0 800BE480 83E10024 */ lwz r31, 0x24(r1)
/* 0B8EE4 800BE484 83C10020 */ lwz r30, 0x20(r1)
/* 0B8EE8 800BE488 83A1001C */ lwz r29, 0x1c(r1)
/* 0B8EEC 800BE48C 38210028 */ addi r1, r1, 0x28
/* 0B8EF0 800BE490 7C0803A6 */ mtlr r0
/* 0B8EF4 800BE494 4E800020 */ blr
glabel __CARDVerify
/* 0B8EF8 800BE498 7C0802A6 */ mflr r0
/* 0B8EFC 800BE49C 90010004 */ stw r0, 4(r1)
/* 0B8F00 800BE4A0 9421FFE8 */ stwu r1, -0x18(r1)
/* 0B8F04 800BE4A4 93E10014 */ stw r31, 0x14(r1)
/* 0B8F08 800BE4A8 93C10010 */ stw r30, 0x10(r1)
/* 0B8F0C 800BE4AC 7C7E1B78 */ mr r30, r3
/* 0B8F10 800BE4B0 4BFFF8A1 */ bl VerifyID
/* 0B8F14 800BE4B4 2C030000 */ cmpwi r3, 0
/* 0B8F18 800BE4B8 40800008 */ bge lbl_800BE4C0
/* 0B8F1C 800BE4BC 48000050 */ b lbl_800BE50C
lbl_800BE4C0:
/* 0B8F20 800BE4C0 387E0000 */ addi r3, r30, 0
/* 0B8F24 800BE4C4 38800000 */ li r4, 0
/* 0B8F28 800BE4C8 4BFFFB0D */ bl VerifyDir
/* 0B8F2C 800BE4CC 3BE30000 */ addi r31, r3, 0
/* 0B8F30 800BE4D0 387E0000 */ addi r3, r30, 0
/* 0B8F34 800BE4D4 38800000 */ li r4, 0
/* 0B8F38 800BE4D8 4BFFFD3D */ bl VerifyFAT
/* 0B8F3C 800BE4DC 7C1F1A14 */ add r0, r31, r3
/* 0B8F40 800BE4E0 2C000001 */ cmpwi r0, 1
/* 0B8F44 800BE4E4 4182001C */ beq lbl_800BE500
/* 0B8F48 800BE4E8 40800020 */ bge lbl_800BE508
/* 0B8F4C 800BE4EC 2C000000 */ cmpwi r0, 0
/* 0B8F50 800BE4F0 40800008 */ bge lbl_800BE4F8
/* 0B8F54 800BE4F4 48000014 */ b lbl_800BE508
lbl_800BE4F8:
/* 0B8F58 800BE4F8 38600000 */ li r3, 0
/* 0B8F5C 800BE4FC 48000010 */ b lbl_800BE50C
lbl_800BE500:
/* 0B8F60 800BE500 3860FFFA */ li r3, -6
/* 0B8F64 800BE504 48000008 */ b lbl_800BE50C
lbl_800BE508:
/* 0B8F68 800BE508 3860FFFA */ li r3, -6
lbl_800BE50C:
/* 0B8F6C 800BE50C 8001001C */ lwz r0, 0x1c(r1)
/* 0B8F70 800BE510 83E10014 */ lwz r31, 0x14(r1)
/* 0B8F74 800BE514 83C10010 */ lwz r30, 0x10(r1)
/* 0B8F78 800BE518 38210018 */ addi r1, r1, 0x18
/* 0B8F7C 800BE51C 7C0803A6 */ mtlr r0
/* 0B8F80 800BE520 4E800020 */ blr
glabel CARDCheckExAsync
/* 0B8F84 800BE524 7C0802A6 */ mflr r0
/* 0B8F88 800BE528 90010004 */ stw r0, 4(r1)
/* 0B8F8C 800BE52C 9421FFA8 */ stwu r1, -0x58(r1)
/* 0B8F90 800BE530 BF21003C */ stmw r25, 0x3c(r1)
/* 0B8F94 800BE534 7C9A2379 */ or. r26, r4, r4
/* 0B8F98 800BE538 3B230000 */ addi r25, r3, 0
/* 0B8F9C 800BE53C 3B650000 */ addi r27, r5, 0
/* 0B8FA0 800BE540 3BC00000 */ li r30, 0
/* 0B8FA4 800BE544 3BA00000 */ li r29, 0
/* 0B8FA8 800BE548 3B800000 */ li r28, 0
/* 0B8FAC 800BE54C 4182000C */ beq lbl_800BE558
/* 0B8FB0 800BE550 38000000 */ li r0, 0
/* 0B8FB4 800BE554 901A0000 */ stw r0, 0(r26)
lbl_800BE558:
/* 0B8FB8 800BE558 38790000 */ addi r3, r25, 0
/* 0B8FBC 800BE55C 38810030 */ addi r4, r1, 0x30
/* 0B8FC0 800BE560 4BFFD75D */ bl __CARDGetControlBlock
/* 0B8FC4 800BE564 2C030000 */ cmpwi r3, 0
/* 0B8FC8 800BE568 40800008 */ bge lbl_800BE570
/* 0B8FCC 800BE56C 48000534 */ b lbl_800BEAA0
lbl_800BE570:
/* 0B8FD0 800BE570 80610030 */ lwz r3, 0x30(r1)
/* 0B8FD4 800BE574 4BFFF7DD */ bl VerifyID
/* 0B8FD8 800BE578 7C641B79 */ or. r4, r3, r3
/* 0B8FDC 800BE57C 40800010 */ bge lbl_800BE58C
/* 0B8FE0 800BE580 80610030 */ lwz r3, 0x30(r1)
/* 0B8FE4 800BE584 4BFFD7F1 */ bl __CARDPutControlBlock
/* 0B8FE8 800BE588 48000518 */ b lbl_800BEAA0
lbl_800BE58C:
/* 0B8FEC 800BE58C 80610030 */ lwz r3, 0x30(r1)
/* 0B8FF0 800BE590 38810018 */ addi r4, r1, 0x18
/* 0B8FF4 800BE594 4BFFFA41 */ bl VerifyDir
/* 0B8FF8 800BE598 7C7F1B78 */ mr r31, r3
/* 0B8FFC 800BE59C 80610030 */ lwz r3, 0x30(r1)
/* 0B9000 800BE5A0 3881001C */ addi r4, r1, 0x1c
/* 0B9004 800BE5A4 4BFFFC71 */ bl VerifyFAT
/* 0B9008 800BE5A8 7CBF1A14 */ add r5, r31, r3
/* 0B900C 800BE5AC 2C050001 */ cmpwi r5, 1
/* 0B9010 800BE5B0 40810014 */ ble lbl_800BE5C4
/* 0B9014 800BE5B4 80610030 */ lwz r3, 0x30(r1)
/* 0B9018 800BE5B8 3880FFFA */ li r4, -6
/* 0B901C 800BE5BC 4BFFD7B9 */ bl __CARDPutControlBlock
/* 0B9020 800BE5C0 480004E0 */ b lbl_800BEAA0
lbl_800BE5C4:
/* 0B9024 800BE5C4 80C10030 */ lwz r6, 0x30(r1)
/* 0B9028 800BE5C8 80860080 */ lwz r4, 0x80(r6)
/* 0B902C 800BE5CC 38642000 */ addi r3, r4, 0x2000
/* 0B9030 800BE5D0 38046000 */ addi r0, r4, 0x6000
/* 0B9034 800BE5D4 90610028 */ stw r3, 0x28(r1)
/* 0B9038 800BE5D8 3C640001 */ addis r3, r4, 1
/* 0B903C 800BE5DC 38844000 */ addi r4, r4, 0x4000
/* 0B9040 800BE5E0 90010020 */ stw r0, 0x20(r1)
/* 0B9044 800BE5E4 38038000 */ addi r0, r3, -32768
/* 0B9048 800BE5E8 9081002C */ stw r4, 0x2c(r1)
/* 0B904C 800BE5EC 90010024 */ stw r0, 0x24(r1)
/* 0B9050 800BE5F0 4182000C */ beq lbl_800BE5FC
/* 0B9054 800BE5F4 4080008C */ bge lbl_800BE680
/* 0B9058 800BE5F8 48000088 */ b lbl_800BE680
lbl_800BE5FC:
/* 0B905C 800BE5FC 38660084 */ addi r3, r6, 0x84
/* 0B9060 800BE600 80060084 */ lwz r0, 0x84(r6)
/* 0B9064 800BE604 28000000 */ cmplwi r0, 0
/* 0B9068 800BE608 40820040 */ bne lbl_800BE648
/* 0B906C 800BE60C 80010018 */ lwz r0, 0x18(r1)
/* 0B9070 800BE610 38810028 */ addi r4, r1, 0x28
/* 0B9074 800BE614 38A02000 */ li r5, 0x2000
/* 0B9078 800BE618 5400103A */ slwi r0, r0, 2
/* 0B907C 800BE61C 7C04002E */ lwzx r0, r4, r0
/* 0B9080 800BE620 90030000 */ stw r0, 0(r3)
/* 0B9084 800BE624 80610018 */ lwz r3, 0x18(r1)
/* 0B9088 800BE628 68600001 */ xori r0, r3, 1
/* 0B908C 800BE62C 5463103A */ slwi r3, r3, 2
/* 0B9090 800BE630 5400103A */ slwi r0, r0, 2
/* 0B9094 800BE634 7C64182E */ lwzx r3, r4, r3
/* 0B9098 800BE638 7C84002E */ lwzx r4, r4, r0
/* 0B909C 800BE63C 4BF46E89 */ bl memcpy
/* 0B90A0 800BE640 3BA00001 */ li r29, 1
/* 0B90A4 800BE644 4800003C */ b lbl_800BE680
lbl_800BE648:
/* 0B90A8 800BE648 8001001C */ lwz r0, 0x1c(r1)
/* 0B90AC 800BE64C 38810020 */ addi r4, r1, 0x20
/* 0B90B0 800BE650 38A02000 */ li r5, 0x2000
/* 0B90B4 800BE654 5400103A */ slwi r0, r0, 2
/* 0B90B8 800BE658 7C04002E */ lwzx r0, r4, r0
/* 0B90BC 800BE65C 90060088 */ stw r0, 0x88(r6)
/* 0B90C0 800BE660 8061001C */ lwz r3, 0x1c(r1)
/* 0B90C4 800BE664 68600001 */ xori r0, r3, 1
/* 0B90C8 800BE668 5463103A */ slwi r3, r3, 2
/* 0B90CC 800BE66C 5400103A */ slwi r0, r0, 2
/* 0B90D0 800BE670 7C64182E */ lwzx r3, r4, r3
/* 0B90D4 800BE674 7C84002E */ lwzx r4, r4, r0
/* 0B90D8 800BE678 4BF46E4D */ bl memcpy
/* 0B90DC 800BE67C 3BC00001 */ li r30, 1
lbl_800BE680:
/* 0B90E0 800BE680 8001001C */ lwz r0, 0x1c(r1)
/* 0B90E4 800BE684 38610020 */ addi r3, r1, 0x20
/* 0B90E8 800BE688 38800000 */ li r4, 0
/* 0B90EC 800BE68C 68000001 */ xori r0, r0, 1
/* 0B90F0 800BE690 5400103A */ slwi r0, r0, 2
/* 0B90F4 800BE694 7FE3002E */ lwzx r31, r3, r0
/* 0B90F8 800BE698 38A02000 */ li r5, 0x2000
/* 0B90FC 800BE69C 387F0000 */ addi r3, r31, 0
/* 0B9100 800BE6A0 4BF46D31 */ bl memset
/* 0B9104 800BE6A4 3800007F */ li r0, 0x7f
/* 0B9108 800BE6A8 80A10030 */ lwz r5, 0x30(r1)
/* 0B910C 800BE6AC 7C0903A6 */ mtctr r0
/* 0B9110 800BE6B0 38C00000 */ li r6, 0
lbl_800BE6B4:
/* 0B9114 800BE6B4 80050084 */ lwz r0, 0x84(r5)
/* 0B9118 800BE6B8 7CE03214 */ add r7, r0, r6
/* 0B911C 800BE6BC 88070000 */ lbz r0, 0(r7)
/* 0B9120 800BE6C0 280000FF */ cmplwi r0, 0xff
/* 0B9124 800BE6C4 418200A8 */ beq lbl_800BE76C
/* 0B9128 800BE6C8 A0870036 */ lhz r4, 0x36(r7)
/* 0B912C 800BE6CC 39000000 */ li r8, 0
/* 0B9130 800BE6D0 48000054 */ b lbl_800BE724
lbl_800BE6D4:
/* 0B9134 800BE6D4 5483043E */ clrlwi r3, r4, 0x10
/* 0B9138 800BE6D8 28030005 */ cmplwi r3, 5
/* 0B913C 800BE6DC 4180002C */ blt lbl_800BE708
/* 0B9140 800BE6E0 A0050010 */ lhz r0, 0x10(r5)
/* 0B9144 800BE6E4 7C030040 */ cmplw r3, r0
/* 0B9148 800BE6E8 40800020 */ bge lbl_800BE708
/* 0B914C 800BE6EC 5464083C */ slwi r4, r3, 1
/* 0B9150 800BE6F0 7C7F222E */ lhzx r3, r31, r4
/* 0B9154 800BE6F4 38630001 */ addi r3, r3, 1
/* 0B9158 800BE6F8 5460043E */ clrlwi r0, r3, 0x10
/* 0B915C 800BE6FC 7C7F232E */ sthx r3, r31, r4
/* 0B9160 800BE700 28000001 */ cmplwi r0, 1
/* 0B9164 800BE704 40810014 */ ble lbl_800BE718
lbl_800BE708:
/* 0B9168 800BE708 80610030 */ lwz r3, 0x30(r1)
/* 0B916C 800BE70C 3880FFFA */ li r4, -6
/* 0B9170 800BE710 4BFFD665 */ bl __CARDPutControlBlock
/* 0B9174 800BE714 4800038C */ b lbl_800BEAA0
lbl_800BE718:
/* 0B9178 800BE718 80650088 */ lwz r3, 0x88(r5)
/* 0B917C 800BE71C 39080001 */ addi r8, r8, 1
/* 0B9180 800BE720 7C83222E */ lhzx r4, r3, r4
lbl_800BE724:
/* 0B9184 800BE724 5480043E */ clrlwi r0, r4, 0x10
/* 0B9188 800BE728 2800FFFF */ cmplwi r0, 0xffff
/* 0B918C 800BE72C 41820014 */ beq lbl_800BE740
/* 0B9190 800BE730 A0070038 */ lhz r0, 0x38(r7)
/* 0B9194 800BE734 5503043E */ clrlwi r3, r8, 0x10
/* 0B9198 800BE738 7C030040 */ cmplw r3, r0
/* 0B919C 800BE73C 4180FF98 */ blt lbl_800BE6D4
lbl_800BE740:
/* 0B91A0 800BE740 A0070038 */ lhz r0, 0x38(r7)
/* 0B91A4 800BE744 5503043E */ clrlwi r3, r8, 0x10
/* 0B91A8 800BE748 7C030040 */ cmplw r3, r0
/* 0B91AC 800BE74C 40820010 */ bne lbl_800BE75C
/* 0B91B0 800BE750 5480043E */ clrlwi r0, r4, 0x10
/* 0B91B4 800BE754 2800FFFF */ cmplwi r0, 0xffff
/* 0B91B8 800BE758 41820014 */ beq lbl_800BE76C
lbl_800BE75C:
/* 0B91BC 800BE75C 80610030 */ lwz r3, 0x30(r1)
/* 0B91C0 800BE760 3880FFFA */ li r4, -6
/* 0B91C4 800BE764 4BFFD611 */ bl __CARDPutControlBlock
/* 0B91C8 800BE768 48000338 */ b lbl_800BEAA0
lbl_800BE76C:
/* 0B91CC 800BE76C 38C60040 */ addi r6, r6, 0x40
/* 0B91D0 800BE770 4200FF44 */ bdnz lbl_800BE6B4
/* 0B91D4 800BE774 80610030 */ lwz r3, 0x30(r1)
/* 0B91D8 800BE778 38DF000A */ addi r6, r31, 0xa
/* 0B91DC 800BE77C 39200000 */ li r9, 0
/* 0B91E0 800BE780 39000005 */ li r8, 5
/* 0B91E4 800BE784 38A0000A */ li r5, 0xa
/* 0B91E8 800BE788 48000068 */ b lbl_800BE7F0
lbl_800BE78C:
/* 0B91EC 800BE78C 80830088 */ lwz r4, 0x88(r3)
/* 0B91F0 800BE790 A0060000 */ lhz r0, 0(r6)
/* 0B91F4 800BE794 7C842A14 */ add r4, r4, r5
/* 0B91F8 800BE798 28000000 */ cmplwi r0, 0
/* 0B91FC 800BE79C A0040000 */ lhz r0, 0(r4)
/* 0B9200 800BE7A0 40820020 */ bne lbl_800BE7C0
/* 0B9204 800BE7A4 28000000 */ cmplwi r0, 0
/* 0B9208 800BE7A8 41820010 */ beq lbl_800BE7B8
/* 0B920C 800BE7AC 38000000 */ li r0, 0
/* 0B9210 800BE7B0 B0040000 */ sth r0, 0(r4)
/* 0B9214 800BE7B4 3B800001 */ li r28, 1
lbl_800BE7B8:
/* 0B9218 800BE7B8 39290001 */ addi r9, r9, 1
/* 0B921C 800BE7BC 48000028 */ b lbl_800BE7E4
lbl_800BE7C0:
/* 0B9220 800BE7C0 28000005 */ cmplwi r0, 5
/* 0B9224 800BE7C4 4180000C */ blt lbl_800BE7D0
/* 0B9228 800BE7C8 7C003840 */ cmplw r0, r7
/* 0B922C 800BE7CC 41800018 */ blt lbl_800BE7E4
lbl_800BE7D0:
/* 0B9230 800BE7D0 2800FFFF */ cmplwi r0, 0xffff
/* 0B9234 800BE7D4 41820010 */ beq lbl_800BE7E4
/* 0B9238 800BE7D8 3880FFFA */ li r4, -6
/* 0B923C 800BE7DC 4BFFD599 */ bl __CARDPutControlBlock
/* 0B9240 800BE7E0 480002C0 */ b lbl_800BEAA0
lbl_800BE7E4:
/* 0B9244 800BE7E4 38A50002 */ addi r5, r5, 2
/* 0B9248 800BE7E8 38C60002 */ addi r6, r6, 2
/* 0B924C 800BE7EC 39080001 */ addi r8, r8, 1
lbl_800BE7F0:
/* 0B9250 800BE7F0 A0E30010 */ lhz r7, 0x10(r3)
/* 0B9254 800BE7F4 5500043E */ clrlwi r0, r8, 0x10
/* 0B9258 800BE7F8 7C003840 */ cmplw r0, r7
/* 0B925C 800BE7FC 4180FF90 */ blt lbl_800BE78C
/* 0B9260 800BE800 80630088 */ lwz r3, 0x88(r3)
/* 0B9264 800BE804 5524043E */ clrlwi r4, r9, 0x10
/* 0B9268 800BE808 A4030006 */ lhzu r0, 6(r3)
/* 0B926C 800BE80C 7C040040 */ cmplw r4, r0
/* 0B9270 800BE810 4182000C */ beq lbl_800BE81C
/* 0B9274 800BE814 B1230000 */ sth r9, 0(r3)
/* 0B9278 800BE818 3B800001 */ li r28, 1
lbl_800BE81C:
/* 0B927C 800BE81C 2C1C0000 */ cmpwi r28, 0
/* 0B9280 800BE820 418201C8 */ beq lbl_800BE9E8
/* 0B9284 800BE824 80610030 */ lwz r3, 0x30(r1)
/* 0B9288 800BE828 38801FFC */ li r4, 0x1ffc
/* 0B928C 800BE82C 7C840E70 */ srawi r4, r4, 1
/* 0B9290 800BE830 80C30088 */ lwz r6, 0x88(r3)
/* 0B9294 800BE834 38000000 */ li r0, 0
/* 0B9298 800BE838 7C840195 */ addze. r4, r4
/* 0B929C 800BE83C B0060002 */ sth r0, 2(r6)
/* 0B92A0 800BE840 38E60002 */ addi r7, r6, 2
/* 0B92A4 800BE844 38A60004 */ addi r5, r6, 4
/* 0B92A8 800BE848 B0060000 */ sth r0, 0(r6)
/* 0B92AC 800BE84C 38640000 */ addi r3, r4, 0
/* 0B92B0 800BE850 40810170 */ ble lbl_800BE9C0
/* 0B92B4 800BE854 5460E8FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
/* 0B92B8 800BE858 7C0903A6 */ mtctr r0
/* 0B92BC 800BE85C 41820134 */ beq lbl_800BE990
lbl_800BE860:
/* 0B92C0 800BE860 A0860000 */ lhz r4, 0(r6)
/* 0B92C4 800BE864 A0050000 */ lhz r0, 0(r5)
/* 0B92C8 800BE868 7C040214 */ add r0, r4, r0
/* 0B92CC 800BE86C B0060000 */ sth r0, 0(r6)
/* 0B92D0 800BE870 A0050000 */ lhz r0, 0(r5)
/* 0B92D4 800BE874 A0870000 */ lhz r4, 0(r7)
/* 0B92D8 800BE878 7C0000F8 */ nor r0, r0, r0
/* 0B92DC 800BE87C 7C040214 */ add r0, r4, r0
/* 0B92E0 800BE880 B0070000 */ sth r0, 0(r7)
/* 0B92E4 800BE884 A0860000 */ lhz r4, 0(r6)
/* 0B92E8 800BE888 A0050002 */ lhz r0, 2(r5)
/* 0B92EC 800BE88C 7C040214 */ add r0, r4, r0
/* 0B92F0 800BE890 B0060000 */ sth r0, 0(r6)
/* 0B92F4 800BE894 A0050002 */ lhz r0, 2(r5)
/* 0B92F8 800BE898 A0870000 */ lhz r4, 0(r7)
/* 0B92FC 800BE89C 7C0000F8 */ nor r0, r0, r0
/* 0B9300 800BE8A0 7C040214 */ add r0, r4, r0
/* 0B9304 800BE8A4 B0070000 */ sth r0, 0(r7)
/* 0B9308 800BE8A8 A0860000 */ lhz r4, 0(r6)
/* 0B930C 800BE8AC A0050004 */ lhz r0, 4(r5)
/* 0B9310 800BE8B0 7C040214 */ add r0, r4, r0
/* 0B9314 800BE8B4 B0060000 */ sth r0, 0(r6)
/* 0B9318 800BE8B8 A0050004 */ lhz r0, 4(r5)
/* 0B931C 800BE8BC A0870000 */ lhz r4, 0(r7)
/* 0B9320 800BE8C0 7C0000F8 */ nor r0, r0, r0
/* 0B9324 800BE8C4 7C040214 */ add r0, r4, r0
/* 0B9328 800BE8C8 B0070000 */ sth r0, 0(r7)
/* 0B932C 800BE8CC A0860000 */ lhz r4, 0(r6)
/* 0B9330 800BE8D0 A0050006 */ lhz r0, 6(r5)
/* 0B9334 800BE8D4 7C040214 */ add r0, r4, r0
/* 0B9338 800BE8D8 B0060000 */ sth r0, 0(r6)
/* 0B933C 800BE8DC A0050006 */ lhz r0, 6(r5)
/* 0B9340 800BE8E0 A0870000 */ lhz r4, 0(r7)
/* 0B9344 800BE8E4 7C0000F8 */ nor r0, r0, r0
/* 0B9348 800BE8E8 7C040214 */ add r0, r4, r0
/* 0B934C 800BE8EC B0070000 */ sth r0, 0(r7)
/* 0B9350 800BE8F0 A0860000 */ lhz r4, 0(r6)
/* 0B9354 800BE8F4 A0050008 */ lhz r0, 8(r5)
/* 0B9358 800BE8F8 7C040214 */ add r0, r4, r0
/* 0B935C 800BE8FC B0060000 */ sth r0, 0(r6)
/* 0B9360 800BE900 A0050008 */ lhz r0, 8(r5)
/* 0B9364 800BE904 A0870000 */ lhz r4, 0(r7)
/* 0B9368 800BE908 7C0000F8 */ nor r0, r0, r0
/* 0B936C 800BE90C 7C040214 */ add r0, r4, r0
/* 0B9370 800BE910 B0070000 */ sth r0, 0(r7)
/* 0B9374 800BE914 A0860000 */ lhz r4, 0(r6)
/* 0B9378 800BE918 A005000A */ lhz r0, 0xa(r5)
/* 0B937C 800BE91C 7C040214 */ add r0, r4, r0
/* 0B9380 800BE920 B0060000 */ sth r0, 0(r6)
/* 0B9384 800BE924 A005000A */ lhz r0, 0xa(r5)
/* 0B9388 800BE928 A0870000 */ lhz r4, 0(r7)
/* 0B938C 800BE92C 7C0000F8 */ nor r0, r0, r0
/* 0B9390 800BE930 7C040214 */ add r0, r4, r0
/* 0B9394 800BE934 B0070000 */ sth r0, 0(r7)
/* 0B9398 800BE938 A0860000 */ lhz r4, 0(r6)
/* 0B939C 800BE93C A005000C */ lhz r0, 0xc(r5)
/* 0B93A0 800BE940 7C040214 */ add r0, r4, r0
/* 0B93A4 800BE944 B0060000 */ sth r0, 0(r6)
/* 0B93A8 800BE948 A005000C */ lhz r0, 0xc(r5)
/* 0B93AC 800BE94C A0870000 */ lhz r4, 0(r7)
/* 0B93B0 800BE950 7C0000F8 */ nor r0, r0, r0
/* 0B93B4 800BE954 7C040214 */ add r0, r4, r0
/* 0B93B8 800BE958 B0070000 */ sth r0, 0(r7)
/* 0B93BC 800BE95C A0860000 */ lhz r4, 0(r6)
/* 0B93C0 800BE960 A005000E */ lhz r0, 0xe(r5)
/* 0B93C4 800BE964 7C040214 */ add r0, r4, r0
/* 0B93C8 800BE968 B0060000 */ sth r0, 0(r6)
/* 0B93CC 800BE96C A005000E */ lhz r0, 0xe(r5)
/* 0B93D0 800BE970 38A50010 */ addi r5, r5, 0x10
/* 0B93D4 800BE974 A0870000 */ lhz r4, 0(r7)
/* 0B93D8 800BE978 7C0000F8 */ nor r0, r0, r0
/* 0B93DC 800BE97C 7C040214 */ add r0, r4, r0
/* 0B93E0 800BE980 B0070000 */ sth r0, 0(r7)
/* 0B93E4 800BE984 4200FEDC */ bdnz lbl_800BE860
/* 0B93E8 800BE988 70630007 */ andi. r3, r3, 7
/* 0B93EC 800BE98C 41820034 */ beq lbl_800BE9C0
lbl_800BE990:
/* 0B93F0 800BE990 7C6903A6 */ mtctr r3
lbl_800BE994:
/* 0B93F4 800BE994 A0860000 */ lhz r4, 0(r6)
/* 0B93F8 800BE998 A0050000 */ lhz r0, 0(r5)
/* 0B93FC 800BE99C 7C040214 */ add r0, r4, r0
/* 0B9400 800BE9A0 B0060000 */ sth r0, 0(r6)
/* 0B9404 800BE9A4 A0050000 */ lhz r0, 0(r5)
/* 0B9408 800BE9A8 38A50002 */ addi r5, r5, 2
/* 0B940C 800BE9AC A0870000 */ lhz r4, 0(r7)
/* 0B9410 800BE9B0 7C0000F8 */ nor r0, r0, r0
/* 0B9414 800BE9B4 7C040214 */ add r0, r4, r0
/* 0B9418 800BE9B8 B0070000 */ sth r0, 0(r7)
/* 0B941C 800BE9BC 4200FFD8 */ bdnz lbl_800BE994
lbl_800BE9C0:
/* 0B9420 800BE9C0 A0060000 */ lhz r0, 0(r6)
/* 0B9424 800BE9C4 2800FFFF */ cmplwi r0, 0xffff
/* 0B9428 800BE9C8 4082000C */ bne lbl_800BE9D4
/* 0B942C 800BE9CC 38000000 */ li r0, 0
/* 0B9430 800BE9D0 B0060000 */ sth r0, 0(r6)
lbl_800BE9D4:
/* 0B9434 800BE9D4 A0070000 */ lhz r0, 0(r7)
/* 0B9438 800BE9D8 2800FFFF */ cmplwi r0, 0xffff
/* 0B943C 800BE9DC 4082000C */ bne lbl_800BE9E8
/* 0B9440 800BE9E0 38000000 */ li r0, 0
/* 0B9444 800BE9E4 B0070000 */ sth r0, 0(r7)
lbl_800BE9E8:
/* 0B9448 800BE9E8 80C1001C */ lwz r6, 0x1c(r1)
/* 0B944C 800BE9EC 38810020 */ addi r4, r1, 0x20
/* 0B9450 800BE9F0 38A02000 */ li r5, 0x2000
/* 0B9454 800BE9F4 68C00001 */ xori r0, r6, 1
/* 0B9458 800BE9F8 5403103A */ slwi r3, r0, 2
/* 0B945C 800BE9FC 54C0103A */ slwi r0, r6, 2
/* 0B9460 800BEA00 7C64182E */ lwzx r3, r4, r3
/* 0B9464 800BEA04 7C84002E */ lwzx r4, r4, r0
/* 0B9468 800BEA08 4BF46ABD */ bl memcpy
/* 0B946C 800BEA0C 2C1D0000 */ cmpwi r29, 0
/* 0B9470 800BEA10 41820024 */ beq lbl_800BEA34
/* 0B9474 800BEA14 281A0000 */ cmplwi r26, 0
/* 0B9478 800BEA18 4182000C */ beq lbl_800BEA24
/* 0B947C 800BEA1C 38002000 */ li r0, 0x2000
/* 0B9480 800BEA20 901A0000 */ stw r0, 0(r26)
lbl_800BEA24:
/* 0B9484 800BEA24 38790000 */ addi r3, r25, 0
/* 0B9488 800BEA28 389B0000 */ addi r4, r27, 0
/* 0B948C 800BEA2C 4BFFF0B1 */ bl __CARDUpdateDir
/* 0B9490 800BEA30 48000070 */ b lbl_800BEAA0
lbl_800BEA34:
/* 0B9494 800BEA34 7FC0E379 */ or. r0, r30, r28
/* 0B9498 800BEA38 4182002C */ beq lbl_800BEA64
/* 0B949C 800BEA3C 281A0000 */ cmplwi r26, 0
/* 0B94A0 800BEA40 4182000C */ beq lbl_800BEA4C
/* 0B94A4 800BEA44 38002000 */ li r0, 0x2000
/* 0B94A8 800BEA48 901A0000 */ stw r0, 0(r26)
lbl_800BEA4C:
/* 0B94AC 800BEA4C 80810030 */ lwz r4, 0x30(r1)
/* 0B94B0 800BEA50 38790000 */ addi r3, r25, 0
/* 0B94B4 800BEA54 38BB0000 */ addi r5, r27, 0
/* 0B94B8 800BEA58 80840088 */ lwz r4, 0x88(r4)
/* 0B94BC 800BEA5C 4BFFEE35 */ bl __CARDUpdateFatBlock
/* 0B94C0 800BEA60 48000040 */ b lbl_800BEAA0
lbl_800BEA64:
/* 0B94C4 800BEA64 80610030 */ lwz r3, 0x30(r1)
/* 0B94C8 800BEA68 38800000 */ li r4, 0
/* 0B94CC 800BEA6C 4BFFD309 */ bl __CARDPutControlBlock
/* 0B94D0 800BEA70 281B0000 */ cmplwi r27, 0
/* 0B94D4 800BEA74 41820028 */ beq lbl_800BEA9C
/* 0B94D8 800BEA78 4BFE0285 */ bl OSDisableInterrupts
/* 0B94DC 800BEA7C 399B0000 */ addi r12, r27, 0
/* 0B94E0 800BEA80 7D8803A6 */ mtlr r12
/* 0B94E4 800BEA84 3B430000 */ addi r26, r3, 0
/* 0B94E8 800BEA88 38790000 */ addi r3, r25, 0
/* 0B94EC 800BEA8C 38800000 */ li r4, 0
/* 0B94F0 800BEA90 4E800021 */ blrl
/* 0B94F4 800BEA94 7F43D378 */ mr r3, r26
/* 0B94F8 800BEA98 4BFE028D */ bl OSRestoreInterrupts
lbl_800BEA9C:
/* 0B94FC 800BEA9C 38600000 */ li r3, 0
lbl_800BEAA0:
/* 0B9500 800BEAA0 BB21003C */ lmw r25, 0x3c(r1)
/* 0B9504 800BEAA4 8001005C */ lwz r0, 0x5c(r1)
/* 0B9508 800BEAA8 38210058 */ addi r1, r1, 0x58
/* 0B950C 800BEAAC 7C0803A6 */ mtlr r0
/* 0B9510 800BEAB0 4E800020 */ blr
glabel CARDCheck
/* 0B9514 800BEAB4 7C0802A6 */ mflr r0
/* 0B9518 800BEAB8 3C80800C */ lis r4, __CARDSyncCallback@ha
/* 0B951C 800BEABC 90010004 */ stw r0, 4(r1)
/* 0B9520 800BEAC0 38A4AD60 */ addi r5, r4, __CARDSyncCallback@l
/* 0B9524 800BEAC4 9421FFE8 */ stwu r1, -0x18(r1)
/* 0B9528 800BEAC8 93E10014 */ stw r31, 0x14(r1)
/* 0B952C 800BEACC 3BE30000 */ addi r31, r3, 0
/* 0B9530 800BEAD0 3881000C */ addi r4, r1, 0xc
/* 0B9534 800BEAD4 4BFFFA51 */ bl CARDCheckExAsync
/* 0B9538 800BEAD8 2C030000 */ cmpwi r3, 0
/* 0B953C 800BEADC 41800018 */ blt lbl_800BEAF4
/* 0B9540 800BEAE0 3401000C */ addic. r0, r1, 0xc
/* 0B9544 800BEAE4 40820008 */ bne lbl_800BEAEC
/* 0B9548 800BEAE8 4800000C */ b lbl_800BEAF4
lbl_800BEAEC:
/* 0B954C 800BEAEC 7FE3FB78 */ mr r3, r31
/* 0B9550 800BEAF0 4BFFD469 */ bl __CARDSync
lbl_800BEAF4:
/* 0B9554 800BEAF4 8001001C */ lwz r0, 0x1c(r1)
/* 0B9558 800BEAF8 83E10014 */ lwz r31, 0x14(r1)
/* 0B955C 800BEAFC 38210018 */ addi r1, r1, 0x18
/* 0B9560 800BEB00 7C0803A6 */ mtlr r0
/* 0B9564 800BEB04 4E800020 */ blr