summaryrefslogtreecommitdiff
path: root/asm/nw4r/ut/ut_DvdFileStream.s
blob: 2988b4529937db81e60dece895f9776441a0736f (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
.include "macros.inc"

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

.global DvdAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP11DVDFileInfo
DvdAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP11DVDFileInfo:
/* 80363618 0035F278  80 84 00 3C */	lwz r4, 0x3c(r4)
/* 8036361C 0035F27C  38 00 00 00 */	li r0, 0
/* 80363620 0035F280  98 04 00 6C */	stb r0, 0x6c(r4)
/* 80363624 0035F284  90 64 00 08 */	stw r3, 8(r4)
/* 80363628 0035F288  81 84 00 0C */	lwz r12, 0xc(r4)
/* 8036362C 0035F28C  2C 0C 00 00 */	cmpwi r12, 0
/* 80363630 0035F290  4D 82 00 20 */	beqlr
/* 80363634 0035F294  80 A4 00 10 */	lwz r5, 0x10(r4)
/* 80363638 0035F298  7D 89 03 A6 */	mtctr r12
/* 8036363C 0035F29C  4E 80 04 20 */	bctr
/* 80363640 0035F2A0  4E 80 00 20 */	blr

.global DvdCBAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP15DVDCommandBlock
DvdCBAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP15DVDCommandBlock:
/* 80363644 0035F2A4  80 84 00 3C */	lwz r4, 0x3c(r4)
/* 80363648 0035F2A8  38 00 00 00 */	li r0, 0
/* 8036364C 0035F2AC  98 04 00 24 */	stb r0, 0x24(r4)
/* 80363650 0035F2B0  81 84 00 1C */	lwz r12, 0x1c(r4)
/* 80363654 0035F2B4  2C 0C 00 00 */	cmpwi r12, 0
/* 80363658 0035F2B8  4D 82 00 20 */	beqlr
/* 8036365C 0035F2BC  80 A4 00 20 */	lwz r5, 0x20(r4)
/* 80363660 0035F2C0  7D 89 03 A6 */	mtctr r12
/* 80363664 0035F2C4  4E 80 04 20 */	bctr
/* 80363668 0035F2C8  4E 80 00 20 */	blr

.global __ct__Q34nw4r2ut13DvdFileStreamFl
__ct__Q34nw4r2ut13DvdFileStreamFl:
/* 8036366C 0035F2CC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80363670 0035F2D0  7C 08 02 A6 */	mflr r0
/* 80363674 0035F2D4  3C A0 80 45 */	lis r5, lbl_8044C6F0@ha
/* 80363678 0035F2D8  38 C0 00 00 */	li r6, 0
/* 8036367C 0035F2DC  90 01 00 14 */	stw r0, 0x14(r1)
/* 80363680 0035F2E0  38 A5 C6 F0 */	addi r5, r5, lbl_8044C6F0@l
/* 80363684 0035F2E4  38 00 00 02 */	li r0, 2
/* 80363688 0035F2E8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8036368C 0035F2EC  7C 7F 1B 78 */	mr r31, r3
/* 80363690 0035F2F0  98 C3 00 6C */	stb r6, 0x6c(r3)
/* 80363694 0035F2F4  90 A3 00 00 */	stw r5, 0(r3)
/* 80363698 0035F2F8  90 C3 00 14 */	stw r6, 0x14(r3)
/* 8036369C 0035F2FC  90 C3 00 18 */	stw r6, 0x18(r3)
/* 803636A0 0035F300  98 C3 00 6D */	stb r6, 0x6d(r3)
/* 803636A4 0035F304  98 C3 00 6E */	stb r6, 0x6e(r3)
/* 803636A8 0035F308  98 C3 00 04 */	stb r6, 4(r3)
/* 803636AC 0035F30C  90 03 00 68 */	stw r0, 0x68(r3)
/* 803636B0 0035F310  90 C3 00 0C */	stw r6, 0xc(r3)
/* 803636B4 0035F314  90 C3 00 10 */	stw r6, 0x10(r3)
/* 803636B8 0035F318  90 C3 00 08 */	stw r6, 8(r3)
/* 803636BC 0035F31C  90 C3 00 1C */	stw r6, 0x1c(r3)
/* 803636C0 0035F320  98 C3 00 24 */	stb r6, 0x24(r3)
/* 803636C4 0035F324  90 C3 00 20 */	stw r6, 0x20(r3)
/* 803636C8 0035F328  90 63 00 64 */	stw r3, 0x64(r3)
/* 803636CC 0035F32C  48 00 00 08 */	b lbl_803636D4
/* 803636D0 0035F330  4E 80 04 21 */	bctrl
lbl_803636D4:
/* 803636D4 0035F334  7C 83 23 78 */	mr r3, r4
/* 803636D8 0035F338  38 9F 00 28 */	addi r4, r31, 0x28
/* 803636DC 0035F33C  4B F2 42 E9 */	bl DVDFastOpen
/* 803636E0 0035F340  2C 03 00 00 */	cmpwi r3, 0
/* 803636E4 0035F344  41 82 00 2C */	beq lbl_80363710
/* 803636E8 0035F348  80 1F 00 5C */	lwz r0, 0x5c(r31)
/* 803636EC 0035F34C  38 7F 00 14 */	addi r3, r31, 0x14
/* 803636F0 0035F350  38 80 00 00 */	li r4, 0
/* 803636F4 0035F354  38 A0 00 00 */	li r5, 0
/* 803636F8 0035F358  90 1F 00 14 */	stw r0, 0x14(r31)
/* 803636FC 0035F35C  4B FF FE 79 */	bl Seek__Q44nw4r2ut10FileStream12FilePositionFlUl
/* 80363700 0035F360  38 00 00 01 */	li r0, 1
/* 80363704 0035F364  98 1F 00 6D */	stb r0, 0x6d(r31)
/* 80363708 0035F368  98 1F 00 6E */	stb r0, 0x6e(r31)
/* 8036370C 0035F36C  98 1F 00 04 */	stb r0, 4(r31)
lbl_80363710:
/* 80363710 0035F370  7F E3 FB 78 */	mr r3, r31
/* 80363714 0035F374  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80363718 0035F378  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8036371C 0035F37C  7C 08 03 A6 */	mtlr r0
/* 80363720 0035F380  38 21 00 10 */	addi r1, r1, 0x10
/* 80363724 0035F384  4E 80 00 20 */	blr

.global __ct__Q34nw4r2ut13DvdFileStreamFPC11DVDFileInfob
__ct__Q34nw4r2ut13DvdFileStreamFPC11DVDFileInfob:
/* 80363728 0035F388  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8036372C 0035F38C  7C 08 02 A6 */	mflr r0
/* 80363730 0035F390  90 01 00 34 */	stw r0, 0x34(r1)
/* 80363734 0035F394  39 61 00 30 */	addi r11, r1, 0x30
/* 80363738 0035F398  4B E6 39 DD */	bl _savegpr_22
/* 8036373C 0035F39C  3C C0 80 45 */	lis r6, lbl_8044C6F0@ha
/* 80363740 0035F3A0  38 E0 00 00 */	li r7, 0
/* 80363744 0035F3A4  38 C6 C6 F0 */	addi r6, r6, lbl_8044C6F0@l
/* 80363748 0035F3A8  38 00 00 02 */	li r0, 2
/* 8036374C 0035F3AC  98 E3 00 6C */	stb r7, 0x6c(r3)
/* 80363750 0035F3B0  7C 7E 1B 78 */	mr r30, r3
/* 80363754 0035F3B4  7C 96 23 78 */	mr r22, r4
/* 80363758 0035F3B8  7C BF 2B 78 */	mr r31, r5
/* 8036375C 0035F3BC  90 C3 00 00 */	stw r6, 0(r3)
/* 80363760 0035F3C0  90 E3 00 14 */	stw r7, 0x14(r3)
/* 80363764 0035F3C4  90 E3 00 18 */	stw r7, 0x18(r3)
/* 80363768 0035F3C8  98 E3 00 6D */	stb r7, 0x6d(r3)
/* 8036376C 0035F3CC  98 E3 00 6E */	stb r7, 0x6e(r3)
/* 80363770 0035F3D0  98 E3 00 04 */	stb r7, 4(r3)
/* 80363774 0035F3D4  90 03 00 68 */	stw r0, 0x68(r3)
/* 80363778 0035F3D8  90 E3 00 0C */	stw r7, 0xc(r3)
/* 8036377C 0035F3DC  90 E3 00 10 */	stw r7, 0x10(r3)
/* 80363780 0035F3E0  90 E3 00 08 */	stw r7, 8(r3)
/* 80363784 0035F3E4  90 E3 00 1C */	stw r7, 0x1c(r3)
/* 80363788 0035F3E8  98 E3 00 24 */	stb r7, 0x24(r3)
/* 8036378C 0035F3EC  90 E3 00 20 */	stw r7, 0x20(r3)
/* 80363790 0035F3F0  90 63 00 64 */	stw r3, 0x64(r3)
/* 80363794 0035F3F4  48 00 00 08 */	b lbl_8036379C
/* 80363798 0035F3F8  4E 80 04 21 */	bctrl
lbl_8036379C:
/* 8036379C 0035F3FC  80 D6 00 34 */	lwz r6, 0x34(r22)
/* 803637A0 0035F400  38 7E 00 14 */	addi r3, r30, 0x14
/* 803637A4 0035F404  82 F6 00 00 */	lwz r23, 0(r22)
/* 803637A8 0035F408  38 80 00 00 */	li r4, 0
/* 803637AC 0035F40C  83 16 00 04 */	lwz r24, 4(r22)
/* 803637B0 0035F410  38 A0 00 00 */	li r5, 0
/* 803637B4 0035F414  83 36 00 08 */	lwz r25, 8(r22)
/* 803637B8 0035F418  83 56 00 0C */	lwz r26, 0xc(r22)
/* 803637BC 0035F41C  83 76 00 10 */	lwz r27, 0x10(r22)
/* 803637C0 0035F420  83 96 00 14 */	lwz r28, 0x14(r22)
/* 803637C4 0035F424  83 B6 00 18 */	lwz r29, 0x18(r22)
/* 803637C8 0035F428  81 96 00 1C */	lwz r12, 0x1c(r22)
/* 803637CC 0035F42C  81 76 00 20 */	lwz r11, 0x20(r22)
/* 803637D0 0035F430  81 56 00 24 */	lwz r10, 0x24(r22)
/* 803637D4 0035F434  81 36 00 28 */	lwz r9, 0x28(r22)
/* 803637D8 0035F438  81 16 00 2C */	lwz r8, 0x2c(r22)
/* 803637DC 0035F43C  80 F6 00 30 */	lwz r7, 0x30(r22)
/* 803637E0 0035F440  80 16 00 38 */	lwz r0, 0x38(r22)
/* 803637E4 0035F444  92 FE 00 28 */	stw r23, 0x28(r30)
/* 803637E8 0035F448  93 1E 00 2C */	stw r24, 0x2c(r30)
/* 803637EC 0035F44C  93 3E 00 30 */	stw r25, 0x30(r30)
/* 803637F0 0035F450  93 5E 00 34 */	stw r26, 0x34(r30)
/* 803637F4 0035F454  93 7E 00 38 */	stw r27, 0x38(r30)
/* 803637F8 0035F458  93 9E 00 3C */	stw r28, 0x3c(r30)
/* 803637FC 0035F45C  93 BE 00 40 */	stw r29, 0x40(r30)
/* 80363800 0035F460  91 9E 00 44 */	stw r12, 0x44(r30)
/* 80363804 0035F464  91 7E 00 48 */	stw r11, 0x48(r30)
/* 80363808 0035F468  91 5E 00 4C */	stw r10, 0x4c(r30)
/* 8036380C 0035F46C  91 3E 00 50 */	stw r9, 0x50(r30)
/* 80363810 0035F470  91 1E 00 54 */	stw r8, 0x54(r30)
/* 80363814 0035F474  90 FE 00 58 */	stw r7, 0x58(r30)
/* 80363818 0035F478  90 DE 00 5C */	stw r6, 0x5c(r30)
/* 8036381C 0035F47C  90 1E 00 60 */	stw r0, 0x60(r30)
/* 80363820 0035F480  90 DE 00 14 */	stw r6, 0x14(r30)
/* 80363824 0035F484  4B FF FD 51 */	bl Seek__Q44nw4r2ut10FileStream12FilePositionFlUl
/* 80363828 0035F488  38 60 00 00 */	li r3, 0
/* 8036382C 0035F48C  38 00 00 01 */	li r0, 1
/* 80363830 0035F490  98 7E 00 6D */	stb r3, 0x6d(r30)
/* 80363834 0035F494  39 61 00 30 */	addi r11, r1, 0x30
/* 80363838 0035F498  7F C3 F3 78 */	mr r3, r30
/* 8036383C 0035F49C  9B FE 00 6E */	stb r31, 0x6e(r30)
/* 80363840 0035F4A0  98 1E 00 04 */	stb r0, 4(r30)
/* 80363844 0035F4A4  4B E6 39 1D */	bl _restgpr_22
/* 80363848 0035F4A8  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8036384C 0035F4AC  7C 08 03 A6 */	mtlr r0
/* 80363850 0035F4B0  38 21 00 30 */	addi r1, r1, 0x30
/* 80363854 0035F4B4  4E 80 00 20 */	blr

.global __dt__Q34nw4r2ut13DvdFileStreamFv
__dt__Q34nw4r2ut13DvdFileStreamFv:
/* 80363858 0035F4B8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8036385C 0035F4BC  7C 08 02 A6 */	mflr r0
/* 80363860 0035F4C0  2C 03 00 00 */	cmpwi r3, 0
/* 80363864 0035F4C4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80363868 0035F4C8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8036386C 0035F4CC  7C 9F 23 78 */	mr r31, r4
/* 80363870 0035F4D0  93 C1 00 08 */	stw r30, 8(r1)
/* 80363874 0035F4D4  7C 7E 1B 78 */	mr r30, r3
/* 80363878 0035F4D8  41 82 00 3C */	beq lbl_803638B4
/* 8036387C 0035F4DC  88 03 00 6D */	lbz r0, 0x6d(r3)
/* 80363880 0035F4E0  3C 80 80 45 */	lis r4, lbl_8044C6F0@ha
/* 80363884 0035F4E4  38 84 C6 F0 */	addi r4, r4, lbl_8044C6F0@l
/* 80363888 0035F4E8  2C 00 00 00 */	cmpwi r0, 0
/* 8036388C 0035F4EC  90 83 00 00 */	stw r4, 0(r3)
/* 80363890 0035F4F0  41 82 00 14 */	beq lbl_803638A4
/* 80363894 0035F4F4  81 83 00 00 */	lwz r12, 0(r3)
/* 80363898 0035F4F8  81 8C 00 10 */	lwz r12, 0x10(r12)
/* 8036389C 0035F4FC  7D 89 03 A6 */	mtctr r12
/* 803638A0 0035F500  4E 80 04 21 */	bctrl
lbl_803638A4:
/* 803638A4 0035F504  2C 1F 00 00 */	cmpwi r31, 0
/* 803638A8 0035F508  40 81 00 0C */	ble lbl_803638B4
/* 803638AC 0035F50C  7F C3 F3 78 */	mr r3, r30
/* 803638B0 0035F510  4B E7 72 09 */	bl __dl__FPv
lbl_803638B4:
/* 803638B4 0035F514  7F C3 F3 78 */	mr r3, r30
/* 803638B8 0035F518  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 803638BC 0035F51C  83 C1 00 08 */	lwz r30, 8(r1)
/* 803638C0 0035F520  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803638C4 0035F524  7C 08 03 A6 */	mtlr r0
/* 803638C8 0035F528  38 21 00 10 */	addi r1, r1, 0x10
/* 803638CC 0035F52C  4E 80 00 20 */	blr

.global Close__Q34nw4r2ut13DvdFileStreamFv
Close__Q34nw4r2ut13DvdFileStreamFv:
/* 803638D0 0035F530  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803638D4 0035F534  7C 08 02 A6 */	mflr r0
/* 803638D8 0035F538  90 01 00 14 */	stw r0, 0x14(r1)
/* 803638DC 0035F53C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803638E0 0035F540  7C 7F 1B 78 */	mr r31, r3
/* 803638E4 0035F544  88 03 00 6E */	lbz r0, 0x6e(r3)
/* 803638E8 0035F548  2C 00 00 00 */	cmpwi r0, 0
/* 803638EC 0035F54C  41 82 00 20 */	beq lbl_8036390C
/* 803638F0 0035F550  88 03 00 04 */	lbz r0, 4(r3)
/* 803638F4 0035F554  2C 00 00 00 */	cmpwi r0, 0
/* 803638F8 0035F558  41 82 00 14 */	beq lbl_8036390C
/* 803638FC 0035F55C  38 63 00 28 */	addi r3, r3, 0x28
/* 80363900 0035F560  4B F2 43 D9 */	bl DVDClose
/* 80363904 0035F564  38 00 00 00 */	li r0, 0
/* 80363908 0035F568  98 1F 00 04 */	stb r0, 4(r31)
lbl_8036390C:
/* 8036390C 0035F56C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80363910 0035F570  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80363914 0035F574  7C 08 03 A6 */	mtlr r0
/* 80363918 0035F578  38 21 00 10 */	addi r1, r1, 0x10
/* 8036391C 0035F57C  4E 80 00 20 */	blr

.global Read__Q34nw4r2ut13DvdFileStreamFPvUl
Read__Q34nw4r2ut13DvdFileStreamFPvUl:
/* 80363920 0035F580  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80363924 0035F584  7C 08 02 A6 */	mflr r0
/* 80363928 0035F588  90 01 00 14 */	stw r0, 0x14(r1)
/* 8036392C 0035F58C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80363930 0035F590  93 C1 00 08 */	stw r30, 8(r1)
/* 80363934 0035F594  7C 7E 1B 78 */	mr r30, r3
/* 80363938 0035F598  80 C3 00 18 */	lwz r6, 0x18(r3)
/* 8036393C 0035F59C  81 03 00 14 */	lwz r8, 0x14(r3)
/* 80363940 0035F5A0  7C E6 2A 14 */	add r7, r6, r5
/* 80363944 0035F5A4  38 E7 00 1F */	addi r7, r7, 0x1f
/* 80363948 0035F5A8  38 08 00 1F */	addi r0, r8, 0x1f
/* 8036394C 0035F5AC  54 E7 00 34 */	rlwinm r7, r7, 0, 0, 0x1a
/* 80363950 0035F5B0  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
/* 80363954 0035F5B4  7C 07 00 40 */	cmplw r7, r0
/* 80363958 0035F5B8  40 81 00 10 */	ble lbl_80363968
/* 8036395C 0035F5BC  7C A6 40 50 */	subf r5, r6, r8
/* 80363960 0035F5C0  38 05 00 1F */	addi r0, r5, 0x1f
/* 80363964 0035F5C4  54 05 00 34 */	rlwinm r5, r0, 0, 0, 0x1a
lbl_80363968:
/* 80363968 0035F5C8  80 E3 00 68 */	lwz r7, 0x68(r3)
/* 8036396C 0035F5CC  38 63 00 28 */	addi r3, r3, 0x28
/* 80363970 0035F5D0  4B F2 46 35 */	bl DVDReadPrio
/* 80363974 0035F5D4  2C 03 00 00 */	cmpwi r3, 0
/* 80363978 0035F5D8  7C 7F 1B 78 */	mr r31, r3
/* 8036397C 0035F5DC  40 81 00 10 */	ble lbl_8036398C
/* 80363980 0035F5E0  7F E4 FB 78 */	mr r4, r31
/* 80363984 0035F5E4  38 7E 00 14 */	addi r3, r30, 0x14
/* 80363988 0035F5E8  4B FF FB 89 */	bl Skip__Q44nw4r2ut10FileStream12FilePositionFl
lbl_8036398C:
/* 8036398C 0035F5EC  7F E3 FB 78 */	mr r3, r31
/* 80363990 0035F5F0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80363994 0035F5F4  83 C1 00 08 */	lwz r30, 8(r1)
/* 80363998 0035F5F8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8036399C 0035F5FC  7C 08 03 A6 */	mtlr r0
/* 803639A0 0035F600  38 21 00 10 */	addi r1, r1, 0x10
/* 803639A4 0035F604  4E 80 00 20 */	blr

.global ReadAsync__Q34nw4r2ut13DvdFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv
ReadAsync__Q34nw4r2ut13DvdFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv:
/* 803639A8 0035F608  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 803639AC 0035F60C  7C 08 02 A6 */	mflr r0
/* 803639B0 0035F610  90 01 00 24 */	stw r0, 0x24(r1)
/* 803639B4 0035F614  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 803639B8 0035F618  7C 7F 1B 78 */	mr r31, r3
/* 803639BC 0035F61C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 803639C0 0035F620  7C BE 2B 78 */	mr r30, r5
/* 803639C4 0035F624  93 A1 00 14 */	stw r29, 0x14(r1)
/* 803639C8 0035F628  81 03 00 18 */	lwz r8, 0x18(r3)
/* 803639CC 0035F62C  81 23 00 14 */	lwz r9, 0x14(r3)
/* 803639D0 0035F630  7C A8 2A 14 */	add r5, r8, r5
/* 803639D4 0035F634  38 A5 00 1F */	addi r5, r5, 0x1f
/* 803639D8 0035F638  38 09 00 1F */	addi r0, r9, 0x1f
/* 803639DC 0035F63C  54 A5 00 34 */	rlwinm r5, r5, 0, 0, 0x1a
/* 803639E0 0035F640  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
/* 803639E4 0035F644  7C 05 00 40 */	cmplw r5, r0
/* 803639E8 0035F648  40 81 00 10 */	ble lbl_803639F8
/* 803639EC 0035F64C  7C A8 48 50 */	subf r5, r8, r9
/* 803639F0 0035F650  38 05 00 1F */	addi r0, r5, 0x1f
/* 803639F4 0035F654  54 1E 00 34 */	rlwinm r30, r0, 0, 0, 0x1a
lbl_803639F8:
/* 803639F8 0035F658  81 63 00 18 */	lwz r11, 0x18(r3)
/* 803639FC 0035F65C  39 20 00 01 */	li r9, 1
/* 80363A00 0035F660  81 43 00 14 */	lwz r10, 0x14(r3)
/* 80363A04 0035F664  7F C5 F3 78 */	mr r5, r30
/* 80363A08 0035F668  7D 0B F2 14 */	add r8, r11, r30
/* 80363A0C 0035F66C  90 C3 00 0C */	stw r6, 0xc(r3)
/* 80363A10 0035F670  38 C8 00 1F */	addi r6, r8, 0x1f
/* 80363A14 0035F674  38 0A 00 1F */	addi r0, r10, 0x1f
/* 80363A18 0035F678  54 C6 00 34 */	rlwinm r6, r6, 0, 0, 0x1a
/* 80363A1C 0035F67C  90 E3 00 10 */	stw r7, 0x10(r3)
/* 80363A20 0035F680  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
/* 80363A24 0035F684  7C 06 00 40 */	cmplw r6, r0
/* 80363A28 0035F688  99 23 00 6C */	stb r9, 0x6c(r3)
/* 80363A2C 0035F68C  40 81 00 10 */	ble lbl_80363A3C
/* 80363A30 0035F690  7C AB 50 50 */	subf r5, r11, r10
/* 80363A34 0035F694  38 05 00 1F */	addi r0, r5, 0x1f
/* 80363A38 0035F698  54 05 00 34 */	rlwinm r5, r0, 0, 0, 0x1a
lbl_80363A3C:
/* 80363A3C 0035F69C  81 03 00 68 */	lwz r8, 0x68(r3)
/* 80363A40 0035F6A0  3C E0 80 36 */	lis r7, DvdAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP11DVDFileInfo@ha
/* 80363A44 0035F6A4  7D 66 5B 78 */	mr r6, r11
/* 80363A48 0035F6A8  38 63 00 28 */	addi r3, r3, 0x28
/* 80363A4C 0035F6AC  38 E7 36 18 */	addi r7, r7, DvdAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP11DVDFileInfo@l
/* 80363A50 0035F6B0  4B F2 44 6D */	bl DVDReadAsyncPrio
/* 80363A54 0035F6B4  7C 03 00 D0 */	neg r0, r3
/* 80363A58 0035F6B8  7C 00 1B 78 */	or r0, r0, r3
/* 80363A5C 0035F6BC  54 1D 0F FF */	rlwinm. r29, r0, 1, 0x1f, 0x1f
/* 80363A60 0035F6C0  41 82 00 14 */	beq lbl_80363A74
/* 80363A64 0035F6C4  7F C4 F3 78 */	mr r4, r30
/* 80363A68 0035F6C8  38 7F 00 14 */	addi r3, r31, 0x14
/* 80363A6C 0035F6CC  4B FF FA A5 */	bl Skip__Q44nw4r2ut10FileStream12FilePositionFl
/* 80363A70 0035F6D0  48 00 00 0C */	b lbl_80363A7C
lbl_80363A74:
/* 80363A74 0035F6D4  38 00 00 00 */	li r0, 0
/* 80363A78 0035F6D8  98 1F 00 6C */	stb r0, 0x6c(r31)
lbl_80363A7C:
/* 80363A7C 0035F6DC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80363A80 0035F6E0  7F A3 EB 78 */	mr r3, r29
/* 80363A84 0035F6E4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80363A88 0035F6E8  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80363A8C 0035F6EC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80363A90 0035F6F0  7C 08 03 A6 */	mtlr r0
/* 80363A94 0035F6F4  38 21 00 20 */	addi r1, r1, 0x20
/* 80363A98 0035F6F8  4E 80 00 20 */	blr

.global Peek__Q34nw4r2ut13DvdFileStreamFPvUl
Peek__Q34nw4r2ut13DvdFileStreamFPvUl:
/* 80363A9C 0035F6FC  80 C3 00 18 */	lwz r6, 0x18(r3)
/* 80363AA0 0035F700  81 03 00 14 */	lwz r8, 0x14(r3)
/* 80363AA4 0035F704  7C E6 2A 14 */	add r7, r6, r5
/* 80363AA8 0035F708  38 E7 00 1F */	addi r7, r7, 0x1f
/* 80363AAC 0035F70C  38 08 00 1F */	addi r0, r8, 0x1f
/* 80363AB0 0035F710  54 E7 00 34 */	rlwinm r7, r7, 0, 0, 0x1a
/* 80363AB4 0035F714  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
/* 80363AB8 0035F718  7C 07 00 40 */	cmplw r7, r0
/* 80363ABC 0035F71C  40 81 00 10 */	ble lbl_80363ACC
/* 80363AC0 0035F720  7C A6 40 50 */	subf r5, r6, r8
/* 80363AC4 0035F724  38 05 00 1F */	addi r0, r5, 0x1f
/* 80363AC8 0035F728  54 05 00 34 */	rlwinm r5, r0, 0, 0, 0x1a
lbl_80363ACC:
/* 80363ACC 0035F72C  80 E3 00 68 */	lwz r7, 0x68(r3)
/* 80363AD0 0035F730  38 63 00 28 */	addi r3, r3, 0x28
/* 80363AD4 0035F734  4B F2 44 D0 */	b DVDReadPrio

.global PeekAsync__Q34nw4r2ut13DvdFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv
PeekAsync__Q34nw4r2ut13DvdFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv:
/* 80363AD8 0035F738  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80363ADC 0035F73C  7C 08 02 A6 */	mflr r0
/* 80363AE0 0035F740  39 20 00 01 */	li r9, 1
/* 80363AE4 0035F744  90 01 00 14 */	stw r0, 0x14(r1)
/* 80363AE8 0035F748  81 63 00 18 */	lwz r11, 0x18(r3)
/* 80363AEC 0035F74C  81 43 00 14 */	lwz r10, 0x14(r3)
/* 80363AF0 0035F750  7D 0B 2A 14 */	add r8, r11, r5
/* 80363AF4 0035F754  90 C3 00 0C */	stw r6, 0xc(r3)
/* 80363AF8 0035F758  38 C8 00 1F */	addi r6, r8, 0x1f
/* 80363AFC 0035F75C  38 0A 00 1F */	addi r0, r10, 0x1f
/* 80363B00 0035F760  54 C6 00 34 */	rlwinm r6, r6, 0, 0, 0x1a
/* 80363B04 0035F764  90 E3 00 10 */	stw r7, 0x10(r3)
/* 80363B08 0035F768  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
/* 80363B0C 0035F76C  7C 06 00 40 */	cmplw r6, r0
/* 80363B10 0035F770  99 23 00 6C */	stb r9, 0x6c(r3)
/* 80363B14 0035F774  40 81 00 10 */	ble lbl_80363B24
/* 80363B18 0035F778  7C AB 50 50 */	subf r5, r11, r10
/* 80363B1C 0035F77C  38 05 00 1F */	addi r0, r5, 0x1f
/* 80363B20 0035F780  54 05 00 34 */	rlwinm r5, r0, 0, 0, 0x1a
lbl_80363B24:
/* 80363B24 0035F784  81 03 00 68 */	lwz r8, 0x68(r3)
/* 80363B28 0035F788  3C E0 80 36 */	lis r7, DvdAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP11DVDFileInfo@ha
/* 80363B2C 0035F78C  7D 66 5B 78 */	mr r6, r11
/* 80363B30 0035F790  38 63 00 28 */	addi r3, r3, 0x28
/* 80363B34 0035F794  38 E7 36 18 */	addi r7, r7, DvdAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP11DVDFileInfo@l
/* 80363B38 0035F798  4B F2 43 85 */	bl DVDReadAsyncPrio
/* 80363B3C 0035F79C  7C 03 00 D0 */	neg r0, r3
/* 80363B40 0035F7A0  7C 00 1B 78 */	or r0, r0, r3
/* 80363B44 0035F7A4  54 03 0F FE */	srwi r3, r0, 0x1f
/* 80363B48 0035F7A8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80363B4C 0035F7AC  7C 08 03 A6 */	mtlr r0
/* 80363B50 0035F7B0  38 21 00 10 */	addi r1, r1, 0x10
/* 80363B54 0035F7B4  4E 80 00 20 */	blr

.global Seek__Q34nw4r2ut13DvdFileStreamFlUl
Seek__Q34nw4r2ut13DvdFileStreamFlUl:
/* 80363B58 0035F7B8  38 63 00 14 */	addi r3, r3, 0x14
/* 80363B5C 0035F7BC  4B FF FA 18 */	b Seek__Q44nw4r2ut10FileStream12FilePositionFlUl

.global Cancel__Q34nw4r2ut13DvdFileStreamFv
Cancel__Q34nw4r2ut13DvdFileStreamFv:
/* 80363B60 0035F7C0  38 63 00 28 */	addi r3, r3, 0x28
/* 80363B64 0035F7C4  4B F2 87 B8 */	b DVDCancel

.global CancelAsync__Q34nw4r2ut13DvdFileStreamFPFlPQ34nw4r2ut8IOStreamPv_vPv
CancelAsync__Q34nw4r2ut13DvdFileStreamFPFlPQ34nw4r2ut8IOStreamPv_vPv:
/* 80363B68 0035F7C8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80363B6C 0035F7CC  7C 08 02 A6 */	mflr r0
/* 80363B70 0035F7D0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80363B74 0035F7D4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80363B78 0035F7D8  7C 7F 1B 78 */	mr r31, r3
/* 80363B7C 0035F7DC  90 83 00 1C */	stw r4, 0x1c(r3)
/* 80363B80 0035F7E0  3C 80 80 36 */	lis r4, DvdCBAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP15DVDCommandBlock@ha
/* 80363B84 0035F7E4  38 84 36 44 */	addi r4, r4, DvdCBAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP15DVDCommandBlock@l
/* 80363B88 0035F7E8  90 A3 00 20 */	stw r5, 0x20(r3)
/* 80363B8C 0035F7EC  38 63 00 28 */	addi r3, r3, 0x28
/* 80363B90 0035F7F0  4B F2 84 39 */	bl DVDCancelAsync
/* 80363B94 0035F7F4  2C 03 00 00 */	cmpwi r3, 0
/* 80363B98 0035F7F8  41 82 00 0C */	beq lbl_80363BA4
/* 80363B9C 0035F7FC  38 00 00 01 */	li r0, 1
/* 80363BA0 0035F800  98 1F 00 24 */	stb r0, 0x24(r31)
lbl_80363BA4:
/* 80363BA4 0035F804  7C 03 00 D0 */	neg r0, r3
/* 80363BA8 0035F808  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80363BAC 0035F80C  7C 00 1B 78 */	or r0, r0, r3
/* 80363BB0 0035F810  54 03 0F FE */	srwi r3, r0, 0x1f
/* 80363BB4 0035F814  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80363BB8 0035F818  7C 08 03 A6 */	mtlr r0
/* 80363BBC 0035F81C  38 21 00 10 */	addi r1, r1, 0x10
/* 80363BC0 0035F820  4E 80 00 20 */	blr

.global GetBufferAlign__Q34nw4r2ut13DvdFileStreamCFv
GetBufferAlign__Q34nw4r2ut13DvdFileStreamCFv:
/* 80363BC4 0035F824  38 60 00 20 */	li r3, 0x20
/* 80363BC8 0035F828  4E 80 00 20 */	blr

.global GetSizeAlign__Q34nw4r2ut13DvdFileStreamCFv
GetSizeAlign__Q34nw4r2ut13DvdFileStreamCFv:
/* 80363BCC 0035F82C  38 60 00 20 */	li r3, 0x20
/* 80363BD0 0035F830  4E 80 00 20 */	blr

.global GetOffsetAlign__Q34nw4r2ut13DvdFileStreamCFv
GetOffsetAlign__Q34nw4r2ut13DvdFileStreamCFv:
/* 80363BD4 0035F834  38 60 00 04 */	li r3, 4
/* 80363BD8 0035F838  4E 80 00 20 */	blr

.global CanCancel__Q34nw4r2ut13DvdFileStreamCFv
CanCancel__Q34nw4r2ut13DvdFileStreamCFv:
/* 80363BDC 0035F83C  38 60 00 01 */	li r3, 1
/* 80363BE0 0035F840  4E 80 00 20 */	blr

.global CanWrite__Q34nw4r2ut13DvdFileStreamCFv
CanWrite__Q34nw4r2ut13DvdFileStreamCFv:
/* 80363BE4 0035F844  38 60 00 00 */	li r3, 0
/* 80363BE8 0035F848  4E 80 00 20 */	blr

.global CanRead__Q34nw4r2ut13DvdFileStreamCFv
CanRead__Q34nw4r2ut13DvdFileStreamCFv:
/* 80363BEC 0035F84C  38 60 00 01 */	li r3, 1
/* 80363BF0 0035F850  4E 80 00 20 */	blr

.global CanSeek__Q34nw4r2ut13DvdFileStreamCFv
CanSeek__Q34nw4r2ut13DvdFileStreamCFv:
/* 80363BF4 0035F854  38 60 00 01 */	li r3, 1
/* 80363BF8 0035F858  4E 80 00 20 */	blr

.global CanAsync__Q34nw4r2ut13DvdFileStreamCFv
CanAsync__Q34nw4r2ut13DvdFileStreamCFv:
/* 80363BFC 0035F85C  38 60 00 01 */	li r3, 1
/* 80363C00 0035F860  4E 80 00 20 */	blr

.global GetSize__Q34nw4r2ut13DvdFileStreamCFv
GetSize__Q34nw4r2ut13DvdFileStreamCFv:
/* 80363C04 0035F864  80 63 00 14 */	lwz r3, 0x14(r3)
/* 80363C08 0035F868  4E 80 00 20 */	blr

.global Tell__Q34nw4r2ut13DvdFileStreamCFv
Tell__Q34nw4r2ut13DvdFileStreamCFv:
/* 80363C0C 0035F86C  80 63 00 18 */	lwz r3, 0x18(r3)
/* 80363C10 0035F870  4E 80 00 20 */	blr

.global IsBusy__Q34nw4r2ut13DvdFileStreamCFv
IsBusy__Q34nw4r2ut13DvdFileStreamCFv:
/* 80363C14 0035F874  88 63 00 6C */	lbz r3, 0x6c(r3)
/* 80363C18 0035F878  4E 80 00 20 */	blr

.global GetRuntimeTypeInfo__Q34nw4r2ut13DvdFileStreamCFv
GetRuntimeTypeInfo__Q34nw4r2ut13DvdFileStreamCFv:
/* 80363C1C 0035F87C  38 6D B1 B0 */	addi r3, r13, lbl_80640470-_SDA_BASE_
/* 80363C20 0035F880  4E 80 00 20 */	blr

.global __sinit_$3ut_DvdFileStream_cpp
__sinit_$3ut_DvdFileStream_cpp:
/* 80363C24 0035F884  38 0D B1 A8 */	addi r0, r13, lbl_80640468-_SDA_BASE_
/* 80363C28 0035F888  90 0D B1 B0 */	stw r0, lbl_80640470-_SDA_BASE_(r13)
/* 80363C2C 0035F88C  4E 80 00 20 */	blr