donut-decomp/asm/nand/NANDCore.s
2022-10-17 09:22:20 +01:00

1620 lines
66 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global nandRemoveTailToken
nandRemoveTailToken:
/* 800497B0 000455F0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800497B4 000455F4 7C 08 02 A6 */ mflr r0
/* 800497B8 000455F8 90 01 00 24 */ stw r0, 0x24(r1)
/* 800497BC 000455FC 88 04 00 00 */ lbz r0, 0x0(r4)
/* 800497C0 00045600 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800497C4 00045604 2C 00 00 2F */ cmpwi r0, 0x2f
/* 800497C8 00045608 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800497CC 0004560C 7C 9E 23 78 */ mr r30, r4
/* 800497D0 00045610 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800497D4 00045614 7C 7D 1B 78 */ mr r29, r3
/* 800497D8 00045618 40 82 00 24 */ bne lbl_800497FC
/* 800497DC 0004561C 88 04 00 01 */ lbz r0, 0x1(r4)
/* 800497E0 00045620 7C 00 07 75 */ extsb. r0, r0
/* 800497E4 00045624 40 82 00 18 */ bne lbl_800497FC
/* 800497E8 00045628 38 80 00 2F */ li r4, 0x2f
/* 800497EC 0004562C 38 00 00 00 */ li r0, 0x0
/* 800497F0 00045630 98 83 00 00 */ stb r4, 0x0(r3)
/* 800497F4 00045634 98 03 00 01 */ stb r0, 0x1(r3)
/* 800497F8 00045638 48 00 00 70 */ b lbl_80049868
.global lbl_800497FC
lbl_800497FC:
/* 800497FC 0004563C 7F C3 F3 78 */ mr r3, r30
/* 80049800 00045640 4B FB D2 8D */ bl strlen
/* 80049804 00045644 37 E3 FF FF */ addic. r31, r3, -0x1
/* 80049808 00045648 38 1F 00 01 */ addi r0, r31, 0x1
/* 8004980C 0004564C 7C 7E FA 14 */ add r3, r30, r31
/* 80049810 00045650 7C 09 03 A6 */ mtctr r0
/* 80049814 00045654 41 80 00 54 */ blt lbl_80049868
.global lbl_80049818
lbl_80049818:
/* 80049818 00045658 88 03 00 00 */ lbz r0, 0x0(r3)
/* 8004981C 0004565C 2C 00 00 2F */ cmpwi r0, 0x2f
/* 80049820 00045660 40 82 00 3C */ bne lbl_8004985C
/* 80049824 00045664 2C 1F 00 00 */ cmpwi r31, 0x0
/* 80049828 00045668 41 82 00 20 */ beq lbl_80049848
/* 8004982C 0004566C 7F A3 EB 78 */ mr r3, r29
/* 80049830 00045670 7F C4 F3 78 */ mr r4, r30
/* 80049834 00045674 7F E5 FB 78 */ mr r5, r31
/* 80049838 00045678 4B FC 42 49 */ bl strncpy
/* 8004983C 0004567C 38 00 00 00 */ li r0, 0x0
/* 80049840 00045680 7C 1D F9 AE */ stbx r0, r29, r31
/* 80049844 00045684 48 00 00 24 */ b lbl_80049868
.global lbl_80049848
lbl_80049848:
/* 80049848 00045688 38 60 00 2F */ li r3, 0x2f
/* 8004984C 0004568C 38 00 00 00 */ li r0, 0x0
/* 80049850 00045690 98 7D 00 00 */ stb r3, 0x0(r29)
/* 80049854 00045694 98 1D 00 01 */ stb r0, 0x1(r29)
/* 80049858 00045698 48 00 00 10 */ b lbl_80049868
.global lbl_8004985C
lbl_8004985C:
/* 8004985C 0004569C 3B FF FF FF */ addi r31, r31, -0x1
/* 80049860 000456A0 38 63 FF FF */ addi r3, r3, -0x1
/* 80049864 000456A4 42 00 FF B4 */ bdnz lbl_80049818
.global lbl_80049868
lbl_80049868:
/* 80049868 000456A8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8004986C 000456AC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80049870 000456B0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80049874 000456B4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80049878 000456B8 7C 08 03 A6 */ mtlr r0
/* 8004987C 000456BC 38 21 00 20 */ addi r1, r1, 0x20
/* 80049880 000456C0 4E 80 00 20 */ blr
/* 80049884 000456C4 00 00 00 00 */ .4byte 0x00000000
/* 80049888 000456C8 00 00 00 00 */ .4byte 0x00000000
/* 8004988C 000456CC 00 00 00 00 */ .4byte 0x00000000
.global nandGetHeadToken
nandGetHeadToken:
/* 80049890 000456D0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80049894 000456D4 7C 08 02 A6 */ mflr r0
/* 80049898 000456D8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004989C 000456DC 39 61 00 20 */ addi r11, r1, 0x20
/* 800498A0 000456E0 4B FB DA 9D */ bl lbl_8000733C
/* 800498A4 000456E4 7C 7B 1B 78 */ mr r27, r3
/* 800498A8 000456E8 7C 9C 23 78 */ mr r28, r4
/* 800498AC 000456EC 7C BD 2B 78 */ mr r29, r5
/* 800498B0 000456F0 7C BF 2B 78 */ mr r31, r5
/* 800498B4 000456F4 3B C0 00 00 */ li r30, 0x0
/* 800498B8 000456F8 48 00 00 84 */ b lbl_8004993C
.global lbl_800498BC
lbl_800498BC:
/* 800498BC 000456FC 88 1F 00 00 */ lbz r0, 0x0(r31)
/* 800498C0 00045700 7C 00 07 74 */ extsb r0, r0
/* 800498C4 00045704 2C 00 00 2F */ cmpwi r0, 0x2f
/* 800498C8 00045708 40 82 00 44 */ bne lbl_8004990C
/* 800498CC 0004570C 7F 63 DB 78 */ mr r3, r27
/* 800498D0 00045710 7F A4 EB 78 */ mr r4, r29
/* 800498D4 00045714 7F C5 F3 78 */ mr r5, r30
/* 800498D8 00045718 4B FC 41 A9 */ bl strncpy
/* 800498DC 0004571C 7C 9E EA 14 */ add r4, r30, r29
/* 800498E0 00045720 38 60 00 00 */ li r3, 0x0
/* 800498E4 00045724 88 04 00 01 */ lbz r0, 0x1(r4)
/* 800498E8 00045728 7C 7B F1 AE */ stbx r3, r27, r30
/* 800498EC 0004572C 7C 00 07 75 */ extsb. r0, r0
/* 800498F0 00045730 40 82 00 0C */ bne lbl_800498FC
/* 800498F4 00045734 98 7C 00 00 */ stb r3, 0x0(r28)
/* 800498F8 00045738 48 00 00 54 */ b lbl_8004994C
.global lbl_800498FC
lbl_800498FC:
/* 800498FC 0004573C 7F 83 E3 78 */ mr r3, r28
/* 80049900 00045740 38 84 00 01 */ addi r4, r4, 0x1
/* 80049904 00045744 4B FC 40 BD */ bl strcpy
/* 80049908 00045748 48 00 00 44 */ b lbl_8004994C
.global lbl_8004990C
lbl_8004990C:
/* 8004990C 0004574C 2C 00 00 00 */ cmpwi r0, 0x0
/* 80049910 00045750 40 82 00 24 */ bne lbl_80049934
/* 80049914 00045754 7F 63 DB 78 */ mr r3, r27
/* 80049918 00045758 7F A4 EB 78 */ mr r4, r29
/* 8004991C 0004575C 7F C5 F3 78 */ mr r5, r30
/* 80049920 00045760 4B FC 41 61 */ bl strncpy
/* 80049924 00045764 38 00 00 00 */ li r0, 0x0
/* 80049928 00045768 7C 1B F1 AE */ stbx r0, r27, r30
/* 8004992C 0004576C 98 1C 00 00 */ stb r0, 0x0(r28)
/* 80049930 00045770 48 00 00 1C */ b lbl_8004994C
.global lbl_80049934
lbl_80049934:
/* 80049934 00045774 3B DE 00 01 */ addi r30, r30, 0x1
/* 80049938 00045778 3B FF 00 01 */ addi r31, r31, 0x1
.global lbl_8004993C
lbl_8004993C:
/* 8004993C 0004577C 7F A3 EB 78 */ mr r3, r29
/* 80049940 00045780 4B FB D1 4D */ bl strlen
/* 80049944 00045784 7C 1E 18 40 */ cmplw r30, r3
/* 80049948 00045788 40 81 FF 74 */ ble lbl_800498BC
.global lbl_8004994C
lbl_8004994C:
/* 8004994C 0004578C 39 61 00 20 */ addi r11, r1, 0x20
/* 80049950 00045790 4B FB DA 39 */ bl lbl_80007388
/* 80049954 00045794 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80049958 00045798 7C 08 03 A6 */ mtlr r0
/* 8004995C 0004579C 38 21 00 20 */ addi r1, r1, 0x20
/* 80049960 000457A0 4E 80 00 20 */ blr
/* 80049964 000457A4 00 00 00 00 */ .4byte 0x00000000
/* 80049968 000457A8 00 00 00 00 */ .4byte 0x00000000
/* 8004996C 000457AC 00 00 00 00 */ .4byte 0x00000000
.global nandGetRelativeName
nandGetRelativeName:
/* 80049970 000457B0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80049974 000457B4 7C 08 02 A6 */ mflr r0
/* 80049978 000457B8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004997C 000457BC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80049980 000457C0 7C 9F 23 78 */ mr r31, r4
/* 80049984 000457C4 93 C1 00 08 */ stw r30, 0x8(r1)
/* 80049988 000457C8 7C 7E 1B 78 */ mr r30, r3
/* 8004998C 000457CC 38 6D 82 24 */ addi r3, r13, "@3783"@sda21
/* 80049990 000457D0 4B FC 41 AD */ bl strcmp
/* 80049994 000457D4 2C 03 00 00 */ cmpwi r3, 0x0
/* 80049998 000457D8 40 82 00 14 */ bne lbl_800499AC
/* 8004999C 000457DC 7F C3 F3 78 */ mr r3, r30
/* 800499A0 000457E0 38 8D 82 28 */ addi r4, r13, "@3784"@sda21
/* 800499A4 000457E4 4B FC 40 1D */ bl strcpy
/* 800499A8 000457E8 48 00 00 48 */ b lbl_800499F0
.global lbl_800499AC
lbl_800499AC:
/* 800499AC 000457EC 7F E3 FB 78 */ mr r3, r31
/* 800499B0 000457F0 4B FB D0 DD */ bl strlen
/* 800499B4 000457F4 34 83 FF FF */ addic. r4, r3, -0x1
/* 800499B8 000457F8 38 04 00 01 */ addi r0, r4, 0x1
/* 800499BC 000457FC 7C 7F 22 14 */ add r3, r31, r4
/* 800499C0 00045800 7C 09 03 A6 */ mtctr r0
/* 800499C4 00045804 41 80 00 1C */ blt lbl_800499E0
.global lbl_800499C8
lbl_800499C8:
/* 800499C8 00045808 88 03 00 00 */ lbz r0, 0x0(r3)
/* 800499CC 0004580C 2C 00 00 2F */ cmpwi r0, 0x2f
/* 800499D0 00045810 41 82 00 10 */ beq lbl_800499E0
/* 800499D4 00045814 38 84 FF FF */ addi r4, r4, -0x1
/* 800499D8 00045818 38 63 FF FF */ addi r3, r3, -0x1
/* 800499DC 0004581C 42 00 FF EC */ bdnz lbl_800499C8
.global lbl_800499E0
lbl_800499E0:
/* 800499E0 00045820 7C 9F 22 14 */ add r4, r31, r4
/* 800499E4 00045824 7F C3 F3 78 */ mr r3, r30
/* 800499E8 00045828 38 84 00 01 */ addi r4, r4, 0x1
/* 800499EC 0004582C 4B FC 3F D5 */ bl strcpy
.global lbl_800499F0
lbl_800499F0:
/* 800499F0 00045830 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800499F4 00045834 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800499F8 00045838 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 800499FC 0004583C 7C 08 03 A6 */ mtlr r0
/* 80049A00 00045840 38 21 00 10 */ addi r1, r1, 0x10
/* 80049A04 00045844 4E 80 00 20 */ blr
/* 80049A08 00045848 00 00 00 00 */ .4byte 0x00000000
/* 80049A0C 0004584C 00 00 00 00 */ .4byte 0x00000000
.global nandConvertPath
nandConvertPath:
/* 80049A10 00045850 94 21 FD E0 */ stwu r1, -0x220(r1)
/* 80049A14 00045854 7C 08 02 A6 */ mflr r0
/* 80049A18 00045858 90 01 02 24 */ stw r0, 0x224(r1)
/* 80049A1C 0004585C 93 E1 02 1C */ stw r31, 0x21c(r1)
/* 80049A20 00045860 7C BF 2B 78 */ mr r31, r5
/* 80049A24 00045864 93 C1 02 18 */ stw r30, 0x218(r1)
/* 80049A28 00045868 7C 9E 23 78 */ mr r30, r4
/* 80049A2C 0004586C 93 A1 02 14 */ stw r29, 0x214(r1)
/* 80049A30 00045870 7C 7D 1B 78 */ mr r29, r3
/* 80049A34 00045874 7F E3 FB 78 */ mr r3, r31
/* 80049A38 00045878 4B FB D0 55 */ bl strlen
/* 80049A3C 0004587C 2C 03 00 00 */ cmpwi r3, 0x0
/* 80049A40 00045880 40 82 00 14 */ bne lbl_80049A54
/* 80049A44 00045884 7F A3 EB 78 */ mr r3, r29
/* 80049A48 00045888 7F C4 F3 78 */ mr r4, r30
/* 80049A4C 0004588C 4B FC 3F 75 */ bl strcpy
/* 80049A50 00045890 48 00 00 E0 */ b lbl_80049B30
.global lbl_80049A54
lbl_80049A54:
/* 80049A54 00045894 7F E5 FB 78 */ mr r5, r31
/* 80049A58 00045898 38 61 01 88 */ addi r3, r1, 0x188
/* 80049A5C 0004589C 38 81 01 08 */ addi r4, r1, 0x108
/* 80049A60 000458A0 4B FF FE 31 */ bl nandGetHeadToken
/* 80049A64 000458A4 38 61 01 88 */ addi r3, r1, 0x188
/* 80049A68 000458A8 38 8D 82 2C */ addi r4, r13, "@3797"@sda21
/* 80049A6C 000458AC 4B FC 40 D1 */ bl strcmp
/* 80049A70 000458B0 2C 03 00 00 */ cmpwi r3, 0x0
/* 80049A74 000458B4 40 82 00 18 */ bne lbl_80049A8C
/* 80049A78 000458B8 7F A3 EB 78 */ mr r3, r29
/* 80049A7C 000458BC 7F C4 F3 78 */ mr r4, r30
/* 80049A80 000458C0 38 A1 01 08 */ addi r5, r1, 0x108
/* 80049A84 000458C4 4B FF FF 8D */ bl nandConvertPath
/* 80049A88 000458C8 48 00 00 A8 */ b lbl_80049B30
.global lbl_80049A8C
lbl_80049A8C:
/* 80049A8C 000458CC 38 61 01 88 */ addi r3, r1, 0x188
/* 80049A90 000458D0 38 8D 82 30 */ addi r4, r13, "@3798"@sda21
/* 80049A94 000458D4 4B FC 40 A9 */ bl strcmp
/* 80049A98 000458D8 2C 03 00 00 */ cmpwi r3, 0x0
/* 80049A9C 000458DC 40 82 00 24 */ bne lbl_80049AC0
/* 80049AA0 000458E0 7F C4 F3 78 */ mr r4, r30
/* 80049AA4 000458E4 38 61 00 88 */ addi r3, r1, 0x88
/* 80049AA8 000458E8 4B FF FD 09 */ bl nandRemoveTailToken
/* 80049AAC 000458EC 7F A3 EB 78 */ mr r3, r29
/* 80049AB0 000458F0 38 81 00 88 */ addi r4, r1, 0x88
/* 80049AB4 000458F4 38 A1 01 08 */ addi r5, r1, 0x108
/* 80049AB8 000458F8 4B FF FF 59 */ bl nandConvertPath
/* 80049ABC 000458FC 48 00 00 74 */ b lbl_80049B30
.global lbl_80049AC0
lbl_80049AC0:
/* 80049AC0 00045900 88 01 01 88 */ lbz r0, 0x188(r1)
/* 80049AC4 00045904 7C 00 07 75 */ extsb. r0, r0
/* 80049AC8 00045908 41 82 00 5C */ beq lbl_80049B24
/* 80049ACC 0004590C 7F C3 F3 78 */ mr r3, r30
/* 80049AD0 00045910 38 8D 82 24 */ addi r4, r13, "@3783"@sda21
/* 80049AD4 00045914 4B FC 40 69 */ bl strcmp
/* 80049AD8 00045918 2C 03 00 00 */ cmpwi r3, 0x0
/* 80049ADC 0004591C 40 82 00 1C */ bne lbl_80049AF8
/* 80049AE0 00045920 38 61 00 08 */ addi r3, r1, 0x8
/* 80049AE4 00045924 38 A1 01 88 */ addi r5, r1, 0x188
/* 80049AE8 00045928 38 8D 82 34 */ addi r4, r13, "@3799"@sda21
/* 80049AEC 0004592C 4C C6 31 82 */ crclr 4*cr1+eq
/* 80049AF0 00045930 4B FC 3C CD */ bl sprintf
/* 80049AF4 00045934 48 00 00 1C */ b lbl_80049B10
.global lbl_80049AF8
lbl_80049AF8:
/* 80049AF8 00045938 7F C5 F3 78 */ mr r5, r30
/* 80049AFC 0004593C 38 61 00 08 */ addi r3, r1, 0x8
/* 80049B00 00045940 38 C1 01 88 */ addi r6, r1, 0x188
/* 80049B04 00045944 38 8D 82 38 */ addi r4, r13, "@3800"@sda21
/* 80049B08 00045948 4C C6 31 82 */ crclr 4*cr1+eq
/* 80049B0C 0004594C 4B FC 3C B1 */ bl sprintf
.global lbl_80049B10
lbl_80049B10:
/* 80049B10 00045950 7F A3 EB 78 */ mr r3, r29
/* 80049B14 00045954 38 81 00 08 */ addi r4, r1, 0x8
/* 80049B18 00045958 38 A1 01 08 */ addi r5, r1, 0x108
/* 80049B1C 0004595C 4B FF FE F5 */ bl nandConvertPath
/* 80049B20 00045960 48 00 00 10 */ b lbl_80049B30
.global lbl_80049B24
lbl_80049B24:
/* 80049B24 00045964 7F A3 EB 78 */ mr r3, r29
/* 80049B28 00045968 7F C4 F3 78 */ mr r4, r30
/* 80049B2C 0004596C 4B FC 3E 95 */ bl strcpy
.global lbl_80049B30
lbl_80049B30:
/* 80049B30 00045970 80 01 02 24 */ lwz r0, 0x224(r1)
/* 80049B34 00045974 83 E1 02 1C */ lwz r31, 0x21c(r1)
/* 80049B38 00045978 83 C1 02 18 */ lwz r30, 0x218(r1)
/* 80049B3C 0004597C 83 A1 02 14 */ lwz r29, 0x214(r1)
/* 80049B40 00045980 7C 08 03 A6 */ mtlr r0
/* 80049B44 00045984 38 21 02 20 */ addi r1, r1, 0x220
/* 80049B48 00045988 4E 80 00 20 */ blr
/* 80049B4C 0004598C 00 00 00 00 */ .4byte 0x00000000
.global nandIsRelativePath
nandIsRelativePath:
/* 80049B50 00045990 88 03 00 00 */ lbz r0, 0x0(r3)
/* 80049B54 00045994 7C 04 07 74 */ extsb r4, r0
/* 80049B58 00045998 20 64 00 2F */ subfic r3, r4, 0x2f
/* 80049B5C 0004599C 38 04 FF D1 */ addi r0, r4, -0x2f
/* 80049B60 000459A0 7C 60 03 78 */ or r0, r3, r0
/* 80049B64 000459A4 54 03 0F FE */ srwi r3, r0, 31
/* 80049B68 000459A8 4E 80 00 20 */ blr
/* 80049B6C 000459AC 00 00 00 00 */ .4byte 0x00000000
.global nandIsPrivatePath
nandIsPrivatePath:
/* 80049B70 000459B0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80049B74 000459B4 7C 08 02 A6 */ mflr r0
/* 80049B78 000459B8 3C 80 80 43 */ lis r4, "@3814"@ha
/* 80049B7C 000459BC 38 A0 00 08 */ li r5, 0x8
/* 80049B80 000459C0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80049B84 000459C4 38 84 64 30 */ addi r4, r4, "@3814"@l
/* 80049B88 000459C8 4B FC 40 D1 */ bl strncmp
/* 80049B8C 000459CC 7C 60 00 34 */ cntlzw r0, r3
/* 80049B90 000459D0 54 03 D9 7E */ srwi r3, r0, 5
/* 80049B94 000459D4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80049B98 000459D8 7C 08 03 A6 */ mtlr r0
/* 80049B9C 000459DC 38 21 00 10 */ addi r1, r1, 0x10
/* 80049BA0 000459E0 4E 80 00 20 */ blr
/* 80049BA4 000459E4 00 00 00 00 */ .4byte 0x00000000
/* 80049BA8 000459E8 00 00 00 00 */ .4byte 0x00000000
/* 80049BAC 000459EC 00 00 00 00 */ .4byte 0x00000000
.global nandIsUnderPrivatePath
nandIsUnderPrivatePath:
/* 80049BB0 000459F0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80049BB4 000459F4 7C 08 02 A6 */ mflr r0
/* 80049BB8 000459F8 3C 80 80 43 */ lis r4, "@3818"@ha
/* 80049BBC 000459FC 38 A0 00 09 */ li r5, 0x9
/* 80049BC0 00045A00 90 01 00 14 */ stw r0, 0x14(r1)
/* 80049BC4 00045A04 38 84 64 3C */ addi r4, r4, "@3818"@l
/* 80049BC8 00045A08 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80049BCC 00045A0C 7C 7F 1B 78 */ mr r31, r3
/* 80049BD0 00045A10 4B FC 40 89 */ bl strncmp
/* 80049BD4 00045A14 2C 03 00 00 */ cmpwi r3, 0x0
/* 80049BD8 00045A18 40 82 00 18 */ bne lbl_80049BF0
/* 80049BDC 00045A1C 88 1F 00 09 */ lbz r0, 0x9(r31)
/* 80049BE0 00045A20 7C 00 07 75 */ extsb. r0, r0
/* 80049BE4 00045A24 41 82 00 0C */ beq lbl_80049BF0
/* 80049BE8 00045A28 38 60 00 01 */ li r3, 0x1
/* 80049BEC 00045A2C 48 00 00 08 */ b lbl_80049BF4
.global lbl_80049BF0
lbl_80049BF0:
/* 80049BF0 00045A30 38 60 00 00 */ li r3, 0x0
.global lbl_80049BF4
lbl_80049BF4:
/* 80049BF4 00045A34 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80049BF8 00045A38 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80049BFC 00045A3C 7C 08 03 A6 */ mtlr r0
/* 80049C00 00045A40 38 21 00 10 */ addi r1, r1, 0x10
/* 80049C04 00045A44 4E 80 00 20 */ blr
/* 80049C08 00045A48 00 00 00 00 */ .4byte 0x00000000
/* 80049C0C 00045A4C 00 00 00 00 */ .4byte 0x00000000
.global nandIsInitialized
nandIsInitialized:
/* 80049C10 00045A50 80 6D E8 C0 */ lwz r3, s_libState@sda21(r13)
/* 80049C14 00045A54 38 03 FF FE */ addi r0, r3, -0x2
/* 80049C18 00045A58 7C 00 00 34 */ cntlzw r0, r0
/* 80049C1C 00045A5C 54 03 D9 7E */ srwi r3, r0, 5
/* 80049C20 00045A60 4E 80 00 20 */ blr
/* 80049C24 00045A64 00 00 00 00 */ .4byte 0x00000000
/* 80049C28 00045A68 00 00 00 00 */ .4byte 0x00000000
/* 80049C2C 00045A6C 00 00 00 00 */ .4byte 0x00000000
.global nandLoggingCallback
nandLoggingCallback:
/* 80049C30 00045A70 2C 04 FF 8B */ cmpwi r4, -0x75
/* 80049C34 00045A74 41 82 00 0C */ beq lbl_80049C40
/* 80049C38 00045A78 2C 04 FF F7 */ cmpwi r4, -0x9
/* 80049C3C 00045A7C 4C 82 00 20 */ bnelr
.global lbl_80049C40
lbl_80049C40:
/* 80049C40 00045A80 7C 83 23 78 */ mr r3, r4
/* 80049C44 00045A84 48 00 17 CC */ b __NANDPrintErrorMessage
/* 80049C48 00045A88 4E 80 00 20 */ blr
/* 80049C4C 00045A8C 00 00 00 00 */ .4byte 0x00000000
.global nandConvertErrorCode
nandConvertErrorCode:
/* 80049C50 00045A90 54 2B 06 BE */ clrlwi r11, r1, 26
/* 80049C54 00045A94 7C 2C 0B 78 */ mr r12, r1
/* 80049C58 00045A98 21 6B FD 00 */ subfic r11, r11, -0x300
/* 80049C5C 00045A9C 7C 21 59 6E */ stwux r1, r1, r11
/* 80049C60 00045AA0 7C 08 02 A6 */ mflr r0
/* 80049C64 00045AA4 3C 80 80 40 */ lis r4, "@3073"@ha
/* 80049C68 00045AA8 90 0C 00 04 */ stw r0, 0x4(r12)
/* 80049C6C 00045AAC 38 84 78 F0 */ addi r4, r4, "@3073"@l
/* 80049C70 00045AB0 38 00 00 29 */ li r0, 0x29
/* 80049C74 00045AB4 38 C1 01 3C */ addi r6, r1, 0x13c
/* 80049C78 00045AB8 93 EC FF FC */ stw r31, -0x4(r12)
/* 80049C7C 00045ABC 3F E0 80 43 */ lis r31, "@2807_80436380"@ha
/* 80049C80 00045AC0 3B FF 63 80 */ addi r31, r31, "@2807_80436380"@l
/* 80049C84 00045AC4 38 A4 FF FC */ addi r5, r4, -0x4
/* 80049C88 00045AC8 93 CC FF F8 */ stw r30, -0x8(r12)
/* 80049C8C 00045ACC 93 AC FF F4 */ stw r29, -0xc(r12)
/* 80049C90 00045AD0 7C 7D 1B 78 */ mr r29, r3
/* 80049C94 00045AD4 7C 09 03 A6 */ mtctr r0
.global lbl_80049C98
lbl_80049C98:
/* 80049C98 00045AD8 80 85 00 04 */ lwz r4, 0x4(r5)
/* 80049C9C 00045ADC 84 05 00 08 */ lwzu r0, 0x8(r5)
/* 80049CA0 00045AE0 90 86 00 04 */ stw r4, 0x4(r6)
/* 80049CA4 00045AE4 94 06 00 08 */ stwu r0, 0x8(r6)
/* 80049CA8 00045AE8 42 00 FF F0 */ bdnz lbl_80049C98
/* 80049CAC 00045AEC 2C 03 00 00 */ cmpwi r3, 0x0
/* 80049CB0 00045AF0 3B C0 00 00 */ li r30, 0x0
/* 80049CB4 00045AF4 38 80 00 00 */ li r4, 0x0
/* 80049CB8 00045AF8 41 80 00 0C */ blt lbl_80049CC4
/* 80049CBC 00045AFC 7F A3 EB 78 */ mr r3, r29
/* 80049CC0 00045B00 48 00 01 20 */ b lbl_80049DE0
.global lbl_80049CC4
lbl_80049CC4:
/* 80049CC4 00045B04 38 00 00 29 */ li r0, 0x29
/* 80049CC8 00045B08 38 A1 01 40 */ addi r5, r1, 0x140
/* 80049CCC 00045B0C 7C 09 03 A6 */ mtctr r0
.global lbl_80049CD0
lbl_80049CD0:
/* 80049CD0 00045B10 7C 05 20 2E */ lwzx r0, r5, r4
/* 80049CD4 00045B14 7C 03 00 00 */ cmpw r3, r0
/* 80049CD8 00045B18 40 82 00 B0 */ bne lbl_80049D88
/* 80049CDC 00045B1C 2C 03 FF 8E */ cmpwi r3, -0x72
/* 80049CE0 00045B20 41 82 00 24 */ beq lbl_80049D04
/* 80049CE4 00045B24 2C 03 FF 8C */ cmpwi r3, -0x74
/* 80049CE8 00045B28 41 82 00 1C */ beq lbl_80049D04
/* 80049CEC 00045B2C 2C 03 FF 8B */ cmpwi r3, -0x75
/* 80049CF0 00045B30 41 82 00 14 */ beq lbl_80049D04
/* 80049CF4 00045B34 2C 03 FF F7 */ cmpwi r3, -0x9
/* 80049CF8 00045B38 41 82 00 0C */ beq lbl_80049D04
/* 80049CFC 00045B3C 2C 03 FF F4 */ cmpwi r3, -0xc
/* 80049D00 00045B40 40 82 00 30 */ bne lbl_80049D30
.global lbl_80049D04
lbl_80049D04:
/* 80049D04 00045B44 7F A5 EB 78 */ mr r5, r29
/* 80049D08 00045B48 38 61 00 C0 */ addi r3, r1, 0xc0
/* 80049D0C 00045B4C 38 9F 00 C8 */ addi r4, r31, 0xc8
/* 80049D10 00045B50 4C C6 31 82 */ crclr 4*cr1+eq
/* 80049D14 00045B54 4B FC 3A A9 */ bl sprintf
/* 80049D18 00045B58 3C 60 80 05 */ lis r3, nandLoggingCallback@ha
/* 80049D1C 00045B5C 7F A4 EB 78 */ mr r4, r29
/* 80049D20 00045B60 38 63 9C 30 */ addi r3, r3, nandLoggingCallback@l
/* 80049D24 00045B64 38 A1 00 C0 */ addi r5, r1, 0xc0
/* 80049D28 00045B68 4C C6 31 82 */ crclr 4*cr1+eq
/* 80049D2C 00045B6C 48 00 0E 15 */ bl NANDLoggingAddMessageAsync
.global lbl_80049D30
lbl_80049D30:
/* 80049D30 00045B70 2C 1D FF E9 */ cmpwi r29, -0x17
/* 80049D34 00045B74 40 80 00 08 */ bge lbl_80049D3C
/* 80049D38 00045B78 2C 1D FF 9C */ cmpwi r29, -0x64
.global lbl_80049D3C
lbl_80049D3C:
/* 80049D3C 00045B7C 2C 1D FF 94 */ cmpwi r29, -0x6c
/* 80049D40 00045B80 41 82 00 2C */ beq lbl_80049D6C
/* 80049D44 00045B84 2C 1D FF 95 */ cmpwi r29, -0x6b
/* 80049D48 00045B88 41 82 00 24 */ beq lbl_80049D6C
/* 80049D4C 00045B8C 2C 1D FF 99 */ cmpwi r29, -0x67
/* 80049D50 00045B90 41 82 00 1C */ beq lbl_80049D6C
/* 80049D54 00045B94 2C 1D FF 8A */ cmpwi r29, -0x76
/* 80049D58 00045B98 41 82 00 14 */ beq lbl_80049D6C
/* 80049D5C 00045B9C 2C 1D FF F8 */ cmpwi r29, -0x8
/* 80049D60 00045BA0 41 82 00 0C */ beq lbl_80049D6C
/* 80049D64 00045BA4 2C 1D FF EA */ cmpwi r29, -0x16
/* 80049D68 00045BA8 40 82 00 0C */ bne lbl_80049D74
.global lbl_80049D6C
lbl_80049D6C:
/* 80049D6C 00045BAC 7F A3 EB 78 */ mr r3, r29
/* 80049D70 00045BB0 48 00 16 A1 */ bl __NANDPrintErrorMessage
.global lbl_80049D74
lbl_80049D74:
/* 80049D74 00045BB4 38 1E 00 01 */ addi r0, r30, 0x1
/* 80049D78 00045BB8 38 61 01 40 */ addi r3, r1, 0x140
/* 80049D7C 00045BBC 54 00 10 3A */ slwi r0, r0, 2
/* 80049D80 00045BC0 7C 63 00 2E */ lwzx r3, r3, r0
/* 80049D84 00045BC4 48 00 00 5C */ b lbl_80049DE0
.global lbl_80049D88
lbl_80049D88:
/* 80049D88 00045BC8 3B DE 00 02 */ addi r30, r30, 0x2
/* 80049D8C 00045BCC 38 84 00 08 */ addi r4, r4, 0x8
/* 80049D90 00045BD0 42 00 FF 40 */ bdnz lbl_80049CD0
/* 80049D94 00045BD4 7F A4 EB 78 */ mr r4, r29
/* 80049D98 00045BD8 38 7F 00 DC */ addi r3, r31, 0xdc
/* 80049D9C 00045BDC 4C C6 31 82 */ crclr 4*cr1+eq
/* 80049DA0 00045BE0 4B FD 3B F1 */ bl OSReport
/* 80049DA4 00045BE4 7F A5 EB 78 */ mr r5, r29
/* 80049DA8 00045BE8 38 61 00 40 */ addi r3, r1, 0x40
/* 80049DAC 00045BEC 38 9F 01 10 */ addi r4, r31, 0x110
/* 80049DB0 00045BF0 4C C6 31 82 */ crclr 4*cr1+eq
/* 80049DB4 00045BF4 4B FC 3A 09 */ bl sprintf
/* 80049DB8 00045BF8 3C 60 80 05 */ lis r3, nandLoggingCallback@ha
/* 80049DBC 00045BFC 7F A4 EB 78 */ mr r4, r29
/* 80049DC0 00045C00 38 63 9C 30 */ addi r3, r3, nandLoggingCallback@l
/* 80049DC4 00045C04 38 A1 00 40 */ addi r5, r1, 0x40
/* 80049DC8 00045C08 4C C6 31 82 */ crclr 4*cr1+eq
/* 80049DCC 00045C0C 48 00 0D 75 */ bl NANDLoggingAddMessageAsync
/* 80049DD0 00045C10 2C 1D FF E9 */ cmpwi r29, -0x17
/* 80049DD4 00045C14 40 80 00 08 */ bge lbl_80049DDC
/* 80049DD8 00045C18 2C 1D FF 9C */ cmpwi r29, -0x64
.global lbl_80049DDC
lbl_80049DDC:
/* 80049DDC 00045C1C 38 60 FF C0 */ li r3, -0x40
.global lbl_80049DE0
lbl_80049DE0:
/* 80049DE0 00045C20 81 41 00 00 */ lwz r10, 0x0(r1)
/* 80049DE4 00045C24 80 0A 00 04 */ lwz r0, 0x4(r10)
/* 80049DE8 00045C28 83 EA FF FC */ lwz r31, -0x4(r10)
/* 80049DEC 00045C2C 83 CA FF F8 */ lwz r30, -0x8(r10)
/* 80049DF0 00045C30 83 AA FF F4 */ lwz r29, -0xc(r10)
/* 80049DF4 00045C34 7C 08 03 A6 */ mtlr r0
/* 80049DF8 00045C38 7D 41 53 78 */ mr r1, r10
/* 80049DFC 00045C3C 4E 80 00 20 */ blr
.global nandGenerateAbsPath
nandGenerateAbsPath:
/* 80049E00 00045C40 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80049E04 00045C44 7C 08 02 A6 */ mflr r0
/* 80049E08 00045C48 90 01 00 14 */ stw r0, 0x14(r1)
/* 80049E0C 00045C4C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80049E10 00045C50 7C 9F 23 78 */ mr r31, r4
/* 80049E14 00045C54 93 C1 00 08 */ stw r30, 0x8(r1)
/* 80049E18 00045C58 7C 7E 1B 78 */ mr r30, r3
/* 80049E1C 00045C5C 7F E3 FB 78 */ mr r3, r31
/* 80049E20 00045C60 4B FB CC 6D */ bl strlen
/* 80049E24 00045C64 2C 03 00 00 */ cmpwi r3, 0x0
/* 80049E28 00045C68 40 82 00 14 */ bne lbl_80049E3C
/* 80049E2C 00045C6C 7F C3 F3 78 */ mr r3, r30
/* 80049E30 00045C70 38 8D 82 28 */ addi r4, r13, "@3784"@sda21
/* 80049E34 00045C74 4B FC 3B 8D */ bl strcpy
/* 80049E38 00045C78 48 00 00 78 */ b lbl_80049EB0
.global lbl_80049E3C
lbl_80049E3C:
/* 80049E3C 00045C7C 88 1F 00 00 */ lbz r0, 0x0(r31)
/* 80049E40 00045C80 2C 00 00 2F */ cmpwi r0, 0x2f
/* 80049E44 00045C84 40 82 00 0C */ bne lbl_80049E50
/* 80049E48 00045C88 38 00 00 00 */ li r0, 0x0
/* 80049E4C 00045C8C 48 00 00 08 */ b lbl_80049E54
.global lbl_80049E50
lbl_80049E50:
/* 80049E50 00045C90 38 00 00 01 */ li r0, 0x1
.global lbl_80049E54
lbl_80049E54:
/* 80049E54 00045C94 2C 00 00 00 */ cmpwi r0, 0x0
/* 80049E58 00045C98 41 82 00 1C */ beq lbl_80049E74
/* 80049E5C 00045C9C 3C 80 80 43 */ lis r4, s_currentDir@ha
/* 80049E60 00045CA0 7F C3 F3 78 */ mr r3, r30
/* 80049E64 00045CA4 7F E5 FB 78 */ mr r5, r31
/* 80049E68 00045CA8 38 84 63 E0 */ addi r4, r4, s_currentDir@l
/* 80049E6C 00045CAC 4B FF FB A5 */ bl nandConvertPath
/* 80049E70 00045CB0 48 00 00 40 */ b lbl_80049EB0
.global lbl_80049E74
lbl_80049E74:
/* 80049E74 00045CB4 7F C3 F3 78 */ mr r3, r30
/* 80049E78 00045CB8 7F E4 FB 78 */ mr r4, r31
/* 80049E7C 00045CBC 4B FC 3B 45 */ bl strcpy
/* 80049E80 00045CC0 7F C3 F3 78 */ mr r3, r30
/* 80049E84 00045CC4 4B FB CC 09 */ bl strlen
/* 80049E88 00045CC8 2C 03 00 00 */ cmpwi r3, 0x0
/* 80049E8C 00045CCC 41 82 00 24 */ beq lbl_80049EB0
/* 80049E90 00045CD0 7C 83 F2 14 */ add r4, r3, r30
/* 80049E94 00045CD4 88 04 FF FF */ lbz r0, -0x1(r4)
/* 80049E98 00045CD8 2C 00 00 2F */ cmpwi r0, 0x2f
/* 80049E9C 00045CDC 40 82 00 14 */ bne lbl_80049EB0
/* 80049EA0 00045CE0 34 03 FF FF */ addic. r0, r3, -0x1
/* 80049EA4 00045CE4 41 82 00 0C */ beq lbl_80049EB0
/* 80049EA8 00045CE8 38 00 00 00 */ li r0, 0x0
/* 80049EAC 00045CEC 98 04 FF FF */ stb r0, -0x1(r4)
.global lbl_80049EB0
lbl_80049EB0:
/* 80049EB0 00045CF0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80049EB4 00045CF4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80049EB8 00045CF8 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 80049EBC 00045CFC 7C 08 03 A6 */ mtlr r0
/* 80049EC0 00045D00 38 21 00 10 */ addi r1, r1, 0x10
/* 80049EC4 00045D04 4E 80 00 20 */ blr
/* 80049EC8 00045D08 00 00 00 00 */ .4byte 0x00000000
/* 80049ECC 00045D0C 00 00 00 00 */ .4byte 0x00000000
.global NANDInit
NANDInit:
/* 80049ED0 00045D10 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80049ED4 00045D14 7C 08 02 A6 */ mflr r0
/* 80049ED8 00045D18 90 01 00 24 */ stw r0, 0x24(r1)
/* 80049EDC 00045D1C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80049EE0 00045D20 3F E0 80 43 */ lis r31, "@2807_80436380"@ha
/* 80049EE4 00045D24 3B FF 63 80 */ addi r31, r31, "@2807_80436380"@l
/* 80049EE8 00045D28 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80049EEC 00045D2C 4B FD 79 35 */ bl OSDisableInterrupts
/* 80049EF0 00045D30 80 0D E8 C0 */ lwz r0, s_libState@sda21(r13)
/* 80049EF4 00045D34 2C 00 00 01 */ cmpwi r0, 0x1
/* 80049EF8 00045D38 40 82 00 10 */ bne lbl_80049F08
/* 80049EFC 00045D3C 4B FD 79 65 */ bl OSRestoreInterrupts
/* 80049F00 00045D40 38 60 FF FD */ li r3, -0x3
/* 80049F04 00045D44 48 00 00 E8 */ b lbl_80049FEC
.global lbl_80049F08
lbl_80049F08:
/* 80049F08 00045D48 2C 00 00 02 */ cmpwi r0, 0x2
/* 80049F0C 00045D4C 40 82 00 10 */ bne lbl_80049F1C
/* 80049F10 00045D50 4B FD 79 51 */ bl OSRestoreInterrupts
/* 80049F14 00045D54 38 60 00 00 */ li r3, 0x0
/* 80049F18 00045D58 48 00 00 D4 */ b lbl_80049FEC
.global lbl_80049F1C
lbl_80049F1C:
/* 80049F1C 00045D5C 38 00 00 01 */ li r0, 0x1
/* 80049F20 00045D60 90 0D E8 C0 */ stw r0, s_libState@sda21(r13)
/* 80049F24 00045D64 4B FD 79 3D */ bl OSRestoreInterrupts
/* 80049F28 00045D68 48 00 6C 99 */ bl ISFS_OpenLib
/* 80049F2C 00045D6C 2C 03 00 00 */ cmpwi r3, 0x0
/* 80049F30 00045D70 7C 7E 1B 78 */ mr r30, r3
/* 80049F34 00045D74 40 82 00 A0 */ bne lbl_80049FD4
/* 80049F38 00045D78 48 05 80 E9 */ bl ESP_InitLib
/* 80049F3C 00045D7C 2C 03 00 00 */ cmpwi r3, 0x0
/* 80049F40 00045D80 7C 7E 1B 78 */ mr r30, r3
/* 80049F44 00045D84 40 82 00 10 */ bne lbl_80049F54
/* 80049F48 00045D88 38 61 00 08 */ addi r3, r1, 0x8
/* 80049F4C 00045D8C 48 05 85 85 */ bl ESP_GetTitleId
/* 80049F50 00045D90 7C 7E 1B 78 */ mr r30, r3
.global lbl_80049F54
lbl_80049F54:
/* 80049F54 00045D94 2C 1E 00 00 */ cmpwi r30, 0x0
/* 80049F58 00045D98 40 82 00 1C */ bne lbl_80049F74
/* 80049F5C 00045D9C 3C A0 80 4B */ lis r5, s_homeDir@ha
/* 80049F60 00045DA0 80 61 00 08 */ lwz r3, 0x8(r1)
/* 80049F64 00045DA4 80 81 00 0C */ lwz r4, 0xc(r1)
/* 80049F68 00045DA8 38 A5 58 20 */ addi r5, r5, s_homeDir@l
/* 80049F6C 00045DAC 48 05 84 C5 */ bl ESP_GetDataDir
/* 80049F70 00045DB0 7C 7E 1B 78 */ mr r30, r3
.global lbl_80049F74
lbl_80049F74:
/* 80049F74 00045DB4 2C 1E 00 00 */ cmpwi r30, 0x0
/* 80049F78 00045DB8 40 82 00 14 */ bne lbl_80049F8C
/* 80049F7C 00045DBC 3C 80 80 4B */ lis r4, s_homeDir@ha
/* 80049F80 00045DC0 38 7F 00 60 */ addi r3, r31, 0x60
/* 80049F84 00045DC4 38 84 58 20 */ addi r4, r4, s_homeDir@l
/* 80049F88 00045DC8 4B FC 3A 39 */ bl strcpy
.global lbl_80049F8C
lbl_80049F8C:
/* 80049F8C 00045DCC 48 05 80 F5 */ bl ESP_CloseLib
/* 80049F90 00045DD0 2C 1E 00 00 */ cmpwi r30, 0x0
/* 80049F94 00045DD4 41 82 00 10 */ beq lbl_80049FA4
/* 80049F98 00045DD8 38 7F 01 30 */ addi r3, r31, 0x130
/* 80049F9C 00045DDC 4C C6 31 82 */ crclr 4*cr1+eq
/* 80049FA0 00045DE0 4B FD 39 F1 */ bl OSReport
.global lbl_80049FA4
lbl_80049FA4:
/* 80049FA4 00045DE4 38 7F 00 A0 */ addi r3, r31, 0xa0
/* 80049FA8 00045DE8 4B FD 8F 69 */ bl OSRegisterShutdownFunction
/* 80049FAC 00045DEC 4B FD 78 75 */ bl OSDisableInterrupts
/* 80049FB0 00045DF0 38 00 00 02 */ li r0, 0x2
/* 80049FB4 00045DF4 90 0D E8 C0 */ stw r0, s_libState@sda21(r13)
/* 80049FB8 00045DF8 4B FD 78 A9 */ bl OSRestoreInterrupts
/* 80049FBC 00045DFC 38 60 00 01 */ li r3, 0x1
/* 80049FC0 00045E00 48 00 13 F1 */ bl NANDSetAutoErrorMessaging
/* 80049FC4 00045E04 80 6D 82 20 */ lwz r3, __NANDVersion@sda21(r13)
/* 80049FC8 00045E08 4B FD 17 19 */ bl OSRegisterVersion
/* 80049FCC 00045E0C 38 60 00 00 */ li r3, 0x0
/* 80049FD0 00045E10 48 00 00 1C */ b lbl_80049FEC
.global lbl_80049FD4
lbl_80049FD4:
/* 80049FD4 00045E14 4B FD 78 4D */ bl OSDisableInterrupts
/* 80049FD8 00045E18 38 00 00 00 */ li r0, 0x0
/* 80049FDC 00045E1C 90 0D E8 C0 */ stw r0, s_libState@sda21(r13)
/* 80049FE0 00045E20 4B FD 78 81 */ bl OSRestoreInterrupts
/* 80049FE4 00045E24 7F C3 F3 78 */ mr r3, r30
/* 80049FE8 00045E28 4B FF FC 69 */ bl nandConvertErrorCode
.global lbl_80049FEC
lbl_80049FEC:
/* 80049FEC 00045E2C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80049FF0 00045E30 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80049FF4 00045E34 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80049FF8 00045E38 7C 08 03 A6 */ mtlr r0
/* 80049FFC 00045E3C 38 21 00 20 */ addi r1, r1, 0x20
/* 8004A000 00045E40 4E 80 00 20 */ blr
/* 8004A004 00045E44 00 00 00 00 */ .4byte 0x00000000
/* 8004A008 00045E48 00 00 00 00 */ .4byte 0x00000000
/* 8004A00C 00045E4C 00 00 00 00 */ .4byte 0x00000000
.global nandOnShutdown
nandOnShutdown:
/* 8004A010 00045E50 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8004A014 00045E54 7C 08 02 A6 */ mflr r0
/* 8004A018 00045E58 90 01 00 34 */ stw r0, 0x34(r1)
/* 8004A01C 00045E5C 39 61 00 30 */ addi r11, r1, 0x30
/* 8004A020 00045E60 4B FB D3 19 */ bl lbl_80007338
/* 8004A024 00045E64 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A028 00045E68 40 82 00 98 */ bne lbl_8004A0C0
/* 8004A02C 00045E6C 28 04 00 02 */ cmplwi r4, 0x2
/* 8004A030 00045E70 40 82 00 88 */ bne lbl_8004A0B8
/* 8004A034 00045E74 3B 40 00 00 */ li r26, 0x0
/* 8004A038 00045E78 93 41 00 08 */ stw r26, 0x8(r1)
/* 8004A03C 00045E7C 4B FD BB 05 */ bl OSGetTime
/* 8004A040 00045E80 3C A0 80 05 */ lis r5, nandShutdownCallback@ha
/* 8004A044 00045E84 7C 9B 23 78 */ mr r27, r4
/* 8004A048 00045E88 7C 7C 1B 78 */ mr r28, r3
/* 8004A04C 00045E8C 38 81 00 08 */ addi r4, r1, 0x8
/* 8004A050 00045E90 38 65 A0 E0 */ addi r3, r5, nandShutdownCallback@l
/* 8004A054 00045E94 48 00 81 BD */ bl ISFS_ShutdownAsync
/* 8004A058 00045E98 3C 60 10 62 */ lis r3, 0x1062
/* 8004A05C 00045E9C 3F C0 80 00 */ lis r30, 0x800000F8@ha
/* 8004A060 00045EA0 3B A3 4D D3 */ addi r29, r3, 0x4dd3
/* 8004A064 00045EA4 3B E0 01 F4 */ li r31, 0x1f4
/* 8004A068 00045EA8 48 00 00 10 */ b lbl_8004A078
.global lbl_8004A06C
lbl_8004A06C:
/* 8004A06C 00045EAC 80 01 00 08 */ lwz r0, 0x8(r1)
/* 8004A070 00045EB0 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004A074 00045EB4 40 82 00 44 */ bne lbl_8004A0B8
.global lbl_8004A078
lbl_8004A078:
/* 8004A078 00045EB8 4B FD BA C9 */ bl OSGetTime
/* 8004A07C 00045EBC 80 1E 00 F8 */ lwz r0, 0x800000F8@l(r30)
/* 8004A080 00045EC0 7C 9B 20 10 */ subfc r4, r27, r4
/* 8004A084 00045EC4 7C 7C 19 10 */ subfe r3, r28, r3
/* 8004A088 00045EC8 38 A0 00 00 */ li r5, 0x0
/* 8004A08C 00045ECC 54 00 F0 BE */ srwi r0, r0, 2
/* 8004A090 00045ED0 7C 1D 00 16 */ mulhwu r0, r29, r0
/* 8004A094 00045ED4 54 06 D1 BE */ srwi r6, r0, 6
/* 8004A098 00045ED8 4B FB D3 F5 */ bl __div2i
/* 8004A09C 00045EDC 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8004A0A0 00045EE0 6F 45 80 00 */ xoris r5, r26, 0x8000
/* 8004A0A4 00045EE4 7C 7F 20 10 */ subfc r3, r31, r4
/* 8004A0A8 00045EE8 7C A5 01 10 */ subfe r5, r5, r0
/* 8004A0AC 00045EEC 7C A0 01 10 */ subfe r5, r0, r0
/* 8004A0B0 00045EF0 7C A5 00 D1 */ neg. r5, r5
/* 8004A0B4 00045EF4 40 82 FF B8 */ bne lbl_8004A06C
.global lbl_8004A0B8
lbl_8004A0B8:
/* 8004A0B8 00045EF8 38 60 00 01 */ li r3, 0x1
/* 8004A0BC 00045EFC 48 00 00 08 */ b lbl_8004A0C4
.global lbl_8004A0C0
lbl_8004A0C0:
/* 8004A0C0 00045F00 38 60 00 01 */ li r3, 0x1
.global lbl_8004A0C4
lbl_8004A0C4:
/* 8004A0C4 00045F04 39 61 00 30 */ addi r11, r1, 0x30
/* 8004A0C8 00045F08 4B FB D2 BD */ bl lbl_80007384
/* 8004A0CC 00045F0C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8004A0D0 00045F10 7C 08 03 A6 */ mtlr r0
/* 8004A0D4 00045F14 38 21 00 30 */ addi r1, r1, 0x30
/* 8004A0D8 00045F18 4E 80 00 20 */ blr
/* 8004A0DC 00045F1C 00 00 00 00 */ .4byte 0x00000000
.global nandShutdownCallback
nandShutdownCallback:
/* 8004A0E0 00045F20 38 00 00 01 */ li r0, 0x1
/* 8004A0E4 00045F24 90 04 00 00 */ stw r0, 0x0(r4)
/* 8004A0E8 00045F28 4E 80 00 20 */ blr
/* 8004A0EC 00045F2C 00 00 00 00 */ .4byte 0x00000000
.global nandChangeDir
nandChangeDir:
/* 8004A0F0 00045F30 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 8004A0F4 00045F34 7C 08 02 A6 */ mflr r0
/* 8004A0F8 00045F38 2C 05 00 00 */ cmpwi r5, 0x0
/* 8004A0FC 00045F3C 90 01 00 64 */ stw r0, 0x64(r1)
/* 8004A100 00045F40 93 E1 00 5C */ stw r31, 0x5c(r1)
/* 8004A104 00045F44 7C DF 33 78 */ mr r31, r6
/* 8004A108 00045F48 93 C1 00 58 */ stw r30, 0x58(r1)
/* 8004A10C 00045F4C 7C 9E 23 78 */ mr r30, r4
/* 8004A110 00045F50 93 A1 00 54 */ stw r29, 0x54(r1)
/* 8004A114 00045F54 7C 7D 1B 78 */ mr r29, r3
/* 8004A118 00045F58 41 82 00 F4 */ beq lbl_8004A20C
/* 8004A11C 00045F5C 4B FB C9 71 */ bl strlen
/* 8004A120 00045F60 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A124 00045F64 40 82 00 14 */ bne lbl_8004A138
/* 8004A128 00045F68 38 7E 00 34 */ addi r3, r30, 0x34
/* 8004A12C 00045F6C 38 8D 82 28 */ addi r4, r13, "@3784"@sda21
/* 8004A130 00045F70 4B FC 38 91 */ bl strcpy
/* 8004A134 00045F74 48 00 00 78 */ b lbl_8004A1AC
.global lbl_8004A138
lbl_8004A138:
/* 8004A138 00045F78 88 1D 00 00 */ lbz r0, 0x0(r29)
/* 8004A13C 00045F7C 2C 00 00 2F */ cmpwi r0, 0x2f
/* 8004A140 00045F80 40 82 00 0C */ bne lbl_8004A14C
/* 8004A144 00045F84 38 00 00 00 */ li r0, 0x0
/* 8004A148 00045F88 48 00 00 08 */ b lbl_8004A150
.global lbl_8004A14C
lbl_8004A14C:
/* 8004A14C 00045F8C 38 00 00 01 */ li r0, 0x1
.global lbl_8004A150
lbl_8004A150:
/* 8004A150 00045F90 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004A154 00045F94 41 82 00 1C */ beq lbl_8004A170
/* 8004A158 00045F98 3C 80 80 43 */ lis r4, s_currentDir@ha
/* 8004A15C 00045F9C 7F A5 EB 78 */ mr r5, r29
/* 8004A160 00045FA0 38 7E 00 34 */ addi r3, r30, 0x34
/* 8004A164 00045FA4 38 84 63 E0 */ addi r4, r4, s_currentDir@l
/* 8004A168 00045FA8 4B FF F8 A9 */ bl nandConvertPath
/* 8004A16C 00045FAC 48 00 00 40 */ b lbl_8004A1AC
.global lbl_8004A170
lbl_8004A170:
/* 8004A170 00045FB0 7F A4 EB 78 */ mr r4, r29
/* 8004A174 00045FB4 38 7E 00 34 */ addi r3, r30, 0x34
/* 8004A178 00045FB8 4B FC 38 49 */ bl strcpy
/* 8004A17C 00045FBC 38 7E 00 34 */ addi r3, r30, 0x34
/* 8004A180 00045FC0 4B FB C9 0D */ bl strlen
/* 8004A184 00045FC4 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A188 00045FC8 41 82 00 24 */ beq lbl_8004A1AC
/* 8004A18C 00045FCC 7C 83 F2 14 */ add r4, r3, r30
/* 8004A190 00045FD0 88 04 00 33 */ lbz r0, 0x33(r4)
/* 8004A194 00045FD4 2C 00 00 2F */ cmpwi r0, 0x2f
/* 8004A198 00045FD8 40 82 00 14 */ bne lbl_8004A1AC
/* 8004A19C 00045FDC 34 03 FF FF */ addic. r0, r3, -0x1
/* 8004A1A0 00045FE0 41 82 00 0C */ beq lbl_8004A1AC
/* 8004A1A4 00045FE4 38 00 00 00 */ li r0, 0x0
/* 8004A1A8 00045FE8 98 04 00 33 */ stb r0, 0x33(r4)
.global lbl_8004A1AC
lbl_8004A1AC:
/* 8004A1AC 00045FEC 2C 1F 00 00 */ cmpwi r31, 0x0
/* 8004A1B0 00045FF0 40 82 00 3C */ bne lbl_8004A1EC
/* 8004A1B4 00045FF4 3C 80 80 43 */ lis r4, "@3814"@ha
/* 8004A1B8 00045FF8 38 7E 00 34 */ addi r3, r30, 0x34
/* 8004A1BC 00045FFC 38 84 64 30 */ addi r4, r4, "@3814"@l
/* 8004A1C0 00046000 38 A0 00 08 */ li r5, 0x8
/* 8004A1C4 00046004 4B FC 3A 95 */ bl strncmp
/* 8004A1C8 00046008 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A1CC 0004600C 40 82 00 0C */ bne lbl_8004A1D8
/* 8004A1D0 00046010 38 00 00 01 */ li r0, 0x1
/* 8004A1D4 00046014 48 00 00 08 */ b lbl_8004A1DC
.global lbl_8004A1D8
lbl_8004A1D8:
/* 8004A1D8 00046018 38 00 00 00 */ li r0, 0x0
.global lbl_8004A1DC
lbl_8004A1DC:
/* 8004A1DC 0004601C 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004A1E0 00046020 41 82 00 0C */ beq lbl_8004A1EC
/* 8004A1E4 00046024 38 60 FF 9A */ li r3, -0x66
/* 8004A1E8 00046028 48 00 01 80 */ b lbl_8004A368
.global lbl_8004A1EC
lbl_8004A1EC:
/* 8004A1EC 0004602C 3C C0 80 05 */ lis r6, nandChangeDirCallback@ha
/* 8004A1F0 00046030 7F C7 F3 78 */ mr r7, r30
/* 8004A1F4 00046034 38 7E 00 34 */ addi r3, r30, 0x34
/* 8004A1F8 00046038 38 BE 00 30 */ addi r5, r30, 0x30
/* 8004A1FC 0004603C 38 C6 A3 E0 */ addi r6, r6, nandChangeDirCallback@l
/* 8004A200 00046040 38 80 00 00 */ li r4, 0x0
/* 8004A204 00046044 48 00 6F CD */ bl ISFS_ReadDirAsync
/* 8004A208 00046048 48 00 01 60 */ b lbl_8004A368
.global lbl_8004A20C
lbl_8004A20C:
/* 8004A20C 0004604C 38 00 00 00 */ li r0, 0x0
/* 8004A210 00046050 90 01 00 08 */ stw r0, 0x8(r1)
/* 8004A214 00046054 90 01 00 10 */ stw r0, 0x10(r1)
/* 8004A218 00046058 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004A21C 0004605C 90 01 00 18 */ stw r0, 0x18(r1)
/* 8004A220 00046060 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8004A224 00046064 90 01 00 20 */ stw r0, 0x20(r1)
/* 8004A228 00046068 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004A22C 0004606C 90 01 00 28 */ stw r0, 0x28(r1)
/* 8004A230 00046070 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8004A234 00046074 90 01 00 30 */ stw r0, 0x30(r1)
/* 8004A238 00046078 90 01 00 34 */ stw r0, 0x34(r1)
/* 8004A23C 0004607C 90 01 00 38 */ stw r0, 0x38(r1)
/* 8004A240 00046080 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8004A244 00046084 90 01 00 40 */ stw r0, 0x40(r1)
/* 8004A248 00046088 90 01 00 44 */ stw r0, 0x44(r1)
/* 8004A24C 0004608C 90 01 00 48 */ stw r0, 0x48(r1)
/* 8004A250 00046090 90 01 00 4C */ stw r0, 0x4c(r1)
/* 8004A254 00046094 4B FB C8 39 */ bl strlen
/* 8004A258 00046098 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A25C 0004609C 40 82 00 14 */ bne lbl_8004A270
/* 8004A260 000460A0 38 61 00 10 */ addi r3, r1, 0x10
/* 8004A264 000460A4 38 8D 82 28 */ addi r4, r13, "@3784"@sda21
/* 8004A268 000460A8 4B FC 37 59 */ bl strcpy
/* 8004A26C 000460AC 48 00 00 7C */ b lbl_8004A2E8
.global lbl_8004A270
lbl_8004A270:
/* 8004A270 000460B0 88 1D 00 00 */ lbz r0, 0x0(r29)
/* 8004A274 000460B4 2C 00 00 2F */ cmpwi r0, 0x2f
/* 8004A278 000460B8 40 82 00 0C */ bne lbl_8004A284
/* 8004A27C 000460BC 38 00 00 00 */ li r0, 0x0
/* 8004A280 000460C0 48 00 00 08 */ b lbl_8004A288
.global lbl_8004A284
lbl_8004A284:
/* 8004A284 000460C4 38 00 00 01 */ li r0, 0x1
.global lbl_8004A288
lbl_8004A288:
/* 8004A288 000460C8 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004A28C 000460CC 41 82 00 1C */ beq lbl_8004A2A8
/* 8004A290 000460D0 3C 80 80 43 */ lis r4, s_currentDir@ha
/* 8004A294 000460D4 7F A5 EB 78 */ mr r5, r29
/* 8004A298 000460D8 38 61 00 10 */ addi r3, r1, 0x10
/* 8004A29C 000460DC 38 84 63 E0 */ addi r4, r4, s_currentDir@l
/* 8004A2A0 000460E0 4B FF F7 71 */ bl nandConvertPath
/* 8004A2A4 000460E4 48 00 00 44 */ b lbl_8004A2E8
.global lbl_8004A2A8
lbl_8004A2A8:
/* 8004A2A8 000460E8 7F A4 EB 78 */ mr r4, r29
/* 8004A2AC 000460EC 38 61 00 10 */ addi r3, r1, 0x10
/* 8004A2B0 000460F0 4B FC 37 11 */ bl strcpy
/* 8004A2B4 000460F4 38 61 00 10 */ addi r3, r1, 0x10
/* 8004A2B8 000460F8 4B FB C7 D5 */ bl strlen
/* 8004A2BC 000460FC 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A2C0 00046100 41 82 00 28 */ beq lbl_8004A2E8
/* 8004A2C4 00046104 38 01 00 10 */ addi r0, r1, 0x10
/* 8004A2C8 00046108 7C 83 02 14 */ add r4, r3, r0
/* 8004A2CC 0004610C 88 04 FF FF */ lbz r0, -0x1(r4)
/* 8004A2D0 00046110 2C 00 00 2F */ cmpwi r0, 0x2f
/* 8004A2D4 00046114 40 82 00 14 */ bne lbl_8004A2E8
/* 8004A2D8 00046118 34 03 FF FF */ addic. r0, r3, -0x1
/* 8004A2DC 0004611C 41 82 00 0C */ beq lbl_8004A2E8
/* 8004A2E0 00046120 38 00 00 00 */ li r0, 0x0
/* 8004A2E4 00046124 98 04 FF FF */ stb r0, -0x1(r4)
.global lbl_8004A2E8
lbl_8004A2E8:
/* 8004A2E8 00046128 2C 1F 00 00 */ cmpwi r31, 0x0
/* 8004A2EC 0004612C 40 82 00 3C */ bne lbl_8004A328
/* 8004A2F0 00046130 3C 80 80 43 */ lis r4, "@3814"@ha
/* 8004A2F4 00046134 38 61 00 10 */ addi r3, r1, 0x10
/* 8004A2F8 00046138 38 84 64 30 */ addi r4, r4, "@3814"@l
/* 8004A2FC 0004613C 38 A0 00 08 */ li r5, 0x8
/* 8004A300 00046140 4B FC 39 59 */ bl strncmp
/* 8004A304 00046144 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A308 00046148 40 82 00 0C */ bne lbl_8004A314
/* 8004A30C 0004614C 38 00 00 01 */ li r0, 0x1
/* 8004A310 00046150 48 00 00 08 */ b lbl_8004A318
.global lbl_8004A314
lbl_8004A314:
/* 8004A314 00046154 38 00 00 00 */ li r0, 0x0
.global lbl_8004A318
lbl_8004A318:
/* 8004A318 00046158 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004A31C 0004615C 41 82 00 0C */ beq lbl_8004A328
/* 8004A320 00046160 38 60 FF 9A */ li r3, -0x66
/* 8004A324 00046164 48 00 00 44 */ b lbl_8004A368
.global lbl_8004A328
lbl_8004A328:
/* 8004A328 00046168 38 61 00 10 */ addi r3, r1, 0x10
/* 8004A32C 0004616C 38 A1 00 08 */ addi r5, r1, 0x8
/* 8004A330 00046170 38 80 00 00 */ li r4, 0x0
/* 8004A334 00046174 48 00 6D 3D */ bl ISFS_ReadDir
/* 8004A338 00046178 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A33C 0004617C 7C 7F 1B 78 */ mr r31, r3
/* 8004A340 00046180 40 82 00 24 */ bne lbl_8004A364
/* 8004A344 00046184 4B FD 74 DD */ bl OSDisableInterrupts
/* 8004A348 00046188 3C 80 80 43 */ lis r4, s_currentDir@ha
/* 8004A34C 0004618C 7C 7E 1B 78 */ mr r30, r3
/* 8004A350 00046190 38 64 63 E0 */ addi r3, r4, s_currentDir@l
/* 8004A354 00046194 38 81 00 10 */ addi r4, r1, 0x10
/* 8004A358 00046198 4B FC 36 69 */ bl strcpy
/* 8004A35C 0004619C 7F C3 F3 78 */ mr r3, r30
/* 8004A360 000461A0 4B FD 75 01 */ bl OSRestoreInterrupts
.global lbl_8004A364
lbl_8004A364:
/* 8004A364 000461A4 7F E3 FB 78 */ mr r3, r31
.global lbl_8004A368
lbl_8004A368:
/* 8004A368 000461A8 80 01 00 64 */ lwz r0, 0x64(r1)
/* 8004A36C 000461AC 83 E1 00 5C */ lwz r31, 0x5c(r1)
/* 8004A370 000461B0 83 C1 00 58 */ lwz r30, 0x58(r1)
/* 8004A374 000461B4 83 A1 00 54 */ lwz r29, 0x54(r1)
/* 8004A378 000461B8 7C 08 03 A6 */ mtlr r0
/* 8004A37C 000461BC 38 21 00 60 */ addi r1, r1, 0x60
/* 8004A380 000461C0 4E 80 00 20 */ blr
/* 8004A384 000461C4 00 00 00 00 */ .4byte 0x00000000
/* 8004A388 000461C8 00 00 00 00 */ .4byte 0x00000000
/* 8004A38C 000461CC 00 00 00 00 */ .4byte 0x00000000
.global NANDChangeDir
NANDChangeDir:
/* 8004A390 000461D0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004A394 000461D4 7C 08 02 A6 */ mflr r0
/* 8004A398 000461D8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004A39C 000461DC 80 0D E8 C0 */ lwz r0, s_libState@sda21(r13)
/* 8004A3A0 000461E0 2C 00 00 02 */ cmpwi r0, 0x2
/* 8004A3A4 000461E4 41 82 00 0C */ beq lbl_8004A3B0
/* 8004A3A8 000461E8 38 60 FF 80 */ li r3, -0x80
/* 8004A3AC 000461EC 48 00 00 18 */ b lbl_8004A3C4
.global lbl_8004A3B0
lbl_8004A3B0:
/* 8004A3B0 000461F0 38 80 00 00 */ li r4, 0x0
/* 8004A3B4 000461F4 38 A0 00 00 */ li r5, 0x0
/* 8004A3B8 000461F8 38 C0 00 00 */ li r6, 0x0
/* 8004A3BC 000461FC 4B FF FD 35 */ bl nandChangeDir
/* 8004A3C0 00046200 4B FF F8 91 */ bl nandConvertErrorCode
.global lbl_8004A3C4
lbl_8004A3C4:
/* 8004A3C4 00046204 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004A3C8 00046208 7C 08 03 A6 */ mtlr r0
/* 8004A3CC 0004620C 38 21 00 10 */ addi r1, r1, 0x10
/* 8004A3D0 00046210 4E 80 00 20 */ blr
/* 8004A3D4 00046214 00 00 00 00 */ .4byte 0x00000000
/* 8004A3D8 00046218 00 00 00 00 */ .4byte 0x00000000
/* 8004A3DC 0004621C 00 00 00 00 */ .4byte 0x00000000
.global nandChangeDirCallback
nandChangeDirCallback:
/* 8004A3E0 00046220 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8004A3E4 00046224 7C 08 02 A6 */ mflr r0
/* 8004A3E8 00046228 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A3EC 0004622C 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004A3F0 00046230 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8004A3F4 00046234 7C 9F 23 78 */ mr r31, r4
/* 8004A3F8 00046238 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8004A3FC 0004623C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8004A400 00046240 7C 7D 1B 78 */ mr r29, r3
/* 8004A404 00046244 40 82 00 24 */ bne lbl_8004A428
/* 8004A408 00046248 4B FD 74 19 */ bl OSDisableInterrupts
/* 8004A40C 0004624C 3C 80 80 43 */ lis r4, s_currentDir@ha
/* 8004A410 00046250 7C 7E 1B 78 */ mr r30, r3
/* 8004A414 00046254 38 64 63 E0 */ addi r3, r4, s_currentDir@l
/* 8004A418 00046258 38 9F 00 34 */ addi r4, r31, 0x34
/* 8004A41C 0004625C 4B FC 35 A5 */ bl strcpy
/* 8004A420 00046260 7F C3 F3 78 */ mr r3, r30
/* 8004A424 00046264 4B FD 74 3D */ bl OSRestoreInterrupts
.global lbl_8004A428
lbl_8004A428:
/* 8004A428 00046268 7F A3 EB 78 */ mr r3, r29
/* 8004A42C 0004626C 4B FF F8 25 */ bl nandConvertErrorCode
/* 8004A430 00046270 81 9F 00 04 */ lwz r12, 0x4(r31)
/* 8004A434 00046274 7F E4 FB 78 */ mr r4, r31
/* 8004A438 00046278 7D 89 03 A6 */ mtctr r12
/* 8004A43C 0004627C 4E 80 04 21 */ bctrl
/* 8004A440 00046280 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8004A444 00046284 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8004A448 00046288 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8004A44C 0004628C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8004A450 00046290 7C 08 03 A6 */ mtlr r0
/* 8004A454 00046294 38 21 00 20 */ addi r1, r1, 0x20
/* 8004A458 00046298 4E 80 00 20 */ blr
/* 8004A45C 0004629C 00 00 00 00 */ .4byte 0x00000000
.global NANDGetHomeDir
NANDGetHomeDir:
/* 8004A460 000462A0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004A464 000462A4 7C 08 02 A6 */ mflr r0
/* 8004A468 000462A8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004A46C 000462AC 80 0D E8 C0 */ lwz r0, s_libState@sda21(r13)
/* 8004A470 000462B0 2C 00 00 02 */ cmpwi r0, 0x2
/* 8004A474 000462B4 40 82 00 0C */ bne lbl_8004A480
/* 8004A478 000462B8 38 00 00 01 */ li r0, 0x1
/* 8004A47C 000462BC 48 00 00 08 */ b lbl_8004A484
.global lbl_8004A480
lbl_8004A480:
/* 8004A480 000462C0 38 00 00 00 */ li r0, 0x0
.global lbl_8004A484
lbl_8004A484:
/* 8004A484 000462C4 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004A488 000462C8 40 82 00 0C */ bne lbl_8004A494
/* 8004A48C 000462CC 38 60 FF 80 */ li r3, -0x80
/* 8004A490 000462D0 48 00 00 14 */ b lbl_8004A4A4
.global lbl_8004A494
lbl_8004A494:
/* 8004A494 000462D4 3C 80 80 4B */ lis r4, s_homeDir@ha
/* 8004A498 000462D8 38 84 58 20 */ addi r4, r4, s_homeDir@l
/* 8004A49C 000462DC 4B FC 35 25 */ bl strcpy
/* 8004A4A0 000462E0 38 60 00 00 */ li r3, 0x0
.global lbl_8004A4A4
lbl_8004A4A4:
/* 8004A4A4 000462E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004A4A8 000462E8 7C 08 03 A6 */ mtlr r0
/* 8004A4AC 000462EC 38 21 00 10 */ addi r1, r1, 0x10
/* 8004A4B0 000462F0 4E 80 00 20 */ blr
/* 8004A4B4 000462F4 00 00 00 00 */ .4byte 0x00000000
/* 8004A4B8 000462F8 00 00 00 00 */ .4byte 0x00000000
/* 8004A4BC 000462FC 00 00 00 00 */ .4byte 0x00000000
.global nandCallback
nandCallback:
/* 8004A4C0 00046300 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004A4C4 00046304 7C 08 02 A6 */ mflr r0
/* 8004A4C8 00046308 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004A4CC 0004630C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004A4D0 00046310 7C 9F 23 78 */ mr r31, r4
/* 8004A4D4 00046314 4B FF F7 7D */ bl nandConvertErrorCode
/* 8004A4D8 00046318 81 9F 00 04 */ lwz r12, 0x4(r31)
/* 8004A4DC 0004631C 7F E4 FB 78 */ mr r4, r31
/* 8004A4E0 00046320 7D 89 03 A6 */ mtctr r12
/* 8004A4E4 00046324 4E 80 04 21 */ bctrl
/* 8004A4E8 00046328 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004A4EC 0004632C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004A4F0 00046330 7C 08 03 A6 */ mtlr r0
/* 8004A4F4 00046334 38 21 00 10 */ addi r1, r1, 0x10
/* 8004A4F8 00046338 4E 80 00 20 */ blr
/* 8004A4FC 0004633C 00 00 00 00 */ .4byte 0x00000000
.global nandGetType
nandGetType:
/* 8004A500 00046340 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8004A504 00046344 7C 08 02 A6 */ mflr r0
/* 8004A508 00046348 90 01 00 74 */ stw r0, 0x74(r1)
/* 8004A50C 0004634C 39 61 00 70 */ addi r11, r1, 0x70
/* 8004A510 00046350 4B FB CE 2D */ bl lbl_8000733C
/* 8004A514 00046354 7C 7B 1B 78 */ mr r27, r3
/* 8004A518 00046358 7C 9E 23 78 */ mr r30, r4
/* 8004A51C 0004635C 7C BC 2B 78 */ mr r28, r5
/* 8004A520 00046360 7C DD 33 78 */ mr r29, r6
/* 8004A524 00046364 7C FF 3B 78 */ mr r31, r7
/* 8004A528 00046368 4B FB C5 65 */ bl strlen
/* 8004A52C 0004636C 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A530 00046370 40 82 00 0C */ bne lbl_8004A53C
/* 8004A534 00046374 38 60 FF 9B */ li r3, -0x65
/* 8004A538 00046378 48 00 02 84 */ b lbl_8004A7BC
.global lbl_8004A53C
lbl_8004A53C:
/* 8004A53C 0004637C 2C 1D 00 00 */ cmpwi r29, 0x0
/* 8004A540 00046380 41 82 01 08 */ beq lbl_8004A648
/* 8004A544 00046384 7F 63 DB 78 */ mr r3, r27
/* 8004A548 00046388 4B FB C5 45 */ bl strlen
/* 8004A54C 0004638C 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A550 00046390 40 82 00 14 */ bne lbl_8004A564
/* 8004A554 00046394 38 7C 00 34 */ addi r3, r28, 0x34
/* 8004A558 00046398 38 8D 82 28 */ addi r4, r13, "@3784"@sda21
/* 8004A55C 0004639C 4B FC 34 65 */ bl strcpy
/* 8004A560 000463A0 48 00 00 78 */ b lbl_8004A5D8
.global lbl_8004A564
lbl_8004A564:
/* 8004A564 000463A4 88 1B 00 00 */ lbz r0, 0x0(r27)
/* 8004A568 000463A8 2C 00 00 2F */ cmpwi r0, 0x2f
/* 8004A56C 000463AC 40 82 00 0C */ bne lbl_8004A578
/* 8004A570 000463B0 38 00 00 00 */ li r0, 0x0
/* 8004A574 000463B4 48 00 00 08 */ b lbl_8004A57C
.global lbl_8004A578
lbl_8004A578:
/* 8004A578 000463B8 38 00 00 01 */ li r0, 0x1
.global lbl_8004A57C
lbl_8004A57C:
/* 8004A57C 000463BC 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004A580 000463C0 41 82 00 1C */ beq lbl_8004A59C
/* 8004A584 000463C4 3C 80 80 43 */ lis r4, s_currentDir@ha
/* 8004A588 000463C8 7F 65 DB 78 */ mr r5, r27
/* 8004A58C 000463CC 38 7C 00 34 */ addi r3, r28, 0x34
/* 8004A590 000463D0 38 84 63 E0 */ addi r4, r4, s_currentDir@l
/* 8004A594 000463D4 4B FF F4 7D */ bl nandConvertPath
/* 8004A598 000463D8 48 00 00 40 */ b lbl_8004A5D8
.global lbl_8004A59C
lbl_8004A59C:
/* 8004A59C 000463DC 7F 64 DB 78 */ mr r4, r27
/* 8004A5A0 000463E0 38 7C 00 34 */ addi r3, r28, 0x34
/* 8004A5A4 000463E4 4B FC 34 1D */ bl strcpy
/* 8004A5A8 000463E8 38 7C 00 34 */ addi r3, r28, 0x34
/* 8004A5AC 000463EC 4B FB C4 E1 */ bl strlen
/* 8004A5B0 000463F0 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A5B4 000463F4 41 82 00 24 */ beq lbl_8004A5D8
/* 8004A5B8 000463F8 7C 83 E2 14 */ add r4, r3, r28
/* 8004A5BC 000463FC 88 04 00 33 */ lbz r0, 0x33(r4)
/* 8004A5C0 00046400 2C 00 00 2F */ cmpwi r0, 0x2f
/* 8004A5C4 00046404 40 82 00 14 */ bne lbl_8004A5D8
/* 8004A5C8 00046408 34 03 FF FF */ addic. r0, r3, -0x1
/* 8004A5CC 0004640C 41 82 00 0C */ beq lbl_8004A5D8
/* 8004A5D0 00046410 38 00 00 00 */ li r0, 0x0
/* 8004A5D4 00046414 98 04 00 33 */ stb r0, 0x33(r4)
.global lbl_8004A5D8
lbl_8004A5D8:
/* 8004A5D8 00046418 2C 1F 00 00 */ cmpwi r31, 0x0
/* 8004A5DC 0004641C 40 82 00 48 */ bne lbl_8004A624
/* 8004A5E0 00046420 3C 80 80 43 */ lis r4, "@3818"@ha
/* 8004A5E4 00046424 38 7C 00 34 */ addi r3, r28, 0x34
/* 8004A5E8 00046428 38 84 64 3C */ addi r4, r4, "@3818"@l
/* 8004A5EC 0004642C 38 A0 00 09 */ li r5, 0x9
/* 8004A5F0 00046430 4B FC 36 69 */ bl strncmp
/* 8004A5F4 00046434 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A5F8 00046438 40 82 00 18 */ bne lbl_8004A610
/* 8004A5FC 0004643C 88 1C 00 3D */ lbz r0, 0x3d(r28)
/* 8004A600 00046440 7C 00 07 75 */ extsb. r0, r0
/* 8004A604 00046444 41 82 00 0C */ beq lbl_8004A610
/* 8004A608 00046448 38 00 00 01 */ li r0, 0x1
/* 8004A60C 0004644C 48 00 00 08 */ b lbl_8004A614
.global lbl_8004A610
lbl_8004A610:
/* 8004A610 00046450 38 00 00 00 */ li r0, 0x0
.global lbl_8004A614
lbl_8004A614:
/* 8004A614 00046454 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004A618 00046458 41 82 00 0C */ beq lbl_8004A624
/* 8004A61C 0004645C 38 60 FF 9A */ li r3, -0x66
/* 8004A620 00046460 48 00 01 9C */ b lbl_8004A7BC
.global lbl_8004A624
lbl_8004A624:
/* 8004A624 00046464 3C C0 80 05 */ lis r6, nandGetTypeCallback@ha
/* 8004A628 00046468 93 DC 00 88 */ stw r30, 0x88(r28)
/* 8004A62C 0004646C 7F 87 E3 78 */ mr r7, r28
/* 8004A630 00046470 38 7C 00 34 */ addi r3, r28, 0x34
/* 8004A634 00046474 38 BC 00 30 */ addi r5, r28, 0x30
/* 8004A638 00046478 38 C6 A8 80 */ addi r6, r6, nandGetTypeCallback@l
/* 8004A63C 0004647C 38 80 00 00 */ li r4, 0x0
/* 8004A640 00046480 48 00 6B 91 */ bl ISFS_ReadDirAsync
/* 8004A644 00046484 48 00 01 78 */ b lbl_8004A7BC
.global lbl_8004A648
lbl_8004A648:
/* 8004A648 00046488 38 00 00 00 */ li r0, 0x0
/* 8004A64C 0004648C 90 01 00 10 */ stw r0, 0x10(r1)
/* 8004A650 00046490 7F 63 DB 78 */ mr r3, r27
/* 8004A654 00046494 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004A658 00046498 90 01 00 18 */ stw r0, 0x18(r1)
/* 8004A65C 0004649C 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8004A660 000464A0 90 01 00 20 */ stw r0, 0x20(r1)
/* 8004A664 000464A4 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004A668 000464A8 90 01 00 28 */ stw r0, 0x28(r1)
/* 8004A66C 000464AC 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8004A670 000464B0 90 01 00 30 */ stw r0, 0x30(r1)
/* 8004A674 000464B4 90 01 00 34 */ stw r0, 0x34(r1)
/* 8004A678 000464B8 90 01 00 38 */ stw r0, 0x38(r1)
/* 8004A67C 000464BC 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8004A680 000464C0 90 01 00 40 */ stw r0, 0x40(r1)
/* 8004A684 000464C4 90 01 00 44 */ stw r0, 0x44(r1)
/* 8004A688 000464C8 90 01 00 48 */ stw r0, 0x48(r1)
/* 8004A68C 000464CC 90 01 00 4C */ stw r0, 0x4c(r1)
/* 8004A690 000464D0 4B FB C3 FD */ bl strlen
/* 8004A694 000464D4 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A698 000464D8 40 82 00 14 */ bne lbl_8004A6AC
/* 8004A69C 000464DC 38 61 00 10 */ addi r3, r1, 0x10
/* 8004A6A0 000464E0 38 8D 82 28 */ addi r4, r13, "@3784"@sda21
/* 8004A6A4 000464E4 4B FC 33 1D */ bl strcpy
/* 8004A6A8 000464E8 48 00 00 7C */ b lbl_8004A724
.global lbl_8004A6AC
lbl_8004A6AC:
/* 8004A6AC 000464EC 88 1B 00 00 */ lbz r0, 0x0(r27)
/* 8004A6B0 000464F0 2C 00 00 2F */ cmpwi r0, 0x2f
/* 8004A6B4 000464F4 40 82 00 0C */ bne lbl_8004A6C0
/* 8004A6B8 000464F8 38 00 00 00 */ li r0, 0x0
/* 8004A6BC 000464FC 48 00 00 08 */ b lbl_8004A6C4
.global lbl_8004A6C0
lbl_8004A6C0:
/* 8004A6C0 00046500 38 00 00 01 */ li r0, 0x1
.global lbl_8004A6C4
lbl_8004A6C4:
/* 8004A6C4 00046504 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004A6C8 00046508 41 82 00 1C */ beq lbl_8004A6E4
/* 8004A6CC 0004650C 3C 80 80 43 */ lis r4, s_currentDir@ha
/* 8004A6D0 00046510 7F 65 DB 78 */ mr r5, r27
/* 8004A6D4 00046514 38 61 00 10 */ addi r3, r1, 0x10
/* 8004A6D8 00046518 38 84 63 E0 */ addi r4, r4, s_currentDir@l
/* 8004A6DC 0004651C 4B FF F3 35 */ bl nandConvertPath
/* 8004A6E0 00046520 48 00 00 44 */ b lbl_8004A724
.global lbl_8004A6E4
lbl_8004A6E4:
/* 8004A6E4 00046524 7F 64 DB 78 */ mr r4, r27
/* 8004A6E8 00046528 38 61 00 10 */ addi r3, r1, 0x10
/* 8004A6EC 0004652C 4B FC 32 D5 */ bl strcpy
/* 8004A6F0 00046530 38 61 00 10 */ addi r3, r1, 0x10
/* 8004A6F4 00046534 4B FB C3 99 */ bl strlen
/* 8004A6F8 00046538 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A6FC 0004653C 41 82 00 28 */ beq lbl_8004A724
/* 8004A700 00046540 38 01 00 10 */ addi r0, r1, 0x10
/* 8004A704 00046544 7C 83 02 14 */ add r4, r3, r0
/* 8004A708 00046548 88 04 FF FF */ lbz r0, -0x1(r4)
/* 8004A70C 0004654C 2C 00 00 2F */ cmpwi r0, 0x2f
/* 8004A710 00046550 40 82 00 14 */ bne lbl_8004A724
/* 8004A714 00046554 34 03 FF FF */ addic. r0, r3, -0x1
/* 8004A718 00046558 41 82 00 0C */ beq lbl_8004A724
/* 8004A71C 0004655C 38 00 00 00 */ li r0, 0x0
/* 8004A720 00046560 98 04 FF FF */ stb r0, -0x1(r4)
.global lbl_8004A724
lbl_8004A724:
/* 8004A724 00046564 2C 1F 00 00 */ cmpwi r31, 0x0
/* 8004A728 00046568 40 82 00 48 */ bne lbl_8004A770
/* 8004A72C 0004656C 3C 80 80 43 */ lis r4, "@3818"@ha
/* 8004A730 00046570 38 61 00 10 */ addi r3, r1, 0x10
/* 8004A734 00046574 38 84 64 3C */ addi r4, r4, "@3818"@l
/* 8004A738 00046578 38 A0 00 09 */ li r5, 0x9
/* 8004A73C 0004657C 4B FC 35 1D */ bl strncmp
/* 8004A740 00046580 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A744 00046584 40 82 00 18 */ bne lbl_8004A75C
/* 8004A748 00046588 88 01 00 19 */ lbz r0, 0x19(r1)
/* 8004A74C 0004658C 7C 00 07 75 */ extsb. r0, r0
/* 8004A750 00046590 41 82 00 0C */ beq lbl_8004A75C
/* 8004A754 00046594 38 00 00 01 */ li r0, 0x1
/* 8004A758 00046598 48 00 00 08 */ b lbl_8004A760
.global lbl_8004A75C
lbl_8004A75C:
/* 8004A75C 0004659C 38 00 00 00 */ li r0, 0x0
.global lbl_8004A760
lbl_8004A760:
/* 8004A760 000465A0 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004A764 000465A4 41 82 00 0C */ beq lbl_8004A770
/* 8004A768 000465A8 38 60 FF 9A */ li r3, -0x66
/* 8004A76C 000465AC 48 00 00 50 */ b lbl_8004A7BC
.global lbl_8004A770
lbl_8004A770:
/* 8004A770 000465B0 38 00 00 00 */ li r0, 0x0
/* 8004A774 000465B4 90 01 00 08 */ stw r0, 0x8(r1)
/* 8004A778 000465B8 38 61 00 10 */ addi r3, r1, 0x10
/* 8004A77C 000465BC 38 A1 00 08 */ addi r5, r1, 0x8
/* 8004A780 000465C0 38 80 00 00 */ li r4, 0x0
/* 8004A784 000465C4 48 00 68 ED */ bl ISFS_ReadDir
/* 8004A788 000465C8 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A78C 000465CC 41 82 00 0C */ beq lbl_8004A798
/* 8004A790 000465D0 2C 03 FF 9A */ cmpwi r3, -0x66
/* 8004A794 000465D4 40 82 00 14 */ bne lbl_8004A7A8
.global lbl_8004A798
lbl_8004A798:
/* 8004A798 000465D8 38 00 00 02 */ li r0, 0x2
/* 8004A79C 000465DC 98 1E 00 00 */ stb r0, 0x0(r30)
/* 8004A7A0 000465E0 38 60 00 00 */ li r3, 0x0
/* 8004A7A4 000465E4 48 00 00 18 */ b lbl_8004A7BC
.global lbl_8004A7A8
lbl_8004A7A8:
/* 8004A7A8 000465E8 2C 03 FF 9B */ cmpwi r3, -0x65
/* 8004A7AC 000465EC 40 82 00 10 */ bne lbl_8004A7BC
/* 8004A7B0 000465F0 38 00 00 01 */ li r0, 0x1
/* 8004A7B4 000465F4 98 1E 00 00 */ stb r0, 0x0(r30)
/* 8004A7B8 000465F8 38 60 00 00 */ li r3, 0x0
.global lbl_8004A7BC
lbl_8004A7BC:
/* 8004A7BC 000465FC 39 61 00 70 */ addi r11, r1, 0x70
/* 8004A7C0 00046600 4B FB CB C9 */ bl lbl_80007388
/* 8004A7C4 00046604 80 01 00 74 */ lwz r0, 0x74(r1)
/* 8004A7C8 00046608 7C 08 03 A6 */ mtlr r0
/* 8004A7CC 0004660C 38 21 00 70 */ addi r1, r1, 0x70
/* 8004A7D0 00046610 4E 80 00 20 */ blr
/* 8004A7D4 00046614 00 00 00 00 */ .4byte 0x00000000
/* 8004A7D8 00046618 00 00 00 00 */ .4byte 0x00000000
/* 8004A7DC 0004661C 00 00 00 00 */ .4byte 0x00000000
.global NANDGetType
NANDGetType:
/* 8004A7E0 00046620 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004A7E4 00046624 7C 08 02 A6 */ mflr r0
/* 8004A7E8 00046628 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004A7EC 0004662C 80 0D E8 C0 */ lwz r0, s_libState@sda21(r13)
/* 8004A7F0 00046630 2C 00 00 02 */ cmpwi r0, 0x2
/* 8004A7F4 00046634 41 82 00 0C */ beq lbl_8004A800
/* 8004A7F8 00046638 38 60 FF 80 */ li r3, -0x80
/* 8004A7FC 0004663C 48 00 00 18 */ b lbl_8004A814
.global lbl_8004A800
lbl_8004A800:
/* 8004A800 00046640 38 A0 00 00 */ li r5, 0x0
/* 8004A804 00046644 38 C0 00 00 */ li r6, 0x0
/* 8004A808 00046648 38 E0 00 00 */ li r7, 0x0
/* 8004A80C 0004664C 4B FF FC F5 */ bl nandGetType
/* 8004A810 00046650 4B FF F4 41 */ bl nandConvertErrorCode
.global lbl_8004A814
lbl_8004A814:
/* 8004A814 00046654 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004A818 00046658 7C 08 03 A6 */ mtlr r0
/* 8004A81C 0004665C 38 21 00 10 */ addi r1, r1, 0x10
/* 8004A820 00046660 4E 80 00 20 */ blr
/* 8004A824 00046664 00 00 00 00 */ .4byte 0x00000000
/* 8004A828 00046668 00 00 00 00 */ .4byte 0x00000000
/* 8004A82C 0004666C 00 00 00 00 */ .4byte 0x00000000
.global NANDPrivateGetTypeAsync
NANDPrivateGetTypeAsync:
/* 8004A830 00046670 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004A834 00046674 7C 08 02 A6 */ mflr r0
/* 8004A838 00046678 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004A83C 0004667C 80 0D E8 C0 */ lwz r0, s_libState@sda21(r13)
/* 8004A840 00046680 2C 00 00 02 */ cmpwi r0, 0x2
/* 8004A844 00046684 41 82 00 0C */ beq lbl_8004A850
/* 8004A848 00046688 38 60 FF 80 */ li r3, -0x80
/* 8004A84C 0004668C 48 00 00 1C */ b lbl_8004A868
.global lbl_8004A850
lbl_8004A850:
/* 8004A850 00046690 90 A6 00 04 */ stw r5, 0x4(r6)
/* 8004A854 00046694 7C C5 33 78 */ mr r5, r6
/* 8004A858 00046698 38 C0 00 01 */ li r6, 0x1
/* 8004A85C 0004669C 38 E0 00 01 */ li r7, 0x1
/* 8004A860 000466A0 4B FF FC A1 */ bl nandGetType
/* 8004A864 000466A4 4B FF F3 ED */ bl nandConvertErrorCode
.global lbl_8004A868
lbl_8004A868:
/* 8004A868 000466A8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004A86C 000466AC 7C 08 03 A6 */ mtlr r0
/* 8004A870 000466B0 38 21 00 10 */ addi r1, r1, 0x10
/* 8004A874 000466B4 4E 80 00 20 */ blr
/* 8004A878 000466B8 00 00 00 00 */ .4byte 0x00000000
/* 8004A87C 000466BC 00 00 00 00 */ .4byte 0x00000000
.global nandGetTypeCallback
nandGetTypeCallback:
/* 8004A880 000466C0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004A884 000466C4 7C 08 02 A6 */ mflr r0
/* 8004A888 000466C8 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004A88C 000466CC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004A890 000466D0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004A894 000466D4 7C 9F 23 78 */ mr r31, r4
/* 8004A898 000466D8 41 82 00 0C */ beq lbl_8004A8A4
/* 8004A89C 000466DC 2C 03 FF 9A */ cmpwi r3, -0x66
/* 8004A8A0 000466E0 40 82 00 18 */ bne lbl_8004A8B8
.global lbl_8004A8A4
lbl_8004A8A4:
/* 8004A8A4 000466E4 80 84 00 88 */ lwz r4, 0x88(r4)
/* 8004A8A8 000466E8 38 00 00 02 */ li r0, 0x2
/* 8004A8AC 000466EC 38 60 00 00 */ li r3, 0x0
/* 8004A8B0 000466F0 98 04 00 00 */ stb r0, 0x0(r4)
/* 8004A8B4 000466F4 48 00 00 1C */ b lbl_8004A8D0
.global lbl_8004A8B8
lbl_8004A8B8:
/* 8004A8B8 000466F8 2C 03 FF 9B */ cmpwi r3, -0x65
/* 8004A8BC 000466FC 40 82 00 14 */ bne lbl_8004A8D0
/* 8004A8C0 00046700 80 84 00 88 */ lwz r4, 0x88(r4)
/* 8004A8C4 00046704 38 00 00 01 */ li r0, 0x1
/* 8004A8C8 00046708 38 60 00 00 */ li r3, 0x0
/* 8004A8CC 0004670C 98 04 00 00 */ stb r0, 0x0(r4)
.global lbl_8004A8D0
lbl_8004A8D0:
/* 8004A8D0 00046710 4B FF F3 81 */ bl nandConvertErrorCode
/* 8004A8D4 00046714 81 9F 00 04 */ lwz r12, 0x4(r31)
/* 8004A8D8 00046718 7F E4 FB 78 */ mr r4, r31
/* 8004A8DC 0004671C 7D 89 03 A6 */ mtctr r12
/* 8004A8E0 00046720 4E 80 04 21 */ bctrl
/* 8004A8E4 00046724 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004A8E8 00046728 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004A8EC 0004672C 7C 08 03 A6 */ mtlr r0
/* 8004A8F0 00046730 38 21 00 10 */ addi r1, r1, 0x10
/* 8004A8F4 00046734 4E 80 00 20 */ blr
/* 8004A8F8 00046738 00 00 00 00 */ .4byte 0x00000000
/* 8004A8FC 0004673C 00 00 00 00 */ .4byte 0x00000000
.global nandGetHomeDir
nandGetHomeDir:
/* 8004A900 00046740 3C 60 80 4B */ lis r3, s_homeDir@ha
/* 8004A904 00046744 38 63 58 20 */ addi r3, r3, s_homeDir@l
/* 8004A908 00046748 4E 80 00 20 */ blr
/* 8004A90C 0004674C 00 00 00 00 */ .4byte 0x00000000
.include "macros.inc"
.section .rodata, "wa" # 0x80406560 - 0x80421040 ; 0x0001AAE0
.global "@3073"
"@3073":
.4byte 0
.4byte 0
.4byte 0xFFFFFF9A
.4byte 0xFFFFFFFF
.4byte 0xFFFFFF99
.4byte 0xFFFFFFFC
.4byte 0xFFFFFF8E
.4byte 0xFFFFFFFB
.4byte 0xFFFFFF97
.4byte 0xFFFFFFFA
.4byte 0xFFFFFF8C
.4byte 0xFFFFFFF1
.4byte 0xFFFFFF9B
.4byte 0xFFFFFFF8
.4byte 0xFFFFFF94
.4byte 0xFFFFFFF7
.4byte 0xFFFFFF93
.4byte 0xFFFFFFF6
.4byte 0xFFFFFF95
.4byte 0xFFFFFFF5
.4byte 0xFFFFFF92
.4byte 0xFFFFFFF0
.4byte 0xFFFFFF96
.4byte 0xFFFFFFF4
.4byte 0xFFFFFF8D
.4byte 0xFFFFFFF3
.4byte 0xFFFFFF98
.4byte 0xFFFFFFC0
.4byte 0xFFFFFF91
.4byte 0xFFFFFFF2
.4byte 0xFFFFFF8B
.4byte 0xFFFFFFC0
.4byte 0xFFFFFF8A
.4byte 0xFFFFFFFD
.4byte 0xFFFFFF89
.4byte 0xFFFFFF80
.4byte 0xFFFFFFFF
.4byte 0xFFFFFFFF
.4byte 0xFFFFFFFE
.4byte 0xFFFFFFFA
.4byte 0xFFFFFFFD
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFFC
.4byte 0xFFFFFFF8
.4byte 0xFFFFFFFB
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFFA
.4byte 0xFFFFFFF4
.4byte 0xFFFFFFF9
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFF8
.4byte 0xFFFFFFFD
.4byte 0xFFFFFFF7
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFF6
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFF5
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFF4
.4byte 0xFFFFFFFB
.4byte 0xFFFFFFF3
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFF2
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFF1
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFF0
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFEF
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFEE
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFED
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFEC
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFEB
.4byte 0xFFFFFFC0
.4byte 0xFFFFFFEA
.4byte 0xFFFFFFFE
.4byte 0xFFFFFFE9
.4byte 0xFFFFFFC0
.include "macros.inc"
.section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0
.global "@2807_80436380"
"@2807_80436380":
.4byte 0x3C3C2052
.4byte 0x564C5F53
.4byte 0x444B202D
.4byte 0x204E414E
.4byte 0x44200972
.4byte 0x656C6561
.4byte 0x73652062
.4byte 0x75696C64
.4byte 0x3A204175
.4byte 0x67203233
.4byte 0x20323031
.4byte 0x30203137
.4byte 0x3A33333A
.4byte 0x34362028
.4byte 0x30783433
.4byte 0x30325F31
.4byte 0x34352920
.4byte 0x3E3E0000
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.global s_currentDir
s_currentDir:
.4byte 0x2F000000
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte nandOnShutdown
.4byte 0x000000FF
.4byte 0
.4byte 0
.global "@3814"
"@3814":
.4byte 0x2F736861
.4byte 0x72656432
.4byte 0
.global "@3818"
"@3818":
.4byte 0x2F736861
.4byte 0x72656432
.4byte 0x2F000000
.4byte 0x49534653
.4byte 0x20657272
.4byte 0x6F722063
.4byte 0x6F64653A
.4byte 0x20256400
.4byte 0x43415554
.4byte 0x494F4E21
.4byte 0x2020556E
.4byte 0x65787065
.4byte 0x63746564
.4byte 0x20657272
.4byte 0x6F722063
.4byte 0x6F646520
.4byte 0x5B25645D
.4byte 0x20776173
.4byte 0x20666F75
.4byte 0x6E642E0A
.4byte 0
.4byte 0x49534653
.4byte 0x20756E65
.4byte 0x78706563
.4byte 0x74656420
.4byte 0x6572726F
.4byte 0x7220636F
.4byte 0x64653A20
.4byte 0x25640000
.4byte 0x4661696C
.4byte 0x65642074
.4byte 0x6F207365
.4byte 0x7420686F
.4byte 0x6D652064
.4byte 0x69726563
.4byte 0x746F7279
.4byte 0x2E0A0000
.include "macros.inc"
.section .bss, "", @nobits # 0x80496700 - 0x80556420 ; 0x000BFD20
.global s_homeDir
s_homeDir:
.skip 0x60
.include "macros.inc"
.section .sdata, "wa" # 0x80556420 - 0x8055C6E0 ; 0x000062C0
.global __NANDVersion
__NANDVersion:
.4byte "@2807_80436380"
.global "@3783"
"@3783":
.4byte 0x2F000000
.global "@3784"
"@3784":
.4byte 0
.global "@3797"
"@3797":
.4byte 0x2E000000
.global "@3798"
"@3798":
.4byte 0x2E2E0000
.global "@3799"
"@3799":
.4byte 0x2F257300
.global "@3800"
"@3800":
.4byte 0x25732F25
.4byte 0x73000000
.include "macros.inc"
.section .sbss, "", @nobits # 0x8055C6E0 - 0x8055DF80 ; 0x000018A0
.global s_libState
s_libState:
.skip 0x8