.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