donut-decomp/asm/arc/arc.s
2022-10-17 09:27:13 +01:00

875 lines
36 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global ARCInitHandle
ARCInitHandle:
/* 8004DD70 00049BB0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004DD74 00049BB4 7C 08 02 A6 */ mflr r0
/* 8004DD78 00049BB8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004DD7C 00049BBC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004DD80 00049BC0 7C 9F 23 78 */ mr r31, r4
/* 8004DD84 00049BC4 93 C1 00 08 */ stw r30, 0x8(r1)
/* 8004DD88 00049BC8 7C 7E 1B 78 */ mr r30, r3
/* 8004DD8C 00049BCC 80 A3 00 00 */ lwz r5, 0x0(r3)
/* 8004DD90 00049BD0 3C 05 AA 56 */ addis r0, r5, 0xaa56
/* 8004DD94 00049BD4 28 00 38 2D */ cmplwi r0, 0x382d
/* 8004DD98 00049BD8 41 82 00 1C */ beq lbl_8004DDB4
/* 8004DD9C 00049BDC 3C A0 80 44 */ lis r5, "@1127"@ha
/* 8004DDA0 00049BE0 38 6D 83 80 */ addi r3, r13, "@1126"@sda21
/* 8004DDA4 00049BE4 38 A5 84 98 */ addi r5, r5, "@1127"@l
/* 8004DDA8 00049BE8 38 80 00 4A */ li r4, 0x4a
/* 8004DDAC 00049BEC 4C C6 31 82 */ crclr 4*cr1+eq
/* 8004DDB0 00049BF0 48 13 CA 41 */ bl OSPanic
.global lbl_8004DDB4
lbl_8004DDB4:
/* 8004DDB4 00049BF4 93 DF 00 00 */ stw r30, 0x0(r31)
/* 8004DDB8 00049BF8 38 00 00 00 */ li r0, 0x0
/* 8004DDBC 00049BFC 38 60 00 01 */ li r3, 0x1
/* 8004DDC0 00049C00 80 9E 00 04 */ lwz r4, 0x4(r30)
/* 8004DDC4 00049C04 7C BE 22 14 */ add r5, r30, r4
/* 8004DDC8 00049C08 90 BF 00 04 */ stw r5, 0x4(r31)
/* 8004DDCC 00049C0C 80 9E 00 0C */ lwz r4, 0xc(r30)
/* 8004DDD0 00049C10 7C 9E 22 14 */ add r4, r30, r4
/* 8004DDD4 00049C14 90 9F 00 08 */ stw r4, 0x8(r31)
/* 8004DDD8 00049C18 80 85 00 08 */ lwz r4, 0x8(r5)
/* 8004DDDC 00049C1C 90 9F 00 0C */ stw r4, 0xc(r31)
/* 8004DDE0 00049C20 1C 84 00 0C */ mulli r4, r4, 0xc
/* 8004DDE4 00049C24 7C 85 22 14 */ add r4, r5, r4
/* 8004DDE8 00049C28 90 9F 00 10 */ stw r4, 0x10(r31)
/* 8004DDEC 00049C2C 80 9E 00 08 */ lwz r4, 0x8(r30)
/* 8004DDF0 00049C30 90 9F 00 14 */ stw r4, 0x14(r31)
/* 8004DDF4 00049C34 90 1F 00 18 */ stw r0, 0x18(r31)
/* 8004DDF8 00049C38 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004DDFC 00049C3C 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 8004DE00 00049C40 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004DE04 00049C44 7C 08 03 A6 */ mtlr r0
/* 8004DE08 00049C48 38 21 00 10 */ addi r1, r1, 0x10
/* 8004DE0C 00049C4C 4E 80 00 20 */ blr
.global ARCOpen
ARCOpen:
/* 8004DE10 00049C50 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 8004DE14 00049C54 7C 08 02 A6 */ mflr r0
/* 8004DE18 00049C58 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 8004DE1C 00049C5C 39 61 00 A0 */ addi r11, r1, 0xa0
/* 8004DE20 00049C60 4B FB 95 19 */ bl lbl_80007338
/* 8004DE24 00049C64 83 83 00 04 */ lwz r28, 0x4(r3)
/* 8004DE28 00049C68 7C 7A 1B 78 */ mr r26, r3
/* 8004DE2C 00049C6C 7C 9B 23 78 */ mr r27, r4
/* 8004DE30 00049C70 7C BD 2B 78 */ mr r29, r5
/* 8004DE34 00049C74 48 00 02 DD */ bl ARCConvertPathToEntrynum
/* 8004DE38 00049C78 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004DE3C 00049C7C 40 80 02 34 */ bge lbl_8004E070
/* 8004DE40 00049C80 83 BA 00 18 */ lwz r29, 0x18(r26)
/* 8004DE44 00049C84 83 9A 00 04 */ lwz r28, 0x4(r26)
/* 8004DE48 00049C88 2C 1D 00 00 */ cmpwi r29, 0x0
/* 8004DE4C 00049C8C 40 82 00 0C */ bne lbl_8004DE58
/* 8004DE50 00049C90 38 80 00 00 */ li r4, 0x0
/* 8004DE54 00049C94 48 00 01 A4 */ b lbl_8004DFF8
.global lbl_8004DE58
lbl_8004DE58:
/* 8004DE58 00049C98 1C 1D 00 0C */ mulli r0, r29, 0xc
/* 8004DE5C 00049C9C 80 FA 00 10 */ lwz r7, 0x10(r26)
/* 8004DE60 00049CA0 7C 7C 02 14 */ add r3, r28, r0
/* 8004DE64 00049CA4 7C 1C 00 2E */ lwzx r0, r28, r0
/* 8004DE68 00049CA8 80 63 00 04 */ lwz r3, 0x4(r3)
/* 8004DE6C 00049CAC 54 00 02 3E */ clrlwi r0, r0, 8
/* 8004DE70 00049CB0 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004DE74 00049CB4 7F C7 02 14 */ add r30, r7, r0
/* 8004DE78 00049CB8 40 82 00 0C */ bne lbl_8004DE84
/* 8004DE7C 00049CBC 38 80 00 00 */ li r4, 0x0
/* 8004DE80 00049CC0 48 00 01 18 */ b lbl_8004DF98
.global lbl_8004DE84
lbl_8004DE84:
/* 8004DE84 00049CC4 1C 03 00 0C */ mulli r0, r3, 0xc
/* 8004DE88 00049CC8 7C 7C 02 14 */ add r3, r28, r0
/* 8004DE8C 00049CCC 7C 1C 00 2E */ lwzx r0, r28, r0
/* 8004DE90 00049CD0 80 63 00 04 */ lwz r3, 0x4(r3)
/* 8004DE94 00049CD4 54 00 02 3E */ clrlwi r0, r0, 8
/* 8004DE98 00049CD8 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004DE9C 00049CDC 7F E7 02 14 */ add r31, r7, r0
/* 8004DEA0 00049CE0 40 82 00 0C */ bne lbl_8004DEAC
/* 8004DEA4 00049CE4 38 80 00 00 */ li r4, 0x0
/* 8004DEA8 00049CE8 48 00 00 90 */ b lbl_8004DF38
.global lbl_8004DEAC
lbl_8004DEAC:
/* 8004DEAC 00049CEC 1C 83 00 0C */ mulli r4, r3, 0xc
/* 8004DEB0 00049CF0 7F 43 D3 78 */ mr r3, r26
/* 8004DEB4 00049CF4 38 A1 00 08 */ addi r5, r1, 0x8
/* 8004DEB8 00049CF8 38 C0 00 80 */ li r6, 0x80
/* 8004DEBC 00049CFC 7C 1C 20 2E */ lwzx r0, r28, r4
/* 8004DEC0 00049D00 7C 9C 22 14 */ add r4, r28, r4
/* 8004DEC4 00049D04 80 84 00 04 */ lwz r4, 0x4(r4)
/* 8004DEC8 00049D08 54 00 02 3E */ clrlwi r0, r0, 8
/* 8004DECC 00049D0C 7F 47 02 14 */ add r26, r7, r0
/* 8004DED0 00049D10 48 00 04 C1 */ bl entryToPath_8004E390
/* 8004DED4 00049D14 28 03 00 80 */ cmplwi r3, 0x80
/* 8004DED8 00049D18 7C 64 1B 78 */ mr r4, r3
/* 8004DEDC 00049D1C 40 82 00 08 */ bne lbl_8004DEE4
/* 8004DEE0 00049D20 48 00 00 58 */ b lbl_8004DF38
.global lbl_8004DEE4
lbl_8004DEE4:
/* 8004DEE4 00049D24 38 83 00 01 */ addi r4, r3, 0x1
/* 8004DEE8 00049D28 38 A1 00 08 */ addi r5, r1, 0x8
/* 8004DEEC 00049D2C 38 00 00 2F */ li r0, 0x2f
/* 8004DEF0 00049D30 7C 05 19 AE */ stbx r0, r5, r3
/* 8004DEF4 00049D34 20 C4 00 80 */ subfic r6, r4, 0x80
/* 8004DEF8 00049D38 7C A5 22 14 */ add r5, r5, r4
/* 8004DEFC 00049D3C 7C C3 33 78 */ mr r3, r6
/* 8004DF00 00049D40 48 00 00 1C */ b lbl_8004DF1C
/* 8004DF04 00049D44 60 00 00 00 */ nop
.global lbl_8004DF08
lbl_8004DF08:
/* 8004DF08 00049D48 88 1A 00 00 */ lbz r0, 0x0(r26)
/* 8004DF0C 00049D4C 3B 5A 00 01 */ addi r26, r26, 0x1
/* 8004DF10 00049D50 98 05 00 00 */ stb r0, 0x0(r5)
/* 8004DF14 00049D54 38 A5 00 01 */ addi r5, r5, 0x1
/* 8004DF18 00049D58 38 63 FF FF */ addi r3, r3, -0x1
.global lbl_8004DF1C
lbl_8004DF1C:
/* 8004DF1C 00049D5C 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004DF20 00049D60 41 82 00 10 */ beq lbl_8004DF30
/* 8004DF24 00049D64 88 1A 00 00 */ lbz r0, 0x0(r26)
/* 8004DF28 00049D68 7C 00 07 75 */ extsb. r0, r0
/* 8004DF2C 00049D6C 40 82 FF DC */ bne lbl_8004DF08
.global lbl_8004DF30
lbl_8004DF30:
/* 8004DF30 00049D70 7C 03 30 50 */ subf r0, r3, r6
/* 8004DF34 00049D74 7C 84 02 14 */ add r4, r4, r0
.global lbl_8004DF38
lbl_8004DF38:
/* 8004DF38 00049D78 28 04 00 80 */ cmplwi r4, 0x80
/* 8004DF3C 00049D7C 40 82 00 08 */ bne lbl_8004DF44
/* 8004DF40 00049D80 48 00 00 58 */ b lbl_8004DF98
.global lbl_8004DF44
lbl_8004DF44:
/* 8004DF44 00049D84 38 A4 00 01 */ addi r5, r4, 0x1
/* 8004DF48 00049D88 38 61 00 08 */ addi r3, r1, 0x8
/* 8004DF4C 00049D8C 38 00 00 2F */ li r0, 0x2f
/* 8004DF50 00049D90 7C 03 21 AE */ stbx r0, r3, r4
/* 8004DF54 00049D94 20 C5 00 80 */ subfic r6, r5, 0x80
/* 8004DF58 00049D98 7C 63 2A 14 */ add r3, r3, r5
/* 8004DF5C 00049D9C 7C C4 33 78 */ mr r4, r6
/* 8004DF60 00049DA0 48 00 00 1C */ b lbl_8004DF7C
/* 8004DF64 00049DA4 60 00 00 00 */ nop
.global lbl_8004DF68
lbl_8004DF68:
/* 8004DF68 00049DA8 88 1F 00 00 */ lbz r0, 0x0(r31)
/* 8004DF6C 00049DAC 3B FF 00 01 */ addi r31, r31, 0x1
/* 8004DF70 00049DB0 98 03 00 00 */ stb r0, 0x0(r3)
/* 8004DF74 00049DB4 38 63 00 01 */ addi r3, r3, 0x1
/* 8004DF78 00049DB8 38 84 FF FF */ addi r4, r4, -0x1
.global lbl_8004DF7C
lbl_8004DF7C:
/* 8004DF7C 00049DBC 2C 04 00 00 */ cmpwi r4, 0x0
/* 8004DF80 00049DC0 41 82 00 10 */ beq lbl_8004DF90
/* 8004DF84 00049DC4 88 1F 00 00 */ lbz r0, 0x0(r31)
/* 8004DF88 00049DC8 7C 00 07 75 */ extsb. r0, r0
/* 8004DF8C 00049DCC 40 82 FF DC */ bne lbl_8004DF68
.global lbl_8004DF90
lbl_8004DF90:
/* 8004DF90 00049DD0 7C 04 30 50 */ subf r0, r4, r6
/* 8004DF94 00049DD4 7C 85 02 14 */ add r4, r5, r0
.global lbl_8004DF98
lbl_8004DF98:
/* 8004DF98 00049DD8 28 04 00 80 */ cmplwi r4, 0x80
/* 8004DF9C 00049DDC 40 82 00 08 */ bne lbl_8004DFA4
/* 8004DFA0 00049DE0 48 00 00 58 */ b lbl_8004DFF8
.global lbl_8004DFA4
lbl_8004DFA4:
/* 8004DFA4 00049DE4 38 A4 00 01 */ addi r5, r4, 0x1
/* 8004DFA8 00049DE8 38 61 00 08 */ addi r3, r1, 0x8
/* 8004DFAC 00049DEC 38 00 00 2F */ li r0, 0x2f
/* 8004DFB0 00049DF0 7C 03 21 AE */ stbx r0, r3, r4
/* 8004DFB4 00049DF4 20 C5 00 80 */ subfic r6, r5, 0x80
/* 8004DFB8 00049DF8 7C 63 2A 14 */ add r3, r3, r5
/* 8004DFBC 00049DFC 7C C4 33 78 */ mr r4, r6
/* 8004DFC0 00049E00 48 00 00 1C */ b lbl_8004DFDC
/* 8004DFC4 00049E04 60 00 00 00 */ nop
.global lbl_8004DFC8
lbl_8004DFC8:
/* 8004DFC8 00049E08 88 1E 00 00 */ lbz r0, 0x0(r30)
/* 8004DFCC 00049E0C 3B DE 00 01 */ addi r30, r30, 0x1
/* 8004DFD0 00049E10 98 03 00 00 */ stb r0, 0x0(r3)
/* 8004DFD4 00049E14 38 63 00 01 */ addi r3, r3, 0x1
/* 8004DFD8 00049E18 38 84 FF FF */ addi r4, r4, -0x1
.global lbl_8004DFDC
lbl_8004DFDC:
/* 8004DFDC 00049E1C 2C 04 00 00 */ cmpwi r4, 0x0
/* 8004DFE0 00049E20 41 82 00 10 */ beq lbl_8004DFF0
/* 8004DFE4 00049E24 88 1E 00 00 */ lbz r0, 0x0(r30)
/* 8004DFE8 00049E28 7C 00 07 75 */ extsb. r0, r0
/* 8004DFEC 00049E2C 40 82 FF DC */ bne lbl_8004DFC8
.global lbl_8004DFF0
lbl_8004DFF0:
/* 8004DFF0 00049E30 7C 04 30 50 */ subf r0, r4, r6
/* 8004DFF4 00049E34 7C 85 02 14 */ add r4, r5, r0
.global lbl_8004DFF8
lbl_8004DFF8:
/* 8004DFF8 00049E38 28 04 00 80 */ cmplwi r4, 0x80
/* 8004DFFC 00049E3C 40 82 00 10 */ bne lbl_8004E00C
/* 8004E000 00049E40 38 00 00 00 */ li r0, 0x0
/* 8004E004 00049E44 98 01 00 87 */ stb r0, 0x87(r1)
/* 8004E008 00049E48 48 00 00 48 */ b lbl_8004E050
.global lbl_8004E00C
lbl_8004E00C:
/* 8004E00C 00049E4C 1C 1D 00 0C */ mulli r0, r29, 0xc
/* 8004E010 00049E50 7C 1C 00 2E */ lwzx r0, r28, r0
/* 8004E014 00049E54 54 00 00 0F */ clrrwi. r0, r0, 24
/* 8004E018 00049E58 41 82 00 2C */ beq lbl_8004E044
/* 8004E01C 00049E5C 28 04 00 7F */ cmplwi r4, 0x7f
/* 8004E020 00049E60 40 82 00 14 */ bne lbl_8004E034
/* 8004E024 00049E64 38 61 00 08 */ addi r3, r1, 0x8
/* 8004E028 00049E68 38 00 00 00 */ li r0, 0x0
/* 8004E02C 00049E6C 7C 03 21 AE */ stbx r0, r3, r4
/* 8004E030 00049E70 48 00 00 20 */ b lbl_8004E050
.global lbl_8004E034
lbl_8004E034:
/* 8004E034 00049E74 38 61 00 08 */ addi r3, r1, 0x8
/* 8004E038 00049E78 38 00 00 2F */ li r0, 0x2f
/* 8004E03C 00049E7C 7C 03 21 AE */ stbx r0, r3, r4
/* 8004E040 00049E80 38 84 00 01 */ addi r4, r4, 0x1
.global lbl_8004E044
lbl_8004E044:
/* 8004E044 00049E84 38 61 00 08 */ addi r3, r1, 0x8
/* 8004E048 00049E88 38 00 00 00 */ li r0, 0x0
/* 8004E04C 00049E8C 7C 03 21 AE */ stbx r0, r3, r4
.global lbl_8004E050
lbl_8004E050:
/* 8004E050 00049E90 3C 60 80 44 */ lis r3, "@1189"@ha
/* 8004E054 00049E94 7F 64 DB 78 */ mr r4, r27
/* 8004E058 00049E98 38 63 84 BC */ addi r3, r3, "@1189"@l
/* 8004E05C 00049E9C 38 A1 00 08 */ addi r5, r1, 0x8
/* 8004E060 00049EA0 4C C6 31 82 */ crclr 4*cr1+eq
/* 8004E064 00049EA4 4B FC F9 2D */ bl OSReport
/* 8004E068 00049EA8 38 60 00 00 */ li r3, 0x0
/* 8004E06C 00049EAC 48 00 00 38 */ b lbl_8004E0A4
.global lbl_8004E070
lbl_8004E070:
/* 8004E070 00049EB0 1C 63 00 0C */ mulli r3, r3, 0xc
/* 8004E074 00049EB4 7C 1C 18 2E */ lwzx r0, r28, r3
/* 8004E078 00049EB8 54 00 00 0F */ clrrwi. r0, r0, 24
/* 8004E07C 00049EBC 41 82 00 0C */ beq lbl_8004E088
/* 8004E080 00049EC0 38 60 00 00 */ li r3, 0x0
/* 8004E084 00049EC4 48 00 00 20 */ b lbl_8004E0A4
.global lbl_8004E088
lbl_8004E088:
/* 8004E088 00049EC8 93 5D 00 00 */ stw r26, 0x0(r29)
/* 8004E08C 00049ECC 7C 9C 1A 14 */ add r4, r28, r3
/* 8004E090 00049ED0 38 60 00 01 */ li r3, 0x1
/* 8004E094 00049ED4 80 04 00 04 */ lwz r0, 0x4(r4)
/* 8004E098 00049ED8 90 1D 00 04 */ stw r0, 0x4(r29)
/* 8004E09C 00049EDC 80 04 00 08 */ lwz r0, 0x8(r4)
/* 8004E0A0 00049EE0 90 1D 00 08 */ stw r0, 0x8(r29)
.global lbl_8004E0A4
lbl_8004E0A4:
/* 8004E0A4 00049EE4 39 61 00 A0 */ addi r11, r1, 0xa0
/* 8004E0A8 00049EE8 4B FB 92 DD */ bl lbl_80007384
/* 8004E0AC 00049EEC 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 8004E0B0 00049EF0 7C 08 03 A6 */ mtlr r0
/* 8004E0B4 00049EF4 38 21 00 A0 */ addi r1, r1, 0xa0
/* 8004E0B8 00049EF8 4E 80 00 20 */ blr
/* 8004E0BC 00049EFC 00 00 00 00 */ .4byte 0x00000000
.global ARCFastOpen
ARCFastOpen:
/* 8004E0C0 00049F00 2C 04 00 00 */ cmpwi r4, 0x0
/* 8004E0C4 00049F04 80 C3 00 04 */ lwz r6, 0x4(r3)
/* 8004E0C8 00049F08 41 80 00 20 */ blt lbl_8004E0E8
/* 8004E0CC 00049F0C 80 03 00 0C */ lwz r0, 0xc(r3)
/* 8004E0D0 00049F10 7C 04 00 40 */ cmplw r4, r0
/* 8004E0D4 00049F14 40 80 00 14 */ bge lbl_8004E0E8
/* 8004E0D8 00049F18 1C 84 00 0C */ mulli r4, r4, 0xc
/* 8004E0DC 00049F1C 7C 06 20 2E */ lwzx r0, r6, r4
/* 8004E0E0 00049F20 54 00 00 0F */ clrrwi. r0, r0, 24
/* 8004E0E4 00049F24 41 82 00 0C */ beq lbl_8004E0F0
.global lbl_8004E0E8
lbl_8004E0E8:
/* 8004E0E8 00049F28 38 60 00 00 */ li r3, 0x0
/* 8004E0EC 00049F2C 4E 80 00 20 */ blr
.global lbl_8004E0F0
lbl_8004E0F0:
/* 8004E0F0 00049F30 90 65 00 00 */ stw r3, 0x0(r5)
/* 8004E0F4 00049F34 7C 86 22 14 */ add r4, r6, r4
/* 8004E0F8 00049F38 38 60 00 01 */ li r3, 0x1
/* 8004E0FC 00049F3C 80 04 00 04 */ lwz r0, 0x4(r4)
/* 8004E100 00049F40 90 05 00 04 */ stw r0, 0x4(r5)
/* 8004E104 00049F44 80 04 00 08 */ lwz r0, 0x8(r4)
/* 8004E108 00049F48 90 05 00 08 */ stw r0, 0x8(r5)
/* 8004E10C 00049F4C 4E 80 00 20 */ blr
.global ARCConvertPathToEntrynum
ARCConvertPathToEntrynum:
/* 8004E110 00049F50 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8004E114 00049F54 3C C0 80 42 */ lis r6, _current_locale@ha
/* 8004E118 00049F58 38 C6 15 10 */ addi r6, r6, _current_locale@l
/* 8004E11C 00049F5C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8004E120 00049F60 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8004E124 00049F64 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8004E128 00049F68 93 81 00 10 */ stw r28, 0x10(r1)
/* 8004E12C 00049F6C 81 23 00 18 */ lwz r9, 0x18(r3)
/* 8004E130 00049F70 81 43 00 04 */ lwz r10, 0x4(r3)
/* 8004E134 00049F74 60 00 00 00 */ nop
.global lbl_8004E138
lbl_8004E138:
/* 8004E138 00049F78 88 04 00 00 */ lbz r0, 0x0(r4)
/* 8004E13C 00049F7C 7C 00 07 75 */ extsb. r0, r0
/* 8004E140 00049F80 40 82 00 0C */ bne lbl_8004E14C
/* 8004E144 00049F84 7D 23 4B 78 */ mr r3, r9
/* 8004E148 00049F88 48 00 02 2C */ b lbl_8004E374
.global lbl_8004E14C
lbl_8004E14C:
/* 8004E14C 00049F8C 2C 00 00 2F */ cmpwi r0, 0x2f
/* 8004E150 00049F90 40 82 00 10 */ bne lbl_8004E160
/* 8004E154 00049F94 39 20 00 00 */ li r9, 0x0
/* 8004E158 00049F98 38 84 00 01 */ addi r4, r4, 0x1
/* 8004E15C 00049F9C 4B FF FF DC */ b lbl_8004E138
.global lbl_8004E160
lbl_8004E160:
/* 8004E160 00049FA0 2C 00 00 2E */ cmpwi r0, 0x2e
/* 8004E164 00049FA4 40 82 00 70 */ bne lbl_8004E1D4
/* 8004E168 00049FA8 88 04 00 01 */ lbz r0, 0x1(r4)
/* 8004E16C 00049FAC 7C 00 07 74 */ extsb r0, r0
/* 8004E170 00049FB0 2C 00 00 2E */ cmpwi r0, 0x2e
/* 8004E174 00049FB4 40 82 00 40 */ bne lbl_8004E1B4
/* 8004E178 00049FB8 88 04 00 02 */ lbz r0, 0x2(r4)
/* 8004E17C 00049FBC 7C 00 07 74 */ extsb r0, r0
/* 8004E180 00049FC0 2C 00 00 2F */ cmpwi r0, 0x2f
/* 8004E184 00049FC4 40 82 00 18 */ bne lbl_8004E19C
/* 8004E188 00049FC8 1C 09 00 0C */ mulli r0, r9, 0xc
/* 8004E18C 00049FCC 38 84 00 03 */ addi r4, r4, 0x3
/* 8004E190 00049FD0 7C AA 02 14 */ add r5, r10, r0
/* 8004E194 00049FD4 81 25 00 04 */ lwz r9, 0x4(r5)
/* 8004E198 00049FD8 4B FF FF A0 */ b lbl_8004E138
.global lbl_8004E19C
lbl_8004E19C:
/* 8004E19C 00049FDC 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004E1A0 00049FE0 40 82 00 34 */ bne lbl_8004E1D4
/* 8004E1A4 00049FE4 1C 09 00 0C */ mulli r0, r9, 0xc
/* 8004E1A8 00049FE8 7C 6A 02 14 */ add r3, r10, r0
/* 8004E1AC 00049FEC 80 63 00 04 */ lwz r3, 0x4(r3)
/* 8004E1B0 00049FF0 48 00 01 C4 */ b lbl_8004E374
.global lbl_8004E1B4
lbl_8004E1B4:
/* 8004E1B4 00049FF4 2C 00 00 2F */ cmpwi r0, 0x2f
/* 8004E1B8 00049FF8 40 82 00 0C */ bne lbl_8004E1C4
/* 8004E1BC 00049FFC 38 84 00 02 */ addi r4, r4, 0x2
/* 8004E1C0 0004A000 4B FF FF 78 */ b lbl_8004E138
.global lbl_8004E1C4
lbl_8004E1C4:
/* 8004E1C4 0004A004 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004E1C8 0004A008 40 82 00 0C */ bne lbl_8004E1D4
/* 8004E1CC 0004A00C 7D 23 4B 78 */ mr r3, r9
/* 8004E1D0 0004A010 48 00 01 A4 */ b lbl_8004E374
.global lbl_8004E1D4
lbl_8004E1D4:
/* 8004E1D4 0004A014 7C 88 23 78 */ mr r8, r4
/* 8004E1D8 0004A018 48 00 00 0C */ b lbl_8004E1E4
/* 8004E1DC 0004A01C 60 00 00 00 */ nop
.global lbl_8004E1E0
lbl_8004E1E0:
/* 8004E1E0 0004A020 39 08 00 01 */ addi r8, r8, 0x1
.global lbl_8004E1E4
lbl_8004E1E4:
/* 8004E1E4 0004A024 88 08 00 00 */ lbz r0, 0x0(r8)
/* 8004E1E8 0004A028 7C 00 07 75 */ extsb. r0, r0
/* 8004E1EC 0004A02C 41 82 00 10 */ beq lbl_8004E1FC
/* 8004E1F0 0004A030 2C 00 00 2F */ cmpwi r0, 0x2f
/* 8004E1F4 0004A034 41 82 00 10 */ beq lbl_8004E204
/* 8004E1F8 0004A038 4B FF FF E8 */ b lbl_8004E1E0
.global lbl_8004E1FC
lbl_8004E1FC:
/* 8004E1FC 0004A03C 38 00 00 00 */ li r0, 0x0
/* 8004E200 0004A040 48 00 00 08 */ b lbl_8004E208
.global lbl_8004E204
lbl_8004E204:
/* 8004E204 0004A044 38 00 00 01 */ li r0, 0x1
.global lbl_8004E208
lbl_8004E208:
/* 8004E208 0004A048 1C E9 00 0C */ mulli r7, r9, 0xc
/* 8004E20C 0004A04C 80 A6 00 38 */ lwz r5, 0x38(r6)
/* 8004E210 0004A050 7D 04 40 50 */ subf r8, r4, r8
/* 8004E214 0004A054 39 29 00 01 */ addi r9, r9, 0x1
/* 8004E218 0004A058 7C EA 3A 14 */ add r7, r10, r7
/* 8004E21C 0004A05C 80 E7 00 08 */ lwz r7, 0x8(r7)
/* 8004E220 0004A060 48 00 01 28 */ b lbl_8004E348
/* 8004E224 0004A064 60 00 00 00 */ nop
.global lbl_8004E228
lbl_8004E228:
/* 8004E228 0004A068 1D 69 00 0C */ mulli r11, r9, 0xc
/* 8004E22C 0004A06C 7F AA 5A 14 */ add r29, r10, r11
.global lbl_8004E230
lbl_8004E230:
/* 8004E230 0004A070 83 DD 00 00 */ lwz r30, 0x0(r29)
/* 8004E234 0004A074 57 CB 00 0F */ clrrwi. r11, r30, 24
/* 8004E238 0004A078 40 82 00 0C */ bne lbl_8004E244
/* 8004E23C 0004A07C 2C 00 00 01 */ cmpwi r0, 0x1
/* 8004E240 0004A080 41 82 00 E8 */ beq lbl_8004E328
.global lbl_8004E244
lbl_8004E244:
/* 8004E244 0004A084 81 83 00 10 */ lwz r12, 0x10(r3)
/* 8004E248 0004A088 57 CB 02 3E */ clrlwi r11, r30, 8
/* 8004E24C 0004A08C 7F 8C 5A 14 */ add r28, r12, r11
/* 8004E250 0004A090 7D 6C 58 AE */ lbzx r11, r12, r11
/* 8004E254 0004A094 2C 0B 00 2E */ cmpwi r11, 0x2e
/* 8004E258 0004A098 40 82 00 1C */ bne lbl_8004E274
/* 8004E25C 0004A09C 89 7C 00 01 */ lbz r11, 0x1(r28)
/* 8004E260 0004A0A0 7D 6B 07 75 */ extsb. r11, r11
/* 8004E264 0004A0A4 40 82 00 10 */ bne lbl_8004E274
/* 8004E268 0004A0A8 3B BD 00 0C */ addi r29, r29, 0xc
/* 8004E26C 0004A0AC 39 29 00 01 */ addi r9, r9, 0x1
/* 8004E270 0004A0B0 4B FF FF C0 */ b lbl_8004E230
.global lbl_8004E274
lbl_8004E274:
/* 8004E274 0004A0B4 7C 8C 23 78 */ mr r12, r4
/* 8004E278 0004A0B8 48 00 00 78 */ b lbl_8004E2F0
/* 8004E27C 0004A0BC 60 00 00 00 */ nop
.global lbl_8004E280
lbl_8004E280:
/* 8004E280 0004A0C0 89 7C 00 00 */ lbz r11, 0x0(r28)
/* 8004E284 0004A0C4 3B E0 00 01 */ li r31, 0x1
/* 8004E288 0004A0C8 3B 9C 00 01 */ addi r28, r28, 0x1
/* 8004E28C 0004A0CC 7D 7E 07 74 */ extsb r30, r11
/* 8004E290 0004A0D0 28 1E 00 FF */ cmplwi r30, 0xff
/* 8004E294 0004A0D4 41 81 00 08 */ bgt lbl_8004E29C
/* 8004E298 0004A0D8 3B E0 00 00 */ li r31, 0x0
.global lbl_8004E29C
lbl_8004E29C:
/* 8004E29C 0004A0DC 2C 1F 00 00 */ cmpwi r31, 0x0
/* 8004E2A0 0004A0E0 41 82 00 08 */ beq lbl_8004E2A8
/* 8004E2A4 0004A0E4 48 00 00 0C */ b lbl_8004E2B0
.global lbl_8004E2A8
lbl_8004E2A8:
/* 8004E2A8 0004A0E8 81 65 00 10 */ lwz r11, 0x10(r5)
/* 8004E2AC 0004A0EC 7F CB F0 AE */ lbzx r30, r11, r30
.global lbl_8004E2B0
lbl_8004E2B0:
/* 8004E2B0 0004A0F0 89 6C 00 00 */ lbz r11, 0x0(r12)
/* 8004E2B4 0004A0F4 3B A0 00 01 */ li r29, 0x1
/* 8004E2B8 0004A0F8 39 8C 00 01 */ addi r12, r12, 0x1
/* 8004E2BC 0004A0FC 7D 7F 07 74 */ extsb r31, r11
/* 8004E2C0 0004A100 28 1F 00 FF */ cmplwi r31, 0xff
/* 8004E2C4 0004A104 41 81 00 08 */ bgt lbl_8004E2CC
/* 8004E2C8 0004A108 3B A0 00 00 */ li r29, 0x0
.global lbl_8004E2CC
lbl_8004E2CC:
/* 8004E2CC 0004A10C 2C 1D 00 00 */ cmpwi r29, 0x0
/* 8004E2D0 0004A110 41 82 00 08 */ beq lbl_8004E2D8
/* 8004E2D4 0004A114 48 00 00 0C */ b lbl_8004E2E0
.global lbl_8004E2D8
lbl_8004E2D8:
/* 8004E2D8 0004A118 81 65 00 10 */ lwz r11, 0x10(r5)
/* 8004E2DC 0004A11C 7F EB F8 AE */ lbzx r31, r11, r31
.global lbl_8004E2E0
lbl_8004E2E0:
/* 8004E2E0 0004A120 7C 1F F0 00 */ cmpw r31, r30
/* 8004E2E4 0004A124 41 82 00 0C */ beq lbl_8004E2F0
/* 8004E2E8 0004A128 39 60 00 00 */ li r11, 0x0
/* 8004E2EC 0004A12C 48 00 00 34 */ b lbl_8004E320
.global lbl_8004E2F0
lbl_8004E2F0:
/* 8004E2F0 0004A130 89 7C 00 00 */ lbz r11, 0x0(r28)
/* 8004E2F4 0004A134 7D 6B 07 75 */ extsb. r11, r11
/* 8004E2F8 0004A138 40 82 FF 88 */ bne lbl_8004E280
/* 8004E2FC 0004A13C 89 6C 00 00 */ lbz r11, 0x0(r12)
/* 8004E300 0004A140 7D 6B 07 74 */ extsb r11, r11
/* 8004E304 0004A144 2C 0B 00 2F */ cmpwi r11, 0x2f
/* 8004E308 0004A148 41 82 00 0C */ beq lbl_8004E314
/* 8004E30C 0004A14C 2C 0B 00 00 */ cmpwi r11, 0x0
/* 8004E310 0004A150 40 82 00 0C */ bne lbl_8004E31C
.global lbl_8004E314
lbl_8004E314:
/* 8004E314 0004A154 39 60 00 01 */ li r11, 0x1
/* 8004E318 0004A158 48 00 00 08 */ b lbl_8004E320
.global lbl_8004E31C
lbl_8004E31C:
/* 8004E31C 0004A15C 39 60 00 00 */ li r11, 0x0
.global lbl_8004E320
lbl_8004E320:
/* 8004E320 0004A160 2C 0B 00 01 */ cmpwi r11, 0x1
/* 8004E324 0004A164 41 82 00 34 */ beq lbl_8004E358
.global lbl_8004E328
lbl_8004E328:
/* 8004E328 0004A168 1D 69 00 0C */ mulli r11, r9, 0xc
/* 8004E32C 0004A16C 7D 8A 5A 14 */ add r12, r10, r11
/* 8004E330 0004A170 7D 6A 58 2E */ lwzx r11, r10, r11
/* 8004E334 0004A174 55 6B 00 0F */ clrrwi. r11, r11, 24
/* 8004E338 0004A178 41 82 00 0C */ beq lbl_8004E344
/* 8004E33C 0004A17C 81 2C 00 08 */ lwz r9, 0x8(r12)
/* 8004E340 0004A180 48 00 00 08 */ b lbl_8004E348
.global lbl_8004E344
lbl_8004E344:
/* 8004E344 0004A184 39 29 00 01 */ addi r9, r9, 0x1
.global lbl_8004E348
lbl_8004E348:
/* 8004E348 0004A188 7C 09 38 40 */ cmplw r9, r7
/* 8004E34C 0004A18C 41 80 FE DC */ blt lbl_8004E228
/* 8004E350 0004A190 38 60 FF FF */ li r3, -0x1
/* 8004E354 0004A194 48 00 00 20 */ b lbl_8004E374
.global lbl_8004E358
lbl_8004E358:
/* 8004E358 0004A198 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004E35C 0004A19C 40 82 00 0C */ bne lbl_8004E368
/* 8004E360 0004A1A0 7D 23 4B 78 */ mr r3, r9
/* 8004E364 0004A1A4 48 00 00 10 */ b lbl_8004E374
.global lbl_8004E368
lbl_8004E368:
/* 8004E368 0004A1A8 7C 88 22 14 */ add r4, r8, r4
/* 8004E36C 0004A1AC 38 84 00 01 */ addi r4, r4, 0x1
/* 8004E370 0004A1B0 4B FF FD C8 */ b lbl_8004E138
.global lbl_8004E374
lbl_8004E374:
/* 8004E374 0004A1B4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8004E378 0004A1B8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8004E37C 0004A1BC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8004E380 0004A1C0 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8004E384 0004A1C4 38 21 00 20 */ addi r1, r1, 0x20
/* 8004E388 0004A1C8 4E 80 00 20 */ blr
/* 8004E38C 0004A1CC 00 00 00 00 */ .4byte 0x00000000
.global entryToPath_8004E390
entryToPath_8004E390:
/* 8004E390 0004A1D0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8004E394 0004A1D4 7C 08 02 A6 */ mflr r0
/* 8004E398 0004A1D8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004E39C 0004A1DC 39 61 00 20 */ addi r11, r1, 0x20
/* 8004E3A0 0004A1E0 4B FB 8F 9D */ bl lbl_8000733C
/* 8004E3A4 0004A1E4 2C 04 00 00 */ cmpwi r4, 0x0
/* 8004E3A8 0004A1E8 80 E3 00 04 */ lwz r7, 0x4(r3)
/* 8004E3AC 0004A1EC 7C BC 2B 78 */ mr r28, r5
/* 8004E3B0 0004A1F0 7C DD 33 78 */ mr r29, r6
/* 8004E3B4 0004A1F4 40 82 00 0C */ bne lbl_8004E3C0
/* 8004E3B8 0004A1F8 38 60 00 00 */ li r3, 0x0
/* 8004E3BC 0004A1FC 48 00 01 8C */ b lbl_8004E548
.global lbl_8004E3C0
lbl_8004E3C0:
/* 8004E3C0 0004A200 1C 04 00 0C */ mulli r0, r4, 0xc
/* 8004E3C4 0004A204 81 03 00 10 */ lwz r8, 0x10(r3)
/* 8004E3C8 0004A208 7C 87 02 14 */ add r4, r7, r0
/* 8004E3CC 0004A20C 7C 07 00 2E */ lwzx r0, r7, r0
/* 8004E3D0 0004A210 80 84 00 04 */ lwz r4, 0x4(r4)
/* 8004E3D4 0004A214 54 00 02 3E */ clrlwi r0, r0, 8
/* 8004E3D8 0004A218 2C 04 00 00 */ cmpwi r4, 0x0
/* 8004E3DC 0004A21C 7F C8 02 14 */ add r30, r8, r0
/* 8004E3E0 0004A220 40 82 00 0C */ bne lbl_8004E3EC
/* 8004E3E4 0004A224 38 80 00 00 */ li r4, 0x0
/* 8004E3E8 0004A228 48 00 01 00 */ b lbl_8004E4E8
.global lbl_8004E3EC
lbl_8004E3EC:
/* 8004E3EC 0004A22C 1C 04 00 0C */ mulli r0, r4, 0xc
/* 8004E3F0 0004A230 7C 87 02 14 */ add r4, r7, r0
/* 8004E3F4 0004A234 7C 07 00 2E */ lwzx r0, r7, r0
/* 8004E3F8 0004A238 80 84 00 04 */ lwz r4, 0x4(r4)
/* 8004E3FC 0004A23C 54 00 02 3E */ clrlwi r0, r0, 8
/* 8004E400 0004A240 2C 04 00 00 */ cmpwi r4, 0x0
/* 8004E404 0004A244 7F E8 02 14 */ add r31, r8, r0
/* 8004E408 0004A248 40 82 00 0C */ bne lbl_8004E414
/* 8004E40C 0004A24C 38 80 00 00 */ li r4, 0x0
/* 8004E410 0004A250 48 00 00 80 */ b lbl_8004E490
.global lbl_8004E414
lbl_8004E414:
/* 8004E414 0004A254 1C 84 00 0C */ mulli r4, r4, 0xc
/* 8004E418 0004A258 7C 07 20 2E */ lwzx r0, r7, r4
/* 8004E41C 0004A25C 7C 87 22 14 */ add r4, r7, r4
/* 8004E420 0004A260 80 84 00 04 */ lwz r4, 0x4(r4)
/* 8004E424 0004A264 54 00 02 3E */ clrlwi r0, r0, 8
/* 8004E428 0004A268 7F 68 02 14 */ add r27, r8, r0
/* 8004E42C 0004A26C 4B FF FF 65 */ bl entryToPath_8004E390
/* 8004E430 0004A270 7C 03 E8 40 */ cmplw r3, r29
/* 8004E434 0004A274 7C 64 1B 78 */ mr r4, r3
/* 8004E438 0004A278 40 82 00 08 */ bne lbl_8004E440
/* 8004E43C 0004A27C 48 00 00 54 */ b lbl_8004E490
.global lbl_8004E440
lbl_8004E440:
/* 8004E440 0004A280 38 83 00 01 */ addi r4, r3, 0x1
/* 8004E444 0004A284 38 00 00 2F */ li r0, 0x2f
/* 8004E448 0004A288 7C C4 E8 50 */ subf r6, r4, r29
/* 8004E44C 0004A28C 7C 1C 19 AE */ stbx r0, r28, r3
/* 8004E450 0004A290 7C 7C 22 14 */ add r3, r28, r4
/* 8004E454 0004A294 7C C5 33 78 */ mr r5, r6
/* 8004E458 0004A298 48 00 00 1C */ b lbl_8004E474
/* 8004E45C 0004A29C 60 00 00 00 */ nop
.global lbl_8004E460
lbl_8004E460:
/* 8004E460 0004A2A0 88 1B 00 00 */ lbz r0, 0x0(r27)
/* 8004E464 0004A2A4 3B 7B 00 01 */ addi r27, r27, 0x1
/* 8004E468 0004A2A8 98 03 00 00 */ stb r0, 0x0(r3)
/* 8004E46C 0004A2AC 38 63 00 01 */ addi r3, r3, 0x1
/* 8004E470 0004A2B0 38 A5 FF FF */ addi r5, r5, -0x1
.global lbl_8004E474
lbl_8004E474:
/* 8004E474 0004A2B4 2C 05 00 00 */ cmpwi r5, 0x0
/* 8004E478 0004A2B8 41 82 00 10 */ beq lbl_8004E488
/* 8004E47C 0004A2BC 88 1B 00 00 */ lbz r0, 0x0(r27)
/* 8004E480 0004A2C0 7C 00 07 75 */ extsb. r0, r0
/* 8004E484 0004A2C4 40 82 FF DC */ bne lbl_8004E460
.global lbl_8004E488
lbl_8004E488:
/* 8004E488 0004A2C8 7C 05 30 50 */ subf r0, r5, r6
/* 8004E48C 0004A2CC 7C 84 02 14 */ add r4, r4, r0
.global lbl_8004E490
lbl_8004E490:
/* 8004E490 0004A2D0 7C 04 E8 40 */ cmplw r4, r29
/* 8004E494 0004A2D4 40 82 00 08 */ bne lbl_8004E49C
/* 8004E498 0004A2D8 48 00 00 50 */ b lbl_8004E4E8
.global lbl_8004E49C
lbl_8004E49C:
/* 8004E49C 0004A2DC 38 64 00 01 */ addi r3, r4, 0x1
/* 8004E4A0 0004A2E0 38 00 00 2F */ li r0, 0x2f
/* 8004E4A4 0004A2E4 7C C3 E8 50 */ subf r6, r3, r29
/* 8004E4A8 0004A2E8 7C 1C 21 AE */ stbx r0, r28, r4
/* 8004E4AC 0004A2EC 7C 9C 1A 14 */ add r4, r28, r3
/* 8004E4B0 0004A2F0 7C C5 33 78 */ mr r5, r6
/* 8004E4B4 0004A2F4 48 00 00 18 */ b lbl_8004E4CC
.global lbl_8004E4B8
lbl_8004E4B8:
/* 8004E4B8 0004A2F8 88 1F 00 00 */ lbz r0, 0x0(r31)
/* 8004E4BC 0004A2FC 3B FF 00 01 */ addi r31, r31, 0x1
/* 8004E4C0 0004A300 98 04 00 00 */ stb r0, 0x0(r4)
/* 8004E4C4 0004A304 38 84 00 01 */ addi r4, r4, 0x1
/* 8004E4C8 0004A308 38 A5 FF FF */ addi r5, r5, -0x1
.global lbl_8004E4CC
lbl_8004E4CC:
/* 8004E4CC 0004A30C 2C 05 00 00 */ cmpwi r5, 0x0
/* 8004E4D0 0004A310 41 82 00 10 */ beq lbl_8004E4E0
/* 8004E4D4 0004A314 88 1F 00 00 */ lbz r0, 0x0(r31)
/* 8004E4D8 0004A318 7C 00 07 75 */ extsb. r0, r0
/* 8004E4DC 0004A31C 40 82 FF DC */ bne lbl_8004E4B8
.global lbl_8004E4E0
lbl_8004E4E0:
/* 8004E4E0 0004A320 7C 05 30 50 */ subf r0, r5, r6
/* 8004E4E4 0004A324 7C 83 02 14 */ add r4, r3, r0
.global lbl_8004E4E8
lbl_8004E4E8:
/* 8004E4E8 0004A328 7C 04 E8 40 */ cmplw r4, r29
/* 8004E4EC 0004A32C 40 82 00 0C */ bne lbl_8004E4F8
/* 8004E4F0 0004A330 7C 83 23 78 */ mr r3, r4
/* 8004E4F4 0004A334 48 00 00 54 */ b lbl_8004E548
.global lbl_8004E4F8
lbl_8004E4F8:
/* 8004E4F8 0004A338 38 C4 00 01 */ addi r6, r4, 0x1
/* 8004E4FC 0004A33C 38 00 00 2F */ li r0, 0x2f
/* 8004E500 0004A340 7C A6 E8 50 */ subf r5, r6, r29
/* 8004E504 0004A344 7C 1C 21 AE */ stbx r0, r28, r4
/* 8004E508 0004A348 7C 7C 32 14 */ add r3, r28, r6
/* 8004E50C 0004A34C 7C A4 2B 78 */ mr r4, r5
/* 8004E510 0004A350 48 00 00 1C */ b lbl_8004E52C
/* 8004E514 0004A354 60 00 00 00 */ nop
.global lbl_8004E518
lbl_8004E518:
/* 8004E518 0004A358 88 1E 00 00 */ lbz r0, 0x0(r30)
/* 8004E51C 0004A35C 3B DE 00 01 */ addi r30, r30, 0x1
/* 8004E520 0004A360 98 03 00 00 */ stb r0, 0x0(r3)
/* 8004E524 0004A364 38 63 00 01 */ addi r3, r3, 0x1
/* 8004E528 0004A368 38 84 FF FF */ addi r4, r4, -0x1
.global lbl_8004E52C
lbl_8004E52C:
/* 8004E52C 0004A36C 2C 04 00 00 */ cmpwi r4, 0x0
/* 8004E530 0004A370 41 82 00 10 */ beq lbl_8004E540
/* 8004E534 0004A374 88 1E 00 00 */ lbz r0, 0x0(r30)
/* 8004E538 0004A378 7C 00 07 75 */ extsb. r0, r0
/* 8004E53C 0004A37C 40 82 FF DC */ bne lbl_8004E518
.global lbl_8004E540
lbl_8004E540:
/* 8004E540 0004A380 7C 04 28 50 */ subf r0, r4, r5
/* 8004E544 0004A384 7C 66 02 14 */ add r3, r6, r0
.global lbl_8004E548
lbl_8004E548:
/* 8004E548 0004A388 39 61 00 20 */ addi r11, r1, 0x20
/* 8004E54C 0004A38C 4B FB 8E 3D */ bl lbl_80007388
/* 8004E550 0004A390 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8004E554 0004A394 7C 08 03 A6 */ mtlr r0
/* 8004E558 0004A398 38 21 00 20 */ addi r1, r1, 0x20
/* 8004E55C 0004A39C 4E 80 00 20 */ blr
.global ARCGetStartAddrInMem
ARCGetStartAddrInMem:
/* 8004E560 0004A3A0 80 83 00 00 */ lwz r4, 0x0(r3)
/* 8004E564 0004A3A4 80 03 00 04 */ lwz r0, 0x4(r3)
/* 8004E568 0004A3A8 80 64 00 00 */ lwz r3, 0x0(r4)
/* 8004E56C 0004A3AC 7C 63 02 14 */ add r3, r3, r0
/* 8004E570 0004A3B0 4E 80 00 20 */ blr
/* 8004E574 0004A3B4 00 00 00 00 */ .4byte 0x00000000
/* 8004E578 0004A3B8 00 00 00 00 */ .4byte 0x00000000
/* 8004E57C 0004A3BC 00 00 00 00 */ .4byte 0x00000000
.global ARCGetLength
ARCGetLength:
/* 8004E580 0004A3C0 80 63 00 08 */ lwz r3, 0x8(r3)
/* 8004E584 0004A3C4 4E 80 00 20 */ blr
/* 8004E588 0004A3C8 00 00 00 00 */ .4byte 0x00000000
/* 8004E58C 0004A3CC 00 00 00 00 */ .4byte 0x00000000
.global ARCChangeDir
ARCChangeDir:
/* 8004E590 0004A3D0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004E594 0004A3D4 7C 08 02 A6 */ mflr r0
/* 8004E598 0004A3D8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004E59C 0004A3DC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004E5A0 0004A3E0 7C 7F 1B 78 */ mr r31, r3
/* 8004E5A4 0004A3E4 4B FF FB 6D */ bl ARCConvertPathToEntrynum
/* 8004E5A8 0004A3E8 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004E5AC 0004A3EC 80 9F 00 04 */ lwz r4, 0x4(r31)
/* 8004E5B0 0004A3F0 41 80 00 14 */ blt lbl_8004E5C4
/* 8004E5B4 0004A3F4 1C 03 00 0C */ mulli r0, r3, 0xc
/* 8004E5B8 0004A3F8 7C 04 00 2E */ lwzx r0, r4, r0
/* 8004E5BC 0004A3FC 54 00 00 0F */ clrrwi. r0, r0, 24
/* 8004E5C0 0004A400 40 82 00 0C */ bne lbl_8004E5CC
.global lbl_8004E5C4
lbl_8004E5C4:
/* 8004E5C4 0004A404 38 60 00 00 */ li r3, 0x0
/* 8004E5C8 0004A408 48 00 00 0C */ b lbl_8004E5D4
.global lbl_8004E5CC
lbl_8004E5CC:
/* 8004E5CC 0004A40C 90 7F 00 18 */ stw r3, 0x18(r31)
/* 8004E5D0 0004A410 38 60 00 01 */ li r3, 0x1
.global lbl_8004E5D4
lbl_8004E5D4:
/* 8004E5D4 0004A414 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004E5D8 0004A418 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004E5DC 0004A41C 7C 08 03 A6 */ mtlr r0
/* 8004E5E0 0004A420 38 21 00 10 */ addi r1, r1, 0x10
/* 8004E5E4 0004A424 4E 80 00 20 */ blr
/* 8004E5E8 0004A428 00 00 00 00 */ .4byte 0x00000000
/* 8004E5EC 0004A42C 00 00 00 00 */ .4byte 0x00000000
.global ARCOpenDir
ARCOpenDir:
/* 8004E5F0 0004A430 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004E5F4 0004A434 7C 08 02 A6 */ mflr r0
/* 8004E5F8 0004A438 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004E5FC 0004A43C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004E600 0004A440 7C BF 2B 78 */ mr r31, r5
/* 8004E604 0004A444 93 C1 00 08 */ stw r30, 0x8(r1)
/* 8004E608 0004A448 7C 7E 1B 78 */ mr r30, r3
/* 8004E60C 0004A44C 4B FF FB 05 */ bl ARCConvertPathToEntrynum
/* 8004E610 0004A450 2C 03 00 00 */ cmpwi r3, 0x0
/* 8004E614 0004A454 80 BE 00 04 */ lwz r5, 0x4(r30)
/* 8004E618 0004A458 41 80 00 14 */ blt lbl_8004E62C
/* 8004E61C 0004A45C 1C 83 00 0C */ mulli r4, r3, 0xc
/* 8004E620 0004A460 7C 05 20 2E */ lwzx r0, r5, r4
/* 8004E624 0004A464 54 00 00 0F */ clrrwi. r0, r0, 24
/* 8004E628 0004A468 40 82 00 0C */ bne lbl_8004E634
.global lbl_8004E62C
lbl_8004E62C:
/* 8004E62C 0004A46C 38 60 00 00 */ li r3, 0x0
/* 8004E630 0004A470 48 00 00 24 */ b lbl_8004E654
.global lbl_8004E634
lbl_8004E634:
/* 8004E634 0004A474 38 03 00 01 */ addi r0, r3, 0x1
/* 8004E638 0004A478 90 7F 00 04 */ stw r3, 0x4(r31)
/* 8004E63C 0004A47C 7C 85 22 14 */ add r4, r5, r4
/* 8004E640 0004A480 38 60 00 01 */ li r3, 0x1
/* 8004E644 0004A484 93 DF 00 00 */ stw r30, 0x0(r31)
/* 8004E648 0004A488 90 1F 00 08 */ stw r0, 0x8(r31)
/* 8004E64C 0004A48C 80 04 00 08 */ lwz r0, 0x8(r4)
/* 8004E650 0004A490 90 1F 00 0C */ stw r0, 0xc(r31)
.global lbl_8004E654
lbl_8004E654:
/* 8004E654 0004A494 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004E658 0004A498 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004E65C 0004A49C 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 8004E660 0004A4A0 7C 08 03 A6 */ mtlr r0
/* 8004E664 0004A4A4 38 21 00 10 */ addi r1, r1, 0x10
/* 8004E668 0004A4A8 4E 80 00 20 */ blr
/* 8004E66C 0004A4AC 00 00 00 00 */ .4byte 0x00000000
.global ARCReadDir
ARCReadDir:
/* 8004E670 0004A4B0 80 E3 00 08 */ lwz r7, 0x8(r3)
/* 8004E674 0004A4B4 81 23 00 00 */ lwz r9, 0x0(r3)
/* 8004E678 0004A4B8 1C 07 00 0C */ mulli r0, r7, 0xc
/* 8004E67C 0004A4BC 81 09 00 04 */ lwz r8, 0x4(r9)
/* 8004E680 0004A4C0 7C C8 02 14 */ add r6, r8, r0
/* 8004E684 0004A4C4 60 00 00 00 */ nop
.global lbl_8004E688
lbl_8004E688:
/* 8004E688 0004A4C8 80 03 00 04 */ lwz r0, 0x4(r3)
/* 8004E68C 0004A4CC 7C 07 00 40 */ cmplw r7, r0
/* 8004E690 0004A4D0 40 81 00 10 */ ble lbl_8004E6A0
/* 8004E694 0004A4D4 80 03 00 0C */ lwz r0, 0xc(r3)
/* 8004E698 0004A4D8 7C 00 38 40 */ cmplw r0, r7
/* 8004E69C 0004A4DC 41 81 00 0C */ bgt lbl_8004E6A8
.global lbl_8004E6A0
lbl_8004E6A0:
/* 8004E6A0 0004A4E0 38 60 00 00 */ li r3, 0x0
/* 8004E6A4 0004A4E4 4E 80 00 20 */ blr
.global lbl_8004E6A8
lbl_8004E6A8:
/* 8004E6A8 0004A4E8 91 24 00 00 */ stw r9, 0x0(r4)
/* 8004E6AC 0004A4EC 90 E4 00 04 */ stw r7, 0x4(r4)
/* 8004E6B0 0004A4F0 80 06 00 00 */ lwz r0, 0x0(r6)
/* 8004E6B4 0004A4F4 54 05 00 0E */ clrrwi r5, r0, 24
/* 8004E6B8 0004A4F8 7C 05 00 D0 */ neg r0, r5
/* 8004E6BC 0004A4FC 7C 00 2B 78 */ or r0, r0, r5
/* 8004E6C0 0004A500 54 00 0F FE */ srwi r0, r0, 31
/* 8004E6C4 0004A504 90 04 00 08 */ stw r0, 0x8(r4)
/* 8004E6C8 0004A508 80 06 00 00 */ lwz r0, 0x0(r6)
/* 8004E6CC 0004A50C 80 A9 00 10 */ lwz r5, 0x10(r9)
/* 8004E6D0 0004A510 54 00 02 3E */ clrlwi r0, r0, 8
/* 8004E6D4 0004A514 7C A5 02 14 */ add r5, r5, r0
/* 8004E6D8 0004A518 90 A4 00 0C */ stw r5, 0xc(r4)
/* 8004E6DC 0004A51C 88 05 00 00 */ lbz r0, 0x0(r5)
/* 8004E6E0 0004A520 2C 00 00 2E */ cmpwi r0, 0x2e
/* 8004E6E4 0004A524 40 82 00 1C */ bne lbl_8004E700
/* 8004E6E8 0004A528 88 05 00 01 */ lbz r0, 0x1(r5)
/* 8004E6EC 0004A52C 7C 00 07 75 */ extsb. r0, r0
/* 8004E6F0 0004A530 40 82 00 10 */ bne lbl_8004E700
/* 8004E6F4 0004A534 38 C6 00 0C */ addi r6, r6, 0xc
/* 8004E6F8 0004A538 38 E7 00 01 */ addi r7, r7, 0x1
/* 8004E6FC 0004A53C 4B FF FF 8C */ b lbl_8004E688
.global lbl_8004E700
lbl_8004E700:
/* 8004E700 0004A540 1C 87 00 0C */ mulli r4, r7, 0xc
/* 8004E704 0004A544 7C 08 20 2E */ lwzx r0, r8, r4
/* 8004E708 0004A548 54 00 00 0F */ clrrwi. r0, r0, 24
/* 8004E70C 0004A54C 41 82 00 10 */ beq lbl_8004E71C
/* 8004E710 0004A550 7C 88 22 14 */ add r4, r8, r4
/* 8004E714 0004A554 80 04 00 08 */ lwz r0, 0x8(r4)
/* 8004E718 0004A558 48 00 00 08 */ b lbl_8004E720
.global lbl_8004E71C
lbl_8004E71C:
/* 8004E71C 0004A55C 38 07 00 01 */ addi r0, r7, 0x1
.global lbl_8004E720
lbl_8004E720:
/* 8004E720 0004A560 90 03 00 08 */ stw r0, 0x8(r3)
/* 8004E724 0004A564 38 60 00 01 */ li r3, 0x1
/* 8004E728 0004A568 4E 80 00 20 */ blr
/* 8004E72C 0004A56C 00 00 00 00 */ .4byte 0x00000000
.include "macros.inc"
.section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0
.global "@1127"
"@1127":
.4byte 0x41524349
.4byte 0x6E697448
.4byte 0x616E646C
.4byte 0x653A2062
.4byte 0x61642061
.4byte 0x72636869
.4byte 0x76652066
.4byte 0x6F726D61
.4byte 0x74000000
.global "@1189"
"@1189":
.4byte 0x5761726E
.4byte 0x696E673A
.4byte 0x20415243
.4byte 0x4F70656E
.4byte 0x28293A20
.4byte 0x66696C65
.4byte 0x20272573
.4byte 0x27207761
.4byte 0x73206E6F
.4byte 0x7420666F
.4byte 0x756E6420
.4byte 0x756E6465
.4byte 0x72202573
.4byte 0x20696E20
.4byte 0x74686520
.4byte 0x61726368
.4byte 0x6976652E
.4byte 0x0A000000
.4byte 0
.include "macros.inc"
.section .sdata, "wa" # 0x80556420 - 0x8055C6E0 ; 0x000062C0
.global "@1126"
"@1126":
.4byte 0x6172632E
.4byte 0x63000000