summaryrefslogtreecommitdiff
path: root/asm/SDK/DVD/dvdfs.s
blob: aff2b631f89ab57eac736a2647959a7c7a5a3afa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global __DVDFSInit
__DVDFSInit:
/* 8028768C 002832EC  3C 60 80 00 */	lis r3, 0x80000038@ha
/* 80287690 002832F0  90 6D AA 0C */	stw r3, lbl_8063FCCC-_SDA_BASE_(r13)
/* 80287694 002832F4  80 83 00 38 */	lwz r4, 0x80000038@l(r3)
/* 80287698 002832F8  2C 04 00 00 */	cmpwi r4, 0
/* 8028769C 002832FC  90 8D AA 08 */	stw r4, lbl_8063FCC8-_SDA_BASE_(r13)
/* 802876A0 00283300  4D 82 00 20 */	beqlr
/* 802876A4 00283304  80 64 00 08 */	lwz r3, 8(r4)
/* 802876A8 00283308  1C 03 00 0C */	mulli r0, r3, 0xc
/* 802876AC 0028330C  90 6D AA 00 */	stw r3, lbl_8063FCC0-_SDA_BASE_(r13)
/* 802876B0 00283310  7C 04 02 14 */	add r0, r4, r0
/* 802876B4 00283314  90 0D AA 04 */	stw r0, lbl_8063FCC4-_SDA_BASE_(r13)
/* 802876B8 00283318  4E 80 00 20 */	blr

.global DVDConvertPathToEntrynum
DVDConvertPathToEntrynum:
/* 802876BC 0028331C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802876C0 00283320  7C 08 02 A6 */	mflr r0
/* 802876C4 00283324  90 01 00 34 */	stw r0, 0x34(r1)
/* 802876C8 00283328  39 61 00 30 */	addi r11, r1, 0x30
/* 802876CC 0028332C  4B F3 FA 51 */	bl _savegpr_24
/* 802876D0 00283330  7C 7A 1B 78 */	mr r26, r3
/* 802876D4 00283334  3F E0 80 42 */	lis r31, lbl_80422D48@ha
/* 802876D8 00283338  83 AD A9 F0 */	lwz r29, lbl_8063FCB0-_SDA_BASE_(r13)
/* 802876DC 0028333C  7F 5C D3 78 */	mr r28, r26
/* 802876E0 00283340  3B FF 2D 48 */	addi r31, r31, lbl_80422D48@l
/* 802876E4 00283344  3F C0 80 43 */	lis r30, 0x8043
lbl_802876E8:
/* 802876E8 00283348  88 1A 00 00 */	lbz r0, 0(r26)
/* 802876EC 0028334C  7C 00 07 75 */	extsb. r0, r0
/* 802876F0 00283350  40 82 00 0C */	bne lbl_802876FC
/* 802876F4 00283354  7F A3 EB 78 */	mr r3, r29
/* 802876F8 00283358  48 00 02 B4 */	b lbl_802879AC
lbl_802876FC:
/* 802876FC 0028335C  2C 00 00 2F */	cmpwi r0, 0x2f
/* 80287700 00283360  40 82 00 10 */	bne lbl_80287710
/* 80287704 00283364  3B A0 00 00 */	li r29, 0
/* 80287708 00283368  3B 5A 00 01 */	addi r26, r26, 1
/* 8028770C 0028336C  4B FF FF DC */	b lbl_802876E8
lbl_80287710:
/* 80287710 00283370  2C 00 00 2E */	cmpwi r0, 0x2e
/* 80287714 00283374  40 82 00 78 */	bne lbl_8028778C
/* 80287718 00283378  88 1A 00 01 */	lbz r0, 1(r26)
/* 8028771C 0028337C  7C 00 07 74 */	extsb r0, r0
/* 80287720 00283380  2C 00 00 2E */	cmpwi r0, 0x2e
/* 80287724 00283384  40 82 00 48 */	bne lbl_8028776C
/* 80287728 00283388  88 1A 00 02 */	lbz r0, 2(r26)
/* 8028772C 0028338C  7C 00 07 74 */	extsb r0, r0
/* 80287730 00283390  2C 00 00 2F */	cmpwi r0, 0x2f
/* 80287734 00283394  40 82 00 1C */	bne lbl_80287750
/* 80287738 00283398  1C 1D 00 0C */	mulli r0, r29, 0xc
/* 8028773C 0028339C  80 6D AA 08 */	lwz r3, lbl_8063FCC8-_SDA_BASE_(r13)
/* 80287740 002833A0  3B 5A 00 03 */	addi r26, r26, 3
/* 80287744 002833A4  7C 63 02 14 */	add r3, r3, r0
/* 80287748 002833A8  83 A3 00 04 */	lwz r29, 4(r3)
/* 8028774C 002833AC  4B FF FF 9C */	b lbl_802876E8
lbl_80287750:
/* 80287750 002833B0  2C 00 00 00 */	cmpwi r0, 0
/* 80287754 002833B4  40 82 00 38 */	bne lbl_8028778C
/* 80287758 002833B8  1C 1D 00 0C */	mulli r0, r29, 0xc
/* 8028775C 002833BC  80 6D AA 08 */	lwz r3, lbl_8063FCC8-_SDA_BASE_(r13)
/* 80287760 002833C0  7C 63 02 14 */	add r3, r3, r0
/* 80287764 002833C4  80 63 00 04 */	lwz r3, 4(r3)
/* 80287768 002833C8  48 00 02 44 */	b lbl_802879AC
lbl_8028776C:
/* 8028776C 002833CC  2C 00 00 2F */	cmpwi r0, 0x2f
/* 80287770 002833D0  40 82 00 0C */	bne lbl_8028777C
/* 80287774 002833D4  3B 5A 00 02 */	addi r26, r26, 2
/* 80287778 002833D8  4B FF FF 70 */	b lbl_802876E8
lbl_8028777C:
/* 8028777C 002833DC  2C 00 00 00 */	cmpwi r0, 0
/* 80287780 002833E0  40 82 00 0C */	bne lbl_8028778C
/* 80287784 002833E4  7F A3 EB 78 */	mr r3, r29
/* 80287788 002833E8  48 00 02 24 */	b lbl_802879AC
lbl_8028778C:
/* 8028778C 002833EC  80 0D 88 A8 */	lwz r0, lbl_8063DB68-_SDA_BASE_(r13)
/* 80287790 002833F0  2C 00 00 00 */	cmpwi r0, 0
/* 80287794 002833F4  40 82 00 A8 */	bne lbl_8028783C
/* 80287798 002833F8  7F 58 D3 78 */	mr r24, r26
/* 8028779C 002833FC  38 A0 00 00 */	li r5, 0
/* 802877A0 00283400  38 80 00 00 */	li r4, 0
/* 802877A4 00283404  48 00 00 48 */	b lbl_802877EC
lbl_802877A8:
/* 802877A8 00283408  7C 60 07 74 */	extsb r0, r3
/* 802877AC 0028340C  2C 00 00 2E */	cmpwi r0, 0x2e
/* 802877B0 00283410  40 82 00 2C */	bne lbl_802877DC
/* 802877B4 00283414  7C 1A C0 50 */	subf r0, r26, r24
/* 802877B8 00283418  2C 00 00 08 */	cmpwi r0, 8
/* 802877BC 0028341C  41 81 00 0C */	bgt lbl_802877C8
/* 802877C0 00283420  2C 05 00 01 */	cmpwi r5, 1
/* 802877C4 00283424  40 82 00 0C */	bne lbl_802877D0
lbl_802877C8:
/* 802877C8 00283428  38 80 00 01 */	li r4, 1
/* 802877CC 0028342C  48 00 00 34 */	b lbl_80287800
lbl_802877D0:
/* 802877D0 00283430  3B 78 00 01 */	addi r27, r24, 1
/* 802877D4 00283434  38 A0 00 01 */	li r5, 1
/* 802877D8 00283438  48 00 00 10 */	b lbl_802877E8
lbl_802877DC:
/* 802877DC 0028343C  2C 00 00 20 */	cmpwi r0, 0x20
/* 802877E0 00283440  40 82 00 08 */	bne lbl_802877E8
/* 802877E4 00283444  38 80 00 01 */	li r4, 1
lbl_802877E8:
/* 802877E8 00283448  3B 18 00 01 */	addi r24, r24, 1
lbl_802877EC:
/* 802877EC 0028344C  88 78 00 00 */	lbz r3, 0(r24)
/* 802877F0 00283450  7C 60 07 75 */	extsb. r0, r3
/* 802877F4 00283454  41 82 00 0C */	beq lbl_80287800
/* 802877F8 00283458  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802877FC 0028345C  40 82 FF AC */	bne lbl_802877A8
lbl_80287800:
/* 80287800 00283460  2C 05 00 01 */	cmpwi r5, 1
/* 80287804 00283464  40 82 00 14 */	bne lbl_80287818
/* 80287808 00283468  7C 1B C0 50 */	subf r0, r27, r24
/* 8028780C 0028346C  2C 00 00 03 */	cmpwi r0, 3
/* 80287810 00283470  40 81 00 08 */	ble lbl_80287818
/* 80287814 00283474  38 80 00 01 */	li r4, 1
lbl_80287818:
/* 80287818 00283478  2C 04 00 00 */	cmpwi r4, 0
/* 8028781C 0028347C  41 82 00 40 */	beq lbl_8028785C
/* 80287820 00283480  7F 86 E3 78 */	mr r6, r28
/* 80287824 00283484  38 BE 5D 68 */	addi r5, r30, 0x5d68
/* 80287828 00283488  38 6D 88 B0 */	addi r3, r13, lbl_8063DB70-_SDA_BASE_
/* 8028782C 0028348C  38 80 01 BB */	li r4, 0x1bb
/* 80287830 00283490  4C C6 31 82 */	crclr 6
/* 80287834 00283494  4B FE 3C 69 */	bl OSPanic
/* 80287838 00283498  48 00 00 24 */	b lbl_8028785C
lbl_8028783C:
/* 8028783C 0028349C  7F 58 D3 78 */	mr r24, r26
/* 80287840 002834A0  48 00 00 08 */	b lbl_80287848
lbl_80287844:
/* 80287844 002834A4  3B 18 00 01 */	addi r24, r24, 1
lbl_80287848:
/* 80287848 002834A8  88 18 00 00 */	lbz r0, 0(r24)
/* 8028784C 002834AC  7C 00 07 75 */	extsb. r0, r0
/* 80287850 002834B0  41 82 00 0C */	beq lbl_8028785C
/* 80287854 002834B4  2C 00 00 2F */	cmpwi r0, 0x2f
/* 80287858 002834B8  40 82 FF EC */	bne lbl_80287844
lbl_8028785C:
/* 8028785C 002834BC  88 78 00 00 */	lbz r3, 0(r24)
/* 80287860 002834C0  1C 1D 00 0C */	mulli r0, r29, 0xc
/* 80287864 002834C4  81 0D AA 08 */	lwz r8, lbl_8063FCC8-_SDA_BASE_(r13)
/* 80287868 002834C8  7D 3A C0 50 */	subf r9, r26, r24
/* 8028786C 002834CC  7C 66 07 74 */	extsb r6, r3
/* 80287870 002834D0  80 8D AA 04 */	lwz r4, lbl_8063FCC4-_SDA_BASE_(r13)
/* 80287874 002834D4  7C A6 00 D0 */	neg r5, r6
/* 80287878 002834D8  7C 68 02 14 */	add r3, r8, r0
/* 8028787C 002834DC  81 9F 00 38 */	lwz r12, 0x38(r31)
/* 80287880 002834E0  7C A0 33 78 */	or r0, r5, r6
/* 80287884 002834E4  80 A3 00 08 */	lwz r5, 8(r3)
/* 80287888 002834E8  54 00 0F FE */	srwi r0, r0, 0x1f
/* 8028788C 002834EC  38 7D 00 01 */	addi r3, r29, 1
/* 80287890 002834F0  48 00 00 F0 */	b lbl_80287980
lbl_80287894:
/* 80287894 002834F4  1C C3 00 0C */	mulli r6, r3, 0xc
/* 80287898 002834F8  7D 46 40 6E */	lwzux r10, r6, r8
/* 8028789C 002834FC  55 47 00 0F */	rlwinm. r7, r10, 0, 0, 7
/* 802878A0 00283500  40 82 00 0C */	bne lbl_802878AC
/* 802878A4 00283504  2C 00 00 01 */	cmpwi r0, 1
/* 802878A8 00283508  41 82 00 C4 */	beq lbl_8028796C
lbl_802878AC:
/* 802878AC 0028350C  55 4A 02 3E */	clrlwi r10, r10, 8
/* 802878B0 00283510  7F 5D D3 78 */	mr r29, r26
/* 802878B4 00283514  7F 24 52 14 */	add r25, r4, r10
/* 802878B8 00283518  48 00 00 7C */	b lbl_80287934
lbl_802878BC:
/* 802878BC 0028351C  89 79 00 00 */	lbz r11, 0(r25)
/* 802878C0 00283520  39 40 00 00 */	li r10, 0
/* 802878C4 00283524  3B 39 00 01 */	addi r25, r25, 1
/* 802878C8 00283528  7D 78 07 75 */	extsb. r24, r11
/* 802878CC 0028352C  41 80 00 0C */	blt lbl_802878D8
/* 802878D0 00283530  2C 18 01 00 */	cmpwi r24, 0x100
/* 802878D4 00283534  41 80 00 08 */	blt lbl_802878DC
lbl_802878D8:
/* 802878D8 00283538  39 40 00 01 */	li r10, 1
lbl_802878DC:
/* 802878DC 0028353C  2C 0A 00 00 */	cmpwi r10, 0
/* 802878E0 00283540  41 82 00 08 */	beq lbl_802878E8
/* 802878E4 00283544  48 00 00 0C */	b lbl_802878F0
lbl_802878E8:
/* 802878E8 00283548  81 4C 00 10 */	lwz r10, 0x10(r12)
/* 802878EC 0028354C  7F 0A C0 AE */	lbzx r24, r10, r24
lbl_802878F0:
/* 802878F0 00283550  89 7D 00 00 */	lbz r11, 0(r29)
/* 802878F4 00283554  39 40 00 00 */	li r10, 0
/* 802878F8 00283558  3B BD 00 01 */	addi r29, r29, 1
/* 802878FC 0028355C  7D 6B 07 75 */	extsb. r11, r11
/* 80287900 00283560  41 80 00 0C */	blt lbl_8028790C
/* 80287904 00283564  2C 0B 01 00 */	cmpwi r11, 0x100
/* 80287908 00283568  41 80 00 08 */	blt lbl_80287910
lbl_8028790C:
/* 8028790C 0028356C  39 40 00 01 */	li r10, 1
lbl_80287910:
/* 80287910 00283570  2C 0A 00 00 */	cmpwi r10, 0
/* 80287914 00283574  41 82 00 08 */	beq lbl_8028791C
/* 80287918 00283578  48 00 00 0C */	b lbl_80287924
lbl_8028791C:
/* 8028791C 0028357C  81 4C 00 10 */	lwz r10, 0x10(r12)
/* 80287920 00283580  7D 6A 58 AE */	lbzx r11, r10, r11
lbl_80287924:
/* 80287924 00283584  7C 0B C0 00 */	cmpw r11, r24
/* 80287928 00283588  41 82 00 0C */	beq lbl_80287934
/* 8028792C 0028358C  39 40 00 00 */	li r10, 0
/* 80287930 00283590  48 00 00 34 */	b lbl_80287964
lbl_80287934:
/* 80287934 00283594  89 59 00 00 */	lbz r10, 0(r25)
/* 80287938 00283598  7D 4A 07 75 */	extsb. r10, r10
/* 8028793C 0028359C  40 82 FF 80 */	bne lbl_802878BC
/* 80287940 002835A0  89 5D 00 00 */	lbz r10, 0(r29)
/* 80287944 002835A4  7D 4A 07 74 */	extsb r10, r10
/* 80287948 002835A8  2C 0A 00 2F */	cmpwi r10, 0x2f
/* 8028794C 002835AC  41 82 00 0C */	beq lbl_80287958
/* 80287950 002835B0  2C 0A 00 00 */	cmpwi r10, 0
/* 80287954 002835B4  40 82 00 0C */	bne lbl_80287960
lbl_80287958:
/* 80287958 002835B8  39 40 00 01 */	li r10, 1
/* 8028795C 002835BC  48 00 00 08 */	b lbl_80287964
lbl_80287960:
/* 80287960 002835C0  39 40 00 00 */	li r10, 0
lbl_80287964:
/* 80287964 002835C4  2C 0A 00 01 */	cmpwi r10, 1
/* 80287968 002835C8  41 82 00 28 */	beq lbl_80287990
lbl_8028796C:
/* 8028796C 002835CC  2C 07 00 00 */	cmpwi r7, 0
/* 80287970 002835D0  41 82 00 0C */	beq lbl_8028797C
/* 80287974 002835D4  80 66 00 08 */	lwz r3, 8(r6)
/* 80287978 002835D8  48 00 00 08 */	b lbl_80287980
lbl_8028797C:
/* 8028797C 002835DC  38 63 00 01 */	addi r3, r3, 1
lbl_80287980:
/* 80287980 002835E0  7C 03 28 40 */	cmplw r3, r5
/* 80287984 002835E4  41 80 FF 10 */	blt lbl_80287894
/* 80287988 002835E8  38 60 FF FF */	li r3, -1
/* 8028798C 002835EC  48 00 00 20 */	b lbl_802879AC
lbl_80287990:
/* 80287990 002835F0  2C 00 00 00 */	cmpwi r0, 0
/* 80287994 002835F4  40 82 00 08 */	bne lbl_8028799C
/* 80287998 002835F8  48 00 00 14 */	b lbl_802879AC
lbl_8028799C:
/* 8028799C 002835FC  7C 89 D2 14 */	add r4, r9, r26
/* 802879A0 00283600  7C 7D 1B 78 */	mr r29, r3
/* 802879A4 00283604  3B 44 00 01 */	addi r26, r4, 1
/* 802879A8 00283608  4B FF FD 40 */	b lbl_802876E8
lbl_802879AC:
/* 802879AC 0028360C  39 61 00 30 */	addi r11, r1, 0x30
/* 802879B0 00283610  4B F3 F7 B9 */	bl _restgpr_24
/* 802879B4 00283614  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802879B8 00283618  7C 08 03 A6 */	mtlr r0
/* 802879BC 0028361C  38 21 00 30 */	addi r1, r1, 0x30
/* 802879C0 00283620  4E 80 00 20 */	blr

.global DVDFastOpen
DVDFastOpen:
/* 802879C4 00283624  2C 03 00 00 */	cmpwi r3, 0
/* 802879C8 00283628  41 80 00 24 */	blt lbl_802879EC
/* 802879CC 0028362C  80 0D AA 00 */	lwz r0, lbl_8063FCC0-_SDA_BASE_(r13)
/* 802879D0 00283630  7C 03 00 40 */	cmplw r3, r0
/* 802879D4 00283634  40 80 00 18 */	bge lbl_802879EC
/* 802879D8 00283638  1C E3 00 0C */	mulli r7, r3, 0xc
/* 802879DC 0028363C  80 6D AA 08 */	lwz r3, lbl_8063FCC8-_SDA_BASE_(r13)
/* 802879E0 00283640  7C 03 38 2E */	lwzx r0, r3, r7
/* 802879E4 00283644  54 00 00 0F */	rlwinm. r0, r0, 0, 0, 7
/* 802879E8 00283648  41 82 00 0C */	beq lbl_802879F4
lbl_802879EC:
/* 802879EC 0028364C  38 60 00 00 */	li r3, 0
/* 802879F0 00283650  4E 80 00 20 */	blr
lbl_802879F4:
/* 802879F4 00283654  7C 63 3A 14 */	add r3, r3, r7
/* 802879F8 00283658  80 AD AA 48 */	lwz r5, lbl_8063FD08-_SDA_BASE_(r13)
/* 802879FC 0028365C  80 C3 00 04 */	lwz r6, 4(r3)
/* 80287A00 00283660  38 00 00 00 */	li r0, 0
/* 80287A04 00283664  38 60 00 01 */	li r3, 1
/* 80287A08 00283668  7C C5 2C 30 */	srw r5, r6, r5
/* 80287A0C 0028366C  90 A4 00 30 */	stw r5, 0x30(r4)
/* 80287A10 00283670  80 AD AA 08 */	lwz r5, lbl_8063FCC8-_SDA_BASE_(r13)
/* 80287A14 00283674  7C A5 3A 14 */	add r5, r5, r7
/* 80287A18 00283678  80 A5 00 08 */	lwz r5, 8(r5)
/* 80287A1C 0028367C  90 A4 00 34 */	stw r5, 0x34(r4)
/* 80287A20 00283680  90 04 00 38 */	stw r0, 0x38(r4)
/* 80287A24 00283684  90 04 00 0C */	stw r0, 0xc(r4)
/* 80287A28 00283688  4E 80 00 20 */	blr

.global DVDOpen
DVDOpen:
/* 80287A2C 0028368C  94 21 FF 60 */	stwu r1, -0xa0(r1)
/* 80287A30 00283690  7C 08 02 A6 */	mflr r0
/* 80287A34 00283694  90 01 00 A4 */	stw r0, 0xa4(r1)
/* 80287A38 00283698  39 61 00 A0 */	addi r11, r1, 0xa0
/* 80287A3C 0028369C  4B F3 F6 ED */	bl _savegpr_27
/* 80287A40 002836A0  7C 7C 1B 78 */	mr r28, r3
/* 80287A44 002836A4  7C 9B 23 78 */	mr r27, r4
/* 80287A48 002836A8  4B FF FC 75 */	bl DVDConvertPathToEntrynum
/* 80287A4C 002836AC  2C 03 00 00 */	cmpwi r3, 0
/* 80287A50 002836B0  40 80 02 20 */	bge lbl_80287C70
/* 80287A54 002836B4  83 AD A9 F0 */	lwz r29, lbl_8063FCB0-_SDA_BASE_(r13)
/* 80287A58 002836B8  2C 1D 00 00 */	cmpwi r29, 0
/* 80287A5C 002836BC  40 82 00 0C */	bne lbl_80287A68
/* 80287A60 002836C0  38 80 00 00 */	li r4, 0
/* 80287A64 002836C4  48 00 01 90 */	b lbl_80287BF4
lbl_80287A68:
/* 80287A68 002836C8  81 0D AA 08 */	lwz r8, lbl_8063FCC8-_SDA_BASE_(r13)
/* 80287A6C 002836CC  1C 1D 00 0C */	mulli r0, r29, 0xc
/* 80287A70 002836D0  80 ED AA 04 */	lwz r7, lbl_8063FCC4-_SDA_BASE_(r13)
/* 80287A74 002836D4  38 C8 00 04 */	addi r6, r8, 4
/* 80287A78 002836D8  7C 66 00 2E */	lwzx r3, r6, r0
/* 80287A7C 002836DC  7C 08 00 2E */	lwzx r0, r8, r0
/* 80287A80 002836E0  2C 03 00 00 */	cmpwi r3, 0
/* 80287A84 002836E4  54 00 02 3E */	clrlwi r0, r0, 8
/* 80287A88 002836E8  7F C7 02 14 */	add r30, r7, r0
/* 80287A8C 002836EC  40 82 00 0C */	bne lbl_80287A98
/* 80287A90 002836F0  38 80 00 00 */	li r4, 0
/* 80287A94 002836F4  48 00 01 04 */	b lbl_80287B98
lbl_80287A98:
/* 80287A98 002836F8  1C 03 00 0C */	mulli r0, r3, 0xc
/* 80287A9C 002836FC  7C 66 00 2E */	lwzx r3, r6, r0
/* 80287AA0 00283700  7C 08 00 2E */	lwzx r0, r8, r0
/* 80287AA4 00283704  2C 03 00 00 */	cmpwi r3, 0
/* 80287AA8 00283708  54 00 02 3E */	clrlwi r0, r0, 8
/* 80287AAC 0028370C  7F E7 02 14 */	add r31, r7, r0
/* 80287AB0 00283710  40 82 00 0C */	bne lbl_80287ABC
/* 80287AB4 00283714  38 80 00 00 */	li r4, 0
/* 80287AB8 00283718  48 00 00 84 */	b lbl_80287B3C
lbl_80287ABC:
/* 80287ABC 0028371C  1C 63 00 0C */	mulli r3, r3, 0xc
/* 80287AC0 00283720  38 81 00 08 */	addi r4, r1, 8
/* 80287AC4 00283724  38 A0 00 80 */	li r5, 0x80
/* 80287AC8 00283728  7C 08 18 2E */	lwzx r0, r8, r3
/* 80287ACC 0028372C  7C 66 18 2E */	lwzx r3, r6, r3
/* 80287AD0 00283730  54 00 02 3E */	clrlwi r0, r0, 8
/* 80287AD4 00283734  7F 67 02 14 */	add r27, r7, r0
/* 80287AD8 00283738  48 00 02 25 */	bl entryToPath
/* 80287ADC 0028373C  28 03 00 80 */	cmplwi r3, 0x80
/* 80287AE0 00283740  7C 64 1B 78 */	mr r4, r3
/* 80287AE4 00283744  40 82 00 08 */	bne lbl_80287AEC
/* 80287AE8 00283748  48 00 00 54 */	b lbl_80287B3C
lbl_80287AEC:
/* 80287AEC 0028374C  38 83 00 01 */	addi r4, r3, 1
/* 80287AF0 00283750  38 A1 00 08 */	addi r5, r1, 8
/* 80287AF4 00283754  38 00 00 2F */	li r0, 0x2f
/* 80287AF8 00283758  7C 05 19 AE */	stbx r0, r5, r3
/* 80287AFC 0028375C  20 C4 00 80 */	subfic r6, r4, 0x80
/* 80287B00 00283760  7C C3 33 78 */	mr r3, r6
/* 80287B04 00283764  7C A5 22 14 */	add r5, r5, r4
/* 80287B08 00283768  48 00 00 18 */	b lbl_80287B20
lbl_80287B0C:
/* 80287B0C 0028376C  88 1B 00 00 */	lbz r0, 0(r27)
/* 80287B10 00283770  38 63 FF FF */	addi r3, r3, -1
/* 80287B14 00283774  3B 7B 00 01 */	addi r27, r27, 1
/* 80287B18 00283778  98 05 00 00 */	stb r0, 0(r5)
/* 80287B1C 0028377C  38 A5 00 01 */	addi r5, r5, 1
lbl_80287B20:
/* 80287B20 00283780  2C 03 00 00 */	cmpwi r3, 0
/* 80287B24 00283784  41 82 00 10 */	beq lbl_80287B34
/* 80287B28 00283788  88 1B 00 00 */	lbz r0, 0(r27)
/* 80287B2C 0028378C  7C 00 07 75 */	extsb. r0, r0
/* 80287B30 00283790  40 82 FF DC */	bne lbl_80287B0C
lbl_80287B34:
/* 80287B34 00283794  7C 03 30 50 */	subf r0, r3, r6
/* 80287B38 00283798  7C 84 02 14 */	add r4, r4, r0
lbl_80287B3C:
/* 80287B3C 0028379C  28 04 00 80 */	cmplwi r4, 0x80
/* 80287B40 002837A0  40 82 00 08 */	bne lbl_80287B48
/* 80287B44 002837A4  48 00 00 54 */	b lbl_80287B98
lbl_80287B48:
/* 80287B48 002837A8  38 A4 00 01 */	addi r5, r4, 1
/* 80287B4C 002837AC  38 61 00 08 */	addi r3, r1, 8
/* 80287B50 002837B0  38 00 00 2F */	li r0, 0x2f
/* 80287B54 002837B4  7C 03 21 AE */	stbx r0, r3, r4
/* 80287B58 002837B8  20 C5 00 80 */	subfic r6, r5, 0x80
/* 80287B5C 002837BC  7C C4 33 78 */	mr r4, r6
/* 80287B60 002837C0  7C 63 2A 14 */	add r3, r3, r5
/* 80287B64 002837C4  48 00 00 18 */	b lbl_80287B7C
lbl_80287B68:
/* 80287B68 002837C8  88 1F 00 00 */	lbz r0, 0(r31)
/* 80287B6C 002837CC  38 84 FF FF */	addi r4, r4, -1
/* 80287B70 002837D0  3B FF 00 01 */	addi r31, r31, 1
/* 80287B74 002837D4  98 03 00 00 */	stb r0, 0(r3)
/* 80287B78 002837D8  38 63 00 01 */	addi r3, r3, 1
lbl_80287B7C:
/* 80287B7C 002837DC  2C 04 00 00 */	cmpwi r4, 0
/* 80287B80 002837E0  41 82 00 10 */	beq lbl_80287B90
/* 80287B84 002837E4  88 1F 00 00 */	lbz r0, 0(r31)
/* 80287B88 002837E8  7C 00 07 75 */	extsb. r0, r0
/* 80287B8C 002837EC  40 82 FF DC */	bne lbl_80287B68
lbl_80287B90:
/* 80287B90 002837F0  7C 04 30 50 */	subf r0, r4, r6
/* 80287B94 002837F4  7C 85 02 14 */	add r4, r5, r0
lbl_80287B98:
/* 80287B98 002837F8  28 04 00 80 */	cmplwi r4, 0x80
/* 80287B9C 002837FC  40 82 00 08 */	bne lbl_80287BA4
/* 80287BA0 00283800  48 00 00 54 */	b lbl_80287BF4
lbl_80287BA4:
/* 80287BA4 00283804  38 A4 00 01 */	addi r5, r4, 1
/* 80287BA8 00283808  38 61 00 08 */	addi r3, r1, 8
/* 80287BAC 0028380C  38 00 00 2F */	li r0, 0x2f
/* 80287BB0 00283810  7C 03 21 AE */	stbx r0, r3, r4
/* 80287BB4 00283814  20 C5 00 80 */	subfic r6, r5, 0x80
/* 80287BB8 00283818  7C C4 33 78 */	mr r4, r6
/* 80287BBC 0028381C  7C 63 2A 14 */	add r3, r3, r5
/* 80287BC0 00283820  48 00 00 18 */	b lbl_80287BD8
lbl_80287BC4:
/* 80287BC4 00283824  88 1E 00 00 */	lbz r0, 0(r30)
/* 80287BC8 00283828  38 84 FF FF */	addi r4, r4, -1
/* 80287BCC 0028382C  3B DE 00 01 */	addi r30, r30, 1
/* 80287BD0 00283830  98 03 00 00 */	stb r0, 0(r3)
/* 80287BD4 00283834  38 63 00 01 */	addi r3, r3, 1
lbl_80287BD8:
/* 80287BD8 00283838  2C 04 00 00 */	cmpwi r4, 0
/* 80287BDC 0028383C  41 82 00 10 */	beq lbl_80287BEC
/* 80287BE0 00283840  88 1E 00 00 */	lbz r0, 0(r30)
/* 80287BE4 00283844  7C 00 07 75 */	extsb. r0, r0
/* 80287BE8 00283848  40 82 FF DC */	bne lbl_80287BC4
lbl_80287BEC:
/* 80287BEC 0028384C  7C 04 30 50 */	subf r0, r4, r6
/* 80287BF0 00283850  7C 85 02 14 */	add r4, r5, r0
lbl_80287BF4:
/* 80287BF4 00283854  28 04 00 80 */	cmplwi r4, 0x80
/* 80287BF8 00283858  40 82 00 10 */	bne lbl_80287C08
/* 80287BFC 0028385C  38 00 00 00 */	li r0, 0
/* 80287C00 00283860  98 01 00 87 */	stb r0, 0x87(r1)
/* 80287C04 00283864  48 00 00 4C */	b lbl_80287C50
lbl_80287C08:
/* 80287C08 00283868  1C 1D 00 0C */	mulli r0, r29, 0xc
/* 80287C0C 0028386C  80 6D AA 08 */	lwz r3, lbl_8063FCC8-_SDA_BASE_(r13)
/* 80287C10 00283870  7C 03 00 2E */	lwzx r0, r3, r0
/* 80287C14 00283874  54 00 00 0F */	rlwinm. r0, r0, 0, 0, 7
/* 80287C18 00283878  41 82 00 2C */	beq lbl_80287C44
/* 80287C1C 0028387C  28 04 00 7F */	cmplwi r4, 0x7f
/* 80287C20 00283880  40 82 00 14 */	bne lbl_80287C34
/* 80287C24 00283884  38 61 00 08 */	addi r3, r1, 8
/* 80287C28 00283888  38 00 00 00 */	li r0, 0
/* 80287C2C 0028388C  7C 03 21 AE */	stbx r0, r3, r4
/* 80287C30 00283890  48 00 00 20 */	b lbl_80287C50
lbl_80287C34:
/* 80287C34 00283894  38 61 00 08 */	addi r3, r1, 8
/* 80287C38 00283898  38 00 00 2F */	li r0, 0x2f
/* 80287C3C 0028389C  7C 03 21 AE */	stbx r0, r3, r4
/* 80287C40 002838A0  38 84 00 01 */	addi r4, r4, 1
lbl_80287C44:
/* 80287C44 002838A4  38 61 00 08 */	addi r3, r1, 8
/* 80287C48 002838A8  38 00 00 00 */	li r0, 0
/* 80287C4C 002838AC  7C 03 21 AE */	stbx r0, r3, r4
lbl_80287C50:
/* 80287C50 002838B0  3C 60 80 43 */	lis r3, lbl_80435E30@ha
/* 80287C54 002838B4  7F 84 E3 78 */	mr r4, r28
/* 80287C58 002838B8  38 63 5E 30 */	addi r3, r3, lbl_80435E30@l
/* 80287C5C 002838BC  38 A1 00 08 */	addi r5, r1, 8
/* 80287C60 002838C0  4C C6 31 82 */	crclr 6
/* 80287C64 002838C4  4B D7 FE 61 */	bl OSReport
/* 80287C68 002838C8  38 60 00 00 */	li r3, 0
/* 80287C6C 002838CC  48 00 00 54 */	b lbl_80287CC0
lbl_80287C70:
/* 80287C70 002838D0  1C C3 00 0C */	mulli r6, r3, 0xc
/* 80287C74 002838D4  80 6D AA 08 */	lwz r3, lbl_8063FCC8-_SDA_BASE_(r13)
/* 80287C78 002838D8  7C 03 30 2E */	lwzx r0, r3, r6
/* 80287C7C 002838DC  54 00 00 0F */	rlwinm. r0, r0, 0, 0, 7
/* 80287C80 002838E0  41 82 00 0C */	beq lbl_80287C8C
/* 80287C84 002838E4  38 60 00 00 */	li r3, 0
/* 80287C88 002838E8  48 00 00 38 */	b lbl_80287CC0
lbl_80287C8C:
/* 80287C8C 002838EC  7C 63 32 14 */	add r3, r3, r6
/* 80287C90 002838F0  80 8D AA 48 */	lwz r4, lbl_8063FD08-_SDA_BASE_(r13)
/* 80287C94 002838F4  80 A3 00 04 */	lwz r5, 4(r3)
/* 80287C98 002838F8  38 00 00 00 */	li r0, 0
/* 80287C9C 002838FC  38 60 00 01 */	li r3, 1
/* 80287CA0 00283900  7C A4 24 30 */	srw r4, r5, r4
/* 80287CA4 00283904  90 9B 00 30 */	stw r4, 0x30(r27)
/* 80287CA8 00283908  80 8D AA 08 */	lwz r4, lbl_8063FCC8-_SDA_BASE_(r13)
/* 80287CAC 0028390C  7C 84 32 14 */	add r4, r4, r6
/* 80287CB0 00283910  80 84 00 08 */	lwz r4, 8(r4)
/* 80287CB4 00283914  90 9B 00 34 */	stw r4, 0x34(r27)
/* 80287CB8 00283918  90 1B 00 38 */	stw r0, 0x38(r27)
/* 80287CBC 0028391C  90 1B 00 0C */	stw r0, 0xc(r27)
lbl_80287CC0:
/* 80287CC0 00283920  39 61 00 A0 */	addi r11, r1, 0xa0
/* 80287CC4 00283924  4B F3 F4 B1 */	bl _restgpr_27
/* 80287CC8 00283928  80 01 00 A4 */	lwz r0, 0xa4(r1)
/* 80287CCC 0028392C  7C 08 03 A6 */	mtlr r0
/* 80287CD0 00283930  38 21 00 A0 */	addi r1, r1, 0xa0
/* 80287CD4 00283934  4E 80 00 20 */	blr

.global DVDClose
DVDClose:
/* 80287CD8 00283938  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80287CDC 0028393C  7C 08 02 A6 */	mflr r0
/* 80287CE0 00283940  90 01 00 14 */	stw r0, 0x14(r1)
/* 80287CE4 00283944  48 00 46 39 */	bl DVDCancel
/* 80287CE8 00283948  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80287CEC 0028394C  38 60 00 01 */	li r3, 1
/* 80287CF0 00283950  7C 08 03 A6 */	mtlr r0
/* 80287CF4 00283954  38 21 00 10 */	addi r1, r1, 0x10
/* 80287CF8 00283958  4E 80 00 20 */	blr

.global entryToPath
entryToPath:
/* 80287CFC 0028395C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80287D00 00283960  7C 08 02 A6 */	mflr r0
/* 80287D04 00283964  90 01 00 24 */	stw r0, 0x24(r1)
/* 80287D08 00283968  39 61 00 20 */	addi r11, r1, 0x20
/* 80287D0C 0028396C  4B F3 F4 1D */	bl _savegpr_27
/* 80287D10 00283970  2C 03 00 00 */	cmpwi r3, 0
/* 80287D14 00283974  7C 9C 23 78 */	mr r28, r4
/* 80287D18 00283978  7C BD 2B 78 */	mr r29, r5
/* 80287D1C 0028397C  40 82 00 0C */	bne lbl_80287D28
/* 80287D20 00283980  38 60 00 00 */	li r3, 0
/* 80287D24 00283984  48 00 01 80 */	b lbl_80287EA4
lbl_80287D28:
/* 80287D28 00283988  81 0D AA 08 */	lwz r8, lbl_8063FCC8-_SDA_BASE_(r13)
/* 80287D2C 0028398C  1C 03 00 0C */	mulli r0, r3, 0xc
/* 80287D30 00283990  80 ED AA 04 */	lwz r7, lbl_8063FCC4-_SDA_BASE_(r13)
/* 80287D34 00283994  38 C8 00 04 */	addi r6, r8, 4
/* 80287D38 00283998  7C 66 00 2E */	lwzx r3, r6, r0
/* 80287D3C 0028399C  7C 08 00 2E */	lwzx r0, r8, r0
/* 80287D40 002839A0  2C 03 00 00 */	cmpwi r3, 0
/* 80287D44 002839A4  54 00 02 3E */	clrlwi r0, r0, 8
/* 80287D48 002839A8  7F C7 02 14 */	add r30, r7, r0
/* 80287D4C 002839AC  40 82 00 0C */	bne lbl_80287D58
/* 80287D50 002839B0  38 80 00 00 */	li r4, 0
/* 80287D54 002839B4  48 00 00 F4 */	b lbl_80287E48
lbl_80287D58:
/* 80287D58 002839B8  1C 03 00 0C */	mulli r0, r3, 0xc
/* 80287D5C 002839BC  7C 66 00 2E */	lwzx r3, r6, r0
/* 80287D60 002839C0  7C 08 00 2E */	lwzx r0, r8, r0
/* 80287D64 002839C4  2C 03 00 00 */	cmpwi r3, 0
/* 80287D68 002839C8  54 00 02 3E */	clrlwi r0, r0, 8
/* 80287D6C 002839CC  7F E7 02 14 */	add r31, r7, r0
/* 80287D70 002839D0  40 82 00 0C */	bne lbl_80287D7C
/* 80287D74 002839D4  38 80 00 00 */	li r4, 0
/* 80287D78 002839D8  48 00 00 78 */	b lbl_80287DF0
lbl_80287D7C:
/* 80287D7C 002839DC  1C 63 00 0C */	mulli r3, r3, 0xc
/* 80287D80 002839E0  7C 08 18 2E */	lwzx r0, r8, r3
/* 80287D84 002839E4  7C 66 18 2E */	lwzx r3, r6, r3
/* 80287D88 002839E8  54 00 02 3E */	clrlwi r0, r0, 8
/* 80287D8C 002839EC  7F 67 02 14 */	add r27, r7, r0
/* 80287D90 002839F0  4B FF FF 6D */	bl entryToPath
/* 80287D94 002839F4  7C 03 E8 40 */	cmplw r3, r29
/* 80287D98 002839F8  7C 64 1B 78 */	mr r4, r3
/* 80287D9C 002839FC  40 82 00 08 */	bne lbl_80287DA4
/* 80287DA0 00283A00  48 00 00 50 */	b lbl_80287DF0
lbl_80287DA4:
/* 80287DA4 00283A04  38 83 00 01 */	addi r4, r3, 1
/* 80287DA8 00283A08  38 00 00 2F */	li r0, 0x2f
/* 80287DAC 00283A0C  7C C4 E8 50 */	subf r6, r4, r29
/* 80287DB0 00283A10  7C 1C 19 AE */	stbx r0, r28, r3
/* 80287DB4 00283A14  7C 7C 22 14 */	add r3, r28, r4
/* 80287DB8 00283A18  7C C5 33 78 */	mr r5, r6
/* 80287DBC 00283A1C  48 00 00 18 */	b lbl_80287DD4
lbl_80287DC0:
/* 80287DC0 00283A20  88 1B 00 00 */	lbz r0, 0(r27)
/* 80287DC4 00283A24  38 A5 FF FF */	addi r5, r5, -1
/* 80287DC8 00283A28  3B 7B 00 01 */	addi r27, r27, 1
/* 80287DCC 00283A2C  98 03 00 00 */	stb r0, 0(r3)
/* 80287DD0 00283A30  38 63 00 01 */	addi r3, r3, 1
lbl_80287DD4:
/* 80287DD4 00283A34  2C 05 00 00 */	cmpwi r5, 0
/* 80287DD8 00283A38  41 82 00 10 */	beq lbl_80287DE8
/* 80287DDC 00283A3C  88 1B 00 00 */	lbz r0, 0(r27)
/* 80287DE0 00283A40  7C 00 07 75 */	extsb. r0, r0
/* 80287DE4 00283A44  40 82 FF DC */	bne lbl_80287DC0
lbl_80287DE8:
/* 80287DE8 00283A48  7C 05 30 50 */	subf r0, r5, r6
/* 80287DEC 00283A4C  7C 84 02 14 */	add r4, r4, r0
lbl_80287DF0:
/* 80287DF0 00283A50  7C 04 E8 40 */	cmplw r4, r29
/* 80287DF4 00283A54  40 82 00 08 */	bne lbl_80287DFC
/* 80287DF8 00283A58  48 00 00 50 */	b lbl_80287E48
lbl_80287DFC:
/* 80287DFC 00283A5C  38 64 00 01 */	addi r3, r4, 1
/* 80287E00 00283A60  38 00 00 2F */	li r0, 0x2f
/* 80287E04 00283A64  7C C3 E8 50 */	subf r6, r3, r29
/* 80287E08 00283A68  7C 1C 21 AE */	stbx r0, r28, r4
/* 80287E0C 00283A6C  7C 9C 1A 14 */	add r4, r28, r3
/* 80287E10 00283A70  7C C5 33 78 */	mr r5, r6
/* 80287E14 00283A74  48 00 00 18 */	b lbl_80287E2C
lbl_80287E18:
/* 80287E18 00283A78  88 1F 00 00 */	lbz r0, 0(r31)
/* 80287E1C 00283A7C  38 A5 FF FF */	addi r5, r5, -1
/* 80287E20 00283A80  3B FF 00 01 */	addi r31, r31, 1
/* 80287E24 00283A84  98 04 00 00 */	stb r0, 0(r4)
/* 80287E28 00283A88  38 84 00 01 */	addi r4, r4, 1
lbl_80287E2C:
/* 80287E2C 00283A8C  2C 05 00 00 */	cmpwi r5, 0
/* 80287E30 00283A90  41 82 00 10 */	beq lbl_80287E40
/* 80287E34 00283A94  88 1F 00 00 */	lbz r0, 0(r31)
/* 80287E38 00283A98  7C 00 07 75 */	extsb. r0, r0
/* 80287E3C 00283A9C  40 82 FF DC */	bne lbl_80287E18
lbl_80287E40:
/* 80287E40 00283AA0  7C 05 30 50 */	subf r0, r5, r6
/* 80287E44 00283AA4  7C 83 02 14 */	add r4, r3, r0
lbl_80287E48:
/* 80287E48 00283AA8  7C 04 E8 40 */	cmplw r4, r29
/* 80287E4C 00283AAC  40 82 00 0C */	bne lbl_80287E58
/* 80287E50 00283AB0  7C 83 23 78 */	mr r3, r4
/* 80287E54 00283AB4  48 00 00 50 */	b lbl_80287EA4
lbl_80287E58:
/* 80287E58 00283AB8  38 C4 00 01 */	addi r6, r4, 1
/* 80287E5C 00283ABC  38 00 00 2F */	li r0, 0x2f
/* 80287E60 00283AC0  7C A6 E8 50 */	subf r5, r6, r29
/* 80287E64 00283AC4  7C 1C 21 AE */	stbx r0, r28, r4
/* 80287E68 00283AC8  7C 7C 32 14 */	add r3, r28, r6
/* 80287E6C 00283ACC  7C A4 2B 78 */	mr r4, r5
/* 80287E70 00283AD0  48 00 00 18 */	b lbl_80287E88
lbl_80287E74:
/* 80287E74 00283AD4  88 1E 00 00 */	lbz r0, 0(r30)
/* 80287E78 00283AD8  38 84 FF FF */	addi r4, r4, -1
/* 80287E7C 00283ADC  3B DE 00 01 */	addi r30, r30, 1
/* 80287E80 00283AE0  98 03 00 00 */	stb r0, 0(r3)
/* 80287E84 00283AE4  38 63 00 01 */	addi r3, r3, 1
lbl_80287E88:
/* 80287E88 00283AE8  2C 04 00 00 */	cmpwi r4, 0
/* 80287E8C 00283AEC  41 82 00 10 */	beq lbl_80287E9C
/* 80287E90 00283AF0  88 1E 00 00 */	lbz r0, 0(r30)
/* 80287E94 00283AF4  7C 00 07 75 */	extsb. r0, r0
/* 80287E98 00283AF8  40 82 FF DC */	bne lbl_80287E74
lbl_80287E9C:
/* 80287E9C 00283AFC  7C 04 28 50 */	subf r0, r4, r5
/* 80287EA0 00283B00  7C 66 02 14 */	add r3, r6, r0
lbl_80287EA4:
/* 80287EA4 00283B04  39 61 00 20 */	addi r11, r1, 0x20
/* 80287EA8 00283B08  4B F3 F2 CD */	bl _restgpr_27
/* 80287EAC 00283B0C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80287EB0 00283B10  7C 08 03 A6 */	mtlr r0
/* 80287EB4 00283B14  38 21 00 20 */	addi r1, r1, 0x20
/* 80287EB8 00283B18  4E 80 00 20 */	blr

.global DVDReadAsyncPrio
DVDReadAsyncPrio:
/* 80287EBC 00283B1C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80287EC0 00283B20  7C 08 02 A6 */	mflr r0
/* 80287EC4 00283B24  90 01 00 24 */	stw r0, 0x24(r1)
/* 80287EC8 00283B28  39 61 00 20 */	addi r11, r1, 0x20
/* 80287ECC 00283B2C  4B F3 F2 59 */	bl _savegpr_26
/* 80287ED0 00283B30  2C 06 00 00 */	cmpwi r6, 0
/* 80287ED4 00283B34  7C 7A 1B 78 */	mr r26, r3
/* 80287ED8 00283B38  7C 9B 23 78 */	mr r27, r4
/* 80287EDC 00283B3C  7C BC 2B 78 */	mr r28, r5
/* 80287EE0 00283B40  7C DD 33 78 */	mr r29, r6
/* 80287EE4 00283B44  7C FE 3B 78 */	mr r30, r7
/* 80287EE8 00283B48  7D 1F 43 78 */	mr r31, r8
/* 80287EEC 00283B4C  41 80 00 10 */	blt lbl_80287EFC
/* 80287EF0 00283B50  80 03 00 34 */	lwz r0, 0x34(r3)
/* 80287EF4 00283B54  7C 06 00 40 */	cmplw r6, r0
/* 80287EF8 00283B58  40 81 00 1C */	ble lbl_80287F14
lbl_80287EFC:
/* 80287EFC 00283B5C  3C A0 80 43 */	lis r5, lbl_80435E68@ha
/* 80287F00 00283B60  38 6D 88 B0 */	addi r3, r13, lbl_8063DB70-_SDA_BASE_
/* 80287F04 00283B64  38 A5 5E 68 */	addi r5, r5, lbl_80435E68@l
/* 80287F08 00283B68  38 80 03 37 */	li r4, 0x337
/* 80287F0C 00283B6C  4C C6 31 82 */	crclr 6
/* 80287F10 00283B70  4B FE 35 8D */	bl OSPanic
lbl_80287F14:
/* 80287F14 00283B74  7C 9D E2 15 */	add. r4, r29, r28
/* 80287F18 00283B78  41 80 00 14 */	blt lbl_80287F2C
/* 80287F1C 00283B7C  80 7A 00 34 */	lwz r3, 0x34(r26)
/* 80287F20 00283B80  38 03 00 20 */	addi r0, r3, 0x20
/* 80287F24 00283B84  7C 04 00 40 */	cmplw r4, r0
/* 80287F28 00283B88  41 80 00 1C */	blt lbl_80287F44
lbl_80287F2C:
/* 80287F2C 00283B8C  3C A0 80 43 */	lis r5, lbl_80435E68@ha
/* 80287F30 00283B90  38 6D 88 B0 */	addi r3, r13, lbl_8063DB70-_SDA_BASE_
/* 80287F34 00283B94  38 A5 5E 68 */	addi r5, r5, lbl_80435E68@l
/* 80287F38 00283B98  38 80 03 3D */	li r4, 0x33d
/* 80287F3C 00283B9C  4C C6 31 82 */	crclr 6
/* 80287F40 00283BA0  4B FE 35 5D */	bl OSPanic
lbl_80287F44:
/* 80287F44 00283BA4  80 DA 00 30 */	lwz r6, 0x30(r26)
/* 80287F48 00283BA8  7F A0 16 70 */	srawi r0, r29, 2
/* 80287F4C 00283BAC  3C E0 80 28 */	lis r7, cbForReadAsync@ha
/* 80287F50 00283BB0  93 DA 00 38 */	stw r30, 0x38(r26)
/* 80287F54 00283BB4  7F 43 D3 78 */	mr r3, r26
/* 80287F58 00283BB8  7F 64 DB 78 */	mr r4, r27
/* 80287F5C 00283BBC  7F 85 E3 78 */	mr r5, r28
/* 80287F60 00283BC0  7F E8 FB 78 */	mr r8, r31
/* 80287F64 00283BC4  7C C6 02 14 */	add r6, r6, r0
/* 80287F68 00283BC8  38 E7 7F 8C */	addi r7, r7, cbForReadAsync@l
/* 80287F6C 00283BCC  48 00 3C 09 */	bl DVDReadAbsAsyncPrio
/* 80287F70 00283BD0  39 61 00 20 */	addi r11, r1, 0x20
/* 80287F74 00283BD4  38 60 00 01 */	li r3, 1
/* 80287F78 00283BD8  4B F3 F1 F9 */	bl _restgpr_26
/* 80287F7C 00283BDC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80287F80 00283BE0  7C 08 03 A6 */	mtlr r0
/* 80287F84 00283BE4  38 21 00 20 */	addi r1, r1, 0x20
/* 80287F88 00283BE8  4E 80 00 20 */	blr

.global cbForReadAsync
cbForReadAsync:
/* 80287F8C 00283BEC  81 84 00 38 */	lwz r12, 0x38(r4)
/* 80287F90 00283BF0  2C 0C 00 00 */	cmpwi r12, 0
/* 80287F94 00283BF4  4D 82 00 20 */	beqlr
/* 80287F98 00283BF8  7D 89 03 A6 */	mtctr r12
/* 80287F9C 00283BFC  4E 80 04 20 */	bctr
/* 80287FA0 00283C00  4E 80 00 20 */	blr

.global DVDReadPrio
DVDReadPrio:
/* 80287FA4 00283C04  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80287FA8 00283C08  7C 08 02 A6 */	mflr r0
/* 80287FAC 00283C0C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80287FB0 00283C10  39 61 00 20 */	addi r11, r1, 0x20
/* 80287FB4 00283C14  4B F3 F1 75 */	bl _savegpr_27
/* 80287FB8 00283C18  2C 06 00 00 */	cmpwi r6, 0
/* 80287FBC 00283C1C  7C 7B 1B 78 */	mr r27, r3
/* 80287FC0 00283C20  7C 9C 23 78 */	mr r28, r4
/* 80287FC4 00283C24  7C BD 2B 78 */	mr r29, r5
/* 80287FC8 00283C28  7C DF 33 78 */	mr r31, r6
/* 80287FCC 00283C2C  7C FE 3B 78 */	mr r30, r7
/* 80287FD0 00283C30  41 80 00 10 */	blt lbl_80287FE0
/* 80287FD4 00283C34  80 03 00 34 */	lwz r0, 0x34(r3)
/* 80287FD8 00283C38  7C 06 00 40 */	cmplw r6, r0
/* 80287FDC 00283C3C  40 81 00 1C */	ble lbl_80287FF8
lbl_80287FE0:
/* 80287FE0 00283C40  3C A0 80 43 */	lis r5, lbl_80435E9C@ha
/* 80287FE4 00283C44  38 6D 88 B0 */	addi r3, r13, lbl_8063DB70-_SDA_BASE_
/* 80287FE8 00283C48  38 A5 5E 9C */	addi r5, r5, lbl_80435E9C@l
/* 80287FEC 00283C4C  38 80 03 7D */	li r4, 0x37d
/* 80287FF0 00283C50  4C C6 31 82 */	crclr 6
/* 80287FF4 00283C54  4B FE 34 A9 */	bl OSPanic
lbl_80287FF8:
/* 80287FF8 00283C58  7C 9F EA 15 */	add. r4, r31, r29
/* 80287FFC 00283C5C  41 80 00 14 */	blt lbl_80288010
/* 80288000 00283C60  80 7B 00 34 */	lwz r3, 0x34(r27)
/* 80288004 00283C64  38 03 00 20 */	addi r0, r3, 0x20
/* 80288008 00283C68  7C 04 00 40 */	cmplw r4, r0
/* 8028800C 00283C6C  41 80 00 1C */	blt lbl_80288028
lbl_80288010:
/* 80288010 00283C70  3C A0 80 43 */	lis r5, lbl_80435E9C@ha
/* 80288014 00283C74  38 6D 88 B0 */	addi r3, r13, lbl_8063DB70-_SDA_BASE_
/* 80288018 00283C78  38 A5 5E 9C */	addi r5, r5, lbl_80435E9C@l
/* 8028801C 00283C7C  38 80 03 83 */	li r4, 0x383
/* 80288020 00283C80  4C C6 31 82 */	crclr 6
/* 80288024 00283C84  4B FE 34 79 */	bl OSPanic
lbl_80288028:
/* 80288028 00283C88  80 DB 00 30 */	lwz r6, 0x30(r27)
/* 8028802C 00283C8C  7F E0 16 70 */	srawi r0, r31, 2
/* 80288030 00283C90  3C E0 80 29 */	lis r7, cbForReadSync@ha
/* 80288034 00283C94  7F 63 DB 78 */	mr r3, r27
/* 80288038 00283C98  7F 84 E3 78 */	mr r4, r28
/* 8028803C 00283C9C  7F A5 EB 78 */	mr r5, r29
/* 80288040 00283CA0  7F C8 F3 78 */	mr r8, r30
/* 80288044 00283CA4  7C C6 02 14 */	add r6, r6, r0
/* 80288048 00283CA8  38 E7 80 CC */	addi r7, r7, cbForReadSync@l
/* 8028804C 00283CAC  48 00 3B 29 */	bl DVDReadAbsAsyncPrio
/* 80288050 00283CB0  2C 03 00 00 */	cmpwi r3, 0
/* 80288054 00283CB4  40 82 00 0C */	bne lbl_80288060
/* 80288058 00283CB8  38 60 FF FF */	li r3, -1
/* 8028805C 00283CBC  48 00 00 58 */	b lbl_802880B4
lbl_80288060:
/* 80288060 00283CC0  4B FE 66 FD */	bl OSDisableInterrupts
/* 80288064 00283CC4  7C 7F 1B 78 */	mr r31, r3
lbl_80288068:
/* 80288068 00283CC8  80 1B 00 0C */	lwz r0, 0xc(r27)
/* 8028806C 00283CCC  2C 00 00 00 */	cmpwi r0, 0
/* 80288070 00283CD0  40 82 00 0C */	bne lbl_8028807C
/* 80288074 00283CD4  83 DB 00 20 */	lwz r30, 0x20(r27)
/* 80288078 00283CD8  48 00 00 30 */	b lbl_802880A8
lbl_8028807C:
/* 8028807C 00283CDC  2C 00 FF FF */	cmpwi r0, -1
/* 80288080 00283CE0  40 82 00 0C */	bne lbl_8028808C
/* 80288084 00283CE4  3B C0 FF FF */	li r30, -1
/* 80288088 00283CE8  48 00 00 20 */	b lbl_802880A8
lbl_8028808C:
/* 8028808C 00283CEC  2C 00 00 0A */	cmpwi r0, 0xa
/* 80288090 00283CF0  40 82 00 0C */	bne lbl_8028809C
/* 80288094 00283CF4  3B C0 FF FD */	li r30, -3
/* 80288098 00283CF8  48 00 00 10 */	b lbl_802880A8
lbl_8028809C:
/* 8028809C 00283CFC  38 6D A9 F8 */	addi r3, r13, lbl_8063FCB8-_SDA_BASE_
/* 802880A0 00283D00  4B FE A2 D5 */	bl OSSleepThread
/* 802880A4 00283D04  4B FF FF C4 */	b lbl_80288068
lbl_802880A8:
/* 802880A8 00283D08  7F E3 FB 78 */	mr r3, r31
/* 802880AC 00283D0C  4B FE 66 D9 */	bl OSRestoreInterrupts
/* 802880B0 00283D10  7F C3 F3 78 */	mr r3, r30
lbl_802880B4:
/* 802880B4 00283D14  39 61 00 20 */	addi r11, r1, 0x20
/* 802880B8 00283D18  4B F3 F0 BD */	bl _restgpr_27
/* 802880BC 00283D1C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802880C0 00283D20  7C 08 03 A6 */	mtlr r0
/* 802880C4 00283D24  38 21 00 20 */	addi r1, r1, 0x20
/* 802880C8 00283D28  4E 80 00 20 */	blr

.global cbForReadSync
cbForReadSync:
/* 802880CC 00283D2C  38 6D A9 F8 */	addi r3, r13, lbl_8063FCB8-_SDA_BASE_
/* 802880D0 00283D30  4B FE A3 90 */	b OSWakeupThread

.global DVDSeekAsyncPrio
DVDSeekAsyncPrio:
/* 802880D4 00283D34  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802880D8 00283D38  7C 08 02 A6 */	mflr r0
/* 802880DC 00283D3C  2C 04 00 00 */	cmpwi r4, 0
/* 802880E0 00283D40  90 01 00 24 */	stw r0, 0x24(r1)
/* 802880E4 00283D44  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802880E8 00283D48  7C DF 33 78 */	mr r31, r6
/* 802880EC 00283D4C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802880F0 00283D50  7C BE 2B 78 */	mr r30, r5
/* 802880F4 00283D54  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802880F8 00283D58  7C 9D 23 78 */	mr r29, r4
/* 802880FC 00283D5C  93 81 00 10 */	stw r28, 0x10(r1)
/* 80288100 00283D60  7C 7C 1B 78 */	mr r28, r3
/* 80288104 00283D64  41 80 00 10 */	blt lbl_80288114
/* 80288108 00283D68  80 03 00 34 */	lwz r0, 0x34(r3)
/* 8028810C 00283D6C  7C 04 00 40 */	cmplw r4, r0
/* 80288110 00283D70  40 81 00 1C */	ble lbl_8028812C
lbl_80288114:
/* 80288114 00283D74  3C A0 80 43 */	lis r5, lbl_80435ECC@ha
/* 80288118 00283D78  38 6D 88 B0 */	addi r3, r13, lbl_8063DB70-_SDA_BASE_
/* 8028811C 00283D7C  38 A5 5E CC */	addi r5, r5, lbl_80435ECC@l
/* 80288120 00283D80  38 80 03 D4 */	li r4, 0x3d4
/* 80288124 00283D84  4C C6 31 82 */	crclr 6
/* 80288128 00283D88  4B FE 33 75 */	bl OSPanic
lbl_8028812C:
/* 8028812C 00283D8C  80 9C 00 30 */	lwz r4, 0x30(r28)
/* 80288130 00283D90  7F A0 16 70 */	srawi r0, r29, 2
/* 80288134 00283D94  3C A0 80 29 */	lis r5, cbForSeekAsync@ha
/* 80288138 00283D98  93 DC 00 38 */	stw r30, 0x38(r28)
/* 8028813C 00283D9C  7F 83 E3 78 */	mr r3, r28
/* 80288140 00283DA0  7F E6 FB 78 */	mr r6, r31
/* 80288144 00283DA4  7C 84 02 14 */	add r4, r4, r0
/* 80288148 00283DA8  38 A5 81 74 */	addi r5, r5, cbForSeekAsync@l
/* 8028814C 00283DAC  48 00 3B 0D */	bl DVDSeekAbsAsyncPrio
/* 80288150 00283DB0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80288154 00283DB4  38 60 00 01 */	li r3, 1
/* 80288158 00283DB8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8028815C 00283DBC  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80288160 00283DC0  83 81 00 10 */	lwz r28, 0x10(r1)
/* 80288164 00283DC4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80288168 00283DC8  7C 08 03 A6 */	mtlr r0
/* 8028816C 00283DCC  38 21 00 20 */	addi r1, r1, 0x20
/* 80288170 00283DD0  4E 80 00 20 */	blr

.global cbForSeekAsync
cbForSeekAsync:
/* 80288174 00283DD4  81 84 00 38 */	lwz r12, 0x38(r4)
/* 80288178 00283DD8  2C 0C 00 00 */	cmpwi r12, 0
/* 8028817C 00283DDC  4D 82 00 20 */	beqlr
/* 80288180 00283DE0  7D 89 03 A6 */	mtctr r12
/* 80288184 00283DE4  4E 80 04 20 */	bctr
/* 80288188 00283DE8  4E 80 00 20 */	blr