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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global PlayRecordAlarmCallback
PlayRecordAlarmCallback:
/* 8027380C 0026F46C 38 60 00 00 */ li r3, 0
/* 80273810 0026F470 38 80 00 00 */ li r4, 0
/* 80273814 0026F474 48 00 00 04 */ b PlayRecordCallback
.global PlayRecordCallback
PlayRecordCallback:
/* 80273818 0026F478 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8027381C 0026F47C 7C 08 02 A6 */ mflr r0
/* 80273820 0026F480 90 01 00 24 */ stw r0, 0x24(r1)
/* 80273824 0026F484 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80273828 0026F488 3F E0 80 51 */ lis r31, lbl_805152A0@ha
/* 8027382C 0026F48C 3B FF 52 A0 */ addi r31, r31, lbl_805152A0@l
/* 80273830 0026F490 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80273834 0026F494 3B C0 00 00 */ li r30, 0
/* 80273838 0026F498 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8027383C 0026F49C 80 0D A8 70 */ lwz r0, lbl_8063FB30-_SDA_BASE_(r13)
/* 80273840 0026F4A0 90 6D A8 7C */ stw r3, lbl_8063FB3C-_SDA_BASE_(r13)
/* 80273844 0026F4A4 2C 00 00 00 */ cmpwi r0, 0
/* 80273848 0026F4A8 41 82 00 10 */ beq lbl_80273858
/* 8027384C 0026F4AC 38 00 00 01 */ li r0, 1
/* 80273850 0026F4B0 90 0D A8 74 */ stw r0, lbl_8063FB34-_SDA_BASE_(r13)
/* 80273854 0026F4B4 48 00 04 58 */ b lbl_80273CAC
lbl_80273858:
/* 80273858 0026F4B8 80 0D A8 78 */ lwz r0, lbl_8063FB38-_SDA_BASE_(r13)
/* 8027385C 0026F4BC 2C 00 00 00 */ cmpwi r0, 0
/* 80273860 0026F4C0 40 82 02 18 */ bne lbl_80273A78
/* 80273864 0026F4C4 80 0D 87 F0 */ lwz r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273868 0026F4C8 28 00 00 06 */ cmplwi r0, 6
/* 8027386C 0026F4CC 41 81 01 F8 */ bgt lbl_80273A64
/* 80273870 0026F4D0 3C 80 80 43 */ lis r4, lbl_80433D5C@ha
/* 80273874 0026F4D4 54 00 10 3A */ slwi r0, r0, 2
/* 80273878 0026F4D8 38 84 3D 5C */ addi r4, r4, lbl_80433D5C@l
/* 8027387C 0026F4DC 7C 84 00 2E */ lwzx r4, r4, r0
/* 80273880 0026F4E0 7C 89 03 A6 */ mtctr r4
/* 80273884 0026F4E4 4E 80 04 20 */ bctr
/* 80273888 0026F4E8 38 00 00 01 */ li r0, 1
/* 8027388C 0026F4EC 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273890 0026F4F0 48 00 01 E8 */ b lbl_80273A78
/* 80273894 0026F4F4 2C 03 FF F6 */ cmpwi r3, -10
/* 80273898 0026F4F8 40 82 00 38 */ bne lbl_802738D0
/* 8027389C 0026F4FC 38 00 00 01 */ li r0, 1
/* 802738A0 0026F500 38 7F 00 80 */ addi r3, r31, 0x80
/* 802738A4 0026F504 90 0D A8 78 */ stw r0, lbl_8063FB38-_SDA_BASE_(r13)
/* 802738A8 0026F508 4B FF 5E 7D */ bl OSCreateAlarm
/* 802738AC 0026F50C 3C 60 80 00 */ lis r3, 0x800000F8@ha
/* 802738B0 0026F510 3C E0 80 27 */ lis r7, PlayRecordAlarmCallback@ha
/* 802738B4 0026F514 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
/* 802738B8 0026F518 38 7F 00 80 */ addi r3, r31, 0x80
/* 802738BC 0026F51C 38 E7 38 0C */ addi r7, r7, PlayRecordAlarmCallback@l
/* 802738C0 0026F520 38 A0 00 00 */ li r5, 0
/* 802738C4 0026F524 54 06 F0 BE */ srwi r6, r0, 2
/* 802738C8 0026F528 4B FF 60 BD */ bl OSSetAlarm
/* 802738CC 0026F52C 48 00 03 E0 */ b lbl_80273CAC
lbl_802738D0:
/* 802738D0 0026F530 2C 03 00 00 */ cmpwi r3, 0
/* 802738D4 0026F534 40 82 00 28 */ bne lbl_802738FC
/* 802738D8 0026F538 80 0D A8 68 */ lwz r0, lbl_8063FB28-_SDA_BASE_(r13)
/* 802738DC 0026F53C 2C 00 00 00 */ cmpwi r0, 0
/* 802738E0 0026F540 40 82 00 10 */ bne lbl_802738F0
/* 802738E4 0026F544 38 00 00 02 */ li r0, 2
/* 802738E8 0026F548 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 802738EC 0026F54C 48 00 01 8C */ b lbl_80273A78
lbl_802738F0:
/* 802738F0 0026F550 38 00 00 04 */ li r0, 4
/* 802738F4 0026F554 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 802738F8 0026F558 48 00 01 80 */ b lbl_80273A78
lbl_802738FC:
/* 802738FC 0026F55C 38 60 00 01 */ li r3, 1
/* 80273900 0026F560 38 00 00 07 */ li r0, 7
/* 80273904 0026F564 90 6D A8 6C */ stw r3, lbl_8063FB2C-_SDA_BASE_(r13)
/* 80273908 0026F568 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 8027390C 0026F56C 48 00 03 A0 */ b lbl_80273CAC
/* 80273910 0026F570 28 03 00 80 */ cmplwi r3, 0x80
/* 80273914 0026F574 40 82 00 2C */ bne lbl_80273940
/* 80273918 0026F578 38 9F 00 00 */ addi r4, r31, 0
/* 8027391C 0026F57C 38 A0 00 01 */ li r5, 1
/* 80273920 0026F580 80 64 00 60 */ lwz r3, 0x60(r4)
/* 80273924 0026F584 38 00 00 03 */ li r0, 3
/* 80273928 0026F588 80 84 00 64 */ lwz r4, 0x64(r4)
/* 8027392C 0026F58C 90 AD A8 68 */ stw r5, lbl_8063FB28-_SDA_BASE_(r13)
/* 80273930 0026F590 90 8D A8 84 */ stw r4, lbl_8063FB44-_SDA_BASE_(r13)
/* 80273934 0026F594 90 6D A8 80 */ stw r3, lbl_8063FB40-_SDA_BASE_(r13)
/* 80273938 0026F598 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 8027393C 0026F59C 48 00 01 3C */ b lbl_80273A78
lbl_80273940:
/* 80273940 0026F5A0 38 60 00 01 */ li r3, 1
/* 80273944 0026F5A4 38 00 00 06 */ li r0, 6
/* 80273948 0026F5A8 90 6D A8 6C */ stw r3, lbl_8063FB2C-_SDA_BASE_(r13)
/* 8027394C 0026F5AC 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273950 0026F5B0 48 00 01 28 */ b lbl_80273A78
/* 80273954 0026F5B4 2C 03 00 00 */ cmpwi r3, 0
/* 80273958 0026F5B8 40 82 00 10 */ bne lbl_80273968
/* 8027395C 0026F5BC 38 00 00 04 */ li r0, 4
/* 80273960 0026F5C0 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273964 0026F5C4 48 00 01 14 */ b lbl_80273A78
lbl_80273968:
/* 80273968 0026F5C8 38 60 00 01 */ li r3, 1
/* 8027396C 0026F5CC 38 00 00 06 */ li r0, 6
/* 80273970 0026F5D0 90 6D A8 6C */ stw r3, lbl_8063FB2C-_SDA_BASE_(r13)
/* 80273974 0026F5D4 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273978 0026F5D8 48 00 01 00 */ b lbl_80273A78
/* 8027397C 0026F5DC 38 00 00 05 */ li r0, 5
/* 80273980 0026F5E0 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273984 0026F5E4 48 00 00 F4 */ b lbl_80273A78
/* 80273988 0026F5E8 28 03 00 80 */ cmplwi r3, 0x80
/* 8027398C 0026F5EC 40 82 00 70 */ bne lbl_802739FC
/* 80273990 0026F5F0 4B FF EE 29 */ bl OSGetTime
/* 80273994 0026F5F4 3C A0 80 00 */ lis r5, 0x800000F8@ha
/* 80273998 0026F5F8 81 0D A8 84 */ lwz r8, lbl_8063FB44-_SDA_BASE_(r13)
/* 8027399C 0026F5FC 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
/* 802739A0 0026F600 38 A0 01 2C */ li r5, 0x12c
/* 802739A4 0026F604 81 2D A8 80 */ lwz r9, lbl_8063FB40-_SDA_BASE_(r13)
/* 802739A8 0026F608 7D 08 20 10 */ subfc r8, r8, r4
/* 802739AC 0026F60C 54 07 F0 BE */ srwi r7, r0, 2
/* 802739B0 0026F610 38 C0 00 00 */ li r6, 0
/* 802739B4 0026F614 7C 69 19 10 */ subfe r3, r9, r3
/* 802739B8 0026F618 6C 64 80 00 */ xoris r4, r3, 0x8000
/* 802739BC 0026F61C 7C 07 28 16 */ mulhwu r0, r7, r5
/* 802739C0 0026F620 7C 66 29 D6 */ mullw r3, r6, r5
/* 802739C4 0026F624 7C 00 1A 14 */ add r0, r0, r3
/* 802739C8 0026F628 1C A7 01 2C */ mulli r5, r7, 0x12c
/* 802739CC 0026F62C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 802739D0 0026F630 7C 68 28 10 */ subfc r3, r8, r5
/* 802739D4 0026F634 7C 84 01 10 */ subfe r4, r4, r0
/* 802739D8 0026F638 7C 80 01 10 */ subfe r4, r0, r0
/* 802739DC 0026F63C 7C 84 00 D1 */ neg. r4, r4
/* 802739E0 0026F640 41 82 00 10 */ beq lbl_802739F0
/* 802739E4 0026F644 38 00 00 06 */ li r0, 6
/* 802739E8 0026F648 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 802739EC 0026F64C 48 00 00 8C */ b lbl_80273A78
lbl_802739F0:
/* 802739F0 0026F650 38 00 00 03 */ li r0, 3
/* 802739F4 0026F654 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 802739F8 0026F658 48 00 00 80 */ b lbl_80273A78
lbl_802739FC:
/* 802739FC 0026F65C 38 60 00 01 */ li r3, 1
/* 80273A00 0026F660 38 00 00 06 */ li r0, 6
/* 80273A04 0026F664 90 6D A8 6C */ stw r3, lbl_8063FB2C-_SDA_BASE_(r13)
/* 80273A08 0026F668 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273A0C 0026F66C 48 00 00 6C */ b lbl_80273A78
/* 80273A10 0026F670 80 0D A8 6C */ lwz r0, lbl_8063FB2C-_SDA_BASE_(r13)
/* 80273A14 0026F674 2C 00 00 00 */ cmpwi r0, 0
/* 80273A18 0026F678 41 82 00 10 */ beq lbl_80273A28
/* 80273A1C 0026F67C 38 00 00 07 */ li r0, 7
/* 80273A20 0026F680 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273A24 0026F684 48 00 02 88 */ b lbl_80273CAC
lbl_80273A28:
/* 80273A28 0026F688 2C 03 00 00 */ cmpwi r3, 0
/* 80273A2C 0026F68C 40 82 00 24 */ bne lbl_80273A50
/* 80273A30 0026F690 38 9F 00 00 */ addi r4, r31, 0
/* 80273A34 0026F694 38 00 00 01 */ li r0, 1
/* 80273A38 0026F698 80 64 00 60 */ lwz r3, 0x60(r4)
/* 80273A3C 0026F69C 80 84 00 64 */ lwz r4, 0x64(r4)
/* 80273A40 0026F6A0 90 6D A8 80 */ stw r3, lbl_8063FB40-_SDA_BASE_(r13)
/* 80273A44 0026F6A4 90 8D A8 84 */ stw r4, lbl_8063FB44-_SDA_BASE_(r13)
/* 80273A48 0026F6A8 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273A4C 0026F6AC 48 00 00 2C */ b lbl_80273A78
lbl_80273A50:
/* 80273A50 0026F6B0 38 60 00 07 */ li r3, 7
/* 80273A54 0026F6B4 38 00 00 01 */ li r0, 1
/* 80273A58 0026F6B8 90 6D 87 F0 */ stw r3, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273A5C 0026F6BC 90 0D A8 6C */ stw r0, lbl_8063FB2C-_SDA_BASE_(r13)
/* 80273A60 0026F6C0 48 00 02 4C */ b lbl_80273CAC
lbl_80273A64:
/* 80273A64 0026F6C4 38 60 00 07 */ li r3, 7
/* 80273A68 0026F6C8 38 00 00 01 */ li r0, 1
/* 80273A6C 0026F6CC 90 6D 87 F0 */ stw r3, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273A70 0026F6D0 90 0D A8 6C */ stw r0, lbl_8063FB2C-_SDA_BASE_(r13)
/* 80273A74 0026F6D4 48 00 02 38 */ b lbl_80273CAC
lbl_80273A78:
/* 80273A78 0026F6D8 80 0D 87 F0 */ lwz r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273A7C 0026F6DC 3B A0 00 00 */ li r29, 0
/* 80273A80 0026F6E0 93 AD A8 78 */ stw r29, lbl_8063FB38-_SDA_BASE_(r13)
/* 80273A84 0026F6E4 2C 00 00 04 */ cmpwi r0, 4
/* 80273A88 0026F6E8 41 82 00 A0 */ beq lbl_80273B28
/* 80273A8C 0026F6EC 40 80 00 1C */ bge lbl_80273AA8
/* 80273A90 0026F6F0 2C 00 00 02 */ cmpwi r0, 2
/* 80273A94 0026F6F4 41 82 00 4C */ beq lbl_80273AE0
/* 80273A98 0026F6F8 40 80 00 6C */ bge lbl_80273B04
/* 80273A9C 0026F6FC 2C 00 00 01 */ cmpwi r0, 1
/* 80273AA0 0026F700 40 80 00 18 */ bge lbl_80273AB8
/* 80273AA4 0026F704 48 00 01 30 */ b lbl_80273BD4
lbl_80273AA8:
/* 80273AA8 0026F708 2C 00 00 06 */ cmpwi r0, 6
/* 80273AAC 0026F70C 41 82 01 10 */ beq lbl_80273BBC
/* 80273AB0 0026F710 40 80 01 24 */ bge lbl_80273BD4
/* 80273AB4 0026F714 48 00 00 B0 */ b lbl_80273B64
lbl_80273AB8:
/* 80273AB8 0026F718 3C 60 80 43 */ lis r3, lbl_80433D30@ha
/* 80273ABC 0026F71C 3C C0 80 27 */ lis r6, PlayRecordCallback@ha
/* 80273AC0 0026F720 38 63 3D 30 */ addi r3, r3, lbl_80433D30@l
/* 80273AC4 0026F724 38 9F 00 B0 */ addi r4, r31, 0xb0
/* 80273AC8 0026F728 38 C6 38 18 */ addi r6, r6, PlayRecordCallback@l
/* 80273ACC 0026F72C 38 FF 01 40 */ addi r7, r31, 0x140
/* 80273AD0 0026F730 38 A0 00 03 */ li r5, 3
/* 80273AD4 0026F734 48 07 4A 4D */ bl NANDOpenAsync
/* 80273AD8 0026F738 7C 7E 1B 78 */ mr r30, r3
/* 80273ADC 0026F73C 48 00 00 F8 */ b lbl_80273BD4
lbl_80273AE0:
/* 80273AE0 0026F740 3C C0 80 27 */ lis r6, PlayRecordCallback@ha
/* 80273AE4 0026F744 38 7F 00 B0 */ addi r3, r31, 0xb0
/* 80273AE8 0026F748 38 9F 00 00 */ addi r4, r31, 0
/* 80273AEC 0026F74C 38 FF 01 40 */ addi r7, r31, 0x140
/* 80273AF0 0026F750 38 C6 38 18 */ addi r6, r6, PlayRecordCallback@l
/* 80273AF4 0026F754 38 A0 00 80 */ li r5, 0x80
/* 80273AF8 0026F758 48 07 3E 31 */ bl NANDReadAsync
/* 80273AFC 0026F75C 7C 7E 1B 78 */ mr r30, r3
/* 80273B00 0026F760 48 00 00 D4 */ b lbl_80273BD4
lbl_80273B04:
/* 80273B04 0026F764 3C C0 80 27 */ lis r6, PlayRecordCallback@ha
/* 80273B08 0026F768 38 7F 00 B0 */ addi r3, r31, 0xb0
/* 80273B0C 0026F76C 38 C6 38 18 */ addi r6, r6, PlayRecordCallback@l
/* 80273B10 0026F770 38 FF 01 40 */ addi r7, r31, 0x140
/* 80273B14 0026F774 38 80 00 00 */ li r4, 0
/* 80273B18 0026F778 38 A0 00 00 */ li r5, 0
/* 80273B1C 0026F77C 48 07 40 05 */ bl NANDSeekAsync
/* 80273B20 0026F780 7C 7E 1B 78 */ mr r30, r3
/* 80273B24 0026F784 48 00 00 B0 */ b lbl_80273BD4
lbl_80273B28:
/* 80273B28 0026F788 38 7F 00 80 */ addi r3, r31, 0x80
/* 80273B2C 0026F78C 4B FF 5B F9 */ bl OSCreateAlarm
/* 80273B30 0026F790 3C 60 80 00 */ lis r3, 0x800000F8@ha
/* 80273B34 0026F794 38 00 00 3C */ li r0, 0x3c
/* 80273B38 0026F798 80 63 00 F8 */ lwz r3, 0x800000F8@l(r3)
/* 80273B3C 0026F79C 3C E0 80 27 */ lis r7, PlayRecordAlarmCallback@ha
/* 80273B40 0026F7A0 7C 9D 01 D6 */ mullw r4, r29, r0
/* 80273B44 0026F7A4 54 65 F0 BE */ srwi r5, r3, 2
/* 80273B48 0026F7A8 38 7F 00 80 */ addi r3, r31, 0x80
/* 80273B4C 0026F7AC 38 E7 38 0C */ addi r7, r7, PlayRecordAlarmCallback@l
/* 80273B50 0026F7B0 7C 05 00 16 */ mulhwu r0, r5, r0
/* 80273B54 0026F7B4 1C C5 00 3C */ mulli r6, r5, 0x3c
/* 80273B58 0026F7B8 7C A0 22 14 */ add r5, r0, r4
/* 80273B5C 0026F7BC 4B FF 5E 29 */ bl OSSetAlarm
/* 80273B60 0026F7C0 48 00 00 74 */ b lbl_80273BD4
lbl_80273B64:
/* 80273B64 0026F7C4 4B FF EC 55 */ bl OSGetTime
/* 80273B68 0026F7C8 38 BF 00 00 */ addi r5, r31, 0
/* 80273B6C 0026F7CC 38 00 00 1F */ li r0, 0x1f
/* 80273B70 0026F7D0 90 85 00 64 */ stw r4, 0x64(r5)
/* 80273B74 0026F7D4 38 C5 00 04 */ addi r6, r5, 4
/* 80273B78 0026F7D8 38 80 00 00 */ li r4, 0
/* 80273B7C 0026F7DC 90 65 00 60 */ stw r3, 0x60(r5)
/* 80273B80 0026F7E0 7C 09 03 A6 */ mtctr r0
lbl_80273B84:
/* 80273B84 0026F7E4 80 06 00 00 */ lwz r0, 0(r6)
/* 80273B88 0026F7E8 38 C6 00 04 */ addi r6, r6, 4
/* 80273B8C 0026F7EC 7C 84 02 14 */ add r4, r4, r0
/* 80273B90 0026F7F0 42 00 FF F4 */ bdnz lbl_80273B84
/* 80273B94 0026F7F4 3C C0 80 27 */ lis r6, PlayRecordCallback@ha
/* 80273B98 0026F7F8 90 9F 00 00 */ stw r4, 0(r31)
/* 80273B9C 0026F7FC 38 7F 00 B0 */ addi r3, r31, 0xb0
/* 80273BA0 0026F800 38 9F 00 00 */ addi r4, r31, 0
/* 80273BA4 0026F804 38 C6 38 18 */ addi r6, r6, PlayRecordCallback@l
/* 80273BA8 0026F808 38 FF 01 40 */ addi r7, r31, 0x140
/* 80273BAC 0026F80C 38 A0 00 80 */ li r5, 0x80
/* 80273BB0 0026F810 48 07 3E 59 */ bl NANDWriteAsync
/* 80273BB4 0026F814 7C 7E 1B 78 */ mr r30, r3
/* 80273BB8 0026F818 48 00 00 1C */ b lbl_80273BD4
lbl_80273BBC:
/* 80273BBC 0026F81C 3C 80 80 27 */ lis r4, PlayRecordCallback@ha
/* 80273BC0 0026F820 38 7F 00 B0 */ addi r3, r31, 0xb0
/* 80273BC4 0026F824 38 84 38 18 */ addi r4, r4, PlayRecordCallback@l
/* 80273BC8 0026F828 38 BF 01 40 */ addi r5, r31, 0x140
/* 80273BCC 0026F82C 48 07 4B 29 */ bl NANDCloseAsync
/* 80273BD0 0026F830 7C 7E 1B 78 */ mr r30, r3
lbl_80273BD4:
/* 80273BD4 0026F834 2C 1E 00 00 */ cmpwi r30, 0
/* 80273BD8 0026F838 41 82 00 D0 */ beq lbl_80273CA8
/* 80273BDC 0026F83C 2C 1E FF FD */ cmpwi r30, -3
/* 80273BE0 0026F840 40 82 00 38 */ bne lbl_80273C18
/* 80273BE4 0026F844 38 7F 00 80 */ addi r3, r31, 0x80
/* 80273BE8 0026F848 4B FF 5B 3D */ bl OSCreateAlarm
/* 80273BEC 0026F84C 3C 60 80 00 */ lis r3, 0x800000F8@ha
/* 80273BF0 0026F850 3C E0 80 27 */ lis r7, PlayRecordAlarmCallback@ha
/* 80273BF4 0026F854 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
/* 80273BF8 0026F858 38 7F 00 80 */ addi r3, r31, 0x80
/* 80273BFC 0026F85C 38 E7 38 0C */ addi r7, r7, PlayRecordAlarmCallback@l
/* 80273C00 0026F860 38 A0 00 00 */ li r5, 0
/* 80273C04 0026F864 54 06 F0 BE */ srwi r6, r0, 2
/* 80273C08 0026F868 4B FF 5D 7D */ bl OSSetAlarm
/* 80273C0C 0026F86C 38 00 00 01 */ li r0, 1
/* 80273C10 0026F870 90 0D A8 78 */ stw r0, lbl_8063FB38-_SDA_BASE_(r13)
/* 80273C14 0026F874 48 00 00 94 */ b lbl_80273CA8
lbl_80273C18:
/* 80273C18 0026F878 80 0D 87 F0 */ lwz r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273C1C 0026F87C 38 60 00 01 */ li r3, 1
/* 80273C20 0026F880 90 6D A8 6C */ stw r3, lbl_8063FB2C-_SDA_BASE_(r13)
/* 80273C24 0026F884 2C 00 00 04 */ cmpwi r0, 4
/* 80273C28 0026F888 41 82 00 78 */ beq lbl_80273CA0
/* 80273C2C 0026F88C 40 80 00 10 */ bge lbl_80273C3C
/* 80273C30 0026F890 2C 00 00 02 */ cmpwi r0, 2
/* 80273C34 0026F894 40 80 00 10 */ bge lbl_80273C44
/* 80273C38 0026F898 48 00 00 68 */ b lbl_80273CA0
lbl_80273C3C:
/* 80273C3C 0026F89C 2C 00 00 06 */ cmpwi r0, 6
/* 80273C40 0026F8A0 40 80 00 60 */ bge lbl_80273CA0
lbl_80273C44:
/* 80273C44 0026F8A4 38 00 00 06 */ li r0, 6
/* 80273C48 0026F8A8 3C 80 80 27 */ lis r4, PlayRecordCallback@ha
/* 80273C4C 0026F8AC 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273C50 0026F8B0 38 7F 00 B0 */ addi r3, r31, 0xb0
/* 80273C54 0026F8B4 38 84 38 18 */ addi r4, r4, PlayRecordCallback@l
/* 80273C58 0026F8B8 38 BF 01 40 */ addi r5, r31, 0x140
/* 80273C5C 0026F8BC 48 07 4A 99 */ bl NANDCloseAsync
/* 80273C60 0026F8C0 2C 03 FF FD */ cmpwi r3, -3
/* 80273C64 0026F8C4 7C 7E 1B 78 */ mr r30, r3
/* 80273C68 0026F8C8 40 82 00 40 */ bne lbl_80273CA8
/* 80273C6C 0026F8CC 38 00 00 01 */ li r0, 1
/* 80273C70 0026F8D0 38 7F 00 80 */ addi r3, r31, 0x80
/* 80273C74 0026F8D4 90 0D A8 78 */ stw r0, lbl_8063FB38-_SDA_BASE_(r13)
/* 80273C78 0026F8D8 4B FF 5A AD */ bl OSCreateAlarm
/* 80273C7C 0026F8DC 3C 60 80 00 */ lis r3, 0x800000F8@ha
/* 80273C80 0026F8E0 3C E0 80 27 */ lis r7, PlayRecordAlarmCallback@ha
/* 80273C84 0026F8E4 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
/* 80273C88 0026F8E8 38 7F 00 80 */ addi r3, r31, 0x80
/* 80273C8C 0026F8EC 38 E7 38 0C */ addi r7, r7, PlayRecordAlarmCallback@l
/* 80273C90 0026F8F0 38 A0 00 00 */ li r5, 0
/* 80273C94 0026F8F4 54 06 F0 BE */ srwi r6, r0, 2
/* 80273C98 0026F8F8 4B FF 5C ED */ bl OSSetAlarm
/* 80273C9C 0026F8FC 48 00 00 0C */ b lbl_80273CA8
lbl_80273CA0:
/* 80273CA0 0026F900 38 00 00 07 */ li r0, 7
/* 80273CA4 0026F904 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
lbl_80273CA8:
/* 80273CA8 0026F908 93 CD A8 7C */ stw r30, lbl_8063FB3C-_SDA_BASE_(r13)
lbl_80273CAC:
/* 80273CAC 0026F90C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80273CB0 0026F910 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80273CB4 0026F914 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80273CB8 0026F918 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80273CBC 0026F91C 7C 08 03 A6 */ mtlr r0
/* 80273CC0 0026F920 38 21 00 20 */ addi r1, r1, 0x20
/* 80273CC4 0026F924 4E 80 00 20 */ blr
.global __OSStartPlayRecord
__OSStartPlayRecord:
/* 80273CC8 0026F928 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80273CCC 0026F92C 7C 08 02 A6 */ mflr r0
/* 80273CD0 0026F930 90 01 00 14 */ stw r0, 0x14(r1)
/* 80273CD4 0026F934 48 07 59 71 */ bl NANDInit
/* 80273CD8 0026F938 2C 03 00 00 */ cmpwi r3, 0
/* 80273CDC 0026F93C 40 82 00 30 */ bne lbl_80273D0C
/* 80273CE0 0026F940 38 00 00 00 */ li r0, 0
/* 80273CE4 0026F944 38 60 00 00 */ li r3, 0
/* 80273CE8 0026F948 90 0D A8 70 */ stw r0, lbl_8063FB30-_SDA_BASE_(r13)
/* 80273CEC 0026F94C 38 80 00 00 */ li r4, 0
/* 80273CF0 0026F950 90 0D A8 68 */ stw r0, lbl_8063FB28-_SDA_BASE_(r13)
/* 80273CF4 0026F954 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273CF8 0026F958 90 0D A8 6C */ stw r0, lbl_8063FB2C-_SDA_BASE_(r13)
/* 80273CFC 0026F95C 90 0D A8 78 */ stw r0, lbl_8063FB38-_SDA_BASE_(r13)
/* 80273D00 0026F960 90 0D A8 74 */ stw r0, lbl_8063FB34-_SDA_BASE_(r13)
/* 80273D04 0026F964 90 0D A8 7C */ stw r0, lbl_8063FB3C-_SDA_BASE_(r13)
/* 80273D08 0026F968 4B FF FB 11 */ bl PlayRecordCallback
lbl_80273D0C:
/* 80273D0C 0026F96C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80273D10 0026F970 7C 08 03 A6 */ mtlr r0
/* 80273D14 0026F974 38 21 00 10 */ addi r1, r1, 0x10
/* 80273D18 0026F978 4E 80 00 20 */ blr
.global __OSStopPlayRecord
__OSStopPlayRecord:
/* 80273D1C 0026F97C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80273D20 0026F980 7C 08 02 A6 */ mflr r0
/* 80273D24 0026F984 90 01 00 24 */ stw r0, 0x24(r1)
/* 80273D28 0026F988 39 61 00 20 */ addi r11, r1, 0x20
/* 80273D2C 0026F98C 4B F5 33 F9 */ bl _savegpr_26
/* 80273D30 0026F990 3F A0 80 51 */ lis r29, lbl_805152A0@ha
/* 80273D34 0026F994 3B BD 52 A0 */ addi r29, r29, lbl_805152A0@l
/* 80273D38 0026F998 4B FF AA 25 */ bl OSDisableInterrupts
/* 80273D3C 0026F99C 80 0D 87 F0 */ lwz r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273D40 0026F9A0 38 80 00 01 */ li r4, 1
/* 80273D44 0026F9A4 90 8D A8 70 */ stw r4, lbl_8063FB30-_SDA_BASE_(r13)
/* 80273D48 0026F9A8 7C 7A 1B 78 */ mr r26, r3
/* 80273D4C 0026F9AC 2C 00 00 07 */ cmpwi r0, 7
/* 80273D50 0026F9B0 41 82 00 1C */ beq lbl_80273D6C
/* 80273D54 0026F9B4 2C 00 00 00 */ cmpwi r0, 0
/* 80273D58 0026F9B8 41 82 00 14 */ beq lbl_80273D6C
/* 80273D5C 0026F9BC 2C 00 00 09 */ cmpwi r0, 9
/* 80273D60 0026F9C0 41 82 00 0C */ beq lbl_80273D6C
/* 80273D64 0026F9C4 2C 00 00 08 */ cmpwi r0, 8
/* 80273D68 0026F9C8 40 82 00 10 */ bne lbl_80273D78
lbl_80273D6C:
/* 80273D6C 0026F9CC 7F 43 D3 78 */ mr r3, r26
/* 80273D70 0026F9D0 4B FF AA 15 */ bl OSRestoreInterrupts
/* 80273D74 0026F9D4 48 00 01 70 */ b lbl_80273EE4
lbl_80273D78:
/* 80273D78 0026F9D8 2C 00 00 04 */ cmpwi r0, 4
/* 80273D7C 0026F9DC 40 82 00 64 */ bne lbl_80273DE0
/* 80273D80 0026F9E0 38 7D 00 80 */ addi r3, r29, 0x80
/* 80273D84 0026F9E4 4B FF 5C F5 */ bl OSCancelAlarm
/* 80273D88 0026F9E8 7F 43 D3 78 */ mr r3, r26
/* 80273D8C 0026F9EC 4B FF A9 F9 */ bl OSRestoreInterrupts
/* 80273D90 0026F9F0 4B FF EA 29 */ bl OSGetTime
/* 80273D94 0026F9F4 38 BD 00 00 */ addi r5, r29, 0
/* 80273D98 0026F9F8 38 00 00 1F */ li r0, 0x1f
/* 80273D9C 0026F9FC 90 85 00 64 */ stw r4, 0x64(r5)
/* 80273DA0 0026FA00 38 C5 00 04 */ addi r6, r5, 4
/* 80273DA4 0026FA04 38 80 00 00 */ li r4, 0
/* 80273DA8 0026FA08 90 65 00 60 */ stw r3, 0x60(r5)
/* 80273DAC 0026FA0C 7C 09 03 A6 */ mtctr r0
lbl_80273DB0:
/* 80273DB0 0026FA10 80 06 00 00 */ lwz r0, 0(r6)
/* 80273DB4 0026FA14 38 C6 00 04 */ addi r6, r6, 4
/* 80273DB8 0026FA18 7C 84 02 14 */ add r4, r4, r0
/* 80273DBC 0026FA1C 42 00 FF F4 */ bdnz lbl_80273DB0
/* 80273DC0 0026FA20 90 9D 00 00 */ stw r4, 0(r29)
/* 80273DC4 0026FA24 38 7D 00 B0 */ addi r3, r29, 0xb0
/* 80273DC8 0026FA28 38 9D 00 00 */ addi r4, r29, 0
/* 80273DCC 0026FA2C 38 A0 00 80 */ li r5, 0x80
/* 80273DD0 0026FA30 48 07 3B D1 */ bl NANDWrite
/* 80273DD4 0026FA34 38 7D 00 B0 */ addi r3, r29, 0xb0
/* 80273DD8 0026FA38 48 07 48 B1 */ bl NANDClose
/* 80273DDC 0026FA3C 48 00 01 08 */ b lbl_80273EE4
lbl_80273DE0:
/* 80273DE0 0026FA40 80 0D A8 78 */ lwz r0, lbl_8063FB38-_SDA_BASE_(r13)
/* 80273DE4 0026FA44 2C 00 00 00 */ cmpwi r0, 0
/* 80273DE8 0026FA48 41 82 00 18 */ beq lbl_80273E00
/* 80273DEC 0026FA4C 38 7D 00 80 */ addi r3, r29, 0x80
/* 80273DF0 0026FA50 4B FF 5C 89 */ bl OSCancelAlarm
/* 80273DF4 0026FA54 7F 43 D3 78 */ mr r3, r26
/* 80273DF8 0026FA58 4B FF A9 8D */ bl OSRestoreInterrupts
/* 80273DFC 0026FA5C 48 00 00 78 */ b lbl_80273E74
lbl_80273E00:
/* 80273E00 0026FA60 4B FF A9 85 */ bl OSRestoreInterrupts
/* 80273E04 0026FA64 4B FF E9 B5 */ bl OSGetTime
/* 80273E08 0026FA68 3C A0 10 62 */ lis r5, 0x10624DD3@ha
/* 80273E0C 0026FA6C 38 00 00 00 */ li r0, 0
/* 80273E10 0026FA70 7C 9E 23 78 */ mr r30, r4
/* 80273E14 0026FA74 7C 7F 1B 78 */ mr r31, r3
/* 80273E18 0026FA78 3B 45 4D D3 */ addi r26, r5, 0x10624DD3@l
/* 80273E1C 0026FA7C 6C 1C 80 00 */ xoris r28, r0, 0x8000
/* 80273E20 0026FA80 3F 60 80 00 */ lis r27, 0x8000
lbl_80273E24:
/* 80273E24 0026FA84 80 0D A8 74 */ lwz r0, lbl_8063FB34-_SDA_BASE_(r13)
/* 80273E28 0026FA88 2C 00 00 00 */ cmpwi r0, 0
/* 80273E2C 0026FA8C 40 82 00 48 */ bne lbl_80273E74
/* 80273E30 0026FA90 4B FF E9 89 */ bl OSGetTime
/* 80273E34 0026FA94 80 1B 00 F8 */ lwz r0, 0xf8(r27)
/* 80273E38 0026FA98 7C 9E 20 10 */ subfc r4, r30, r4
/* 80273E3C 0026FA9C 7C 7F 19 10 */ subfe r3, r31, r3
/* 80273E40 0026FAA0 54 00 F0 BE */ srwi r0, r0, 2
/* 80273E44 0026FAA4 7C 1A 00 16 */ mulhwu r0, r26, r0
/* 80273E48 0026FAA8 6C 63 80 00 */ xoris r3, r3, 0x8000
/* 80273E4C 0026FAAC 54 00 D1 BE */ srwi r0, r0, 6
/* 80273E50 0026FAB0 1C 00 01 F4 */ mulli r0, r0, 0x1f4
/* 80273E54 0026FAB4 7C 04 00 10 */ subfc r0, r4, r0
/* 80273E58 0026FAB8 7C 63 E1 10 */ subfe r3, r3, r28
/* 80273E5C 0026FABC 7C 7C E1 10 */ subfe r3, r28, r28
/* 80273E60 0026FAC0 7C 63 00 D1 */ neg. r3, r3
/* 80273E64 0026FAC4 41 82 FF C0 */ beq lbl_80273E24
/* 80273E68 0026FAC8 38 00 00 08 */ li r0, 8
/* 80273E6C 0026FACC 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273E70 0026FAD0 48 00 00 7C */ b lbl_80273EEC
lbl_80273E74:
/* 80273E74 0026FAD4 80 0D 87 F0 */ lwz r0, lbl_8063DAB0-_SDA_BASE_(r13)
/* 80273E78 0026FAD8 2C 00 00 04 */ cmpwi r0, 4
/* 80273E7C 0026FADC 41 82 00 68 */ beq lbl_80273EE4
/* 80273E80 0026FAE0 40 80 00 14 */ bge lbl_80273E94
/* 80273E84 0026FAE4 2C 00 00 01 */ cmpwi r0, 1
/* 80273E88 0026FAE8 41 82 00 24 */ beq lbl_80273EAC
/* 80273E8C 0026FAEC 40 80 00 14 */ bge lbl_80273EA0
/* 80273E90 0026FAF0 48 00 00 54 */ b lbl_80273EE4
lbl_80273E94:
/* 80273E94 0026FAF4 2C 00 00 06 */ cmpwi r0, 6
/* 80273E98 0026FAF8 41 82 00 38 */ beq lbl_80273ED0
/* 80273E9C 0026FAFC 40 80 00 48 */ bge lbl_80273EE4
lbl_80273EA0:
/* 80273EA0 0026FB00 38 7D 00 B0 */ addi r3, r29, 0xb0
/* 80273EA4 0026FB04 48 07 47 E5 */ bl NANDClose
/* 80273EA8 0026FB08 48 00 00 3C */ b lbl_80273EE4
lbl_80273EAC:
/* 80273EAC 0026FB0C 80 0D A8 7C */ lwz r0, lbl_8063FB3C-_SDA_BASE_(r13)
/* 80273EB0 0026FB10 2C 00 00 00 */ cmpwi r0, 0
/* 80273EB4 0026FB14 40 82 00 30 */ bne lbl_80273EE4
/* 80273EB8 0026FB18 80 0D A8 78 */ lwz r0, lbl_8063FB38-_SDA_BASE_(r13)
/* 80273EBC 0026FB1C 2C 00 00 00 */ cmpwi r0, 0
/* 80273EC0 0026FB20 40 82 00 24 */ bne lbl_80273EE4
/* 80273EC4 0026FB24 38 7D 00 B0 */ addi r3, r29, 0xb0
/* 80273EC8 0026FB28 48 07 47 C1 */ bl NANDClose
/* 80273ECC 0026FB2C 48 00 00 18 */ b lbl_80273EE4
lbl_80273ED0:
/* 80273ED0 0026FB30 80 0D A8 78 */ lwz r0, lbl_8063FB38-_SDA_BASE_(r13)
/* 80273ED4 0026FB34 2C 00 00 00 */ cmpwi r0, 0
/* 80273ED8 0026FB38 41 82 00 0C */ beq lbl_80273EE4
/* 80273EDC 0026FB3C 38 7D 00 B0 */ addi r3, r29, 0xb0
/* 80273EE0 0026FB40 48 07 47 A9 */ bl NANDClose
lbl_80273EE4:
/* 80273EE4 0026FB44 38 00 00 09 */ li r0, 9
/* 80273EE8 0026FB48 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
lbl_80273EEC:
/* 80273EEC 0026FB4C 39 61 00 20 */ addi r11, r1, 0x20
/* 80273EF0 0026FB50 4B F5 32 81 */ bl _restgpr_26
/* 80273EF4 0026FB54 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80273EF8 0026FB58 7C 08 03 A6 */ mtlr r0
/* 80273EFC 0026FB5C 38 21 00 20 */ addi r1, r1, 0x20
/* 80273F00 0026FB60 4E 80 00 20 */ blr
|