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

1117 lines
53 KiB
ArmAsm

.include "macros.inc"
.section .bss # 0x804EFC20 - 0x8051467C
.global CommandList
CommandList:
.skip 0x40
.global AlarmForWA
AlarmForWA:
.skip 0x28
.global AlarmForTimeout
AlarmForTimeout:
.skip 0x28
.global AlarmForBreak
AlarmForBreak:
.skip 0x28
.global Prev
Prev:
.skip 0xC
.global Curr
Curr:
.skip 0xC
.section .sdata, "wa" # 0x80514680 - 0x80514D80
.balign 8
.global FirstRead
FirstRead:
.4byte 0x00000001
.section .sbss # 0x80514D80 - 0x80516360
.balign 8
.global StopAtNextInt
StopAtNextInt:
.skip 0x4
.global LastLength
LastLength:
.skip 0x4
.global Callback_1
Callback_1:
.skip 0x4
.global ResetCoverCallback
ResetCoverCallback:
.skip 0x4
.global LastResetEnd
LastResetEnd:
.skip 0x4
.global lbl_8051545C
lbl_8051545C:
.skip 0x4
.global ResetOccurred
ResetOccurred:
.skip 0x4
.global WaitingCoverClose
WaitingCoverClose:
.skip 0x4
.global Breaking
Breaking:
.skip 0x4
.global WorkAroundType
WorkAroundType:
.skip 0x4
.global WorkAroundSeekLocation
WorkAroundSeekLocation:
.skip 0x8
.global LastReadFinished
LastReadFinished:
.skip 0x4
.global lbl_8051547C
lbl_8051547C:
.skip 0x4
.global LastReadIssued
LastReadIssued:
.skip 0x4
.global lbl_80515484
lbl_80515484:
.skip 0x4
.global LastCommandWasRead
LastCommandWasRead:
.skip 0x4
.global NextCommandNumber
NextCommandNumber:
.skip 0x4
.section .text, "ax" # 0x800056C0 - 0x80472F00
.global __DVDInitWA
__DVDInitWA:
/* 800DB2B0 000D81F0 7C 08 02 A6 */ mflr r0
/* 800DB2B4 000D81F4 3C 60 80 4F */ lis r3, CommandList@ha
/* 800DB2B8 000D81F8 90 01 00 04 */ stw r0, 4(r1)
/* 800DB2BC 000D81FC 38 00 00 00 */ li r0, 0
/* 800DB2C0 000D8200 38 80 00 00 */ li r4, 0
/* 800DB2C4 000D8204 94 21 FF F8 */ stwu r1, -8(r1)
/* 800DB2C8 000D8208 90 0D 8E 0C */ stw r0, NextCommandNumber@sda21(r13)
/* 800DB2CC 000D820C 38 00 FF FF */ li r0, -1
/* 800DB2D0 000D8210 90 03 5D 30 */ stw r0, CommandList@l(r3)
/* 800DB2D4 000D8214 38 60 00 00 */ li r3, 0
/* 800DB2D8 000D8218 48 00 0D D9 */ bl __DVDLowSetWAType
/* 800DB2DC 000D821C 48 01 07 D9 */ bl OSInitAlarm
/* 800DB2E0 000D8220 80 01 00 0C */ lwz r0, 0xc(r1)
/* 800DB2E4 000D8224 38 21 00 08 */ addi r1, r1, 8
/* 800DB2E8 000D8228 7C 08 03 A6 */ mtlr r0
/* 800DB2EC 000D822C 4E 80 00 20 */ blr
.global __DVDInterruptHandler
__DVDInterruptHandler:
/* 800DB2F0 000D8230 7C 08 02 A6 */ mflr r0
/* 800DB2F4 000D8234 3C 60 80 4F */ lis r3, CommandList@ha
/* 800DB2F8 000D8238 90 01 00 04 */ stw r0, 4(r1)
/* 800DB2FC 000D823C 94 21 FD 10 */ stwu r1, -0x2f0(r1)
/* 800DB300 000D8240 BF 61 02 DC */ stmw r27, 0x2dc(r1)
/* 800DB304 000D8244 3B 84 00 00 */ addi r28, r4, 0
/* 800DB308 000D8248 3B C3 5D 30 */ addi r30, r3, CommandList@l
/* 800DB30C 000D824C 3B A0 00 00 */ li r29, 0
/* 800DB310 000D8250 80 0D 8E 08 */ lwz r0, LastCommandWasRead@sda21(r13)
/* 800DB314 000D8254 2C 00 00 00 */ cmpwi r0, 0
/* 800DB318 000D8258 41 82 00 40 */ beq .L_800DB358
/* 800DB31C 000D825C 48 01 78 95 */ bl __OSGetSystemTime
/* 800DB320 000D8260 90 8D 8D FC */ stw r4, lbl_8051547C@sda21(r13)
/* 800DB324 000D8264 38 00 00 00 */ li r0, 0
/* 800DB328 000D8268 90 6D 8D F8 */ stw r3, LastReadFinished@sda21(r13)
/* 800DB32C 000D826C 90 0D 82 A8 */ stw r0, FirstRead@sda21(r13)
/* 800DB330 000D8270 80 1E 00 C4 */ lwz r0, 0xc4(r30)
/* 800DB334 000D8274 90 1E 00 B8 */ stw r0, 0xb8(r30)
/* 800DB338 000D8278 80 1E 00 C8 */ lwz r0, 0xc8(r30)
/* 800DB33C 000D827C 90 1E 00 BC */ stw r0, 0xbc(r30)
/* 800DB340 000D8280 80 1E 00 CC */ lwz r0, 0xcc(r30)
/* 800DB344 000D8284 90 1E 00 C0 */ stw r0, 0xc0(r30)
/* 800DB348 000D8288 80 0D 8D C8 */ lwz r0, StopAtNextInt@sda21(r13)
/* 800DB34C 000D828C 2C 00 00 01 */ cmpwi r0, 1
/* 800DB350 000D8290 40 82 00 08 */ bne .L_800DB358
/* 800DB354 000D8294 63 BD 00 08 */ ori r29, r29, 8
.L_800DB358:
/* 800DB358 000D8298 38 00 00 00 */ li r0, 0
/* 800DB35C 000D829C 90 0D 8E 08 */ stw r0, LastCommandWasRead@sda21(r13)
/* 800DB360 000D82A0 3C 60 CC 00 */ lis r3, 0xCC006000@ha
/* 800DB364 000D82A4 90 0D 8D C8 */ stw r0, StopAtNextInt@sda21(r13)
/* 800DB368 000D82A8 80 03 60 00 */ lwz r0, 0xCC006000@l(r3)
/* 800DB36C 000D82AC 70 1F 00 2A */ andi. r31, r0, 0x2a
/* 800DB370 000D82B0 70 03 00 54 */ andi. r3, r0, 0x54
/* 800DB374 000D82B4 57 E0 08 3C */ slwi r0, r31, 1
/* 800DB378 000D82B8 7C 7B 00 38 */ and r27, r3, r0
/* 800DB37C 000D82BC 57 60 06 73 */ rlwinm. r0, r27, 0, 0x19, 0x19
/* 800DB380 000D82C0 41 82 00 08 */ beq .L_800DB388
/* 800DB384 000D82C4 63 BD 00 08 */ ori r29, r29, 8
.L_800DB388:
/* 800DB388 000D82C8 57 60 06 F7 */ rlwinm. r0, r27, 0, 0x1b, 0x1b
/* 800DB38C 000D82CC 41 82 00 08 */ beq .L_800DB394
/* 800DB390 000D82D0 63 BD 00 01 */ ori r29, r29, 1
.L_800DB394:
/* 800DB394 000D82D4 57 60 07 7B */ rlwinm. r0, r27, 0, 0x1d, 0x1d
/* 800DB398 000D82D8 41 82 00 08 */ beq .L_800DB3A0
/* 800DB39C 000D82DC 63 BD 00 02 */ ori r29, r29, 2
.L_800DB3A0:
/* 800DB3A0 000D82E0 28 1D 00 00 */ cmplwi r29, 0
/* 800DB3A4 000D82E4 41 82 00 14 */ beq .L_800DB3B8
/* 800DB3A8 000D82E8 38 00 00 00 */ li r0, 0
/* 800DB3AC 000D82EC 90 0D 8D E0 */ stw r0, ResetOccurred@sda21(r13)
/* 800DB3B0 000D82F0 38 7E 00 68 */ addi r3, r30, 0x68
/* 800DB3B4 000D82F4 48 01 0A 21 */ bl OSCancelAlarm
.L_800DB3B8:
/* 800DB3B8 000D82F8 7F 60 FB 78 */ or r0, r27, r31
/* 800DB3BC 000D82FC 3F E0 CC 00 */ lis r31, 0xCC006000@ha
/* 800DB3C0 000D8300 90 1F 60 00 */ stw r0, 0xCC006000@l(r31)
/* 800DB3C4 000D8304 80 0D 8D E0 */ lwz r0, ResetOccurred@sda21(r13)
/* 800DB3C8 000D8308 28 00 00 00 */ cmplwi r0, 0
/* 800DB3CC 000D830C 41 82 00 A0 */ beq .L_800DB46C
/* 800DB3D0 000D8310 48 01 77 E1 */ bl __OSGetSystemTime
/* 800DB3D4 000D8314 3C A0 80 00 */ lis r5, 0x800000F8@ha
/* 800DB3D8 000D8318 80 ED 8D D8 */ lwz r7, LastResetEnd@sda21(r13)
/* 800DB3DC 000D831C 80 C5 00 F8 */ lwz r6, 0x800000F8@l(r5)
/* 800DB3E0 000D8320 3C A0 10 62 */ lis r5, 0x10624DD3@ha
/* 800DB3E4 000D8324 38 A5 4D D3 */ addi r5, r5, 0x10624DD3@l
/* 800DB3E8 000D8328 81 0D 8D DC */ lwz r8, lbl_8051545C@sda21(r13)
/* 800DB3EC 000D832C 54 C6 F0 BE */ srwi r6, r6, 2
/* 800DB3F0 000D8330 7C A5 30 16 */ mulhwu r5, r5, r6
/* 800DB3F4 000D8334 54 A5 D1 BE */ srwi r5, r5, 6
/* 800DB3F8 000D8338 1C A5 00 C8 */ mulli r5, r5, 0xc8
/* 800DB3FC 000D833C 7C C8 20 10 */ subfc r6, r8, r4
/* 800DB400 000D8340 7C 67 19 10 */ subfe r3, r7, r3
/* 800DB404 000D8344 38 00 00 00 */ li r0, 0
/* 800DB408 000D8348 6C 64 80 00 */ xoris r4, r3, 0x8000
/* 800DB40C 000D834C 6C 03 80 00 */ xoris r3, r0, 0x8000
/* 800DB410 000D8350 7C 05 30 10 */ subfc r0, r5, r6
/* 800DB414 000D8354 7C 63 21 10 */ subfe r3, r3, r4
/* 800DB418 000D8358 7C 64 21 10 */ subfe r3, r4, r4
/* 800DB41C 000D835C 7C 63 00 D1 */ neg. r3, r3
/* 800DB420 000D8360 41 82 00 4C */ beq .L_800DB46C
/* 800DB424 000D8364 3B 7F 60 00 */ addi r27, r31, 0x6000
/* 800DB428 000D8368 84 1B 00 04 */ lwzu r0, 4(r27)
/* 800DB42C 000D836C 54 03 07 7A */ rlwinm r3, r0, 0, 0x1d, 0x1d
/* 800DB430 000D8370 54 00 0F 7A */ rlwinm r0, r0, 1, 0x1d, 0x1d
/* 800DB434 000D8374 7C 60 00 38 */ and r0, r3, r0
/* 800DB438 000D8378 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 800DB43C 000D837C 41 82 00 24 */ beq .L_800DB460
/* 800DB440 000D8380 81 8D 8D D4 */ lwz r12, ResetCoverCallback@sda21(r13)
/* 800DB444 000D8384 28 0C 00 00 */ cmplwi r12, 0
/* 800DB448 000D8388 41 82 00 10 */ beq .L_800DB458
/* 800DB44C 000D838C 7D 88 03 A6 */ mtlr r12
/* 800DB450 000D8390 38 60 00 04 */ li r3, 4
/* 800DB454 000D8394 4E 80 00 21 */ blrl
.L_800DB458:
/* 800DB458 000D8398 38 00 00 00 */ li r0, 0
/* 800DB45C 000D839C 90 0D 8D D4 */ stw r0, ResetCoverCallback@sda21(r13)
.L_800DB460:
/* 800DB460 000D83A0 80 1B 00 00 */ lwz r0, 0(r27)
/* 800DB464 000D83A4 90 1B 00 00 */ stw r0, 0(r27)
/* 800DB468 000D83A8 48 00 00 58 */ b .L_800DB4C0
.L_800DB46C:
/* 800DB46C 000D83AC 80 0D 8D E4 */ lwz r0, WaitingCoverClose@sda21(r13)
/* 800DB470 000D83B0 2C 00 00 00 */ cmpwi r0, 0
/* 800DB474 000D83B4 41 82 00 40 */ beq .L_800DB4B4
/* 800DB478 000D83B8 3C 60 CC 00 */ lis r3, 0xCC006000@ha
/* 800DB47C 000D83BC 38 A3 60 00 */ addi r5, r3, 0xCC006000@l
/* 800DB480 000D83C0 84 05 00 04 */ lwzu r0, 4(r5)
/* 800DB484 000D83C4 54 04 07 BC */ rlwinm r4, r0, 0, 0x1e, 0x1e
/* 800DB488 000D83C8 54 03 07 7A */ rlwinm r3, r0, 0, 0x1d, 0x1d
/* 800DB48C 000D83CC 54 00 0F 7A */ rlwinm r0, r0, 1, 0x1d, 0x1d
/* 800DB490 000D83D0 7C 63 00 38 */ and r3, r3, r0
/* 800DB494 000D83D4 54 60 07 7B */ rlwinm. r0, r3, 0, 0x1d, 0x1d
/* 800DB498 000D83D8 41 82 00 08 */ beq .L_800DB4A0
/* 800DB49C 000D83DC 63 BD 00 04 */ ori r29, r29, 4
.L_800DB4A0:
/* 800DB4A0 000D83E0 7C 60 23 78 */ or r0, r3, r4
/* 800DB4A4 000D83E4 90 05 00 00 */ stw r0, 0(r5)
/* 800DB4A8 000D83E8 38 00 00 00 */ li r0, 0
/* 800DB4AC 000D83EC 90 0D 8D E4 */ stw r0, WaitingCoverClose@sda21(r13)
/* 800DB4B0 000D83F0 48 00 00 10 */ b .L_800DB4C0
.L_800DB4B4:
/* 800DB4B4 000D83F4 3C 60 CC 00 */ lis r3, 0xCC006004@ha
/* 800DB4B8 000D83F8 38 00 00 00 */ li r0, 0
/* 800DB4BC 000D83FC 90 03 60 04 */ stw r0, 0xCC006004@l(r3)
.L_800DB4C0:
/* 800DB4C0 000D8400 57 A0 07 39 */ rlwinm. r0, r29, 0, 0x1c, 0x1c
/* 800DB4C4 000D8404 41 82 00 14 */ beq .L_800DB4D8
/* 800DB4C8 000D8408 80 0D 8D E8 */ lwz r0, Breaking@sda21(r13)
/* 800DB4CC 000D840C 2C 00 00 00 */ cmpwi r0, 0
/* 800DB4D0 000D8410 40 82 00 08 */ bne .L_800DB4D8
/* 800DB4D4 000D8414 57 BD 07 76 */ rlwinm r29, r29, 0, 0x1d, 0x1b
.L_800DB4D8:
/* 800DB4D8 000D8418 57 A0 07 FF */ clrlwi. r0, r29, 0x1f
/* 800DB4DC 000D841C 41 82 00 80 */ beq .L_800DB55C
/* 800DB4E0 000D8420 80 0D 8E 0C */ lwz r0, NextCommandNumber@sda21(r13)
/* 800DB4E4 000D8424 1C 00 00 14 */ mulli r0, r0, 0x14
/* 800DB4E8 000D8428 7C 7E 00 2E */ lwzx r3, r30, r0
/* 800DB4EC 000D842C 2C 03 00 01 */ cmpwi r3, 1
/* 800DB4F0 000D8430 40 82 00 30 */ bne .L_800DB520
/* 800DB4F4 000D8434 80 6D 8E 0C */ lwz r3, NextCommandNumber@sda21(r13)
/* 800DB4F8 000D8438 7C DE 02 14 */ add r6, r30, r0
/* 800DB4FC 000D843C 38 03 00 01 */ addi r0, r3, 1
/* 800DB500 000D8440 90 0D 8E 0C */ stw r0, NextCommandNumber@sda21(r13)
/* 800DB504 000D8444 80 66 00 04 */ lwz r3, 4(r6)
/* 800DB508 000D8448 80 86 00 08 */ lwz r4, 8(r6)
/* 800DB50C 000D844C 80 A6 00 0C */ lwz r5, 0xc(r6)
/* 800DB510 000D8450 80 C6 00 10 */ lwz r6, 0x10(r6)
/* 800DB514 000D8454 48 00 01 B1 */ bl Read
/* 800DB518 000D8458 38 00 00 01 */ li r0, 1
/* 800DB51C 000D845C 48 00 00 34 */ b .L_800DB550
.L_800DB520:
/* 800DB520 000D8460 2C 03 00 02 */ cmpwi r3, 2
/* 800DB524 000D8464 40 82 00 28 */ bne .L_800DB54C
/* 800DB528 000D8468 80 6D 8E 0C */ lwz r3, NextCommandNumber@sda21(r13)
/* 800DB52C 000D846C 7C 9E 02 14 */ add r4, r30, r0
/* 800DB530 000D8470 38 03 00 01 */ addi r0, r3, 1
/* 800DB534 000D8474 90 0D 8E 0C */ stw r0, NextCommandNumber@sda21(r13)
/* 800DB538 000D8478 80 64 00 0C */ lwz r3, 0xc(r4)
/* 800DB53C 000D847C 80 84 00 10 */ lwz r4, 0x10(r4)
/* 800DB540 000D8480 48 00 05 AD */ bl DVDLowSeek
/* 800DB544 000D8484 38 00 00 01 */ li r0, 1
/* 800DB548 000D8488 48 00 00 08 */ b .L_800DB550
.L_800DB54C:
/* 800DB54C 000D848C 38 00 00 00 */ li r0, 0
.L_800DB550:
/* 800DB550 000D8490 2C 00 00 00 */ cmpwi r0, 0
/* 800DB554 000D8494 41 82 00 18 */ beq .L_800DB56C
/* 800DB558 000D8498 48 00 00 64 */ b .L_800DB5BC
.L_800DB55C:
/* 800DB55C 000D849C 38 00 FF FF */ li r0, -1
/* 800DB560 000D84A0 90 1E 00 00 */ stw r0, 0(r30)
/* 800DB564 000D84A4 38 00 00 00 */ li r0, 0
/* 800DB568 000D84A8 90 0D 8E 0C */ stw r0, NextCommandNumber@sda21(r13)
.L_800DB56C:
/* 800DB56C 000D84AC 38 61 00 10 */ addi r3, r1, 0x10
/* 800DB570 000D84B0 48 01 1B FD */ bl OSClearContext
/* 800DB574 000D84B4 38 61 00 10 */ addi r3, r1, 0x10
/* 800DB578 000D84B8 48 01 1A 2D */ bl OSSetCurrentContext
/* 800DB57C 000D84BC 28 1D 00 00 */ cmplwi r29, 0
/* 800DB580 000D84C0 41 82 00 2C */ beq .L_800DB5AC
/* 800DB584 000D84C4 81 8D 8D D0 */ lwz r12, Callback_1@sda21(r13)
/* 800DB588 000D84C8 38 00 00 00 */ li r0, 0
/* 800DB58C 000D84CC 28 0C 00 00 */ cmplwi r12, 0
/* 800DB590 000D84D0 90 0D 8D D0 */ stw r0, Callback_1@sda21(r13)
/* 800DB594 000D84D4 41 82 00 10 */ beq .L_800DB5A4
/* 800DB598 000D84D8 7D 88 03 A6 */ mtlr r12
/* 800DB59C 000D84DC 38 7D 00 00 */ addi r3, r29, 0
/* 800DB5A0 000D84E0 4E 80 00 21 */ blrl
.L_800DB5A4:
/* 800DB5A4 000D84E4 38 00 00 00 */ li r0, 0
/* 800DB5A8 000D84E8 90 0D 8D E8 */ stw r0, Breaking@sda21(r13)
.L_800DB5AC:
/* 800DB5AC 000D84EC 38 61 00 10 */ addi r3, r1, 0x10
/* 800DB5B0 000D84F0 48 01 1B BD */ bl OSClearContext
/* 800DB5B4 000D84F4 7F 83 E3 78 */ mr r3, r28
/* 800DB5B8 000D84F8 48 01 19 ED */ bl OSSetCurrentContext
.L_800DB5BC:
/* 800DB5BC 000D84FC BB 61 02 DC */ lmw r27, 0x2dc(r1)
/* 800DB5C0 000D8500 80 01 02 F4 */ lwz r0, 0x2f4(r1)
/* 800DB5C4 000D8504 38 21 02 F0 */ addi r1, r1, 0x2f0
/* 800DB5C8 000D8508 7C 08 03 A6 */ mtlr r0
/* 800DB5CC 000D850C 4E 80 00 20 */ blr
.global AlarmHandler
AlarmHandler:
/* 800DB5D0 000D8510 7C 08 02 A6 */ mflr r0
/* 800DB5D4 000D8514 3C 60 80 4F */ lis r3, CommandList@ha
/* 800DB5D8 000D8518 90 01 00 04 */ stw r0, 4(r1)
/* 800DB5DC 000D851C 38 83 5D 30 */ addi r4, r3, CommandList@l
/* 800DB5E0 000D8520 94 21 FF F8 */ stwu r1, -8(r1)
/* 800DB5E4 000D8524 80 0D 8E 0C */ lwz r0, NextCommandNumber@sda21(r13)
/* 800DB5E8 000D8528 1C 00 00 14 */ mulli r0, r0, 0x14
/* 800DB5EC 000D852C 7C 64 00 2E */ lwzx r3, r4, r0
/* 800DB5F0 000D8530 2C 03 00 01 */ cmpwi r3, 1
/* 800DB5F4 000D8534 40 82 00 2C */ bne .L_800DB620
/* 800DB5F8 000D8538 80 6D 8E 0C */ lwz r3, NextCommandNumber@sda21(r13)
/* 800DB5FC 000D853C 7C C4 02 14 */ add r6, r4, r0
/* 800DB600 000D8540 38 03 00 01 */ addi r0, r3, 1
/* 800DB604 000D8544 90 0D 8E 0C */ stw r0, NextCommandNumber@sda21(r13)
/* 800DB608 000D8548 80 66 00 04 */ lwz r3, 4(r6)
/* 800DB60C 000D854C 80 86 00 08 */ lwz r4, 8(r6)
/* 800DB610 000D8550 80 A6 00 0C */ lwz r5, 0xc(r6)
/* 800DB614 000D8554 80 C6 00 10 */ lwz r6, 0x10(r6)
/* 800DB618 000D8558 48 00 00 AD */ bl Read
/* 800DB61C 000D855C 48 00 00 28 */ b .L_800DB644
.L_800DB620:
/* 800DB620 000D8560 2C 03 00 02 */ cmpwi r3, 2
/* 800DB624 000D8564 40 82 00 20 */ bne .L_800DB644
/* 800DB628 000D8568 80 6D 8E 0C */ lwz r3, NextCommandNumber@sda21(r13)
/* 800DB62C 000D856C 7C 84 02 14 */ add r4, r4, r0
/* 800DB630 000D8570 38 03 00 01 */ addi r0, r3, 1
/* 800DB634 000D8574 90 0D 8E 0C */ stw r0, NextCommandNumber@sda21(r13)
/* 800DB638 000D8578 80 64 00 0C */ lwz r3, 0xc(r4)
/* 800DB63C 000D857C 80 84 00 10 */ lwz r4, 0x10(r4)
/* 800DB640 000D8580 48 00 04 AD */ bl DVDLowSeek
.L_800DB644:
/* 800DB644 000D8584 80 01 00 0C */ lwz r0, 0xc(r1)
/* 800DB648 000D8588 38 21 00 08 */ addi r1, r1, 8
/* 800DB64C 000D858C 7C 08 03 A6 */ mtlr r0
/* 800DB650 000D8590 4E 80 00 20 */ blr
.global AlarmHandlerForTimeout
AlarmHandlerForTimeout:
/* 800DB654 000D8594 7C 08 02 A6 */ mflr r0
/* 800DB658 000D8598 38 60 04 00 */ li r3, 0x400
/* 800DB65C 000D859C 90 01 00 04 */ stw r0, 4(r1)
/* 800DB660 000D85A0 94 21 FD 20 */ stwu r1, -0x2e0(r1)
/* 800DB664 000D85A4 93 E1 02 DC */ stw r31, 0x2dc(r1)
/* 800DB668 000D85A8 3B E4 00 00 */ addi r31, r4, 0
/* 800DB66C 000D85AC 48 01 39 95 */ bl __OSMaskInterrupts
/* 800DB670 000D85B0 38 61 00 10 */ addi r3, r1, 0x10
/* 800DB674 000D85B4 48 01 1A F9 */ bl OSClearContext
/* 800DB678 000D85B8 38 61 00 10 */ addi r3, r1, 0x10
/* 800DB67C 000D85BC 48 01 19 29 */ bl OSSetCurrentContext
/* 800DB680 000D85C0 81 8D 8D D0 */ lwz r12, Callback_1@sda21(r13)
/* 800DB684 000D85C4 38 00 00 00 */ li r0, 0
/* 800DB688 000D85C8 28 0C 00 00 */ cmplwi r12, 0
/* 800DB68C 000D85CC 90 0D 8D D0 */ stw r0, Callback_1@sda21(r13)
/* 800DB690 000D85D0 41 82 00 10 */ beq .L_800DB6A0
/* 800DB694 000D85D4 7D 88 03 A6 */ mtlr r12
/* 800DB698 000D85D8 38 60 00 10 */ li r3, 0x10
/* 800DB69C 000D85DC 4E 80 00 21 */ blrl
.L_800DB6A0:
/* 800DB6A0 000D85E0 38 61 00 10 */ addi r3, r1, 0x10
/* 800DB6A4 000D85E4 48 01 1A C9 */ bl OSClearContext
/* 800DB6A8 000D85E8 7F E3 FB 78 */ mr r3, r31
/* 800DB6AC 000D85EC 48 01 18 F9 */ bl OSSetCurrentContext
/* 800DB6B0 000D85F0 80 01 02 E4 */ lwz r0, 0x2e4(r1)
/* 800DB6B4 000D85F4 83 E1 02 DC */ lwz r31, 0x2dc(r1)
/* 800DB6B8 000D85F8 38 21 02 E0 */ addi r1, r1, 0x2e0
/* 800DB6BC 000D85FC 7C 08 03 A6 */ mtlr r0
/* 800DB6C0 000D8600 4E 80 00 20 */ blr
.global Read
Read:
/* 800DB6C4 000D8604 7C 08 02 A6 */ mflr r0
/* 800DB6C8 000D8608 90 01 00 04 */ stw r0, 4(r1)
/* 800DB6CC 000D860C 38 00 00 00 */ li r0, 0
/* 800DB6D0 000D8610 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 800DB6D4 000D8614 93 E1 00 24 */ stw r31, 0x24(r1)
/* 800DB6D8 000D8618 93 C1 00 20 */ stw r30, 0x20(r1)
/* 800DB6DC 000D861C 3B C5 00 00 */ addi r30, r5, 0
/* 800DB6E0 000D8620 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 800DB6E4 000D8624 3B A4 00 00 */ addi r29, r4, 0
/* 800DB6E8 000D8628 93 81 00 18 */ stw r28, 0x18(r1)
/* 800DB6EC 000D862C 3B 83 00 00 */ addi r28, r3, 0
/* 800DB6F0 000D8630 90 0D 8D C8 */ stw r0, StopAtNextInt@sda21(r13)
/* 800DB6F4 000D8634 38 00 00 01 */ li r0, 1
/* 800DB6F8 000D8638 90 CD 8D D0 */ stw r6, Callback_1@sda21(r13)
/* 800DB6FC 000D863C 3C C0 80 4F */ lis r6, CommandList@ha
/* 800DB700 000D8640 3B E6 5D 30 */ addi r31, r6, CommandList@l
/* 800DB704 000D8644 90 0D 8E 08 */ stw r0, LastCommandWasRead@sda21(r13)
/* 800DB708 000D8648 48 01 74 A9 */ bl __OSGetSystemTime
/* 800DB70C 000D864C 90 8D 8E 04 */ stw r4, lbl_80515484@sda21(r13)
/* 800DB710 000D8650 3C 80 CC 00 */ lis r4, 0xCC006000@ha
/* 800DB714 000D8654 3C 00 00 A0 */ lis r0, 0xa0
/* 800DB718 000D8658 90 6D 8E 00 */ stw r3, LastReadIssued@sda21(r13)
/* 800DB71C 000D865C 38 84 60 00 */ addi r4, r4, 0xCC006000@l
/* 800DB720 000D8660 3C 60 A8 00 */ lis r3, 0xa800
/* 800DB724 000D8664 90 64 00 08 */ stw r3, 8(r4)
/* 800DB728 000D8668 57 C3 F0 BE */ srwi r3, r30, 2
/* 800DB72C 000D866C 7C 1D 00 40 */ cmplw r29, r0
/* 800DB730 000D8670 90 64 00 0C */ stw r3, 0xc(r4)
/* 800DB734 000D8674 38 00 00 03 */ li r0, 3
/* 800DB738 000D8678 93 A4 00 10 */ stw r29, 0x10(r4)
/* 800DB73C 000D867C 93 84 00 14 */ stw r28, 0x14(r4)
/* 800DB740 000D8680 93 A4 00 18 */ stw r29, 0x18(r4)
/* 800DB744 000D8684 93 AD 8D CC */ stw r29, LastLength@sda21(r13)
/* 800DB748 000D8688 90 04 00 1C */ stw r0, 0x1c(r4)
/* 800DB74C 000D868C 40 81 00 38 */ ble .L_800DB784
/* 800DB750 000D8690 3C 60 80 00 */ lis r3, 0x800000F8@ha
/* 800DB754 000D8694 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
/* 800DB758 000D8698 38 7F 00 68 */ addi r3, r31, 0x68
/* 800DB75C 000D869C 54 00 F0 BE */ srwi r0, r0, 2
/* 800DB760 000D86A0 1F C0 00 14 */ mulli r30, r0, 0x14
/* 800DB764 000D86A4 48 01 03 A9 */ bl OSCreateAlarm
/* 800DB768 000D86A8 3C 60 80 0E */ lis r3, AlarmHandlerForTimeout@ha
/* 800DB76C 000D86AC 38 E3 B6 54 */ addi r7, r3, AlarmHandlerForTimeout@l
/* 800DB770 000D86B0 38 DE 00 00 */ addi r6, r30, 0
/* 800DB774 000D86B4 38 7F 00 68 */ addi r3, r31, 0x68
/* 800DB778 000D86B8 38 A0 00 00 */ li r5, 0
/* 800DB77C 000D86BC 48 01 05 F1 */ bl OSSetAlarm
/* 800DB780 000D86C0 48 00 00 34 */ b .L_800DB7B4
.L_800DB784:
/* 800DB784 000D86C4 3C 60 80 00 */ lis r3, 0x800000F8@ha
/* 800DB788 000D86C8 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
/* 800DB78C 000D86CC 38 7F 00 68 */ addi r3, r31, 0x68
/* 800DB790 000D86D0 54 00 F0 BE */ srwi r0, r0, 2
/* 800DB794 000D86D4 1F C0 00 0A */ mulli r30, r0, 0xa
/* 800DB798 000D86D8 48 01 03 75 */ bl OSCreateAlarm
/* 800DB79C 000D86DC 3C 60 80 0E */ lis r3, AlarmHandlerForTimeout@ha
/* 800DB7A0 000D86E0 38 E3 B6 54 */ addi r7, r3, AlarmHandlerForTimeout@l
/* 800DB7A4 000D86E4 38 DE 00 00 */ addi r6, r30, 0
/* 800DB7A8 000D86E8 38 7F 00 68 */ addi r3, r31, 0x68
/* 800DB7AC 000D86EC 38 A0 00 00 */ li r5, 0
/* 800DB7B0 000D86F0 48 01 05 BD */ bl OSSetAlarm
.L_800DB7B4:
/* 800DB7B4 000D86F4 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 800DB7B8 000D86F8 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 800DB7BC 000D86FC 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 800DB7C0 000D8700 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 800DB7C4 000D8704 83 81 00 18 */ lwz r28, 0x18(r1)
/* 800DB7C8 000D8708 38 21 00 28 */ addi r1, r1, 0x28
/* 800DB7CC 000D870C 7C 08 03 A6 */ mtlr r0
/* 800DB7D0 000D8710 4E 80 00 20 */ blr
.global SeekTwiceBeforeRead
SeekTwiceBeforeRead:
/* 800DB7D4 000D8714 7C 08 02 A6 */ mflr r0
/* 800DB7D8 000D8718 3C E0 80 4F */ lis r7, CommandList@ha
/* 800DB7DC 000D871C 90 01 00 04 */ stw r0, 4(r1)
/* 800DB7E0 000D8720 54 A8 00 21 */ rlwinm. r8, r5, 0, 0, 0x10
/* 800DB7E4 000D8724 39 27 5D 30 */ addi r9, r7, CommandList@l
/* 800DB7E8 000D8728 94 21 FF F8 */ stwu r1, -8(r1)
/* 800DB7EC 000D872C 40 82 00 0C */ bne .L_800DB7F8
/* 800DB7F0 000D8730 39 40 00 00 */ li r10, 0
/* 800DB7F4 000D8734 48 00 00 0C */ b .L_800DB800
.L_800DB7F8:
/* 800DB7F8 000D8738 80 0D 8D F0 */ lwz r0, WorkAroundSeekLocation@sda21(r13)
/* 800DB7FC 000D873C 7D 48 02 14 */ add r10, r8, r0
.L_800DB800:
/* 800DB800 000D8740 38 00 00 02 */ li r0, 2
/* 800DB804 000D8744 90 09 00 00 */ stw r0, 0(r9)
/* 800DB808 000D8748 39 00 00 01 */ li r8, 1
/* 800DB80C 000D874C 38 E0 FF FF */ li r7, -1
/* 800DB810 000D8750 91 49 00 0C */ stw r10, 0xc(r9)
/* 800DB814 000D8754 38 00 00 00 */ li r0, 0
/* 800DB818 000D8758 90 C9 00 10 */ stw r6, 0x10(r9)
/* 800DB81C 000D875C 91 09 00 14 */ stw r8, 0x14(r9)
/* 800DB820 000D8760 90 69 00 18 */ stw r3, 0x18(r9)
/* 800DB824 000D8764 7D 43 53 78 */ mr r3, r10
/* 800DB828 000D8768 90 89 00 1C */ stw r4, 0x1c(r9)
/* 800DB82C 000D876C 7C C4 33 78 */ mr r4, r6
/* 800DB830 000D8770 90 A9 00 20 */ stw r5, 0x20(r9)
/* 800DB834 000D8774 90 C9 00 24 */ stw r6, 0x24(r9)
/* 800DB838 000D8778 90 E9 00 28 */ stw r7, 0x28(r9)
/* 800DB83C 000D877C 90 0D 8E 0C */ stw r0, NextCommandNumber@sda21(r13)
/* 800DB840 000D8780 48 00 02 AD */ bl DVDLowSeek
/* 800DB844 000D8784 80 01 00 0C */ lwz r0, 0xc(r1)
/* 800DB848 000D8788 38 21 00 08 */ addi r1, r1, 8
/* 800DB84C 000D878C 7C 08 03 A6 */ mtlr r0
/* 800DB850 000D8790 4E 80 00 20 */ blr
.global DVDLowRead
DVDLowRead:
/* 800DB854 000D8794 7C 08 02 A6 */ mflr r0
/* 800DB858 000D8798 3C E0 CC 00 */ lis r7, 0xCC006000@ha
/* 800DB85C 000D879C 90 01 00 04 */ stw r0, 4(r1)
/* 800DB860 000D87A0 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 800DB864 000D87A4 BE C1 00 18 */ stmw r22, 0x18(r1)
/* 800DB868 000D87A8 3B 24 00 00 */ addi r25, r4, 0
/* 800DB86C 000D87AC 38 87 60 00 */ addi r4, r7, 0xCC006000@l
/* 800DB870 000D87B0 3C E0 80 4F */ lis r7, CommandList@ha
/* 800DB874 000D87B4 3B E7 5D 30 */ addi r31, r7, CommandList@l
/* 800DB878 000D87B8 3B 03 00 00 */ addi r24, r3, 0
/* 800DB87C 000D87BC 3B 45 00 00 */ addi r26, r5, 0
/* 800DB880 000D87C0 3B DF 00 CC */ addi r30, r31, 0xcc
/* 800DB884 000D87C4 7C DB 33 78 */ mr r27, r6
/* 800DB888 000D87C8 93 24 00 18 */ stw r25, 0x18(r4)
/* 800DB88C 000D87CC 93 1F 00 C4 */ stw r24, 0xc4(r31)
/* 800DB890 000D87D0 93 3F 00 C8 */ stw r25, 0xc8(r31)
/* 800DB894 000D87D4 93 5F 00 CC */ stw r26, 0xcc(r31)
/* 800DB898 000D87D8 80 0D 8D EC */ lwz r0, WorkAroundType@sda21(r13)
/* 800DB89C 000D87DC 28 00 00 00 */ cmplwi r0, 0
/* 800DB8A0 000D87E0 40 82 00 2C */ bne .L_800DB8CC
/* 800DB8A4 000D87E4 38 00 FF FF */ li r0, -1
/* 800DB8A8 000D87E8 90 1F 00 00 */ stw r0, 0(r31)
/* 800DB8AC 000D87EC 38 00 00 00 */ li r0, 0
/* 800DB8B0 000D87F0 38 78 00 00 */ addi r3, r24, 0
/* 800DB8B4 000D87F4 90 0D 8E 0C */ stw r0, NextCommandNumber@sda21(r13)
/* 800DB8B8 000D87F8 38 99 00 00 */ addi r4, r25, 0
/* 800DB8BC 000D87FC 38 BA 00 00 */ addi r5, r26, 0
/* 800DB8C0 000D8800 38 DB 00 00 */ addi r6, r27, 0
/* 800DB8C4 000D8804 4B FF FE 01 */ bl Read
/* 800DB8C8 000D8808 48 00 02 0C */ b .L_800DBAD4
.L_800DB8CC:
/* 800DB8CC 000D880C 80 0D 8D EC */ lwz r0, WorkAroundType@sda21(r13)
/* 800DB8D0 000D8810 28 00 00 01 */ cmplwi r0, 1
/* 800DB8D4 000D8814 40 82 02 00 */ bne .L_800DBAD4
/* 800DB8D8 000D8818 80 0D 82 A8 */ lwz r0, FirstRead@sda21(r13)
/* 800DB8DC 000D881C 2C 00 00 00 */ cmpwi r0, 0
/* 800DB8E0 000D8820 41 82 00 1C */ beq .L_800DB8FC
/* 800DB8E4 000D8824 38 78 00 00 */ addi r3, r24, 0
/* 800DB8E8 000D8828 38 99 00 00 */ addi r4, r25, 0
/* 800DB8EC 000D882C 38 BA 00 00 */ addi r5, r26, 0
/* 800DB8F0 000D8830 38 DB 00 00 */ addi r6, r27, 0
/* 800DB8F4 000D8834 4B FF FE E1 */ bl SeekTwiceBeforeRead
/* 800DB8F8 000D8838 48 00 01 DC */ b .L_800DBAD4
.L_800DB8FC:
/* 800DB8FC 000D883C 3B BF 00 BC */ addi r29, r31, 0xbc
/* 800DB900 000D8840 80 1E 00 00 */ lwz r0, 0(r30)
/* 800DB904 000D8844 3B 9F 00 C0 */ addi r28, r31, 0xc0
/* 800DB908 000D8848 80 7F 00 BC */ lwz r3, 0xbc(r31)
/* 800DB90C 000D884C 80 9F 00 C0 */ lwz r4, 0xc0(r31)
/* 800DB910 000D8850 54 17 8B FE */ srwi r23, r0, 0xf
/* 800DB914 000D8854 38 03 FF FF */ addi r0, r3, -1
/* 800DB918 000D8858 7C 04 02 14 */ add r0, r4, r0
/* 800DB91C 000D885C 54 16 8B FE */ srwi r22, r0, 0xf
/* 800DB920 000D8860 48 00 38 E9 */ bl DVDGetCurrentDiskID
/* 800DB924 000D8864 88 03 00 08 */ lbz r0, 8(r3)
/* 800DB928 000D8868 28 00 00 00 */ cmplwi r0, 0
/* 800DB92C 000D886C 41 82 00 0C */ beq .L_800DB938
/* 800DB930 000D8870 38 00 00 01 */ li r0, 1
/* 800DB934 000D8874 48 00 00 08 */ b .L_800DB93C
.L_800DB938:
/* 800DB938 000D8878 38 00 00 00 */ li r0, 0
.L_800DB93C:
/* 800DB93C 000D887C 2C 00 00 00 */ cmpwi r0, 0
/* 800DB940 000D8880 41 82 00 0C */ beq .L_800DB94C
/* 800DB944 000D8884 38 60 00 05 */ li r3, 5
/* 800DB948 000D8888 48 00 00 08 */ b .L_800DB950
.L_800DB94C:
/* 800DB94C 000D888C 38 60 00 0F */ li r3, 0xf
.L_800DB950:
/* 800DB950 000D8890 38 16 FF FE */ addi r0, r22, -2
/* 800DB954 000D8894 7C 17 00 40 */ cmplw r23, r0
/* 800DB958 000D8898 41 81 00 14 */ bgt .L_800DB96C
/* 800DB95C 000D889C 38 03 00 03 */ addi r0, r3, 3
/* 800DB960 000D88A0 7C 16 02 14 */ add r0, r22, r0
/* 800DB964 000D88A4 7C 17 00 40 */ cmplw r23, r0
/* 800DB968 000D88A8 40 80 00 0C */ bge .L_800DB974
.L_800DB96C:
/* 800DB96C 000D88AC 38 00 00 01 */ li r0, 1
/* 800DB970 000D88B0 48 00 00 08 */ b .L_800DB978
.L_800DB974:
/* 800DB974 000D88B4 38 00 00 00 */ li r0, 0
.L_800DB978:
/* 800DB978 000D88B8 2C 00 00 00 */ cmpwi r0, 0
/* 800DB97C 000D88BC 40 82 00 2C */ bne .L_800DB9A8
/* 800DB980 000D88C0 38 00 FF FF */ li r0, -1
/* 800DB984 000D88C4 90 1F 00 00 */ stw r0, 0(r31)
/* 800DB988 000D88C8 38 00 00 00 */ li r0, 0
/* 800DB98C 000D88CC 38 78 00 00 */ addi r3, r24, 0
/* 800DB990 000D88D0 90 0D 8E 0C */ stw r0, NextCommandNumber@sda21(r13)
/* 800DB994 000D88D4 38 99 00 00 */ addi r4, r25, 0
/* 800DB998 000D88D8 38 BA 00 00 */ addi r5, r26, 0
/* 800DB99C 000D88DC 38 DB 00 00 */ addi r6, r27, 0
/* 800DB9A0 000D88E0 4B FF FD 25 */ bl Read
/* 800DB9A4 000D88E4 48 00 01 30 */ b .L_800DBAD4
.L_800DB9A8:
/* 800DB9A8 000D88E8 80 7D 00 00 */ lwz r3, 0(r29)
/* 800DB9AC 000D88EC 80 9C 00 00 */ lwz r4, 0(r28)
/* 800DB9B0 000D88F0 38 63 FF FF */ addi r3, r3, -1
/* 800DB9B4 000D88F4 80 1E 00 00 */ lwz r0, 0(r30)
/* 800DB9B8 000D88F8 7C 64 1A 14 */ add r3, r4, r3
/* 800DB9BC 000D88FC 54 63 8B FE */ srwi r3, r3, 0xf
/* 800DB9C0 000D8900 54 04 8B FE */ srwi r4, r0, 0xf
/* 800DB9C4 000D8904 7C 03 20 40 */ cmplw r3, r4
/* 800DB9C8 000D8908 41 82 00 10 */ beq .L_800DB9D8
/* 800DB9CC 000D890C 38 03 00 01 */ addi r0, r3, 1
/* 800DB9D0 000D8910 7C 00 20 40 */ cmplw r0, r4
/* 800DB9D4 000D8914 40 82 00 EC */ bne .L_800DBAC0
.L_800DB9D8:
/* 800DB9D8 000D8918 48 01 71 D9 */ bl __OSGetSystemTime
/* 800DB9DC 000D891C 3C A0 80 00 */ lis r5, 0x800000F8@ha
/* 800DB9E0 000D8920 81 0D 8D F8 */ lwz r8, LastReadFinished@sda21(r13)
/* 800DB9E4 000D8924 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
/* 800DB9E8 000D8928 3C A0 10 62 */ lis r5, 0x10624DD3@ha
/* 800DB9EC 000D892C 81 2D 8D FC */ lwz r9, lbl_8051547C@sda21(r13)
/* 800DB9F0 000D8930 38 C0 00 00 */ li r6, 0
/* 800DB9F4 000D8934 54 07 F0 BE */ srwi r7, r0, 2
/* 800DB9F8 000D8938 38 05 4D D3 */ addi r0, r5, 0x10624DD3@l
/* 800DB9FC 000D893C 7C 00 38 16 */ mulhwu r0, r0, r7
/* 800DBA00 000D8940 54 00 D1 BE */ srwi r0, r0, 6
/* 800DBA04 000D8944 7D 29 20 10 */ subfc r9, r9, r4
/* 800DBA08 000D8948 7D 08 19 10 */ subfe r8, r8, r3
/* 800DBA0C 000D894C 1C A0 00 05 */ mulli r5, r0, 5
/* 800DBA10 000D8950 6C C4 80 00 */ xoris r4, r6, 0x8000
/* 800DBA14 000D8954 6D 03 80 00 */ xoris r3, r8, 0x8000
/* 800DBA18 000D8958 7C 09 28 10 */ subfc r0, r9, r5
/* 800DBA1C 000D895C 7C 63 21 10 */ subfe r3, r3, r4
/* 800DBA20 000D8960 7C 64 21 10 */ subfe r3, r4, r4
/* 800DBA24 000D8964 7C 63 00 D1 */ neg. r3, r3
/* 800DBA28 000D8968 41 82 00 28 */ beq .L_800DBA50
/* 800DBA2C 000D896C 38 00 FF FF */ li r0, -1
/* 800DBA30 000D8970 90 1F 00 00 */ stw r0, 0(r31)
/* 800DBA34 000D8974 38 78 00 00 */ addi r3, r24, 0
/* 800DBA38 000D8978 38 99 00 00 */ addi r4, r25, 0
/* 800DBA3C 000D897C 90 CD 8E 0C */ stw r6, NextCommandNumber@sda21(r13)
/* 800DBA40 000D8980 38 BA 00 00 */ addi r5, r26, 0
/* 800DBA44 000D8984 38 DB 00 00 */ addi r6, r27, 0
/* 800DBA48 000D8988 4B FF FC 7D */ bl Read
/* 800DBA4C 000D898C 48 00 00 88 */ b .L_800DBAD4
.L_800DBA50:
/* 800DBA50 000D8990 38 00 00 01 */ li r0, 1
/* 800DBA54 000D8994 90 1F 00 00 */ stw r0, 0(r31)
/* 800DBA58 000D8998 3C 60 43 1C */ lis r3, 0x431BDE83@ha
/* 800DBA5C 000D899C 38 03 DE 83 */ addi r0, r3, 0x431BDE83@l
/* 800DBA60 000D89A0 93 1F 00 04 */ stw r24, 4(r31)
/* 800DBA64 000D89A4 7C 00 38 16 */ mulhwu r0, r0, r7
/* 800DBA68 000D89A8 93 3F 00 08 */ stw r25, 8(r31)
/* 800DBA6C 000D89AC 93 5F 00 0C */ stw r26, 0xc(r31)
/* 800DBA70 000D89B0 54 00 8B FE */ srwi r0, r0, 0xf
/* 800DBA74 000D89B4 1C 60 01 F4 */ mulli r3, r0, 0x1f4
/* 800DBA78 000D89B8 93 7F 00 10 */ stw r27, 0x10(r31)
/* 800DBA7C 000D89BC 38 00 FF FF */ li r0, -1
/* 800DBA80 000D89C0 90 1F 00 14 */ stw r0, 0x14(r31)
/* 800DBA84 000D89C4 7C A9 28 10 */ subfc r5, r9, r5
/* 800DBA88 000D89C8 7C 88 31 10 */ subfe r4, r8, r6
/* 800DBA8C 000D89CC 54 60 E8 FE */ srwi r0, r3, 3
/* 800DBA90 000D89D0 90 CD 8E 0C */ stw r6, NextCommandNumber@sda21(r13)
/* 800DBA94 000D89D4 7E E5 00 14 */ addc r23, r5, r0
/* 800DBA98 000D89D8 7E C4 31 14 */ adde r22, r4, r6
/* 800DBA9C 000D89DC 38 7F 00 40 */ addi r3, r31, 0x40
/* 800DBAA0 000D89E0 48 01 00 6D */ bl OSCreateAlarm
/* 800DBAA4 000D89E4 3C 60 80 0E */ lis r3, AlarmHandler@ha
/* 800DBAA8 000D89E8 38 E3 B5 D0 */ addi r7, r3, AlarmHandler@l
/* 800DBAAC 000D89EC 38 D7 00 00 */ addi r6, r23, 0
/* 800DBAB0 000D89F0 38 B6 00 00 */ addi r5, r22, 0
/* 800DBAB4 000D89F4 38 7F 00 40 */ addi r3, r31, 0x40
/* 800DBAB8 000D89F8 48 01 02 B5 */ bl OSSetAlarm
/* 800DBABC 000D89FC 48 00 00 18 */ b .L_800DBAD4
.L_800DBAC0:
/* 800DBAC0 000D8A00 38 78 00 00 */ addi r3, r24, 0
/* 800DBAC4 000D8A04 38 99 00 00 */ addi r4, r25, 0
/* 800DBAC8 000D8A08 38 BA 00 00 */ addi r5, r26, 0
/* 800DBACC 000D8A0C 38 DB 00 00 */ addi r6, r27, 0
/* 800DBAD0 000D8A10 4B FF FD 05 */ bl SeekTwiceBeforeRead
.L_800DBAD4:
/* 800DBAD4 000D8A14 BA C1 00 18 */ lmw r22, 0x18(r1)
/* 800DBAD8 000D8A18 38 60 00 01 */ li r3, 1
/* 800DBADC 000D8A1C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 800DBAE0 000D8A20 38 21 00 40 */ addi r1, r1, 0x40
/* 800DBAE4 000D8A24 7C 08 03 A6 */ mtlr r0
/* 800DBAE8 000D8A28 4E 80 00 20 */ blr
.global DVDLowSeek
DVDLowSeek:
/* 800DBAEC 000D8A2C 7C 08 02 A6 */ mflr r0
/* 800DBAF0 000D8A30 90 01 00 04 */ stw r0, 4(r1)
/* 800DBAF4 000D8A34 38 00 00 00 */ li r0, 0
/* 800DBAF8 000D8A38 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800DBAFC 000D8A3C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800DBB00 000D8A40 93 C1 00 10 */ stw r30, 0x10(r1)
/* 800DBB04 000D8A44 90 8D 8D D0 */ stw r4, Callback_1@sda21(r13)
/* 800DBB08 000D8A48 3C 80 CC 00 */ lis r4, 0xCC006000@ha
/* 800DBB0C 000D8A4C 38 84 60 00 */ addi r4, r4, 0xCC006000@l
/* 800DBB10 000D8A50 90 0D 8D C8 */ stw r0, StopAtNextInt@sda21(r13)
/* 800DBB14 000D8A54 3C 00 AB 00 */ lis r0, 0xab00
/* 800DBB18 000D8A58 90 04 00 08 */ stw r0, 8(r4)
/* 800DBB1C 000D8A5C 54 60 F0 BE */ srwi r0, r3, 2
/* 800DBB20 000D8A60 3C 60 80 4F */ lis r3, AlarmForTimeout@ha
/* 800DBB24 000D8A64 90 04 00 0C */ stw r0, 0xc(r4)
/* 800DBB28 000D8A68 38 00 00 01 */ li r0, 1
/* 800DBB2C 000D8A6C 3B E3 5D 98 */ addi r31, r3, AlarmForTimeout@l
/* 800DBB30 000D8A70 90 04 00 1C */ stw r0, 0x1c(r4)
/* 800DBB34 000D8A74 3C 80 80 00 */ lis r4, 0x800000F8@ha
/* 800DBB38 000D8A78 38 7F 00 00 */ addi r3, r31, 0
/* 800DBB3C 000D8A7C 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4)
/* 800DBB40 000D8A80 54 00 F0 BE */ srwi r0, r0, 2
/* 800DBB44 000D8A84 1F C0 00 0A */ mulli r30, r0, 0xa
/* 800DBB48 000D8A88 48 00 FF C5 */ bl OSCreateAlarm
/* 800DBB4C 000D8A8C 3C 60 80 0E */ lis r3, AlarmHandlerForTimeout@ha
/* 800DBB50 000D8A90 38 E3 B6 54 */ addi r7, r3, AlarmHandlerForTimeout@l
/* 800DBB54 000D8A94 38 7F 00 00 */ addi r3, r31, 0
/* 800DBB58 000D8A98 38 DE 00 00 */ addi r6, r30, 0
/* 800DBB5C 000D8A9C 38 A0 00 00 */ li r5, 0
/* 800DBB60 000D8AA0 48 01 02 0D */ bl OSSetAlarm
/* 800DBB64 000D8AA4 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 800DBB68 000D8AA8 38 60 00 01 */ li r3, 1
/* 800DBB6C 000D8AAC 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 800DBB70 000D8AB0 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 800DBB74 000D8AB4 38 21 00 18 */ addi r1, r1, 0x18
/* 800DBB78 000D8AB8 7C 08 03 A6 */ mtlr r0
/* 800DBB7C 000D8ABC 4E 80 00 20 */ blr
.global DVDLowWaitCoverClose
DVDLowWaitCoverClose:
/* 800DBB80 000D8AC0 38 00 00 01 */ li r0, 1
/* 800DBB84 000D8AC4 90 6D 8D D0 */ stw r3, Callback_1@sda21(r13)
/* 800DBB88 000D8AC8 3C 60 CC 00 */ lis r3, 0xCC006000@ha
/* 800DBB8C 000D8ACC 90 0D 8D E4 */ stw r0, WaitingCoverClose@sda21(r13)
/* 800DBB90 000D8AD0 38 00 00 00 */ li r0, 0
/* 800DBB94 000D8AD4 38 83 60 00 */ addi r4, r3, 0xCC006000@l
/* 800DBB98 000D8AD8 90 0D 8D C8 */ stw r0, StopAtNextInt@sda21(r13)
/* 800DBB9C 000D8ADC 38 00 00 02 */ li r0, 2
/* 800DBBA0 000D8AE0 38 60 00 01 */ li r3, 1
/* 800DBBA4 000D8AE4 90 04 00 04 */ stw r0, 4(r4)
/* 800DBBA8 000D8AE8 4E 80 00 20 */ blr
.global DVDLowReadDiskID
DVDLowReadDiskID:
/* 800DBBAC 000D8AEC 7C 08 02 A6 */ mflr r0
/* 800DBBB0 000D8AF0 39 00 00 00 */ li r8, 0
/* 800DBBB4 000D8AF4 90 01 00 04 */ stw r0, 4(r1)
/* 800DBBB8 000D8AF8 3C A0 A8 00 */ lis r5, 0xA8000040@ha
/* 800DBBBC 000D8AFC 38 05 00 40 */ addi r0, r5, 0xA8000040@l
/* 800DBBC0 000D8B00 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800DBBC4 000D8B04 38 C0 00 20 */ li r6, 0x20
/* 800DBBC8 000D8B08 3C A0 80 00 */ lis r5, 0x800000F8@ha
/* 800DBBCC 000D8B0C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800DBBD0 000D8B10 93 C1 00 10 */ stw r30, 0x10(r1)
/* 800DBBD4 000D8B14 90 8D 8D D0 */ stw r4, Callback_1@sda21(r13)
/* 800DBBD8 000D8B18 3C 80 CC 00 */ lis r4, 0xCC006000@ha
/* 800DBBDC 000D8B1C 38 E4 60 00 */ addi r7, r4, 0xCC006000@l
/* 800DBBE0 000D8B20 91 0D 8D C8 */ stw r8, StopAtNextInt@sda21(r13)
/* 800DBBE4 000D8B24 90 04 60 08 */ stw r0, 0x6008(r4)
/* 800DBBE8 000D8B28 3C 80 80 4F */ lis r4, AlarmForTimeout@ha
/* 800DBBEC 000D8B2C 38 00 00 03 */ li r0, 3
/* 800DBBF0 000D8B30 91 07 00 0C */ stw r8, 0xc(r7)
/* 800DBBF4 000D8B34 3B E4 5D 98 */ addi r31, r4, AlarmForTimeout@l
/* 800DBBF8 000D8B38 90 C7 00 10 */ stw r6, 0x10(r7)
/* 800DBBFC 000D8B3C 90 67 00 14 */ stw r3, 0x14(r7)
/* 800DBC00 000D8B40 7F E3 FB 78 */ mr r3, r31
/* 800DBC04 000D8B44 90 C7 00 18 */ stw r6, 0x18(r7)
/* 800DBC08 000D8B48 90 07 00 1C */ stw r0, 0x1c(r7)
/* 800DBC0C 000D8B4C 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
/* 800DBC10 000D8B50 54 00 F0 BE */ srwi r0, r0, 2
/* 800DBC14 000D8B54 1F C0 00 0A */ mulli r30, r0, 0xa
/* 800DBC18 000D8B58 48 00 FE F5 */ bl OSCreateAlarm
/* 800DBC1C 000D8B5C 3C 60 80 0E */ lis r3, AlarmHandlerForTimeout@ha
/* 800DBC20 000D8B60 38 E3 B6 54 */ addi r7, r3, AlarmHandlerForTimeout@l
/* 800DBC24 000D8B64 38 7F 00 00 */ addi r3, r31, 0
/* 800DBC28 000D8B68 38 DE 00 00 */ addi r6, r30, 0
/* 800DBC2C 000D8B6C 38 A0 00 00 */ li r5, 0
/* 800DBC30 000D8B70 48 01 01 3D */ bl OSSetAlarm
/* 800DBC34 000D8B74 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 800DBC38 000D8B78 38 60 00 01 */ li r3, 1
/* 800DBC3C 000D8B7C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 800DBC40 000D8B80 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 800DBC44 000D8B84 38 21 00 18 */ addi r1, r1, 0x18
/* 800DBC48 000D8B88 7C 08 03 A6 */ mtlr r0
/* 800DBC4C 000D8B8C 4E 80 00 20 */ blr
.global DVDLowStopMotor
DVDLowStopMotor:
/* 800DBC50 000D8B90 7C 08 02 A6 */ mflr r0
/* 800DBC54 000D8B94 90 01 00 04 */ stw r0, 4(r1)
/* 800DBC58 000D8B98 38 00 00 00 */ li r0, 0
/* 800DBC5C 000D8B9C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800DBC60 000D8BA0 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800DBC64 000D8BA4 93 C1 00 10 */ stw r30, 0x10(r1)
/* 800DBC68 000D8BA8 90 6D 8D D0 */ stw r3, Callback_1@sda21(r13)
/* 800DBC6C 000D8BAC 3C 60 CC 00 */ lis r3, 0xCC006000@ha
/* 800DBC70 000D8BB0 38 83 60 00 */ addi r4, r3, 0xCC006000@l
/* 800DBC74 000D8BB4 90 0D 8D C8 */ stw r0, StopAtNextInt@sda21(r13)
/* 800DBC78 000D8BB8 3C 00 E3 00 */ lis r0, 0xe300
/* 800DBC7C 000D8BBC 90 03 60 08 */ stw r0, 0x6008(r3)
/* 800DBC80 000D8BC0 38 00 00 01 */ li r0, 1
/* 800DBC84 000D8BC4 3C 60 80 4F */ lis r3, AlarmForTimeout@ha
/* 800DBC88 000D8BC8 90 04 00 1C */ stw r0, 0x1c(r4)
/* 800DBC8C 000D8BCC 3C 80 80 00 */ lis r4, 0x800000F8@ha
/* 800DBC90 000D8BD0 3B E3 5D 98 */ addi r31, r3, AlarmForTimeout@l
/* 800DBC94 000D8BD4 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4)
/* 800DBC98 000D8BD8 38 7F 00 00 */ addi r3, r31, 0
/* 800DBC9C 000D8BDC 54 00 F0 BE */ srwi r0, r0, 2
/* 800DBCA0 000D8BE0 1F C0 00 0A */ mulli r30, r0, 0xa
/* 800DBCA4 000D8BE4 48 00 FE 69 */ bl OSCreateAlarm
/* 800DBCA8 000D8BE8 3C 60 80 0E */ lis r3, AlarmHandlerForTimeout@ha
/* 800DBCAC 000D8BEC 38 E3 B6 54 */ addi r7, r3, AlarmHandlerForTimeout@l
/* 800DBCB0 000D8BF0 38 7F 00 00 */ addi r3, r31, 0
/* 800DBCB4 000D8BF4 38 DE 00 00 */ addi r6, r30, 0
/* 800DBCB8 000D8BF8 38 A0 00 00 */ li r5, 0
/* 800DBCBC 000D8BFC 48 01 00 B1 */ bl OSSetAlarm
/* 800DBCC0 000D8C00 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 800DBCC4 000D8C04 38 60 00 01 */ li r3, 1
/* 800DBCC8 000D8C08 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 800DBCCC 000D8C0C 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 800DBCD0 000D8C10 38 21 00 18 */ addi r1, r1, 0x18
/* 800DBCD4 000D8C14 7C 08 03 A6 */ mtlr r0
/* 800DBCD8 000D8C18 4E 80 00 20 */ blr
.global DVDLowRequestError
DVDLowRequestError:
/* 800DBCDC 000D8C1C 7C 08 02 A6 */ mflr r0
/* 800DBCE0 000D8C20 90 01 00 04 */ stw r0, 4(r1)
/* 800DBCE4 000D8C24 38 00 00 00 */ li r0, 0
/* 800DBCE8 000D8C28 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800DBCEC 000D8C2C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800DBCF0 000D8C30 93 C1 00 10 */ stw r30, 0x10(r1)
/* 800DBCF4 000D8C34 90 6D 8D D0 */ stw r3, Callback_1@sda21(r13)
/* 800DBCF8 000D8C38 3C 60 CC 00 */ lis r3, 0xCC006000@ha
/* 800DBCFC 000D8C3C 38 83 60 00 */ addi r4, r3, 0xCC006000@l
/* 800DBD00 000D8C40 90 0D 8D C8 */ stw r0, StopAtNextInt@sda21(r13)
/* 800DBD04 000D8C44 3C 00 E0 00 */ lis r0, 0xe000
/* 800DBD08 000D8C48 90 03 60 08 */ stw r0, 0x6008(r3)
/* 800DBD0C 000D8C4C 38 00 00 01 */ li r0, 1
/* 800DBD10 000D8C50 3C 60 80 4F */ lis r3, AlarmForTimeout@ha
/* 800DBD14 000D8C54 90 04 00 1C */ stw r0, 0x1c(r4)
/* 800DBD18 000D8C58 3C 80 80 00 */ lis r4, 0x800000F8@ha
/* 800DBD1C 000D8C5C 3B E3 5D 98 */ addi r31, r3, AlarmForTimeout@l
/* 800DBD20 000D8C60 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4)
/* 800DBD24 000D8C64 38 7F 00 00 */ addi r3, r31, 0
/* 800DBD28 000D8C68 54 00 F0 BE */ srwi r0, r0, 2
/* 800DBD2C 000D8C6C 1F C0 00 0A */ mulli r30, r0, 0xa
/* 800DBD30 000D8C70 48 00 FD DD */ bl OSCreateAlarm
/* 800DBD34 000D8C74 3C 60 80 0E */ lis r3, AlarmHandlerForTimeout@ha
/* 800DBD38 000D8C78 38 E3 B6 54 */ addi r7, r3, AlarmHandlerForTimeout@l
/* 800DBD3C 000D8C7C 38 7F 00 00 */ addi r3, r31, 0
/* 800DBD40 000D8C80 38 DE 00 00 */ addi r6, r30, 0
/* 800DBD44 000D8C84 38 A0 00 00 */ li r5, 0
/* 800DBD48 000D8C88 48 01 00 25 */ bl OSSetAlarm
/* 800DBD4C 000D8C8C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 800DBD50 000D8C90 38 60 00 01 */ li r3, 1
/* 800DBD54 000D8C94 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 800DBD58 000D8C98 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 800DBD5C 000D8C9C 38 21 00 18 */ addi r1, r1, 0x18
/* 800DBD60 000D8CA0 7C 08 03 A6 */ mtlr r0
/* 800DBD64 000D8CA4 4E 80 00 20 */ blr
.global DVDLowInquiry
DVDLowInquiry:
/* 800DBD68 000D8CA8 7C 08 02 A6 */ mflr r0
/* 800DBD6C 000D8CAC 38 C0 00 20 */ li r6, 0x20
/* 800DBD70 000D8CB0 90 01 00 04 */ stw r0, 4(r1)
/* 800DBD74 000D8CB4 38 00 00 00 */ li r0, 0
/* 800DBD78 000D8CB8 3C A0 80 00 */ lis r5, 0x800000F8@ha
/* 800DBD7C 000D8CBC 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800DBD80 000D8CC0 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800DBD84 000D8CC4 93 C1 00 10 */ stw r30, 0x10(r1)
/* 800DBD88 000D8CC8 90 8D 8D D0 */ stw r4, Callback_1@sda21(r13)
/* 800DBD8C 000D8CCC 3C 80 CC 00 */ lis r4, 0xCC006000@ha
/* 800DBD90 000D8CD0 38 E4 60 00 */ addi r7, r4, 0xCC006000@l
/* 800DBD94 000D8CD4 90 0D 8D C8 */ stw r0, StopAtNextInt@sda21(r13)
/* 800DBD98 000D8CD8 3C 00 12 00 */ lis r0, 0x1200
/* 800DBD9C 000D8CDC 90 04 60 08 */ stw r0, 0x6008(r4)
/* 800DBDA0 000D8CE0 3C 80 80 4F */ lis r4, AlarmForTimeout@ha
/* 800DBDA4 000D8CE4 38 00 00 03 */ li r0, 3
/* 800DBDA8 000D8CE8 90 C7 00 10 */ stw r6, 0x10(r7)
/* 800DBDAC 000D8CEC 3B E4 5D 98 */ addi r31, r4, AlarmForTimeout@l
/* 800DBDB0 000D8CF0 90 67 00 14 */ stw r3, 0x14(r7)
/* 800DBDB4 000D8CF4 38 7F 00 00 */ addi r3, r31, 0
/* 800DBDB8 000D8CF8 90 C7 00 18 */ stw r6, 0x18(r7)
/* 800DBDBC 000D8CFC 90 07 00 1C */ stw r0, 0x1c(r7)
/* 800DBDC0 000D8D00 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
/* 800DBDC4 000D8D04 54 00 F0 BE */ srwi r0, r0, 2
/* 800DBDC8 000D8D08 1F C0 00 0A */ mulli r30, r0, 0xa
/* 800DBDCC 000D8D0C 48 00 FD 41 */ bl OSCreateAlarm
/* 800DBDD0 000D8D10 3C 60 80 0E */ lis r3, AlarmHandlerForTimeout@ha
/* 800DBDD4 000D8D14 38 E3 B6 54 */ addi r7, r3, AlarmHandlerForTimeout@l
/* 800DBDD8 000D8D18 38 7F 00 00 */ addi r3, r31, 0
/* 800DBDDC 000D8D1C 38 DE 00 00 */ addi r6, r30, 0
/* 800DBDE0 000D8D20 38 A0 00 00 */ li r5, 0
/* 800DBDE4 000D8D24 48 00 FF 89 */ bl OSSetAlarm
/* 800DBDE8 000D8D28 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 800DBDEC 000D8D2C 38 60 00 01 */ li r3, 1
/* 800DBDF0 000D8D30 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 800DBDF4 000D8D34 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 800DBDF8 000D8D38 38 21 00 18 */ addi r1, r1, 0x18
/* 800DBDFC 000D8D3C 7C 08 03 A6 */ mtlr r0
/* 800DBE00 000D8D40 4E 80 00 20 */ blr
.global DVDLowAudioStream
DVDLowAudioStream:
/* 800DBE04 000D8D44 7C 08 02 A6 */ mflr r0
/* 800DBE08 000D8D48 90 01 00 04 */ stw r0, 4(r1)
/* 800DBE0C 000D8D4C 38 00 00 00 */ li r0, 0
/* 800DBE10 000D8D50 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800DBE14 000D8D54 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800DBE18 000D8D58 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800DBE1C 000D8D5C 90 CD 8D D0 */ stw r6, Callback_1@sda21(r13)
/* 800DBE20 000D8D60 3C C0 CC 00 */ lis r6, 0xCC006000@ha
/* 800DBE24 000D8D64 38 C6 60 00 */ addi r6, r6, 0xCC006000@l
/* 800DBE28 000D8D68 90 0D 8D C8 */ stw r0, StopAtNextInt@sda21(r13)
/* 800DBE2C 000D8D6C 64 60 E1 00 */ oris r0, r3, 0xe100
/* 800DBE30 000D8D70 3C 60 80 4F */ lis r3, AlarmForTimeout@ha
/* 800DBE34 000D8D74 90 06 00 08 */ stw r0, 8(r6)
/* 800DBE38 000D8D78 54 A0 F0 BE */ srwi r0, r5, 2
/* 800DBE3C 000D8D7C 3B E3 5D 98 */ addi r31, r3, AlarmForTimeout@l
/* 800DBE40 000D8D80 90 06 00 0C */ stw r0, 0xc(r6)
/* 800DBE44 000D8D84 38 00 00 01 */ li r0, 1
/* 800DBE48 000D8D88 38 7F 00 00 */ addi r3, r31, 0
/* 800DBE4C 000D8D8C 90 86 00 10 */ stw r4, 0x10(r6)
/* 800DBE50 000D8D90 3C 80 80 00 */ lis r4, 0x800000F8@ha
/* 800DBE54 000D8D94 90 06 00 1C */ stw r0, 0x1c(r6)
/* 800DBE58 000D8D98 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4)
/* 800DBE5C 000D8D9C 54 00 F0 BE */ srwi r0, r0, 2
/* 800DBE60 000D8DA0 1F C0 00 0A */ mulli r30, r0, 0xa
/* 800DBE64 000D8DA4 48 00 FC A9 */ bl OSCreateAlarm
/* 800DBE68 000D8DA8 3C 60 80 0E */ lis r3, AlarmHandlerForTimeout@ha
/* 800DBE6C 000D8DAC 38 E3 B6 54 */ addi r7, r3, AlarmHandlerForTimeout@l
/* 800DBE70 000D8DB0 38 7F 00 00 */ addi r3, r31, 0
/* 800DBE74 000D8DB4 38 DE 00 00 */ addi r6, r30, 0
/* 800DBE78 000D8DB8 38 A0 00 00 */ li r5, 0
/* 800DBE7C 000D8DBC 48 00 FE F1 */ bl OSSetAlarm
/* 800DBE80 000D8DC0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800DBE84 000D8DC4 38 60 00 01 */ li r3, 1
/* 800DBE88 000D8DC8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800DBE8C 000D8DCC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800DBE90 000D8DD0 38 21 00 20 */ addi r1, r1, 0x20
/* 800DBE94 000D8DD4 7C 08 03 A6 */ mtlr r0
/* 800DBE98 000D8DD8 4E 80 00 20 */ blr
.global DVDLowRequestAudioStatus
DVDLowRequestAudioStatus:
/* 800DBE9C 000D8DDC 7C 08 02 A6 */ mflr r0
/* 800DBEA0 000D8DE0 90 01 00 04 */ stw r0, 4(r1)
/* 800DBEA4 000D8DE4 38 00 00 00 */ li r0, 0
/* 800DBEA8 000D8DE8 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800DBEAC 000D8DEC 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800DBEB0 000D8DF0 93 C1 00 10 */ stw r30, 0x10(r1)
/* 800DBEB4 000D8DF4 90 8D 8D D0 */ stw r4, Callback_1@sda21(r13)
/* 800DBEB8 000D8DF8 3C 80 CC 00 */ lis r4, 0xCC006000@ha
/* 800DBEBC 000D8DFC 38 84 60 00 */ addi r4, r4, 0xCC006000@l
/* 800DBEC0 000D8E00 90 0D 8D C8 */ stw r0, StopAtNextInt@sda21(r13)
/* 800DBEC4 000D8E04 64 60 E2 00 */ oris r0, r3, 0xe200
/* 800DBEC8 000D8E08 3C 60 80 4F */ lis r3, AlarmForTimeout@ha
/* 800DBECC 000D8E0C 90 04 00 08 */ stw r0, 8(r4)
/* 800DBED0 000D8E10 38 00 00 01 */ li r0, 1
/* 800DBED4 000D8E14 3B E3 5D 98 */ addi r31, r3, AlarmForTimeout@l
/* 800DBED8 000D8E18 90 04 00 1C */ stw r0, 0x1c(r4)
/* 800DBEDC 000D8E1C 3C 80 80 00 */ lis r4, 0x800000F8@ha
/* 800DBEE0 000D8E20 38 7F 00 00 */ addi r3, r31, 0
/* 800DBEE4 000D8E24 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4)
/* 800DBEE8 000D8E28 54 00 F0 BE */ srwi r0, r0, 2
/* 800DBEEC 000D8E2C 1F C0 00 0A */ mulli r30, r0, 0xa
/* 800DBEF0 000D8E30 48 00 FC 1D */ bl OSCreateAlarm
/* 800DBEF4 000D8E34 3C 60 80 0E */ lis r3, AlarmHandlerForTimeout@ha
/* 800DBEF8 000D8E38 38 E3 B6 54 */ addi r7, r3, AlarmHandlerForTimeout@l
/* 800DBEFC 000D8E3C 38 7F 00 00 */ addi r3, r31, 0
/* 800DBF00 000D8E40 38 DE 00 00 */ addi r6, r30, 0
/* 800DBF04 000D8E44 38 A0 00 00 */ li r5, 0
/* 800DBF08 000D8E48 48 00 FE 65 */ bl OSSetAlarm
/* 800DBF0C 000D8E4C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 800DBF10 000D8E50 38 60 00 01 */ li r3, 1
/* 800DBF14 000D8E54 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 800DBF18 000D8E58 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 800DBF1C 000D8E5C 38 21 00 18 */ addi r1, r1, 0x18
/* 800DBF20 000D8E60 7C 08 03 A6 */ mtlr r0
/* 800DBF24 000D8E64 4E 80 00 20 */ blr
.global DVDLowAudioBufferConfig
DVDLowAudioBufferConfig:
/* 800DBF28 000D8E68 7C 08 02 A6 */ mflr r0
/* 800DBF2C 000D8E6C 2C 03 00 00 */ cmpwi r3, 0
/* 800DBF30 000D8E70 90 01 00 04 */ stw r0, 4(r1)
/* 800DBF34 000D8E74 38 00 00 00 */ li r0, 0
/* 800DBF38 000D8E78 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800DBF3C 000D8E7C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800DBF40 000D8E80 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800DBF44 000D8E84 90 AD 8D D0 */ stw r5, Callback_1@sda21(r13)
/* 800DBF48 000D8E88 90 0D 8D C8 */ stw r0, StopAtNextInt@sda21(r13)
/* 800DBF4C 000D8E8C 41 82 00 08 */ beq .L_800DBF54
/* 800DBF50 000D8E90 3C 00 00 01 */ lis r0, 1
.L_800DBF54:
/* 800DBF54 000D8E94 64 00 E4 00 */ oris r0, r0, 0xe400
/* 800DBF58 000D8E98 3C 60 CC 00 */ lis r3, 0xCC006000@ha
/* 800DBF5C 000D8E9C 7C 80 03 78 */ or r0, r4, r0
/* 800DBF60 000D8EA0 38 63 60 00 */ addi r3, r3, 0xCC006000@l
/* 800DBF64 000D8EA4 90 03 00 08 */ stw r0, 8(r3)
/* 800DBF68 000D8EA8 38 00 00 01 */ li r0, 1
/* 800DBF6C 000D8EAC 3C 80 80 00 */ lis r4, 0x800000F8@ha
/* 800DBF70 000D8EB0 90 03 00 1C */ stw r0, 0x1c(r3)
/* 800DBF74 000D8EB4 3C 60 80 4F */ lis r3, AlarmForTimeout@ha
/* 800DBF78 000D8EB8 3B E3 5D 98 */ addi r31, r3, AlarmForTimeout@l
/* 800DBF7C 000D8EBC 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4)
/* 800DBF80 000D8EC0 38 7F 00 00 */ addi r3, r31, 0
/* 800DBF84 000D8EC4 54 00 F0 BE */ srwi r0, r0, 2
/* 800DBF88 000D8EC8 1F C0 00 0A */ mulli r30, r0, 0xa
/* 800DBF8C 000D8ECC 48 00 FB 81 */ bl OSCreateAlarm
/* 800DBF90 000D8ED0 3C 60 80 0E */ lis r3, AlarmHandlerForTimeout@ha
/* 800DBF94 000D8ED4 38 E3 B6 54 */ addi r7, r3, AlarmHandlerForTimeout@l
/* 800DBF98 000D8ED8 38 7F 00 00 */ addi r3, r31, 0
/* 800DBF9C 000D8EDC 38 DE 00 00 */ addi r6, r30, 0
/* 800DBFA0 000D8EE0 38 A0 00 00 */ li r5, 0
/* 800DBFA4 000D8EE4 48 00 FD C9 */ bl OSSetAlarm
/* 800DBFA8 000D8EE8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800DBFAC 000D8EEC 38 60 00 01 */ li r3, 1
/* 800DBFB0 000D8EF0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800DBFB4 000D8EF4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800DBFB8 000D8EF8 38 21 00 20 */ addi r1, r1, 0x20
/* 800DBFBC 000D8EFC 7C 08 03 A6 */ mtlr r0
/* 800DBFC0 000D8F00 4E 80 00 20 */ blr
.global DVDLowReset
DVDLowReset:
/* 800DBFC4 000D8F04 7C 08 02 A6 */ mflr r0
/* 800DBFC8 000D8F08 3C 80 CC 00 */ lis r4, 0xCC003000@ha
/* 800DBFCC 000D8F0C 90 01 00 04 */ stw r0, 4(r1)
/* 800DBFD0 000D8F10 38 00 00 02 */ li r0, 2
/* 800DBFD4 000D8F14 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800DBFD8 000D8F18 BF 41 00 08 */ stmw r26, 8(r1)
/* 800DBFDC 000D8F1C 3B E4 30 00 */ addi r31, r4, 0xCC003000@l
/* 800DBFE0 000D8F20 90 04 60 04 */ stw r0, 0x6004(r4)
/* 800DBFE4 000D8F24 83 C4 30 24 */ lwz r30, 0x3024(r4)
/* 800DBFE8 000D8F28 57 C0 07 B8 */ rlwinm r0, r30, 0, 0x1e, 0x1c
/* 800DBFEC 000D8F2C 60 00 00 01 */ ori r0, r0, 1
/* 800DBFF0 000D8F30 94 1F 00 24 */ stwu r0, 0x24(r31)
/* 800DBFF4 000D8F34 48 01 6B BD */ bl __OSGetSystemTime
/* 800DBFF8 000D8F38 3C A0 80 00 */ lis r5, 0x800000F8@ha
/* 800DBFFC 000D8F3C 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
/* 800DC000 000D8F40 3C A0 43 1C */ lis r5, 0x431BDE83@ha
/* 800DC004 000D8F44 38 A5 DE 83 */ addi r5, r5, 0x431BDE83@l
/* 800DC008 000D8F48 54 00 F0 BE */ srwi r0, r0, 2
/* 800DC00C 000D8F4C 7C 05 00 16 */ mulhwu r0, r5, r0
/* 800DC010 000D8F50 54 00 8B FE */ srwi r0, r0, 0xf
/* 800DC014 000D8F54 1C 00 00 0C */ mulli r0, r0, 0xc
/* 800DC018 000D8F58 3B 44 00 00 */ addi r26, r4, 0
/* 800DC01C 000D8F5C 3B 63 00 00 */ addi r27, r3, 0
/* 800DC020 000D8F60 54 1C E8 FE */ srwi r28, r0, 3
/* 800DC024 000D8F64 3B A0 00 00 */ li r29, 0
.L_800DC028:
/* 800DC028 000D8F68 48 01 6B 89 */ bl __OSGetSystemTime
/* 800DC02C 000D8F6C 7C BA 20 10 */ subfc r5, r26, r4
/* 800DC030 000D8F70 7C 1B 19 10 */ subfe r0, r27, r3
/* 800DC034 000D8F74 6C 04 80 00 */ xoris r4, r0, 0x8000
/* 800DC038 000D8F78 6F A3 80 00 */ xoris r3, r29, 0x8000
/* 800DC03C 000D8F7C 7C 1C 28 10 */ subfc r0, r28, r5
/* 800DC040 000D8F80 7C 63 21 10 */ subfe r3, r3, r4
/* 800DC044 000D8F84 7C 64 21 10 */ subfe r3, r4, r4
/* 800DC048 000D8F88 7C 63 00 D1 */ neg. r3, r3
/* 800DC04C 000D8F8C 40 82 FF DC */ bne .L_800DC028
/* 800DC050 000D8F90 63 C0 00 05 */ ori r0, r30, 5
/* 800DC054 000D8F94 90 1F 00 00 */ stw r0, 0(r31)
/* 800DC058 000D8F98 38 00 00 01 */ li r0, 1
/* 800DC05C 000D8F9C 90 0D 8D E0 */ stw r0, ResetOccurred@sda21(r13)
/* 800DC060 000D8FA0 48 01 6B 51 */ bl __OSGetSystemTime
/* 800DC064 000D8FA4 90 8D 8D DC */ stw r4, lbl_8051545C@sda21(r13)
/* 800DC068 000D8FA8 90 6D 8D D8 */ stw r3, LastResetEnd@sda21(r13)
/* 800DC06C 000D8FAC BB 41 00 08 */ lmw r26, 8(r1)
/* 800DC070 000D8FB0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800DC074 000D8FB4 38 21 00 20 */ addi r1, r1, 0x20
/* 800DC078 000D8FB8 7C 08 03 A6 */ mtlr r0
/* 800DC07C 000D8FBC 4E 80 00 20 */ blr
.global DVDLowBreak
DVDLowBreak:
/* 800DC080 000D8FC0 38 00 00 01 */ li r0, 1
/* 800DC084 000D8FC4 90 0D 8D C8 */ stw r0, StopAtNextInt@sda21(r13)
/* 800DC088 000D8FC8 38 60 00 01 */ li r3, 1
/* 800DC08C 000D8FCC 90 0D 8D E8 */ stw r0, Breaking@sda21(r13)
/* 800DC090 000D8FD0 4E 80 00 20 */ blr
.global DVDLowClearCallback
DVDLowClearCallback:
/* 800DC094 000D8FD4 3C 60 CC 00 */ lis r3, 0xCC006004@ha
/* 800DC098 000D8FD8 38 00 00 00 */ li r0, 0
/* 800DC09C 000D8FDC 90 03 60 04 */ stw r0, 0xCC006004@l(r3)
/* 800DC0A0 000D8FE0 80 6D 8D D0 */ lwz r3, Callback_1@sda21(r13)
/* 800DC0A4 000D8FE4 90 0D 8D E4 */ stw r0, WaitingCoverClose@sda21(r13)
/* 800DC0A8 000D8FE8 90 0D 8D D0 */ stw r0, Callback_1@sda21(r13)
/* 800DC0AC 000D8FEC 4E 80 00 20 */ blr
.global __DVDLowSetWAType
__DVDLowSetWAType:
/* 800DC0B0 000D8FF0 7C 08 02 A6 */ mflr r0
/* 800DC0B4 000D8FF4 90 01 00 04 */ stw r0, 4(r1)
/* 800DC0B8 000D8FF8 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800DC0BC 000D8FFC 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800DC0C0 000D9000 3B E4 00 00 */ addi r31, r4, 0
/* 800DC0C4 000D9004 93 C1 00 10 */ stw r30, 0x10(r1)
/* 800DC0C8 000D9008 3B C3 00 00 */ addi r30, r3, 0
/* 800DC0CC 000D900C 48 01 2B 6D */ bl OSDisableInterrupts
/* 800DC0D0 000D9010 93 CD 8D EC */ stw r30, WorkAroundType@sda21(r13)
/* 800DC0D4 000D9014 93 ED 8D F0 */ stw r31, WorkAroundSeekLocation@sda21(r13)
/* 800DC0D8 000D9018 48 01 2B 89 */ bl OSRestoreInterrupts
/* 800DC0DC 000D901C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 800DC0E0 000D9020 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 800DC0E4 000D9024 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 800DC0E8 000D9028 38 21 00 18 */ addi r1, r1, 0x18
/* 800DC0EC 000D902C 7C 08 03 A6 */ mtlr r0
/* 800DC0F0 000D9030 4E 80 00 20 */ blr
.global __DVDLowTestAlarm
__DVDLowTestAlarm:
/* 800DC0F4 000D9034 3C 80 80 4F */ lis r4, AlarmForBreak@ha
/* 800DC0F8 000D9038 38 04 5D C0 */ addi r0, r4, AlarmForBreak@l
/* 800DC0FC 000D903C 7C 03 00 40 */ cmplw r3, r0
/* 800DC100 000D9040 40 82 00 0C */ bne .L_800DC10C
/* 800DC104 000D9044 38 60 00 01 */ li r3, 1
/* 800DC108 000D9048 4E 80 00 20 */ blr
.L_800DC10C:
/* 800DC10C 000D904C 3C 80 80 4F */ lis r4, AlarmForTimeout@ha
/* 800DC110 000D9050 38 04 5D 98 */ addi r0, r4, AlarmForTimeout@l
/* 800DC114 000D9054 7C 03 00 40 */ cmplw r3, r0
/* 800DC118 000D9058 40 82 00 0C */ bne .L_800DC124
/* 800DC11C 000D905C 38 60 00 01 */ li r3, 1
/* 800DC120 000D9060 4E 80 00 20 */ blr
.L_800DC124:
/* 800DC124 000D9064 38 60 00 00 */ li r3, 0
/* 800DC128 000D9068 4E 80 00 20 */ blr