pikmin2/asm/Dolphin/dvdfs.s
EpochFlame 75c3292df0 reduce label emissions
linkmap goes faster now
2022-11-03 17:02:42 -04:00

966 lines
42 KiB
ArmAsm

.include "macros.inc"
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.balign 8
lbl_804A7AF8:
.asciz "DVDConvertEntrynumToPath(possibly DVDOpen or DVDChangeDir or DVDOpenDir): specified directory or file (%s) doesn't match standard 8.3 format. This is a temporary restriction and will be removed soon\n"
.balign 4
lbl_804A7BC0:
.asciz "Warning: DVDOpen(): file '%s' was not found under %s.\n"
.balign 4
lbl_804A7BF8:
.asciz "DVDReadAsync(): specified area is out of the file "
.balign 4
lbl_804A7C2C:
.asciz "DVDRead(): specified area is out of the file "
.balign 4
lbl_804A7C5C:
.asciz "Warning: DVDOpenDir(): file '%s' was not found under %s.\n"
.section .sdata, "wa" # 0x80514680 - 0x80514D80
.balign 8
lbl_80514930:
.asciz "dvdfs.c"
.section .sbss # 0x80514D80 - 0x80516360
.balign 8
BootInfo: # local object
.skip 0x4
FstStart: # local object
.skip 0x4
FstStringStart: # local object
.skip 0x4
MaxEntryNum: # local object
.skip 0x4
currentDirectory: # local object
.skip 0x4
.global __DVDLongFileNameFlag
__DVDLongFileNameFlag:
.skip 0x4
.global __DVDThreadQueue
__DVDThreadQueue:
.skip 0x8
.section .text, "ax" # 0x800056C0 - 0x80472F00
.global __DVDFSInit
__DVDFSInit:
/* 800DC12C 000D906C 3C 60 80 00 */ lis r3, 0x80000038@ha
/* 800DC130 000D9070 90 6D 8E 10 */ stw r3, BootInfo@sda21(r13)
/* 800DC134 000D9074 80 03 00 38 */ lwz r0, 0x80000038@l(r3)
/* 800DC138 000D9078 90 0D 8E 14 */ stw r0, FstStart@sda21(r13)
/* 800DC13C 000D907C 80 6D 8E 14 */ lwz r3, FstStart@sda21(r13)
/* 800DC140 000D9080 28 03 00 00 */ cmplwi r3, 0
/* 800DC144 000D9084 4D 82 00 20 */ beqlr
/* 800DC148 000D9088 80 03 00 08 */ lwz r0, 8(r3)
/* 800DC14C 000D908C 90 0D 8E 1C */ stw r0, MaxEntryNum@sda21(r13)
/* 800DC150 000D9090 80 0D 8E 1C */ lwz r0, MaxEntryNum@sda21(r13)
/* 800DC154 000D9094 1C 00 00 0C */ mulli r0, r0, 0xc
/* 800DC158 000D9098 7C 03 02 14 */ add r0, r3, r0
/* 800DC15C 000D909C 90 0D 8E 18 */ stw r0, FstStringStart@sda21(r13)
/* 800DC160 000D90A0 4E 80 00 20 */ blr
.global DVDConvertPathToEntrynum
DVDConvertPathToEntrynum:
/* 800DC164 000D90A4 7C 08 02 A6 */ mflr r0
/* 800DC168 000D90A8 90 01 00 04 */ stw r0, 4(r1)
/* 800DC16C 000D90AC 94 21 FF B8 */ stwu r1, -0x48(r1)
/* 800DC170 000D90B0 BE 81 00 18 */ stmw r20, 0x18(r1)
/* 800DC174 000D90B4 7C 77 1B 78 */ mr r23, r3
/* 800DC178 000D90B8 3C 60 80 4A */ lis r3, lbl_804A7AF8@ha
/* 800DC17C 000D90BC 3B 37 00 00 */ addi r25, r23, 0
/* 800DC180 000D90C0 3B E3 7A F8 */ addi r31, r3, lbl_804A7AF8@l
/* 800DC184 000D90C4 83 4D 8E 20 */ lwz r26, currentDirectory@sda21(r13)
.L_800DC188:
/* 800DC188 000D90C8 88 77 00 00 */ lbz r3, 0(r23)
/* 800DC18C 000D90CC 7C 60 07 75 */ extsb. r0, r3
/* 800DC190 000D90D0 40 82 00 0C */ bne .L_800DC19C
/* 800DC194 000D90D4 7F 43 D3 78 */ mr r3, r26
/* 800DC198 000D90D8 48 00 02 AC */ b .L_800DC444
.L_800DC19C:
/* 800DC19C 000D90DC 7C 60 07 74 */ extsb r0, r3
/* 800DC1A0 000D90E0 2C 00 00 2F */ cmpwi r0, 0x2f
/* 800DC1A4 000D90E4 40 82 00 10 */ bne .L_800DC1B4
/* 800DC1A8 000D90E8 3B 40 00 00 */ li r26, 0
/* 800DC1AC 000D90EC 3A F7 00 01 */ addi r23, r23, 1
/* 800DC1B0 000D90F0 4B FF FF D8 */ b .L_800DC188
.L_800DC1B4:
/* 800DC1B4 000D90F4 2C 00 00 2E */ cmpwi r0, 0x2e
/* 800DC1B8 000D90F8 40 82 00 74 */ bne .L_800DC22C
/* 800DC1BC 000D90FC 88 77 00 01 */ lbz r3, 1(r23)
/* 800DC1C0 000D9100 7C 60 07 74 */ extsb r0, r3
/* 800DC1C4 000D9104 2C 00 00 2E */ cmpwi r0, 0x2e
/* 800DC1C8 000D9108 40 82 00 44 */ bne .L_800DC20C
/* 800DC1CC 000D910C 88 77 00 02 */ lbz r3, 2(r23)
/* 800DC1D0 000D9110 2C 03 00 2F */ cmpwi r3, 0x2f
/* 800DC1D4 000D9114 40 82 00 1C */ bne .L_800DC1F0
/* 800DC1D8 000D9118 1C 7A 00 0C */ mulli r3, r26, 0xc
/* 800DC1DC 000D911C 80 8D 8E 14 */ lwz r4, FstStart@sda21(r13)
/* 800DC1E0 000D9120 38 03 00 04 */ addi r0, r3, 4
/* 800DC1E4 000D9124 7F 44 00 2E */ lwzx r26, r4, r0
/* 800DC1E8 000D9128 3A F7 00 03 */ addi r23, r23, 3
/* 800DC1EC 000D912C 4B FF FF 9C */ b .L_800DC188
.L_800DC1F0:
/* 800DC1F0 000D9130 7C 60 07 75 */ extsb. r0, r3
/* 800DC1F4 000D9134 40 82 00 38 */ bne .L_800DC22C
/* 800DC1F8 000D9138 1C 1A 00 0C */ mulli r0, r26, 0xc
/* 800DC1FC 000D913C 80 6D 8E 14 */ lwz r3, FstStart@sda21(r13)
/* 800DC200 000D9140 7C 63 02 14 */ add r3, r3, r0
/* 800DC204 000D9144 80 63 00 04 */ lwz r3, 4(r3)
/* 800DC208 000D9148 48 00 02 3C */ b .L_800DC444
.L_800DC20C:
/* 800DC20C 000D914C 2C 00 00 2F */ cmpwi r0, 0x2f
/* 800DC210 000D9150 40 82 00 0C */ bne .L_800DC21C
/* 800DC214 000D9154 3A F7 00 02 */ addi r23, r23, 2
/* 800DC218 000D9158 4B FF FF 70 */ b .L_800DC188
.L_800DC21C:
/* 800DC21C 000D915C 7C 60 07 75 */ extsb. r0, r3
/* 800DC220 000D9160 40 82 00 0C */ bne .L_800DC22C
/* 800DC224 000D9164 7F 43 D3 78 */ mr r3, r26
/* 800DC228 000D9168 48 00 02 1C */ b .L_800DC444
.L_800DC22C:
/* 800DC22C 000D916C 80 0D 8E 24 */ lwz r0, __DVDLongFileNameFlag@sda21(r13)
/* 800DC230 000D9170 28 00 00 00 */ cmplwi r0, 0
/* 800DC234 000D9174 40 82 00 AC */ bne .L_800DC2E0
/* 800DC238 000D9178 3B 97 00 00 */ addi r28, r23, 0
/* 800DC23C 000D917C 38 A0 00 00 */ li r5, 0
/* 800DC240 000D9180 38 80 00 00 */ li r4, 0
/* 800DC244 000D9184 48 00 00 48 */ b .L_800DC28C
.L_800DC248:
/* 800DC248 000D9188 7C 60 07 74 */ extsb r0, r3
/* 800DC24C 000D918C 2C 00 00 2E */ cmpwi r0, 0x2e
/* 800DC250 000D9190 40 82 00 2C */ bne .L_800DC27C
/* 800DC254 000D9194 7C 17 E0 50 */ subf r0, r23, r28
/* 800DC258 000D9198 2C 00 00 08 */ cmpwi r0, 8
/* 800DC25C 000D919C 41 81 00 0C */ bgt .L_800DC268
/* 800DC260 000D91A0 2C 05 00 01 */ cmpwi r5, 1
/* 800DC264 000D91A4 40 82 00 0C */ bne .L_800DC270
.L_800DC268:
/* 800DC268 000D91A8 38 80 00 01 */ li r4, 1
/* 800DC26C 000D91AC 48 00 00 38 */ b .L_800DC2A4
.L_800DC270:
/* 800DC270 000D91B0 3B 1C 00 01 */ addi r24, r28, 1
/* 800DC274 000D91B4 38 A0 00 01 */ li r5, 1
/* 800DC278 000D91B8 48 00 00 10 */ b .L_800DC288
.L_800DC27C:
/* 800DC27C 000D91BC 2C 00 00 20 */ cmpwi r0, 0x20
/* 800DC280 000D91C0 40 82 00 08 */ bne .L_800DC288
/* 800DC284 000D91C4 38 80 00 01 */ li r4, 1
.L_800DC288:
/* 800DC288 000D91C8 3B 9C 00 01 */ addi r28, r28, 1
.L_800DC28C:
/* 800DC28C 000D91CC 88 7C 00 00 */ lbz r3, 0(r28)
/* 800DC290 000D91D0 7C 60 07 75 */ extsb. r0, r3
/* 800DC294 000D91D4 41 82 00 10 */ beq .L_800DC2A4
/* 800DC298 000D91D8 7C 60 07 74 */ extsb r0, r3
/* 800DC29C 000D91DC 2C 00 00 2F */ cmpwi r0, 0x2f
/* 800DC2A0 000D91E0 40 82 FF A8 */ bne .L_800DC248
.L_800DC2A4:
/* 800DC2A4 000D91E4 2C 05 00 01 */ cmpwi r5, 1
/* 800DC2A8 000D91E8 40 82 00 14 */ bne .L_800DC2BC
/* 800DC2AC 000D91EC 7C 18 E0 50 */ subf r0, r24, r28
/* 800DC2B0 000D91F0 2C 00 00 03 */ cmpwi r0, 3
/* 800DC2B4 000D91F4 40 81 00 08 */ ble .L_800DC2BC
/* 800DC2B8 000D91F8 38 80 00 01 */ li r4, 1
.L_800DC2BC:
/* 800DC2BC 000D91FC 2C 04 00 00 */ cmpwi r4, 0
/* 800DC2C0 000D9200 41 82 00 44 */ beq .L_800DC304
/* 800DC2C4 000D9204 38 BF 00 00 */ addi r5, r31, 0
/* 800DC2C8 000D9208 4C C6 31 82 */ crclr 6
/* 800DC2CC 000D920C 38 D9 00 00 */ addi r6, r25, 0
/* 800DC2D0 000D9210 38 6D 82 B0 */ addi r3, r13, lbl_80514930@sda21
/* 800DC2D4 000D9214 38 80 01 83 */ li r4, 0x183
/* 800DC2D8 000D9218 48 01 14 95 */ bl OSPanic
/* 800DC2DC 000D921C 48 00 00 28 */ b .L_800DC304
.L_800DC2E0:
/* 800DC2E0 000D9220 7E FC BB 78 */ mr r28, r23
/* 800DC2E4 000D9224 48 00 00 08 */ b .L_800DC2EC
.L_800DC2E8:
/* 800DC2E8 000D9228 3B 9C 00 01 */ addi r28, r28, 1
.L_800DC2EC:
/* 800DC2EC 000D922C 88 7C 00 00 */ lbz r3, 0(r28)
/* 800DC2F0 000D9230 7C 60 07 75 */ extsb. r0, r3
/* 800DC2F4 000D9234 41 82 00 10 */ beq .L_800DC304
/* 800DC2F8 000D9238 7C 60 07 74 */ extsb r0, r3
/* 800DC2FC 000D923C 2C 00 00 2F */ cmpwi r0, 0x2f
/* 800DC300 000D9240 40 82 FF E8 */ bne .L_800DC2E8
.L_800DC304:
/* 800DC304 000D9244 88 1C 00 00 */ lbz r0, 0(r28)
/* 800DC308 000D9248 7C 00 07 75 */ extsb. r0, r0
/* 800DC30C 000D924C 40 82 00 0C */ bne .L_800DC318
/* 800DC310 000D9250 3B C0 00 00 */ li r30, 0
/* 800DC314 000D9254 48 00 00 08 */ b .L_800DC31C
.L_800DC318:
/* 800DC318 000D9258 3B C0 00 01 */ li r30, 1
.L_800DC31C:
/* 800DC31C 000D925C 1F BA 00 0C */ mulli r29, r26, 0xc
/* 800DC320 000D9260 7F 77 E0 50 */ subf r27, r23, r28
/* 800DC324 000D9264 3B 5A 00 01 */ addi r26, r26, 1
/* 800DC328 000D9268 48 00 00 E4 */ b .L_800DC40C
.L_800DC32C:
/* 800DC32C 000D926C 1F 9A 00 0C */ mulli r28, r26, 0xc
/* 800DC330 000D9270 7C 83 E0 2E */ lwzx r4, r3, r28
/* 800DC334 000D9274 54 80 00 0F */ rlwinm. r0, r4, 0, 0, 7
/* 800DC338 000D9278 40 82 00 0C */ bne .L_800DC344
/* 800DC33C 000D927C 38 00 00 00 */ li r0, 0
/* 800DC340 000D9280 48 00 00 08 */ b .L_800DC348
.L_800DC344:
/* 800DC344 000D9284 38 00 00 01 */ li r0, 1
.L_800DC348:
/* 800DC348 000D9288 2C 00 00 00 */ cmpwi r0, 0
/* 800DC34C 000D928C 40 82 00 0C */ bne .L_800DC358
/* 800DC350 000D9290 2C 1E 00 01 */ cmpwi r30, 1
/* 800DC354 000D9294 41 82 00 80 */ beq .L_800DC3D4
.L_800DC358:
/* 800DC358 000D9298 80 6D 8E 18 */ lwz r3, FstStringStart@sda21(r13)
/* 800DC35C 000D929C 54 80 02 3E */ clrlwi r0, r4, 8
/* 800DC360 000D92A0 3A B7 00 00 */ addi r21, r23, 0
/* 800DC364 000D92A4 7E 83 02 14 */ add r20, r3, r0
/* 800DC368 000D92A8 48 00 00 38 */ b .L_800DC3A0
.L_800DC36C:
/* 800DC36C 000D92AC 88 14 00 00 */ lbz r0, 0(r20)
/* 800DC370 000D92B0 3A 94 00 01 */ addi r20, r20, 1
/* 800DC374 000D92B4 7C 03 07 74 */ extsb r3, r0
/* 800DC378 000D92B8 4B FE 9E ED */ bl tolower
/* 800DC37C 000D92BC 88 15 00 00 */ lbz r0, 0(r21)
/* 800DC380 000D92C0 3A C3 00 00 */ addi r22, r3, 0
/* 800DC384 000D92C4 3A B5 00 01 */ addi r21, r21, 1
/* 800DC388 000D92C8 7C 03 07 74 */ extsb r3, r0
/* 800DC38C 000D92CC 4B FE 9E D9 */ bl tolower
/* 800DC390 000D92D0 7C 03 B0 00 */ cmpw r3, r22
/* 800DC394 000D92D4 41 82 00 0C */ beq .L_800DC3A0
/* 800DC398 000D92D8 38 00 00 00 */ li r0, 0
/* 800DC39C 000D92DC 48 00 00 30 */ b .L_800DC3CC
.L_800DC3A0:
/* 800DC3A0 000D92E0 88 14 00 00 */ lbz r0, 0(r20)
/* 800DC3A4 000D92E4 7C 00 07 75 */ extsb. r0, r0
/* 800DC3A8 000D92E8 40 82 FF C4 */ bne .L_800DC36C
/* 800DC3AC 000D92EC 88 75 00 00 */ lbz r3, 0(r21)
/* 800DC3B0 000D92F0 2C 03 00 2F */ cmpwi r3, 0x2f
/* 800DC3B4 000D92F4 41 82 00 0C */ beq .L_800DC3C0
/* 800DC3B8 000D92F8 7C 60 07 75 */ extsb. r0, r3
/* 800DC3BC 000D92FC 40 82 00 0C */ bne .L_800DC3C8
.L_800DC3C0:
/* 800DC3C0 000D9300 38 00 00 01 */ li r0, 1
/* 800DC3C4 000D9304 48 00 00 08 */ b .L_800DC3CC
.L_800DC3C8:
/* 800DC3C8 000D9308 38 00 00 00 */ li r0, 0
.L_800DC3CC:
/* 800DC3CC 000D930C 2C 00 00 01 */ cmpwi r0, 1
/* 800DC3D0 000D9310 41 82 00 58 */ beq .L_800DC428
.L_800DC3D4:
/* 800DC3D4 000D9314 80 0D 8E 14 */ lwz r0, FstStart@sda21(r13)
/* 800DC3D8 000D9318 7C 60 E2 14 */ add r3, r0, r28
/* 800DC3DC 000D931C 80 03 00 00 */ lwz r0, 0(r3)
/* 800DC3E0 000D9320 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 800DC3E4 000D9324 40 82 00 0C */ bne .L_800DC3F0
/* 800DC3E8 000D9328 38 00 00 00 */ li r0, 0
/* 800DC3EC 000D932C 48 00 00 08 */ b .L_800DC3F4
.L_800DC3F0:
/* 800DC3F0 000D9330 38 00 00 01 */ li r0, 1
.L_800DC3F4:
/* 800DC3F4 000D9334 2C 00 00 00 */ cmpwi r0, 0
/* 800DC3F8 000D9338 41 82 00 0C */ beq .L_800DC404
/* 800DC3FC 000D933C 80 03 00 08 */ lwz r0, 8(r3)
/* 800DC400 000D9340 48 00 00 08 */ b .L_800DC408
.L_800DC404:
/* 800DC404 000D9344 38 1A 00 01 */ addi r0, r26, 1
.L_800DC408:
/* 800DC408 000D9348 7C 1A 03 78 */ mr r26, r0
.L_800DC40C:
/* 800DC40C 000D934C 80 6D 8E 14 */ lwz r3, FstStart@sda21(r13)
/* 800DC410 000D9350 38 03 00 08 */ addi r0, r3, 8
/* 800DC414 000D9354 7C 1D 00 2E */ lwzx r0, r29, r0
/* 800DC418 000D9358 7C 1A 00 40 */ cmplw r26, r0
/* 800DC41C 000D935C 41 80 FF 10 */ blt .L_800DC32C
/* 800DC420 000D9360 38 60 FF FF */ li r3, -1
/* 800DC424 000D9364 48 00 00 20 */ b .L_800DC444
.L_800DC428:
/* 800DC428 000D9368 2C 1E 00 00 */ cmpwi r30, 0
/* 800DC42C 000D936C 40 82 00 0C */ bne .L_800DC438
/* 800DC430 000D9370 7F 43 D3 78 */ mr r3, r26
/* 800DC434 000D9374 48 00 00 10 */ b .L_800DC444
.L_800DC438:
/* 800DC438 000D9378 7E FB BA 14 */ add r23, r27, r23
/* 800DC43C 000D937C 3A F7 00 01 */ addi r23, r23, 1
/* 800DC440 000D9380 4B FF FD 48 */ b .L_800DC188
.L_800DC444:
/* 800DC444 000D9384 BA 81 00 18 */ lmw r20, 0x18(r1)
/* 800DC448 000D9388 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 800DC44C 000D938C 38 21 00 48 */ addi r1, r1, 0x48
/* 800DC450 000D9390 7C 08 03 A6 */ mtlr r0
/* 800DC454 000D9394 4E 80 00 20 */ blr
.global DVDFastOpen
DVDFastOpen:
/* 800DC458 000D9398 2C 03 00 00 */ cmpwi r3, 0
/* 800DC45C 000D939C 41 80 00 38 */ blt .L_800DC494
/* 800DC460 000D93A0 80 0D 8E 1C */ lwz r0, MaxEntryNum@sda21(r13)
/* 800DC464 000D93A4 7C 03 00 40 */ cmplw r3, r0
/* 800DC468 000D93A8 40 80 00 2C */ bge .L_800DC494
/* 800DC46C 000D93AC 1C C3 00 0C */ mulli r6, r3, 0xc
/* 800DC470 000D93B0 80 6D 8E 14 */ lwz r3, FstStart@sda21(r13)
/* 800DC474 000D93B4 7C 03 30 2E */ lwzx r0, r3, r6
/* 800DC478 000D93B8 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 800DC47C 000D93BC 40 82 00 0C */ bne .L_800DC488
/* 800DC480 000D93C0 38 00 00 00 */ li r0, 0
/* 800DC484 000D93C4 48 00 00 08 */ b .L_800DC48C
.L_800DC488:
/* 800DC488 000D93C8 38 00 00 01 */ li r0, 1
.L_800DC48C:
/* 800DC48C 000D93CC 2C 00 00 00 */ cmpwi r0, 0
/* 800DC490 000D93D0 41 82 00 0C */ beq .L_800DC49C
.L_800DC494:
/* 800DC494 000D93D4 38 60 00 00 */ li r3, 0
/* 800DC498 000D93D8 4E 80 00 20 */ blr
.L_800DC49C:
/* 800DC49C 000D93DC 7C 63 32 14 */ add r3, r3, r6
/* 800DC4A0 000D93E0 80 A3 00 04 */ lwz r5, 4(r3)
/* 800DC4A4 000D93E4 38 00 00 00 */ li r0, 0
/* 800DC4A8 000D93E8 38 60 00 01 */ li r3, 1
/* 800DC4AC 000D93EC 90 A4 00 30 */ stw r5, 0x30(r4)
/* 800DC4B0 000D93F0 80 AD 8E 14 */ lwz r5, FstStart@sda21(r13)
/* 800DC4B4 000D93F4 7C A5 32 14 */ add r5, r5, r6
/* 800DC4B8 000D93F8 80 A5 00 08 */ lwz r5, 8(r5)
/* 800DC4BC 000D93FC 90 A4 00 34 */ stw r5, 0x34(r4)
/* 800DC4C0 000D9400 90 04 00 38 */ stw r0, 0x38(r4)
/* 800DC4C4 000D9404 90 04 00 0C */ stw r0, 0xc(r4)
/* 800DC4C8 000D9408 4E 80 00 20 */ blr
.global DVDOpen
DVDOpen:
/* 800DC4CC 000D940C 7C 08 02 A6 */ mflr r0
/* 800DC4D0 000D9410 90 01 00 04 */ stw r0, 4(r1)
/* 800DC4D4 000D9414 94 21 FF 68 */ stwu r1, -0x98(r1)
/* 800DC4D8 000D9418 93 E1 00 94 */ stw r31, 0x94(r1)
/* 800DC4DC 000D941C 3B E4 00 00 */ addi r31, r4, 0
/* 800DC4E0 000D9420 93 C1 00 90 */ stw r30, 0x90(r1)
/* 800DC4E4 000D9424 3B C3 00 00 */ addi r30, r3, 0
/* 800DC4E8 000D9428 4B FF FC 7D */ bl DVDConvertPathToEntrynum
/* 800DC4EC 000D942C 2C 03 00 00 */ cmpwi r3, 0
/* 800DC4F0 000D9430 40 80 00 30 */ bge .L_800DC520
/* 800DC4F4 000D9434 38 61 00 10 */ addi r3, r1, 0x10
/* 800DC4F8 000D9438 38 80 00 80 */ li r4, 0x80
/* 800DC4FC 000D943C 48 00 03 71 */ bl DVDGetCurrentDir
/* 800DC500 000D9440 3C 60 80 4A */ lis r3, lbl_804A7BC0@ha
/* 800DC504 000D9444 4C C6 31 82 */ crclr 6
/* 800DC508 000D9448 38 63 7B C0 */ addi r3, r3, lbl_804A7BC0@l
/* 800DC50C 000D944C 38 9E 00 00 */ addi r4, r30, 0
/* 800DC510 000D9450 38 A1 00 10 */ addi r5, r1, 0x10
/* 800DC514 000D9454 48 01 11 D9 */ bl OSReport
/* 800DC518 000D9458 38 60 00 00 */ li r3, 0
/* 800DC51C 000D945C 48 00 00 60 */ b .L_800DC57C
.L_800DC520:
/* 800DC520 000D9460 1C A3 00 0C */ mulli r5, r3, 0xc
/* 800DC524 000D9464 80 6D 8E 14 */ lwz r3, FstStart@sda21(r13)
/* 800DC528 000D9468 7C 03 28 2E */ lwzx r0, r3, r5
/* 800DC52C 000D946C 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 800DC530 000D9470 40 82 00 0C */ bne .L_800DC53C
/* 800DC534 000D9474 38 00 00 00 */ li r0, 0
/* 800DC538 000D9478 48 00 00 08 */ b .L_800DC540
.L_800DC53C:
/* 800DC53C 000D947C 38 00 00 01 */ li r0, 1
.L_800DC540:
/* 800DC540 000D9480 2C 00 00 00 */ cmpwi r0, 0
/* 800DC544 000D9484 41 82 00 0C */ beq .L_800DC550
/* 800DC548 000D9488 38 60 00 00 */ li r3, 0
/* 800DC54C 000D948C 48 00 00 30 */ b .L_800DC57C
.L_800DC550:
/* 800DC550 000D9490 7C 63 2A 14 */ add r3, r3, r5
/* 800DC554 000D9494 80 83 00 04 */ lwz r4, 4(r3)
/* 800DC558 000D9498 38 00 00 00 */ li r0, 0
/* 800DC55C 000D949C 38 60 00 01 */ li r3, 1
/* 800DC560 000D94A0 90 9F 00 30 */ stw r4, 0x30(r31)
/* 800DC564 000D94A4 80 8D 8E 14 */ lwz r4, FstStart@sda21(r13)
/* 800DC568 000D94A8 7C 84 2A 14 */ add r4, r4, r5
/* 800DC56C 000D94AC 80 84 00 08 */ lwz r4, 8(r4)
/* 800DC570 000D94B0 90 9F 00 34 */ stw r4, 0x34(r31)
/* 800DC574 000D94B4 90 1F 00 38 */ stw r0, 0x38(r31)
/* 800DC578 000D94B8 90 1F 00 0C */ stw r0, 0xc(r31)
.L_800DC57C:
/* 800DC57C 000D94BC 80 01 00 9C */ lwz r0, 0x9c(r1)
/* 800DC580 000D94C0 83 E1 00 94 */ lwz r31, 0x94(r1)
/* 800DC584 000D94C4 83 C1 00 90 */ lwz r30, 0x90(r1)
/* 800DC588 000D94C8 38 21 00 98 */ addi r1, r1, 0x98
/* 800DC58C 000D94CC 7C 08 03 A6 */ mtlr r0
/* 800DC590 000D94D0 4E 80 00 20 */ blr
.global DVDClose
DVDClose:
/* 800DC594 000D94D4 7C 08 02 A6 */ mflr r0
/* 800DC598 000D94D8 90 01 00 04 */ stw r0, 4(r1)
/* 800DC59C 000D94DC 94 21 FF F8 */ stwu r1, -8(r1)
/* 800DC5A0 000D94E0 48 00 2B 99 */ bl DVDCancel
/* 800DC5A4 000D94E4 38 60 00 01 */ li r3, 1
/* 800DC5A8 000D94E8 80 01 00 0C */ lwz r0, 0xc(r1)
/* 800DC5AC 000D94EC 38 21 00 08 */ addi r1, r1, 8
/* 800DC5B0 000D94F0 7C 08 03 A6 */ mtlr r0
/* 800DC5B4 000D94F4 4E 80 00 20 */ blr
entryToPath: # local func
/* 800DC5B8 000D94F8 7C 08 02 A6 */ mflr r0
/* 800DC5BC 000D94FC 28 03 00 00 */ cmplwi r3, 0
/* 800DC5C0 000D9500 90 01 00 04 */ stw r0, 4(r1)
/* 800DC5C4 000D9504 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 800DC5C8 000D9508 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 800DC5CC 000D950C 93 C1 00 28 */ stw r30, 0x28(r1)
/* 800DC5D0 000D9510 3B C5 00 00 */ addi r30, r5, 0
/* 800DC5D4 000D9514 93 A1 00 24 */ stw r29, 0x24(r1)
/* 800DC5D8 000D9518 3B A4 00 00 */ addi r29, r4, 0
/* 800DC5DC 000D951C 93 81 00 20 */ stw r28, 0x20(r1)
/* 800DC5E0 000D9520 40 82 00 0C */ bne .L_800DC5EC
/* 800DC5E4 000D9524 38 60 00 00 */ li r3, 0
/* 800DC5E8 000D9528 48 00 01 10 */ b .L_800DC6F8
.L_800DC5EC:
/* 800DC5EC 000D952C 80 8D 8E 14 */ lwz r4, FstStart@sda21(r13)
/* 800DC5F0 000D9530 1C 63 00 0C */ mulli r3, r3, 0xc
/* 800DC5F4 000D9534 80 CD 8E 18 */ lwz r6, FstStringStart@sda21(r13)
/* 800DC5F8 000D9538 38 A4 00 04 */ addi r5, r4, 4
/* 800DC5FC 000D953C 7C 04 18 2E */ lwzx r0, r4, r3
/* 800DC600 000D9540 7C 65 18 2E */ lwzx r3, r5, r3
/* 800DC604 000D9544 54 00 02 3E */ clrlwi r0, r0, 8
/* 800DC608 000D9548 28 03 00 00 */ cmplwi r3, 0
/* 800DC60C 000D954C 7F E6 02 14 */ add r31, r6, r0
/* 800DC610 000D9550 40 82 00 0C */ bne .L_800DC61C
/* 800DC614 000D9554 38 60 00 00 */ li r3, 0
/* 800DC618 000D9558 48 00 00 80 */ b .L_800DC698
.L_800DC61C:
/* 800DC61C 000D955C 1C 63 00 0C */ mulli r3, r3, 0xc
/* 800DC620 000D9560 7C 04 18 2E */ lwzx r0, r4, r3
/* 800DC624 000D9564 7F A4 EB 78 */ mr r4, r29
/* 800DC628 000D9568 7C 65 18 2E */ lwzx r3, r5, r3
/* 800DC62C 000D956C 38 BE 00 00 */ addi r5, r30, 0
/* 800DC630 000D9570 54 00 02 3E */ clrlwi r0, r0, 8
/* 800DC634 000D9574 7F 86 02 14 */ add r28, r6, r0
/* 800DC638 000D9578 4B FF FF 81 */ bl entryToPath
/* 800DC63C 000D957C 7C 03 F0 40 */ cmplw r3, r30
/* 800DC640 000D9580 40 82 00 08 */ bne .L_800DC648
/* 800DC644 000D9584 48 00 00 54 */ b .L_800DC698
.L_800DC648:
/* 800DC648 000D9588 38 03 00 00 */ addi r0, r3, 0
/* 800DC64C 000D958C 38 63 00 01 */ addi r3, r3, 1
/* 800DC650 000D9590 38 80 00 2F */ li r4, 0x2f
/* 800DC654 000D9594 7C C3 F0 50 */ subf r6, r3, r30
/* 800DC658 000D9598 7C 9D 01 AE */ stbx r4, r29, r0
/* 800DC65C 000D959C 38 86 00 00 */ addi r4, r6, 0
/* 800DC660 000D95A0 7C BD 1A 14 */ add r5, r29, r3
/* 800DC664 000D95A4 48 00 00 18 */ b .L_800DC67C
.L_800DC668:
/* 800DC668 000D95A8 88 1C 00 00 */ lbz r0, 0(r28)
/* 800DC66C 000D95AC 3B 9C 00 01 */ addi r28, r28, 1
/* 800DC670 000D95B0 38 84 FF FF */ addi r4, r4, -1
/* 800DC674 000D95B4 98 05 00 00 */ stb r0, 0(r5)
/* 800DC678 000D95B8 38 A5 00 01 */ addi r5, r5, 1
.L_800DC67C:
/* 800DC67C 000D95BC 28 04 00 00 */ cmplwi r4, 0
/* 800DC680 000D95C0 41 82 00 10 */ beq .L_800DC690
/* 800DC684 000D95C4 88 1C 00 00 */ lbz r0, 0(r28)
/* 800DC688 000D95C8 7C 00 07 75 */ extsb. r0, r0
/* 800DC68C 000D95CC 40 82 FF DC */ bne .L_800DC668
.L_800DC690:
/* 800DC690 000D95D0 7C 04 30 50 */ subf r0, r4, r6
/* 800DC694 000D95D4 7C 63 02 14 */ add r3, r3, r0
.L_800DC698:
/* 800DC698 000D95D8 7C 03 F0 40 */ cmplw r3, r30
/* 800DC69C 000D95DC 40 82 00 08 */ bne .L_800DC6A4
/* 800DC6A0 000D95E0 48 00 00 58 */ b .L_800DC6F8
.L_800DC6A4:
/* 800DC6A4 000D95E4 38 03 00 00 */ addi r0, r3, 0
/* 800DC6A8 000D95E8 38 63 00 01 */ addi r3, r3, 1
/* 800DC6AC 000D95EC 38 80 00 2F */ li r4, 0x2f
/* 800DC6B0 000D95F0 7C E3 F0 50 */ subf r7, r3, r30
/* 800DC6B4 000D95F4 7C 9D 01 AE */ stbx r4, r29, r0
/* 800DC6B8 000D95F8 38 DF 00 00 */ addi r6, r31, 0
/* 800DC6BC 000D95FC 38 87 00 00 */ addi r4, r7, 0
/* 800DC6C0 000D9600 7C BD 1A 14 */ add r5, r29, r3
/* 800DC6C4 000D9604 48 00 00 18 */ b .L_800DC6DC
.L_800DC6C8:
/* 800DC6C8 000D9608 88 06 00 00 */ lbz r0, 0(r6)
/* 800DC6CC 000D960C 38 C6 00 01 */ addi r6, r6, 1
/* 800DC6D0 000D9610 38 84 FF FF */ addi r4, r4, -1
/* 800DC6D4 000D9614 98 05 00 00 */ stb r0, 0(r5)
/* 800DC6D8 000D9618 38 A5 00 01 */ addi r5, r5, 1
.L_800DC6DC:
/* 800DC6DC 000D961C 28 04 00 00 */ cmplwi r4, 0
/* 800DC6E0 000D9620 41 82 00 10 */ beq .L_800DC6F0
/* 800DC6E4 000D9624 88 06 00 00 */ lbz r0, 0(r6)
/* 800DC6E8 000D9628 7C 00 07 75 */ extsb. r0, r0
/* 800DC6EC 000D962C 40 82 FF DC */ bne .L_800DC6C8
.L_800DC6F0:
/* 800DC6F0 000D9630 7C 04 38 50 */ subf r0, r4, r7
/* 800DC6F4 000D9634 7C 63 02 14 */ add r3, r3, r0
.L_800DC6F8:
/* 800DC6F8 000D9638 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800DC6FC 000D963C 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 800DC700 000D9640 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 800DC704 000D9644 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 800DC708 000D9648 83 81 00 20 */ lwz r28, 0x20(r1)
/* 800DC70C 000D964C 38 21 00 30 */ addi r1, r1, 0x30
/* 800DC710 000D9650 7C 08 03 A6 */ mtlr r0
/* 800DC714 000D9654 4E 80 00 20 */ blr
DVDConvertEntrynumToPath: # local func
/* 800DC718 000D9658 7C 08 02 A6 */ mflr r0
/* 800DC71C 000D965C 90 01 00 04 */ stw r0, 4(r1)
/* 800DC720 000D9660 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 800DC724 000D9664 93 E1 00 24 */ stw r31, 0x24(r1)
/* 800DC728 000D9668 3B E5 00 00 */ addi r31, r5, 0
/* 800DC72C 000D966C 93 C1 00 20 */ stw r30, 0x20(r1)
/* 800DC730 000D9670 3B C4 00 00 */ addi r30, r4, 0
/* 800DC734 000D9674 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 800DC738 000D9678 7C 7D 1B 79 */ or. r29, r3, r3
/* 800DC73C 000D967C 93 81 00 18 */ stw r28, 0x18(r1)
/* 800DC740 000D9680 40 82 00 0C */ bne .L_800DC74C
/* 800DC744 000D9684 38 60 00 00 */ li r3, 0
/* 800DC748 000D9688 48 00 00 8C */ b .L_800DC7D4
.L_800DC74C:
/* 800DC74C 000D968C 1C 7D 00 0C */ mulli r3, r29, 0xc
/* 800DC750 000D9690 80 8D 8E 14 */ lwz r4, FstStart@sda21(r13)
/* 800DC754 000D9694 80 CD 8E 18 */ lwz r6, FstStringStart@sda21(r13)
/* 800DC758 000D9698 7C 04 18 2E */ lwzx r0, r4, r3
/* 800DC75C 000D969C 7C 64 1A 14 */ add r3, r4, r3
/* 800DC760 000D96A0 80 63 00 04 */ lwz r3, 4(r3)
/* 800DC764 000D96A4 38 9E 00 00 */ addi r4, r30, 0
/* 800DC768 000D96A8 54 00 02 3E */ clrlwi r0, r0, 8
/* 800DC76C 000D96AC 38 BF 00 00 */ addi r5, r31, 0
/* 800DC770 000D96B0 7F 86 02 14 */ add r28, r6, r0
/* 800DC774 000D96B4 4B FF FE 45 */ bl entryToPath
/* 800DC778 000D96B8 7C 03 F8 40 */ cmplw r3, r31
/* 800DC77C 000D96BC 40 82 00 08 */ bne .L_800DC784
/* 800DC780 000D96C0 48 00 00 54 */ b .L_800DC7D4
.L_800DC784:
/* 800DC784 000D96C4 38 03 00 00 */ addi r0, r3, 0
/* 800DC788 000D96C8 38 63 00 01 */ addi r3, r3, 1
/* 800DC78C 000D96CC 38 80 00 2F */ li r4, 0x2f
/* 800DC790 000D96D0 7C C3 F8 50 */ subf r6, r3, r31
/* 800DC794 000D96D4 7C 9E 01 AE */ stbx r4, r30, r0
/* 800DC798 000D96D8 38 86 00 00 */ addi r4, r6, 0
/* 800DC79C 000D96DC 7C BE 1A 14 */ add r5, r30, r3
/* 800DC7A0 000D96E0 48 00 00 18 */ b .L_800DC7B8
.L_800DC7A4:
/* 800DC7A4 000D96E4 88 1C 00 00 */ lbz r0, 0(r28)
/* 800DC7A8 000D96E8 3B 9C 00 01 */ addi r28, r28, 1
/* 800DC7AC 000D96EC 38 84 FF FF */ addi r4, r4, -1
/* 800DC7B0 000D96F0 98 05 00 00 */ stb r0, 0(r5)
/* 800DC7B4 000D96F4 38 A5 00 01 */ addi r5, r5, 1
.L_800DC7B8:
/* 800DC7B8 000D96F8 28 04 00 00 */ cmplwi r4, 0
/* 800DC7BC 000D96FC 41 82 00 10 */ beq .L_800DC7CC
/* 800DC7C0 000D9700 88 1C 00 00 */ lbz r0, 0(r28)
/* 800DC7C4 000D9704 7C 00 07 75 */ extsb. r0, r0
/* 800DC7C8 000D9708 40 82 FF DC */ bne .L_800DC7A4
.L_800DC7CC:
/* 800DC7CC 000D970C 7C 04 30 50 */ subf r0, r4, r6
/* 800DC7D0 000D9710 7C 63 02 14 */ add r3, r3, r0
.L_800DC7D4:
/* 800DC7D4 000D9714 7C 03 F8 40 */ cmplw r3, r31
/* 800DC7D8 000D9718 40 82 00 18 */ bne .L_800DC7F0
/* 800DC7DC 000D971C 7C 7E FA 14 */ add r3, r30, r31
/* 800DC7E0 000D9720 38 00 00 00 */ li r0, 0
/* 800DC7E4 000D9724 98 03 FF FF */ stb r0, -1(r3)
/* 800DC7E8 000D9728 38 60 00 00 */ li r3, 0
/* 800DC7EC 000D972C 48 00 00 60 */ b .L_800DC84C
.L_800DC7F0:
/* 800DC7F0 000D9730 1C 1D 00 0C */ mulli r0, r29, 0xc
/* 800DC7F4 000D9734 80 8D 8E 14 */ lwz r4, FstStart@sda21(r13)
/* 800DC7F8 000D9738 7C 04 00 2E */ lwzx r0, r4, r0
/* 800DC7FC 000D973C 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 800DC800 000D9740 40 82 00 0C */ bne .L_800DC80C
/* 800DC804 000D9744 38 00 00 00 */ li r0, 0
/* 800DC808 000D9748 48 00 00 08 */ b .L_800DC810
.L_800DC80C:
/* 800DC80C 000D974C 38 00 00 01 */ li r0, 1
.L_800DC810:
/* 800DC810 000D9750 2C 00 00 00 */ cmpwi r0, 0
/* 800DC814 000D9754 41 82 00 2C */ beq .L_800DC840
/* 800DC818 000D9758 38 1F FF FF */ addi r0, r31, -1
/* 800DC81C 000D975C 7C 03 00 40 */ cmplw r3, r0
/* 800DC820 000D9760 40 82 00 14 */ bne .L_800DC834
/* 800DC824 000D9764 38 00 00 00 */ li r0, 0
/* 800DC828 000D9768 7C 1E 19 AE */ stbx r0, r30, r3
/* 800DC82C 000D976C 38 60 00 00 */ li r3, 0
/* 800DC830 000D9770 48 00 00 1C */ b .L_800DC84C
.L_800DC834:
/* 800DC834 000D9774 38 00 00 2F */ li r0, 0x2f
/* 800DC838 000D9778 7C 1E 19 AE */ stbx r0, r30, r3
/* 800DC83C 000D977C 38 63 00 01 */ addi r3, r3, 1
.L_800DC840:
/* 800DC840 000D9780 38 00 00 00 */ li r0, 0
/* 800DC844 000D9784 7C 1E 19 AE */ stbx r0, r30, r3
/* 800DC848 000D9788 38 60 00 01 */ li r3, 1
.L_800DC84C:
/* 800DC84C 000D978C 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 800DC850 000D9790 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 800DC854 000D9794 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 800DC858 000D9798 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 800DC85C 000D979C 83 81 00 18 */ lwz r28, 0x18(r1)
/* 800DC860 000D97A0 38 21 00 28 */ addi r1, r1, 0x28
/* 800DC864 000D97A4 7C 08 03 A6 */ mtlr r0
/* 800DC868 000D97A8 4E 80 00 20 */ blr
.global DVDGetCurrentDir
DVDGetCurrentDir:
/* 800DC86C 000D97AC 7C 08 02 A6 */ mflr r0
/* 800DC870 000D97B0 90 01 00 04 */ stw r0, 4(r1)
/* 800DC874 000D97B4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800DC878 000D97B8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800DC87C 000D97BC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800DC880 000D97C0 3B C4 00 00 */ addi r30, r4, 0
/* 800DC884 000D97C4 38 BE 00 00 */ addi r5, r30, 0
/* 800DC888 000D97C8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800DC88C 000D97CC 3B A3 00 00 */ addi r29, r3, 0
/* 800DC890 000D97D0 38 9D 00 00 */ addi r4, r29, 0
/* 800DC894 000D97D4 83 ED 8E 20 */ lwz r31, currentDirectory@sda21(r13)
/* 800DC898 000D97D8 38 7F 00 00 */ addi r3, r31, 0
/* 800DC89C 000D97DC 4B FF FD 1D */ bl entryToPath
/* 800DC8A0 000D97E0 7C 03 F0 40 */ cmplw r3, r30
/* 800DC8A4 000D97E4 40 82 00 14 */ bne .L_800DC8B8
/* 800DC8A8 000D97E8 38 00 00 00 */ li r0, 0
/* 800DC8AC 000D97EC 7C 7D F2 14 */ add r3, r29, r30
/* 800DC8B0 000D97F0 98 03 FF FF */ stb r0, -1(r3)
/* 800DC8B4 000D97F4 48 00 00 5C */ b .L_800DC910
.L_800DC8B8:
/* 800DC8B8 000D97F8 1C 1F 00 0C */ mulli r0, r31, 0xc
/* 800DC8BC 000D97FC 80 8D 8E 14 */ lwz r4, FstStart@sda21(r13)
/* 800DC8C0 000D9800 7C 04 00 2E */ lwzx r0, r4, r0
/* 800DC8C4 000D9804 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 800DC8C8 000D9808 40 82 00 0C */ bne .L_800DC8D4
/* 800DC8CC 000D980C 38 00 00 00 */ li r0, 0
/* 800DC8D0 000D9810 48 00 00 08 */ b .L_800DC8D8
.L_800DC8D4:
/* 800DC8D4 000D9814 38 00 00 01 */ li r0, 1
.L_800DC8D8:
/* 800DC8D8 000D9818 2C 00 00 00 */ cmpwi r0, 0
/* 800DC8DC 000D981C 41 82 00 28 */ beq .L_800DC904
/* 800DC8E0 000D9820 38 1E FF FF */ addi r0, r30, -1
/* 800DC8E4 000D9824 7C 03 00 40 */ cmplw r3, r0
/* 800DC8E8 000D9828 40 82 00 10 */ bne .L_800DC8F8
/* 800DC8EC 000D982C 38 00 00 00 */ li r0, 0
/* 800DC8F0 000D9830 7C 1D 19 AE */ stbx r0, r29, r3
/* 800DC8F4 000D9834 48 00 00 1C */ b .L_800DC910
.L_800DC8F8:
/* 800DC8F8 000D9838 38 00 00 2F */ li r0, 0x2f
/* 800DC8FC 000D983C 7C 1D 19 AE */ stbx r0, r29, r3
/* 800DC900 000D9840 38 63 00 01 */ addi r3, r3, 1
.L_800DC904:
/* 800DC904 000D9844 38 00 00 00 */ li r0, 0
/* 800DC908 000D9848 7C 1D 19 AE */ stbx r0, r29, r3
/* 800DC90C 000D984C 38 00 00 01 */ li r0, 1
.L_800DC910:
/* 800DC910 000D9850 7C 03 03 78 */ mr r3, r0
/* 800DC914 000D9854 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800DC918 000D9858 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800DC91C 000D985C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800DC920 000D9860 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 800DC924 000D9864 38 21 00 20 */ addi r1, r1, 0x20
/* 800DC928 000D9868 7C 08 03 A6 */ mtlr r0
/* 800DC92C 000D986C 4E 80 00 20 */ blr
.global DVDChangeDir
DVDChangeDir:
/* 800DC930 000D9870 7C 08 02 A6 */ mflr r0
/* 800DC934 000D9874 90 01 00 04 */ stw r0, 4(r1)
/* 800DC938 000D9878 94 21 FF F8 */ stwu r1, -8(r1)
/* 800DC93C 000D987C 4B FF F8 29 */ bl DVDConvertPathToEntrynum
/* 800DC940 000D9880 2C 03 00 00 */ cmpwi r3, 0
/* 800DC944 000D9884 41 80 00 2C */ blt .L_800DC970
/* 800DC948 000D9888 1C 03 00 0C */ mulli r0, r3, 0xc
/* 800DC94C 000D988C 80 8D 8E 14 */ lwz r4, FstStart@sda21(r13)
/* 800DC950 000D9890 7C 04 00 2E */ lwzx r0, r4, r0
/* 800DC954 000D9894 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 800DC958 000D9898 40 82 00 0C */ bne .L_800DC964
/* 800DC95C 000D989C 38 00 00 00 */ li r0, 0
/* 800DC960 000D98A0 48 00 00 08 */ b .L_800DC968
.L_800DC964:
/* 800DC964 000D98A4 38 00 00 01 */ li r0, 1
.L_800DC968:
/* 800DC968 000D98A8 2C 00 00 00 */ cmpwi r0, 0
/* 800DC96C 000D98AC 40 82 00 0C */ bne .L_800DC978
.L_800DC970:
/* 800DC970 000D98B0 38 60 00 00 */ li r3, 0
/* 800DC974 000D98B4 48 00 00 0C */ b .L_800DC980
.L_800DC978:
/* 800DC978 000D98B8 90 6D 8E 20 */ stw r3, currentDirectory@sda21(r13)
/* 800DC97C 000D98BC 38 60 00 01 */ li r3, 1
.L_800DC980:
/* 800DC980 000D98C0 80 01 00 0C */ lwz r0, 0xc(r1)
/* 800DC984 000D98C4 38 21 00 08 */ addi r1, r1, 8
/* 800DC988 000D98C8 7C 08 03 A6 */ mtlr r0
/* 800DC98C 000D98CC 4E 80 00 20 */ blr
.global DVDReadAsyncPrio
DVDReadAsyncPrio:
/* 800DC990 000D98D0 7C 08 02 A6 */ mflr r0
/* 800DC994 000D98D4 90 01 00 04 */ stw r0, 4(r1)
/* 800DC998 000D98D8 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 800DC99C 000D98DC BF 41 00 20 */ stmw r26, 0x20(r1)
/* 800DC9A0 000D98E0 7C DD 33 79 */ or. r29, r6, r6
/* 800DC9A4 000D98E4 3B 43 00 00 */ addi r26, r3, 0
/* 800DC9A8 000D98E8 3B 64 00 00 */ addi r27, r4, 0
/* 800DC9AC 000D98EC 3B 85 00 00 */ addi r28, r5, 0
/* 800DC9B0 000D98F0 3B C7 00 00 */ addi r30, r7, 0
/* 800DC9B4 000D98F4 3B E8 00 00 */ addi r31, r8, 0
/* 800DC9B8 000D98F8 41 80 00 10 */ blt .L_800DC9C8
/* 800DC9BC 000D98FC 80 1A 00 34 */ lwz r0, 0x34(r26)
/* 800DC9C0 000D9900 7C 1D 00 40 */ cmplw r29, r0
/* 800DC9C4 000D9904 40 81 00 1C */ ble .L_800DC9E0
.L_800DC9C8:
/* 800DC9C8 000D9908 3C 60 80 4A */ lis r3, lbl_804A7BF8@ha
/* 800DC9CC 000D990C 4C C6 31 82 */ crclr 6
/* 800DC9D0 000D9910 38 A3 7B F8 */ addi r5, r3, lbl_804A7BF8@l
/* 800DC9D4 000D9914 38 6D 82 B0 */ addi r3, r13, lbl_80514930@sda21
/* 800DC9D8 000D9918 38 80 02 EE */ li r4, 0x2ee
/* 800DC9DC 000D991C 48 01 0D 91 */ bl OSPanic
.L_800DC9E0:
/* 800DC9E0 000D9920 7C 9D E2 15 */ add. r4, r29, r28
/* 800DC9E4 000D9924 41 80 00 14 */ blt .L_800DC9F8
/* 800DC9E8 000D9928 80 7A 00 34 */ lwz r3, 0x34(r26)
/* 800DC9EC 000D992C 38 03 00 20 */ addi r0, r3, 0x20
/* 800DC9F0 000D9930 7C 04 00 40 */ cmplw r4, r0
/* 800DC9F4 000D9934 41 80 00 1C */ blt .L_800DCA10
.L_800DC9F8:
/* 800DC9F8 000D9938 3C 60 80 4A */ lis r3, lbl_804A7BF8@ha
/* 800DC9FC 000D993C 4C C6 31 82 */ crclr 6
/* 800DCA00 000D9940 38 A3 7B F8 */ addi r5, r3, lbl_804A7BF8@l
/* 800DCA04 000D9944 38 6D 82 B0 */ addi r3, r13, lbl_80514930@sda21
/* 800DCA08 000D9948 38 80 02 F4 */ li r4, 0x2f4
/* 800DCA0C 000D994C 48 01 0D 61 */ bl OSPanic
.L_800DCA10:
/* 800DCA10 000D9950 93 DA 00 38 */ stw r30, 0x38(r26)
/* 800DCA14 000D9954 3C 60 80 0E */ lis r3, cbForReadAsync@ha
/* 800DCA18 000D9958 38 E3 CA 50 */ addi r7, r3, cbForReadAsync@l
/* 800DCA1C 000D995C 80 1A 00 30 */ lwz r0, 0x30(r26)
/* 800DCA20 000D9960 38 7A 00 00 */ addi r3, r26, 0
/* 800DCA24 000D9964 38 9B 00 00 */ addi r4, r27, 0
/* 800DCA28 000D9968 38 BC 00 00 */ addi r5, r28, 0
/* 800DCA2C 000D996C 39 1F 00 00 */ addi r8, r31, 0
/* 800DCA30 000D9970 7C C0 EA 14 */ add r6, r0, r29
/* 800DCA34 000D9974 48 00 1E E1 */ bl DVDReadAbsAsyncPrio
/* 800DCA38 000D9978 BB 41 00 20 */ lmw r26, 0x20(r1)
/* 800DCA3C 000D997C 38 60 00 01 */ li r3, 1
/* 800DCA40 000D9980 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 800DCA44 000D9984 38 21 00 38 */ addi r1, r1, 0x38
/* 800DCA48 000D9988 7C 08 03 A6 */ mtlr r0
/* 800DCA4C 000D998C 4E 80 00 20 */ blr
cbForReadAsync: # local func
/* 800DCA50 000D9990 7C 08 02 A6 */ mflr r0
/* 800DCA54 000D9994 90 01 00 04 */ stw r0, 4(r1)
/* 800DCA58 000D9998 94 21 FF F8 */ stwu r1, -8(r1)
/* 800DCA5C 000D999C 81 84 00 38 */ lwz r12, 0x38(r4)
/* 800DCA60 000D99A0 28 0C 00 00 */ cmplwi r12, 0
/* 800DCA64 000D99A4 41 82 00 0C */ beq .L_800DCA70
/* 800DCA68 000D99A8 7D 88 03 A6 */ mtlr r12
/* 800DCA6C 000D99AC 4E 80 00 21 */ blrl
.L_800DCA70:
/* 800DCA70 000D99B0 80 01 00 0C */ lwz r0, 0xc(r1)
/* 800DCA74 000D99B4 38 21 00 08 */ addi r1, r1, 8
/* 800DCA78 000D99B8 7C 08 03 A6 */ mtlr r0
/* 800DCA7C 000D99BC 4E 80 00 20 */ blr
.global DVDReadPrio
DVDReadPrio:
/* 800DCA80 000D99C0 7C 08 02 A6 */ mflr r0
/* 800DCA84 000D99C4 90 01 00 04 */ stw r0, 4(r1)
/* 800DCA88 000D99C8 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 800DCA8C 000D99CC BF 61 00 24 */ stmw r27, 0x24(r1)
/* 800DCA90 000D99D0 7C DD 33 79 */ or. r29, r6, r6
/* 800DCA94 000D99D4 3B E3 00 00 */ addi r31, r3, 0
/* 800DCA98 000D99D8 3B 64 00 00 */ addi r27, r4, 0
/* 800DCA9C 000D99DC 3B 85 00 00 */ addi r28, r5, 0
/* 800DCAA0 000D99E0 3B C7 00 00 */ addi r30, r7, 0
/* 800DCAA4 000D99E4 41 80 00 10 */ blt .L_800DCAB4
/* 800DCAA8 000D99E8 80 1F 00 34 */ lwz r0, 0x34(r31)
/* 800DCAAC 000D99EC 7C 1D 00 40 */ cmplw r29, r0
/* 800DCAB0 000D99F0 40 81 00 1C */ ble .L_800DCACC
.L_800DCAB4:
/* 800DCAB4 000D99F4 3C 60 80 4A */ lis r3, lbl_804A7C2C@ha
/* 800DCAB8 000D99F8 4C C6 31 82 */ crclr 6
/* 800DCABC 000D99FC 38 A3 7C 2C */ addi r5, r3, lbl_804A7C2C@l
/* 800DCAC0 000D9A00 38 6D 82 B0 */ addi r3, r13, lbl_80514930@sda21
/* 800DCAC4 000D9A04 38 80 03 34 */ li r4, 0x334
/* 800DCAC8 000D9A08 48 01 0C A5 */ bl OSPanic
.L_800DCACC:
/* 800DCACC 000D9A0C 7C 9D E2 15 */ add. r4, r29, r28
/* 800DCAD0 000D9A10 41 80 00 14 */ blt .L_800DCAE4
/* 800DCAD4 000D9A14 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 800DCAD8 000D9A18 38 03 00 20 */ addi r0, r3, 0x20
/* 800DCADC 000D9A1C 7C 04 00 40 */ cmplw r4, r0
/* 800DCAE0 000D9A20 41 80 00 1C */ blt .L_800DCAFC
.L_800DCAE4:
/* 800DCAE4 000D9A24 3C 60 80 4A */ lis r3, lbl_804A7C2C@ha
/* 800DCAE8 000D9A28 4C C6 31 82 */ crclr 6
/* 800DCAEC 000D9A2C 38 A3 7C 2C */ addi r5, r3, lbl_804A7C2C@l
/* 800DCAF0 000D9A30 38 6D 82 B0 */ addi r3, r13, lbl_80514930@sda21
/* 800DCAF4 000D9A34 38 80 03 3A */ li r4, 0x33a
/* 800DCAF8 000D9A38 48 01 0C 75 */ bl OSPanic
.L_800DCAFC:
/* 800DCAFC 000D9A3C 80 1F 00 30 */ lwz r0, 0x30(r31)
/* 800DCB00 000D9A40 3C 80 80 0E */ lis r4, cbForReadSync@ha
/* 800DCB04 000D9A44 38 E4 CB 98 */ addi r7, r4, cbForReadSync@l
/* 800DCB08 000D9A48 38 7F 00 00 */ addi r3, r31, 0
/* 800DCB0C 000D9A4C 38 9B 00 00 */ addi r4, r27, 0
/* 800DCB10 000D9A50 38 BC 00 00 */ addi r5, r28, 0
/* 800DCB14 000D9A54 39 1E 00 00 */ addi r8, r30, 0
/* 800DCB18 000D9A58 7C C0 EA 14 */ add r6, r0, r29
/* 800DCB1C 000D9A5C 48 00 1D F9 */ bl DVDReadAbsAsyncPrio
/* 800DCB20 000D9A60 2C 03 00 00 */ cmpwi r3, 0
/* 800DCB24 000D9A64 40 82 00 0C */ bne .L_800DCB30
/* 800DCB28 000D9A68 38 60 FF FF */ li r3, -1
/* 800DCB2C 000D9A6C 48 00 00 58 */ b .L_800DCB84
.L_800DCB30:
/* 800DCB30 000D9A70 48 01 21 09 */ bl OSDisableInterrupts
/* 800DCB34 000D9A74 7C 7E 1B 78 */ mr r30, r3
.L_800DCB38:
/* 800DCB38 000D9A78 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 800DCB3C 000D9A7C 2C 00 00 00 */ cmpwi r0, 0
/* 800DCB40 000D9A80 40 82 00 0C */ bne .L_800DCB4C
/* 800DCB44 000D9A84 83 FF 00 20 */ lwz r31, 0x20(r31)
/* 800DCB48 000D9A88 48 00 00 30 */ b .L_800DCB78
.L_800DCB4C:
/* 800DCB4C 000D9A8C 2C 00 FF FF */ cmpwi r0, -1
/* 800DCB50 000D9A90 40 82 00 0C */ bne .L_800DCB5C
/* 800DCB54 000D9A94 3B E0 FF FF */ li r31, -1
/* 800DCB58 000D9A98 48 00 00 20 */ b .L_800DCB78
.L_800DCB5C:
/* 800DCB5C 000D9A9C 2C 00 00 0A */ cmpwi r0, 0xa
/* 800DCB60 000D9AA0 40 82 00 0C */ bne .L_800DCB6C
/* 800DCB64 000D9AA4 3B E0 FF FD */ li r31, -3
/* 800DCB68 000D9AA8 48 00 00 10 */ b .L_800DCB78
.L_800DCB6C:
/* 800DCB6C 000D9AAC 38 6D 8E 28 */ addi r3, r13, __DVDThreadQueue@sda21
/* 800DCB70 000D9AB0 48 01 5D 7D */ bl OSSleepThread
/* 800DCB74 000D9AB4 4B FF FF C4 */ b .L_800DCB38
.L_800DCB78:
/* 800DCB78 000D9AB8 7F C3 F3 78 */ mr r3, r30
/* 800DCB7C 000D9ABC 48 01 20 E5 */ bl OSRestoreInterrupts
/* 800DCB80 000D9AC0 7F E3 FB 78 */ mr r3, r31
.L_800DCB84:
/* 800DCB84 000D9AC4 BB 61 00 24 */ lmw r27, 0x24(r1)
/* 800DCB88 000D9AC8 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 800DCB8C 000D9ACC 38 21 00 38 */ addi r1, r1, 0x38
/* 800DCB90 000D9AD0 7C 08 03 A6 */ mtlr r0
/* 800DCB94 000D9AD4 4E 80 00 20 */ blr
cbForReadSync: # local func
/* 800DCB98 000D9AD8 7C 08 02 A6 */ mflr r0
/* 800DCB9C 000D9ADC 38 6D 8E 28 */ addi r3, r13, __DVDThreadQueue@sda21
/* 800DCBA0 000D9AE0 90 01 00 04 */ stw r0, 4(r1)
/* 800DCBA4 000D9AE4 94 21 FF F8 */ stwu r1, -8(r1)
/* 800DCBA8 000D9AE8 48 01 5E 31 */ bl OSWakeupThread
/* 800DCBAC 000D9AEC 80 01 00 0C */ lwz r0, 0xc(r1)
/* 800DCBB0 000D9AF0 38 21 00 08 */ addi r1, r1, 8
/* 800DCBB4 000D9AF4 7C 08 03 A6 */ mtlr r0
/* 800DCBB8 000D9AF8 4E 80 00 20 */ blr
.global DVDOpenDir
DVDOpenDir:
/* 800DCBBC 000D9AFC 7C 08 02 A6 */ mflr r0
/* 800DCBC0 000D9B00 90 01 00 04 */ stw r0, 4(r1)
/* 800DCBC4 000D9B04 94 21 FF 68 */ stwu r1, -0x98(r1)
/* 800DCBC8 000D9B08 93 E1 00 94 */ stw r31, 0x94(r1)
/* 800DCBCC 000D9B0C 3B E4 00 00 */ addi r31, r4, 0
/* 800DCBD0 000D9B10 93 C1 00 90 */ stw r30, 0x90(r1)
/* 800DCBD4 000D9B14 3B C3 00 00 */ addi r30, r3, 0
/* 800DCBD8 000D9B18 4B FF F5 8D */ bl DVDConvertPathToEntrynum
/* 800DCBDC 000D9B1C 2C 03 00 00 */ cmpwi r3, 0
/* 800DCBE0 000D9B20 40 80 00 34 */ bge .L_800DCC14
/* 800DCBE4 000D9B24 80 6D 8E 20 */ lwz r3, currentDirectory@sda21(r13)
/* 800DCBE8 000D9B28 38 81 00 10 */ addi r4, r1, 0x10
/* 800DCBEC 000D9B2C 38 A0 00 80 */ li r5, 0x80
/* 800DCBF0 000D9B30 4B FF FB 29 */ bl DVDConvertEntrynumToPath
/* 800DCBF4 000D9B34 3C 60 80 4A */ lis r3, lbl_804A7C5C@ha
/* 800DCBF8 000D9B38 4C C6 31 82 */ crclr 6
/* 800DCBFC 000D9B3C 38 63 7C 5C */ addi r3, r3, lbl_804A7C5C@l
/* 800DCC00 000D9B40 38 9E 00 00 */ addi r4, r30, 0
/* 800DCC04 000D9B44 38 A1 00 10 */ addi r5, r1, 0x10
/* 800DCC08 000D9B48 48 01 0A E5 */ bl OSReport
/* 800DCC0C 000D9B4C 38 60 00 00 */ li r3, 0
/* 800DCC10 000D9B50 48 00 00 54 */ b .L_800DCC64
.L_800DCC14:
/* 800DCC14 000D9B54 1C A3 00 0C */ mulli r5, r3, 0xc
/* 800DCC18 000D9B58 80 8D 8E 14 */ lwz r4, FstStart@sda21(r13)
/* 800DCC1C 000D9B5C 7C 04 28 2E */ lwzx r0, r4, r5
/* 800DCC20 000D9B60 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 800DCC24 000D9B64 40 82 00 0C */ bne .L_800DCC30
/* 800DCC28 000D9B68 38 00 00 00 */ li r0, 0
/* 800DCC2C 000D9B6C 48 00 00 08 */ b .L_800DCC34
.L_800DCC30:
/* 800DCC30 000D9B70 38 00 00 01 */ li r0, 1
.L_800DCC34:
/* 800DCC34 000D9B74 2C 00 00 00 */ cmpwi r0, 0
/* 800DCC38 000D9B78 40 82 00 0C */ bne .L_800DCC44
/* 800DCC3C 000D9B7C 38 60 00 00 */ li r3, 0
/* 800DCC40 000D9B80 48 00 00 24 */ b .L_800DCC64
.L_800DCC44:
/* 800DCC44 000D9B84 90 7F 00 00 */ stw r3, 0(r31)
/* 800DCC48 000D9B88 38 03 00 01 */ addi r0, r3, 1
/* 800DCC4C 000D9B8C 38 60 00 01 */ li r3, 1
/* 800DCC50 000D9B90 90 1F 00 04 */ stw r0, 4(r31)
/* 800DCC54 000D9B94 80 0D 8E 14 */ lwz r0, FstStart@sda21(r13)
/* 800DCC58 000D9B98 7C 80 2A 14 */ add r4, r0, r5
/* 800DCC5C 000D9B9C 80 04 00 08 */ lwz r0, 8(r4)
/* 800DCC60 000D9BA0 90 1F 00 08 */ stw r0, 8(r31)
.L_800DCC64:
/* 800DCC64 000D9BA4 80 01 00 9C */ lwz r0, 0x9c(r1)
/* 800DCC68 000D9BA8 83 E1 00 94 */ lwz r31, 0x94(r1)
/* 800DCC6C 000D9BAC 83 C1 00 90 */ lwz r30, 0x90(r1)
/* 800DCC70 000D9BB0 38 21 00 98 */ addi r1, r1, 0x98
/* 800DCC74 000D9BB4 7C 08 03 A6 */ mtlr r0
/* 800DCC78 000D9BB8 4E 80 00 20 */ blr
.global DVDReadDir
DVDReadDir:
/* 800DCC7C 000D9BBC 80 E3 00 04 */ lwz r7, 4(r3)
/* 800DCC80 000D9BC0 80 03 00 00 */ lwz r0, 0(r3)
/* 800DCC84 000D9BC4 7C 07 00 40 */ cmplw r7, r0
/* 800DCC88 000D9BC8 40 81 00 10 */ ble .L_800DCC98
/* 800DCC8C 000D9BCC 80 03 00 08 */ lwz r0, 8(r3)
/* 800DCC90 000D9BD0 7C 00 38 40 */ cmplw r0, r7
/* 800DCC94 000D9BD4 41 81 00 0C */ bgt .L_800DCCA0
.L_800DCC98:
/* 800DCC98 000D9BD8 38 60 00 00 */ li r3, 0
/* 800DCC9C 000D9BDC 4E 80 00 20 */ blr
.L_800DCCA0:
/* 800DCCA0 000D9BE0 90 E4 00 00 */ stw r7, 0(r4)
/* 800DCCA4 000D9BE4 1D 07 00 0C */ mulli r8, r7, 0xc
/* 800DCCA8 000D9BE8 80 AD 8E 14 */ lwz r5, FstStart@sda21(r13)
/* 800DCCAC 000D9BEC 7C 05 40 2E */ lwzx r0, r5, r8
/* 800DCCB0 000D9BF0 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 800DCCB4 000D9BF4 40 82 00 0C */ bne .L_800DCCC0
/* 800DCCB8 000D9BF8 38 00 00 00 */ li r0, 0
/* 800DCCBC 000D9BFC 48 00 00 08 */ b .L_800DCCC4
.L_800DCCC0:
/* 800DCCC0 000D9C00 38 00 00 01 */ li r0, 1
.L_800DCCC4:
/* 800DCCC4 000D9C04 90 04 00 04 */ stw r0, 4(r4)
/* 800DCCC8 000D9C08 80 AD 8E 14 */ lwz r5, FstStart@sda21(r13)
/* 800DCCCC 000D9C0C 80 CD 8E 18 */ lwz r6, FstStringStart@sda21(r13)
/* 800DCCD0 000D9C10 7C 05 40 2E */ lwzx r0, r5, r8
/* 800DCCD4 000D9C14 54 00 02 3E */ clrlwi r0, r0, 8
/* 800DCCD8 000D9C18 7C 06 02 14 */ add r0, r6, r0
/* 800DCCDC 000D9C1C 90 04 00 08 */ stw r0, 8(r4)
/* 800DCCE0 000D9C20 80 8D 8E 14 */ lwz r4, FstStart@sda21(r13)
/* 800DCCE4 000D9C24 7C 04 40 2E */ lwzx r0, r4, r8
/* 800DCCE8 000D9C28 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 800DCCEC 000D9C2C 40 82 00 0C */ bne .L_800DCCF8
/* 800DCCF0 000D9C30 38 00 00 00 */ li r0, 0
/* 800DCCF4 000D9C34 48 00 00 08 */ b .L_800DCCFC
.L_800DCCF8:
/* 800DCCF8 000D9C38 38 00 00 01 */ li r0, 1
.L_800DCCFC:
/* 800DCCFC 000D9C3C 2C 00 00 00 */ cmpwi r0, 0
/* 800DCD00 000D9C40 41 82 00 10 */ beq .L_800DCD10
/* 800DCD04 000D9C44 7C 84 42 14 */ add r4, r4, r8
/* 800DCD08 000D9C48 80 04 00 08 */ lwz r0, 8(r4)
/* 800DCD0C 000D9C4C 48 00 00 08 */ b .L_800DCD14
.L_800DCD10:
/* 800DCD10 000D9C50 38 07 00 01 */ addi r0, r7, 1
.L_800DCD14:
/* 800DCD14 000D9C54 90 03 00 04 */ stw r0, 4(r3)
/* 800DCD18 000D9C58 38 60 00 01 */ li r3, 1
/* 800DCD1C 000D9C5C 4E 80 00 20 */ blr
.global DVDCloseDir
DVDCloseDir:
/* 800DCD20 000D9C60 38 60 00 01 */ li r3, 1
/* 800DCD24 000D9C64 4E 80 00 20 */ blr