summaryrefslogtreecommitdiff
path: root/asm/SDK/ARC
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-10-07 17:41:10 -0400
committerMax <mparisi@stevens.edu>2020-10-07 17:41:10 -0400
commit8bdbd1d2b5b2527689139dfda3f641c99c9b78ef (patch)
tree0451d5383057aafc4ebb6ccde36805a15bb524b9 /asm/SDK/ARC
parent4043dc5ee3c5457fb332042acccaa6e4ec132332 (diff)
split scapi, scapi_prdinfo, wenc, and arc
Diffstat (limited to 'asm/SDK/ARC')
-rw-r--r--asm/SDK/ARC/arc.s404
1 files changed, 404 insertions, 0 deletions
diff --git a/asm/SDK/ARC/arc.s b/asm/SDK/ARC/arc.s
new file mode 100644
index 0000000..8a7a0f1
--- /dev/null
+++ b/asm/SDK/ARC/arc.s
@@ -0,0 +1,404 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global ARCInitHandle
+ARCInitHandle:
+/* 802ECCF8 002E8958 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802ECCFC 002E895C 7C 08 02 A6 */ mflr r0
+/* 802ECD00 002E8960 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802ECD04 002E8964 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802ECD08 002E8968 7C 9F 23 78 */ mr r31, r4
+/* 802ECD0C 002E896C 93 C1 00 08 */ stw r30, 8(r1)
+/* 802ECD10 002E8970 7C 7E 1B 78 */ mr r30, r3
+/* 802ECD14 002E8974 80 A3 00 00 */ lwz r5, 0(r3)
+/* 802ECD18 002E8978 3C 05 AA 56 */ addis r0, r5, 0xaa56
+/* 802ECD1C 002E897C 28 00 38 2D */ cmplwi r0, 0x382d
+/* 802ECD20 002E8980 41 82 00 1C */ beq lbl_802ECD3C
+/* 802ECD24 002E8984 3C A0 80 44 */ lis r5, lbl_80445A80@ha
+/* 802ECD28 002E8988 38 6D 8B E0 */ addi r3, r13, lbl_8063DEA0-_SDA_BASE_
+/* 802ECD2C 002E898C 38 A5 5A 80 */ addi r5, r5, lbl_80445A80@l
+/* 802ECD30 002E8990 38 80 00 4A */ li r4, 0x4a
+/* 802ECD34 002E8994 4C C6 31 82 */ crclr 6
+/* 802ECD38 002E8998 4B F7 E7 65 */ bl OSPanic
+lbl_802ECD3C:
+/* 802ECD3C 002E899C 93 DF 00 00 */ stw r30, 0(r31)
+/* 802ECD40 002E89A0 38 00 00 00 */ li r0, 0
+/* 802ECD44 002E89A4 38 60 00 01 */ li r3, 1
+/* 802ECD48 002E89A8 80 9E 00 04 */ lwz r4, 4(r30)
+/* 802ECD4C 002E89AC 7C DE 22 14 */ add r6, r30, r4
+/* 802ECD50 002E89B0 90 DF 00 04 */ stw r6, 4(r31)
+/* 802ECD54 002E89B4 80 9E 00 0C */ lwz r4, 0xc(r30)
+/* 802ECD58 002E89B8 7C 9E 22 14 */ add r4, r30, r4
+/* 802ECD5C 002E89BC 90 9F 00 08 */ stw r4, 8(r31)
+/* 802ECD60 002E89C0 80 A6 00 08 */ lwz r5, 8(r6)
+/* 802ECD64 002E89C4 1C 85 00 0C */ mulli r4, r5, 0xc
+/* 802ECD68 002E89C8 90 BF 00 0C */ stw r5, 0xc(r31)
+/* 802ECD6C 002E89CC 7C 86 22 14 */ add r4, r6, r4
+/* 802ECD70 002E89D0 90 9F 00 10 */ stw r4, 0x10(r31)
+/* 802ECD74 002E89D4 80 9E 00 08 */ lwz r4, 8(r30)
+/* 802ECD78 002E89D8 90 9F 00 14 */ stw r4, 0x14(r31)
+/* 802ECD7C 002E89DC 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 802ECD80 002E89E0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802ECD84 002E89E4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802ECD88 002E89E8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802ECD8C 002E89EC 7C 08 03 A6 */ mtlr r0
+/* 802ECD90 002E89F0 38 21 00 10 */ addi r1, r1, 0x10
+/* 802ECD94 002E89F4 4E 80 00 20 */ blr
+
+.global ARCFastOpen
+ARCFastOpen:
+/* 802ECD98 002E89F8 2C 04 00 00 */ cmpwi r4, 0
+/* 802ECD9C 002E89FC 80 C3 00 04 */ lwz r6, 4(r3)
+/* 802ECDA0 002E8A00 41 80 00 20 */ blt lbl_802ECDC0
+/* 802ECDA4 002E8A04 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 802ECDA8 002E8A08 7C 04 00 40 */ cmplw r4, r0
+/* 802ECDAC 002E8A0C 40 80 00 14 */ bge lbl_802ECDC0
+/* 802ECDB0 002E8A10 1C 84 00 0C */ mulli r4, r4, 0xc
+/* 802ECDB4 002E8A14 7C 06 20 2E */ lwzx r0, r6, r4
+/* 802ECDB8 002E8A18 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
+/* 802ECDBC 002E8A1C 41 82 00 0C */ beq lbl_802ECDC8
+lbl_802ECDC0:
+/* 802ECDC0 002E8A20 38 60 00 00 */ li r3, 0
+/* 802ECDC4 002E8A24 4E 80 00 20 */ blr
+lbl_802ECDC8:
+/* 802ECDC8 002E8A28 90 65 00 00 */ stw r3, 0(r5)
+/* 802ECDCC 002E8A2C 7C 86 22 14 */ add r4, r6, r4
+/* 802ECDD0 002E8A30 38 60 00 01 */ li r3, 1
+/* 802ECDD4 002E8A34 80 04 00 04 */ lwz r0, 4(r4)
+/* 802ECDD8 002E8A38 90 05 00 04 */ stw r0, 4(r5)
+/* 802ECDDC 002E8A3C 80 04 00 08 */ lwz r0, 8(r4)
+/* 802ECDE0 002E8A40 90 05 00 08 */ stw r0, 8(r5)
+/* 802ECDE4 002E8A44 4E 80 00 20 */ blr
+
+.global ARCConvertPathToEntrynum
+ARCConvertPathToEntrynum:
+/* 802ECDE8 002E8A48 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802ECDEC 002E8A4C 3C A0 80 42 */ lis r5, lbl_80422D48@ha
+/* 802ECDF0 002E8A50 38 A5 2D 48 */ addi r5, r5, lbl_80422D48@l
+/* 802ECDF4 002E8A54 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802ECDF8 002E8A58 93 C1 00 08 */ stw r30, 8(r1)
+/* 802ECDFC 002E8A5C 81 03 00 18 */ lwz r8, 0x18(r3)
+/* 802ECE00 002E8A60 81 23 00 04 */ lwz r9, 4(r3)
+/* 802ECE04 002E8A64 80 C5 00 38 */ lwz r6, 0x38(r5)
+lbl_802ECE08:
+/* 802ECE08 002E8A68 88 04 00 00 */ lbz r0, 0(r4)
+/* 802ECE0C 002E8A6C 7C 00 07 75 */ extsb. r0, r0
+/* 802ECE10 002E8A70 40 82 00 0C */ bne lbl_802ECE1C
+/* 802ECE14 002E8A74 7D 03 43 78 */ mr r3, r8
+/* 802ECE18 002E8A78 48 00 02 24 */ b lbl_802ED03C
+lbl_802ECE1C:
+/* 802ECE1C 002E8A7C 2C 00 00 2F */ cmpwi r0, 0x2f
+/* 802ECE20 002E8A80 40 82 00 10 */ bne lbl_802ECE30
+/* 802ECE24 002E8A84 39 00 00 00 */ li r8, 0
+/* 802ECE28 002E8A88 38 84 00 01 */ addi r4, r4, 1
+/* 802ECE2C 002E8A8C 4B FF FF DC */ b lbl_802ECE08
+lbl_802ECE30:
+/* 802ECE30 002E8A90 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 802ECE34 002E8A94 40 82 00 70 */ bne lbl_802ECEA4
+/* 802ECE38 002E8A98 88 04 00 01 */ lbz r0, 1(r4)
+/* 802ECE3C 002E8A9C 7C 00 07 74 */ extsb r0, r0
+/* 802ECE40 002E8AA0 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 802ECE44 002E8AA4 40 82 00 40 */ bne lbl_802ECE84
+/* 802ECE48 002E8AA8 88 04 00 02 */ lbz r0, 2(r4)
+/* 802ECE4C 002E8AAC 7C 00 07 74 */ extsb r0, r0
+/* 802ECE50 002E8AB0 2C 00 00 2F */ cmpwi r0, 0x2f
+/* 802ECE54 002E8AB4 40 82 00 18 */ bne lbl_802ECE6C
+/* 802ECE58 002E8AB8 1C 08 00 0C */ mulli r0, r8, 0xc
+/* 802ECE5C 002E8ABC 38 84 00 03 */ addi r4, r4, 3
+/* 802ECE60 002E8AC0 7C A9 02 14 */ add r5, r9, r0
+/* 802ECE64 002E8AC4 81 05 00 04 */ lwz r8, 4(r5)
+/* 802ECE68 002E8AC8 4B FF FF A0 */ b lbl_802ECE08
+lbl_802ECE6C:
+/* 802ECE6C 002E8ACC 2C 00 00 00 */ cmpwi r0, 0
+/* 802ECE70 002E8AD0 40 82 00 34 */ bne lbl_802ECEA4
+/* 802ECE74 002E8AD4 1C 08 00 0C */ mulli r0, r8, 0xc
+/* 802ECE78 002E8AD8 7C 69 02 14 */ add r3, r9, r0
+/* 802ECE7C 002E8ADC 80 63 00 04 */ lwz r3, 4(r3)
+/* 802ECE80 002E8AE0 48 00 01 BC */ b lbl_802ED03C
+lbl_802ECE84:
+/* 802ECE84 002E8AE4 2C 00 00 2F */ cmpwi r0, 0x2f
+/* 802ECE88 002E8AE8 40 82 00 0C */ bne lbl_802ECE94
+/* 802ECE8C 002E8AEC 38 84 00 02 */ addi r4, r4, 2
+/* 802ECE90 002E8AF0 4B FF FF 78 */ b lbl_802ECE08
+lbl_802ECE94:
+/* 802ECE94 002E8AF4 2C 00 00 00 */ cmpwi r0, 0
+/* 802ECE98 002E8AF8 40 82 00 0C */ bne lbl_802ECEA4
+/* 802ECE9C 002E8AFC 7D 03 43 78 */ mr r3, r8
+/* 802ECEA0 002E8B00 48 00 01 9C */ b lbl_802ED03C
+lbl_802ECEA4:
+/* 802ECEA4 002E8B04 7C 87 23 78 */ mr r7, r4
+/* 802ECEA8 002E8B08 48 00 00 08 */ b lbl_802ECEB0
+lbl_802ECEAC:
+/* 802ECEAC 002E8B0C 38 E7 00 01 */ addi r7, r7, 1
+lbl_802ECEB0:
+/* 802ECEB0 002E8B10 88 A7 00 00 */ lbz r5, 0(r7)
+/* 802ECEB4 002E8B14 7C A0 07 75 */ extsb. r0, r5
+/* 802ECEB8 002E8B18 41 82 00 0C */ beq lbl_802ECEC4
+/* 802ECEBC 002E8B1C 2C 00 00 2F */ cmpwi r0, 0x2f
+/* 802ECEC0 002E8B20 40 82 FF EC */ bne lbl_802ECEAC
+lbl_802ECEC4:
+/* 802ECEC4 002E8B24 1C 08 00 0C */ mulli r0, r8, 0xc
+/* 802ECEC8 002E8B28 7C AB 07 74 */ extsb r11, r5
+/* 802ECECC 002E8B2C 7C E4 38 50 */ subf r7, r4, r7
+/* 802ECED0 002E8B30 7D 4B 00 D0 */ neg r10, r11
+/* 802ECED4 002E8B34 7C A9 02 14 */ add r5, r9, r0
+/* 802ECED8 002E8B38 39 08 00 01 */ addi r8, r8, 1
+/* 802ECEDC 002E8B3C 7D 40 5B 78 */ or r0, r10, r11
+/* 802ECEE0 002E8B40 80 A5 00 08 */ lwz r5, 8(r5)
+/* 802ECEE4 002E8B44 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 802ECEE8 002E8B48 48 00 01 28 */ b lbl_802ED010
+lbl_802ECEEC:
+/* 802ECEEC 002E8B4C 1D 48 00 0C */ mulli r10, r8, 0xc
+/* 802ECEF0 002E8B50 7D 89 52 14 */ add r12, r9, r10
+lbl_802ECEF4:
+/* 802ECEF4 002E8B54 83 EC 00 00 */ lwz r31, 0(r12)
+/* 802ECEF8 002E8B58 57 EA 00 0F */ rlwinm. r10, r31, 0, 0, 7
+/* 802ECEFC 002E8B5C 40 82 00 0C */ bne lbl_802ECF08
+/* 802ECF00 002E8B60 2C 00 00 01 */ cmpwi r0, 1
+/* 802ECF04 002E8B64 41 82 00 EC */ beq lbl_802ECFF0
+lbl_802ECF08:
+/* 802ECF08 002E8B68 81 63 00 10 */ lwz r11, 0x10(r3)
+/* 802ECF0C 002E8B6C 57 EA 02 3E */ clrlwi r10, r31, 8
+/* 802ECF10 002E8B70 7F CB 52 14 */ add r30, r11, r10
+/* 802ECF14 002E8B74 7D 4B 50 AE */ lbzx r10, r11, r10
+/* 802ECF18 002E8B78 2C 0A 00 2E */ cmpwi r10, 0x2e
+/* 802ECF1C 002E8B7C 40 82 00 1C */ bne lbl_802ECF38
+/* 802ECF20 002E8B80 89 5E 00 01 */ lbz r10, 1(r30)
+/* 802ECF24 002E8B84 7D 4A 07 75 */ extsb. r10, r10
+/* 802ECF28 002E8B88 40 82 00 10 */ bne lbl_802ECF38
+/* 802ECF2C 002E8B8C 39 8C 00 0C */ addi r12, r12, 0xc
+/* 802ECF30 002E8B90 39 08 00 01 */ addi r8, r8, 1
+/* 802ECF34 002E8B94 4B FF FF C0 */ b lbl_802ECEF4
+lbl_802ECF38:
+/* 802ECF38 002E8B98 7C 8C 23 78 */ mr r12, r4
+/* 802ECF3C 002E8B9C 48 00 00 7C */ b lbl_802ECFB8
+lbl_802ECF40:
+/* 802ECF40 002E8BA0 89 7E 00 00 */ lbz r11, 0(r30)
+/* 802ECF44 002E8BA4 39 40 00 00 */ li r10, 0
+/* 802ECF48 002E8BA8 3B DE 00 01 */ addi r30, r30, 1
+/* 802ECF4C 002E8BAC 7D 7F 07 75 */ extsb. r31, r11
+/* 802ECF50 002E8BB0 41 80 00 0C */ blt lbl_802ECF5C
+/* 802ECF54 002E8BB4 2C 1F 01 00 */ cmpwi r31, 0x100
+/* 802ECF58 002E8BB8 41 80 00 08 */ blt lbl_802ECF60
+lbl_802ECF5C:
+/* 802ECF5C 002E8BBC 39 40 00 01 */ li r10, 1
+lbl_802ECF60:
+/* 802ECF60 002E8BC0 2C 0A 00 00 */ cmpwi r10, 0
+/* 802ECF64 002E8BC4 41 82 00 08 */ beq lbl_802ECF6C
+/* 802ECF68 002E8BC8 48 00 00 0C */ b lbl_802ECF74
+lbl_802ECF6C:
+/* 802ECF6C 002E8BCC 81 46 00 10 */ lwz r10, 0x10(r6)
+/* 802ECF70 002E8BD0 7F EA F8 AE */ lbzx r31, r10, r31
+lbl_802ECF74:
+/* 802ECF74 002E8BD4 89 6C 00 00 */ lbz r11, 0(r12)
+/* 802ECF78 002E8BD8 39 40 00 00 */ li r10, 0
+/* 802ECF7C 002E8BDC 39 8C 00 01 */ addi r12, r12, 1
+/* 802ECF80 002E8BE0 7D 6B 07 75 */ extsb. r11, r11
+/* 802ECF84 002E8BE4 41 80 00 0C */ blt lbl_802ECF90
+/* 802ECF88 002E8BE8 2C 0B 01 00 */ cmpwi r11, 0x100
+/* 802ECF8C 002E8BEC 41 80 00 08 */ blt lbl_802ECF94
+lbl_802ECF90:
+/* 802ECF90 002E8BF0 39 40 00 01 */ li r10, 1
+lbl_802ECF94:
+/* 802ECF94 002E8BF4 2C 0A 00 00 */ cmpwi r10, 0
+/* 802ECF98 002E8BF8 41 82 00 08 */ beq lbl_802ECFA0
+/* 802ECF9C 002E8BFC 48 00 00 0C */ b lbl_802ECFA8
+lbl_802ECFA0:
+/* 802ECFA0 002E8C00 81 46 00 10 */ lwz r10, 0x10(r6)
+/* 802ECFA4 002E8C04 7D 6A 58 AE */ lbzx r11, r10, r11
+lbl_802ECFA8:
+/* 802ECFA8 002E8C08 7C 0B F8 00 */ cmpw r11, r31
+/* 802ECFAC 002E8C0C 41 82 00 0C */ beq lbl_802ECFB8
+/* 802ECFB0 002E8C10 39 40 00 00 */ li r10, 0
+/* 802ECFB4 002E8C14 48 00 00 34 */ b lbl_802ECFE8
+lbl_802ECFB8:
+/* 802ECFB8 002E8C18 89 5E 00 00 */ lbz r10, 0(r30)
+/* 802ECFBC 002E8C1C 7D 4A 07 75 */ extsb. r10, r10
+/* 802ECFC0 002E8C20 40 82 FF 80 */ bne lbl_802ECF40
+/* 802ECFC4 002E8C24 89 4C 00 00 */ lbz r10, 0(r12)
+/* 802ECFC8 002E8C28 7D 4A 07 74 */ extsb r10, r10
+/* 802ECFCC 002E8C2C 2C 0A 00 2F */ cmpwi r10, 0x2f
+/* 802ECFD0 002E8C30 41 82 00 0C */ beq lbl_802ECFDC
+/* 802ECFD4 002E8C34 2C 0A 00 00 */ cmpwi r10, 0
+/* 802ECFD8 002E8C38 40 82 00 0C */ bne lbl_802ECFE4
+lbl_802ECFDC:
+/* 802ECFDC 002E8C3C 39 40 00 01 */ li r10, 1
+/* 802ECFE0 002E8C40 48 00 00 08 */ b lbl_802ECFE8
+lbl_802ECFE4:
+/* 802ECFE4 002E8C44 39 40 00 00 */ li r10, 0
+lbl_802ECFE8:
+/* 802ECFE8 002E8C48 2C 0A 00 01 */ cmpwi r10, 1
+/* 802ECFEC 002E8C4C 41 82 00 34 */ beq lbl_802ED020
+lbl_802ECFF0:
+/* 802ECFF0 002E8C50 1D 48 00 0C */ mulli r10, r8, 0xc
+/* 802ECFF4 002E8C54 7D 69 52 14 */ add r11, r9, r10
+/* 802ECFF8 002E8C58 7D 49 50 2E */ lwzx r10, r9, r10
+/* 802ECFFC 002E8C5C 55 4A 00 0F */ rlwinm. r10, r10, 0, 0, 7
+/* 802ED000 002E8C60 41 82 00 0C */ beq lbl_802ED00C
+/* 802ED004 002E8C64 81 0B 00 08 */ lwz r8, 8(r11)
+/* 802ED008 002E8C68 48 00 00 08 */ b lbl_802ED010
+lbl_802ED00C:
+/* 802ED00C 002E8C6C 39 08 00 01 */ addi r8, r8, 1
+lbl_802ED010:
+/* 802ED010 002E8C70 7C 08 28 40 */ cmplw r8, r5
+/* 802ED014 002E8C74 41 80 FE D8 */ blt lbl_802ECEEC
+/* 802ED018 002E8C78 38 60 FF FF */ li r3, -1
+/* 802ED01C 002E8C7C 48 00 00 20 */ b lbl_802ED03C
+lbl_802ED020:
+/* 802ED020 002E8C80 2C 00 00 00 */ cmpwi r0, 0
+/* 802ED024 002E8C84 40 82 00 0C */ bne lbl_802ED030
+/* 802ED028 002E8C88 7D 03 43 78 */ mr r3, r8
+/* 802ED02C 002E8C8C 48 00 00 10 */ b lbl_802ED03C
+lbl_802ED030:
+/* 802ED030 002E8C90 7C 87 22 14 */ add r4, r7, r4
+/* 802ED034 002E8C94 38 84 00 01 */ addi r4, r4, 1
+/* 802ED038 002E8C98 4B FF FD D0 */ b lbl_802ECE08
+lbl_802ED03C:
+/* 802ED03C 002E8C9C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802ED040 002E8CA0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802ED044 002E8CA4 38 21 00 10 */ addi r1, r1, 0x10
+/* 802ED048 002E8CA8 4E 80 00 20 */ blr
+
+.global ARCGetStartAddrInMem
+ARCGetStartAddrInMem:
+/* 802ED04C 002E8CAC 80 83 00 00 */ lwz r4, 0(r3)
+/* 802ED050 002E8CB0 80 03 00 04 */ lwz r0, 4(r3)
+/* 802ED054 002E8CB4 80 64 00 00 */ lwz r3, 0(r4)
+/* 802ED058 002E8CB8 7C 63 02 14 */ add r3, r3, r0
+/* 802ED05C 002E8CBC 4E 80 00 20 */ blr
+
+.global ARCGetLength
+ARCGetLength:
+/* 802ED060 002E8CC0 80 63 00 08 */ lwz r3, 8(r3)
+/* 802ED064 002E8CC4 4E 80 00 20 */ blr
+
+.global ARCClose
+ARCClose:
+/* 802ED068 002E8CC8 38 60 00 01 */ li r3, 1
+/* 802ED06C 002E8CCC 4E 80 00 20 */ blr
+
+.global ARCChangeDir
+ARCChangeDir:
+/* 802ED070 002E8CD0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802ED074 002E8CD4 7C 08 02 A6 */ mflr r0
+/* 802ED078 002E8CD8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802ED07C 002E8CDC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802ED080 002E8CE0 7C 7F 1B 78 */ mr r31, r3
+/* 802ED084 002E8CE4 4B FF FD 65 */ bl ARCConvertPathToEntrynum
+/* 802ED088 002E8CE8 2C 03 00 00 */ cmpwi r3, 0
+/* 802ED08C 002E8CEC 80 9F 00 04 */ lwz r4, 4(r31)
+/* 802ED090 002E8CF0 41 80 00 14 */ blt lbl_802ED0A4
+/* 802ED094 002E8CF4 1C 03 00 0C */ mulli r0, r3, 0xc
+/* 802ED098 002E8CF8 7C 04 00 2E */ lwzx r0, r4, r0
+/* 802ED09C 002E8CFC 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
+/* 802ED0A0 002E8D00 40 82 00 0C */ bne lbl_802ED0AC
+lbl_802ED0A4:
+/* 802ED0A4 002E8D04 38 60 00 00 */ li r3, 0
+/* 802ED0A8 002E8D08 48 00 00 0C */ b lbl_802ED0B4
+lbl_802ED0AC:
+/* 802ED0AC 002E8D0C 90 7F 00 18 */ stw r3, 0x18(r31)
+/* 802ED0B0 002E8D10 38 60 00 01 */ li r3, 1
+lbl_802ED0B4:
+/* 802ED0B4 002E8D14 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802ED0B8 002E8D18 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802ED0BC 002E8D1C 7C 08 03 A6 */ mtlr r0
+/* 802ED0C0 002E8D20 38 21 00 10 */ addi r1, r1, 0x10
+/* 802ED0C4 002E8D24 4E 80 00 20 */ blr
+
+.global ARCOpenDir
+ARCOpenDir:
+/* 802ED0C8 002E8D28 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802ED0CC 002E8D2C 7C 08 02 A6 */ mflr r0
+/* 802ED0D0 002E8D30 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802ED0D4 002E8D34 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802ED0D8 002E8D38 7C BF 2B 78 */ mr r31, r5
+/* 802ED0DC 002E8D3C 93 C1 00 08 */ stw r30, 8(r1)
+/* 802ED0E0 002E8D40 7C 7E 1B 78 */ mr r30, r3
+/* 802ED0E4 002E8D44 4B FF FD 05 */ bl ARCConvertPathToEntrynum
+/* 802ED0E8 002E8D48 2C 03 00 00 */ cmpwi r3, 0
+/* 802ED0EC 002E8D4C 80 BE 00 04 */ lwz r5, 4(r30)
+/* 802ED0F0 002E8D50 41 80 00 14 */ blt lbl_802ED104
+/* 802ED0F4 002E8D54 1C 83 00 0C */ mulli r4, r3, 0xc
+/* 802ED0F8 002E8D58 7C 05 20 2E */ lwzx r0, r5, r4
+/* 802ED0FC 002E8D5C 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
+/* 802ED100 002E8D60 40 82 00 0C */ bne lbl_802ED10C
+lbl_802ED104:
+/* 802ED104 002E8D64 38 60 00 00 */ li r3, 0
+/* 802ED108 002E8D68 48 00 00 24 */ b lbl_802ED12C
+lbl_802ED10C:
+/* 802ED10C 002E8D6C 38 03 00 01 */ addi r0, r3, 1
+/* 802ED110 002E8D70 90 7F 00 04 */ stw r3, 4(r31)
+/* 802ED114 002E8D74 7C 85 22 14 */ add r4, r5, r4
+/* 802ED118 002E8D78 38 60 00 01 */ li r3, 1
+/* 802ED11C 002E8D7C 93 DF 00 00 */ stw r30, 0(r31)
+/* 802ED120 002E8D80 90 1F 00 08 */ stw r0, 8(r31)
+/* 802ED124 002E8D84 80 04 00 08 */ lwz r0, 8(r4)
+/* 802ED128 002E8D88 90 1F 00 0C */ stw r0, 0xc(r31)
+lbl_802ED12C:
+/* 802ED12C 002E8D8C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802ED130 002E8D90 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802ED134 002E8D94 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802ED138 002E8D98 7C 08 03 A6 */ mtlr r0
+/* 802ED13C 002E8D9C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802ED140 002E8DA0 4E 80 00 20 */ blr
+
+.global ARCReadDir
+ARCReadDir:
+/* 802ED144 002E8DA4 80 E3 00 08 */ lwz r7, 8(r3)
+/* 802ED148 002E8DA8 81 23 00 00 */ lwz r9, 0(r3)
+/* 802ED14C 002E8DAC 1C 07 00 0C */ mulli r0, r7, 0xc
+/* 802ED150 002E8DB0 81 09 00 04 */ lwz r8, 4(r9)
+/* 802ED154 002E8DB4 7C C8 02 14 */ add r6, r8, r0
+lbl_802ED158:
+/* 802ED158 002E8DB8 80 03 00 04 */ lwz r0, 4(r3)
+/* 802ED15C 002E8DBC 7C 07 00 40 */ cmplw r7, r0
+/* 802ED160 002E8DC0 40 81 00 10 */ ble lbl_802ED170
+/* 802ED164 002E8DC4 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 802ED168 002E8DC8 7C 00 38 40 */ cmplw r0, r7
+/* 802ED16C 002E8DCC 41 81 00 0C */ bgt lbl_802ED178
+lbl_802ED170:
+/* 802ED170 002E8DD0 38 60 00 00 */ li r3, 0
+/* 802ED174 002E8DD4 4E 80 00 20 */ blr
+lbl_802ED178:
+/* 802ED178 002E8DD8 91 24 00 00 */ stw r9, 0(r4)
+/* 802ED17C 002E8DDC 90 E4 00 04 */ stw r7, 4(r4)
+/* 802ED180 002E8DE0 80 06 00 00 */ lwz r0, 0(r6)
+/* 802ED184 002E8DE4 54 05 00 0E */ rlwinm r5, r0, 0, 0, 7
+/* 802ED188 002E8DE8 7C 05 00 D0 */ neg r0, r5
+/* 802ED18C 002E8DEC 7C 00 2B 78 */ or r0, r0, r5
+/* 802ED190 002E8DF0 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 802ED194 002E8DF4 90 04 00 08 */ stw r0, 8(r4)
+/* 802ED198 002E8DF8 80 06 00 00 */ lwz r0, 0(r6)
+/* 802ED19C 002E8DFC 80 A9 00 10 */ lwz r5, 0x10(r9)
+/* 802ED1A0 002E8E00 54 00 02 3E */ clrlwi r0, r0, 8
+/* 802ED1A4 002E8E04 7C A5 02 14 */ add r5, r5, r0
+/* 802ED1A8 002E8E08 90 A4 00 0C */ stw r5, 0xc(r4)
+/* 802ED1AC 002E8E0C 88 05 00 00 */ lbz r0, 0(r5)
+/* 802ED1B0 002E8E10 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 802ED1B4 002E8E14 40 82 00 1C */ bne lbl_802ED1D0
+/* 802ED1B8 002E8E18 88 05 00 01 */ lbz r0, 1(r5)
+/* 802ED1BC 002E8E1C 7C 00 07 75 */ extsb. r0, r0
+/* 802ED1C0 002E8E20 40 82 00 10 */ bne lbl_802ED1D0
+/* 802ED1C4 002E8E24 38 C6 00 0C */ addi r6, r6, 0xc
+/* 802ED1C8 002E8E28 38 E7 00 01 */ addi r7, r7, 1
+/* 802ED1CC 002E8E2C 4B FF FF 8C */ b lbl_802ED158
+lbl_802ED1D0:
+/* 802ED1D0 002E8E30 1C 87 00 0C */ mulli r4, r7, 0xc
+/* 802ED1D4 002E8E34 7C 08 20 2E */ lwzx r0, r8, r4
+/* 802ED1D8 002E8E38 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
+/* 802ED1DC 002E8E3C 41 82 00 10 */ beq lbl_802ED1EC
+/* 802ED1E0 002E8E40 7C 88 22 14 */ add r4, r8, r4
+/* 802ED1E4 002E8E44 80 04 00 08 */ lwz r0, 8(r4)
+/* 802ED1E8 002E8E48 48 00 00 08 */ b lbl_802ED1F0
+lbl_802ED1EC:
+/* 802ED1EC 002E8E4C 38 07 00 01 */ addi r0, r7, 1
+lbl_802ED1F0:
+/* 802ED1F0 002E8E50 90 03 00 08 */ stw r0, 8(r3)
+/* 802ED1F4 002E8E54 38 60 00 01 */ li r3, 1
+/* 802ED1F8 002E8E58 4E 80 00 20 */ blr
+
+.global ARCCloseDir
+ARCCloseDir:
+/* 802ED1FC 002E8E5C 38 60 00 01 */ li r3, 1
+/* 802ED200 002E8E60 4E 80 00 20 */ blr