summaryrefslogtreecommitdiff
path: root/asm/SDK/HBM/HBMRemoteSpk.s
blob: 88f9510f6e91a0e1aaa2194d437f34e42ed71803 (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
.include "macros.inc"

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

.global UpdateSpeaker__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext
UpdateSpeaker__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext:
/* 803A58E4 003A1544  94 21 FF 70 */	stwu r1, -0x90(r1)
/* 803A58E8 003A1548  7C 08 02 A6 */	mflr r0
/* 803A58EC 003A154C  90 01 00 94 */	stw r0, 0x94(r1)
/* 803A58F0 003A1550  39 61 00 90 */	addi r11, r1, 0x90
/* 803A58F4 003A1554  4B E2 18 31 */	bl _savegpr_26
/* 803A58F8 003A1558  83 AD B2 F8 */	lwz r29, lbl_806405B8-_SDA_BASE_(r13)
/* 803A58FC 003A155C  2C 1D 00 00 */	cmpwi r29, 0
/* 803A5900 003A1560  41 82 02 30 */	beq lbl_803A5B30
/* 803A5904 003A1564  3B 80 00 00 */	li r28, 0
/* 803A5908 003A1568  3B E0 00 00 */	li r31, 0
/* 803A590C 003A156C  3F C0 66 66 */	lis r30, 0x6666
/* 803A5910 003A1570  3B 40 FF FF */	li r26, -1
lbl_803A5914:
/* 803A5914 003A1574  80 1D 00 50 */	lwz r0, 0x50(r29)
/* 803A5918 003A1578  2C 00 00 00 */	cmpwi r0, 0
/* 803A591C 003A157C  41 82 02 04 */	beq lbl_803A5B20
/* 803A5920 003A1580  7F 83 E3 78 */	mr r3, r28
/* 803A5924 003A1584  4B F0 42 AD */	bl WPADIsSpeakerEnabled
/* 803A5928 003A1588  2C 03 00 00 */	cmpwi r3, 0
/* 803A592C 003A158C  41 82 01 F4 */	beq lbl_803A5B20
/* 803A5930 003A1590  4B EC 8E 2D */	bl OSDisableInterrupts
/* 803A5934 003A1594  7C 7B 1B 78 */	mr r27, r3
/* 803A5938 003A1598  7F 83 E3 78 */	mr r3, r28
/* 803A593C 003A159C  4B F0 5A B1 */	bl WPADCanSendStreamData
/* 803A5940 003A15A0  2C 03 00 00 */	cmpwi r3, 0
/* 803A5944 003A15A4  41 82 01 B4 */	beq lbl_803A5AF8
/* 803A5948 003A15A8  80 1D 00 54 */	lwz r0, 0x54(r29)
/* 803A594C 003A15AC  38 E1 00 20 */	addi r7, r1, 0x20
/* 803A5950 003A15B0  89 1D 00 5D */	lbz r8, 0x5d(r29)
/* 803A5954 003A15B4  38 A0 00 28 */	li r5, 0x28
/* 803A5958 003A15B8  54 09 F8 7E */	srwi r9, r0, 1
/* 803A595C 003A15BC  80 DD 00 50 */	lwz r6, 0x50(r29)
/* 803A5960 003A15C0  28 09 00 28 */	cmplwi r9, 0x28
/* 803A5964 003A15C4  7D 08 07 74 */	extsb r8, r8
/* 803A5968 003A15C8  41 81 00 08 */	bgt lbl_803A5970
/* 803A596C 003A15CC  7D 25 4B 78 */	mr r5, r9
lbl_803A5970:
/* 803A5970 003A15D0  28 05 00 00 */	cmplwi r5, 0
/* 803A5974 003A15D4  38 9E 66 67 */	addi r4, r30, 0x6667
/* 803A5978 003A15D8  40 81 00 C0 */	ble lbl_803A5A38
/* 803A597C 003A15DC  54 A0 F0 BF */	rlwinm. r0, r5, 0x1e, 2, 0x1f
/* 803A5980 003A15E0  7C 09 03 A6 */	mtctr r0
/* 803A5984 003A15E4  41 82 00 88 */	beq lbl_803A5A0C
lbl_803A5988:
/* 803A5988 003A15E8  A8 06 00 00 */	lha r0, 0(r6)
/* 803A598C 003A15EC  7C 00 41 D6 */	mullw r0, r0, r8
/* 803A5990 003A15F0  7C 04 00 96 */	mulhw r0, r4, r0
/* 803A5994 003A15F4  7C 00 16 70 */	srawi r0, r0, 2
/* 803A5998 003A15F8  54 03 0F FE */	srwi r3, r0, 0x1f
/* 803A599C 003A15FC  7C 00 1A 14 */	add r0, r0, r3
/* 803A59A0 003A1600  B0 07 00 00 */	sth r0, 0(r7)
/* 803A59A4 003A1604  A8 06 00 02 */	lha r0, 2(r6)
/* 803A59A8 003A1608  7C 00 41 D6 */	mullw r0, r0, r8
/* 803A59AC 003A160C  7C 04 00 96 */	mulhw r0, r4, r0
/* 803A59B0 003A1610  7C 00 16 70 */	srawi r0, r0, 2
/* 803A59B4 003A1614  54 03 0F FE */	srwi r3, r0, 0x1f
/* 803A59B8 003A1618  7C 00 1A 14 */	add r0, r0, r3
/* 803A59BC 003A161C  B0 07 00 02 */	sth r0, 2(r7)
/* 803A59C0 003A1620  A8 06 00 04 */	lha r0, 4(r6)
/* 803A59C4 003A1624  7C 00 41 D6 */	mullw r0, r0, r8
/* 803A59C8 003A1628  7C 04 00 96 */	mulhw r0, r4, r0
/* 803A59CC 003A162C  7C 00 16 70 */	srawi r0, r0, 2
/* 803A59D0 003A1630  54 03 0F FE */	srwi r3, r0, 0x1f
/* 803A59D4 003A1634  7C 00 1A 14 */	add r0, r0, r3
/* 803A59D8 003A1638  B0 07 00 04 */	sth r0, 4(r7)
/* 803A59DC 003A163C  A8 06 00 06 */	lha r0, 6(r6)
/* 803A59E0 003A1640  38 C6 00 08 */	addi r6, r6, 8
/* 803A59E4 003A1644  7C 00 41 D6 */	mullw r0, r0, r8
/* 803A59E8 003A1648  7C 04 00 96 */	mulhw r0, r4, r0
/* 803A59EC 003A164C  7C 00 16 70 */	srawi r0, r0, 2
/* 803A59F0 003A1650  54 03 0F FE */	srwi r3, r0, 0x1f
/* 803A59F4 003A1654  7C 00 1A 14 */	add r0, r0, r3
/* 803A59F8 003A1658  B0 07 00 06 */	sth r0, 6(r7)
/* 803A59FC 003A165C  38 E7 00 08 */	addi r7, r7, 8
/* 803A5A00 003A1660  42 00 FF 88 */	bdnz lbl_803A5988
/* 803A5A04 003A1664  70 A5 00 03 */	andi. r5, r5, 3
/* 803A5A08 003A1668  41 82 00 30 */	beq lbl_803A5A38
lbl_803A5A0C:
/* 803A5A0C 003A166C  7C A9 03 A6 */	mtctr r5
lbl_803A5A10:
/* 803A5A10 003A1670  A8 06 00 00 */	lha r0, 0(r6)
/* 803A5A14 003A1674  38 C6 00 02 */	addi r6, r6, 2
/* 803A5A18 003A1678  7C 00 41 D6 */	mullw r0, r0, r8
/* 803A5A1C 003A167C  7C 04 00 96 */	mulhw r0, r4, r0
/* 803A5A20 003A1680  7C 00 16 70 */	srawi r0, r0, 2
/* 803A5A24 003A1684  54 03 0F FE */	srwi r3, r0, 0x1f
/* 803A5A28 003A1688  7C 00 1A 14 */	add r0, r0, r3
/* 803A5A2C 003A168C  B0 07 00 00 */	sth r0, 0(r7)
/* 803A5A30 003A1690  38 E7 00 02 */	addi r7, r7, 2
/* 803A5A34 003A1694  42 00 FF DC */	bdnz lbl_803A5A10
lbl_803A5A38:
/* 803A5A38 003A1698  28 09 00 28 */	cmplwi r9, 0x28
/* 803A5A3C 003A169C  41 81 00 5C */	bgt lbl_803A5A98
/* 803A5A40 003A16A0  20 69 00 28 */	subfic r3, r9, 0x28
/* 803A5A44 003A16A4  28 03 00 00 */	cmplwi r3, 0
/* 803A5A48 003A16A8  40 81 00 50 */	ble lbl_803A5A98
/* 803A5A4C 003A16AC  54 60 E8 FF */	rlwinm. r0, r3, 0x1d, 3, 0x1f
/* 803A5A50 003A16B0  7C 09 03 A6 */	mtctr r0
/* 803A5A54 003A16B4  41 82 00 34 */	beq lbl_803A5A88
lbl_803A5A58:
/* 803A5A58 003A16B8  B3 E7 00 00 */	sth r31, 0(r7)
/* 803A5A5C 003A16BC  B3 E7 00 02 */	sth r31, 2(r7)
/* 803A5A60 003A16C0  B3 E7 00 04 */	sth r31, 4(r7)
/* 803A5A64 003A16C4  B3 E7 00 06 */	sth r31, 6(r7)
/* 803A5A68 003A16C8  B3 E7 00 08 */	sth r31, 8(r7)
/* 803A5A6C 003A16CC  B3 E7 00 0A */	sth r31, 0xa(r7)
/* 803A5A70 003A16D0  B3 E7 00 0C */	sth r31, 0xc(r7)
/* 803A5A74 003A16D4  B3 E7 00 0E */	sth r31, 0xe(r7)
/* 803A5A78 003A16D8  38 E7 00 10 */	addi r7, r7, 0x10
/* 803A5A7C 003A16DC  42 00 FF DC */	bdnz lbl_803A5A58
/* 803A5A80 003A16E0  70 63 00 07 */	andi. r3, r3, 7
/* 803A5A84 003A16E4  41 82 00 14 */	beq lbl_803A5A98
lbl_803A5A88:
/* 803A5A88 003A16E8  7C 69 03 A6 */	mtctr r3
lbl_803A5A8C:
/* 803A5A8C 003A16EC  B3 E7 00 00 */	sth r31, 0(r7)
/* 803A5A90 003A16F0  38 E7 00 02 */	addi r7, r7, 2
/* 803A5A94 003A16F4  42 00 FF F8 */	bdnz lbl_803A5A8C
lbl_803A5A98:
/* 803A5A98 003A16F8  88 1D 00 5C */	lbz r0, 0x5c(r29)
/* 803A5A9C 003A16FC  38 7D 00 30 */	addi r3, r29, 0x30
/* 803A5AA0 003A1700  38 A1 00 20 */	addi r5, r1, 0x20
/* 803A5AA4 003A1704  38 E1 00 08 */	addi r7, r1, 8
/* 803A5AA8 003A1708  7C 00 00 34 */	cntlzw r0, r0
/* 803A5AAC 003A170C  38 C0 00 28 */	li r6, 0x28
/* 803A5AB0 003A1710  54 04 D9 7E */	srwi r4, r0, 5
/* 803A5AB4 003A1714  4B F4 6F 6D */	bl WENCGetEncodeData
/* 803A5AB8 003A1718  7F 83 E3 78 */	mr r3, r28
/* 803A5ABC 003A171C  38 81 00 08 */	addi r4, r1, 8
/* 803A5AC0 003A1720  38 A0 00 14 */	li r5, 0x14
/* 803A5AC4 003A1724  4B F0 59 AD */	bl WPADSendStreamData
/* 803A5AC8 003A1728  9B FD 00 5C */	stb r31, 0x5c(r29)
/* 803A5ACC 003A172C  9B FD 00 5E */	stb r31, 0x5e(r29)
/* 803A5AD0 003A1730  80 7D 00 50 */	lwz r3, 0x50(r29)
/* 803A5AD4 003A1734  38 03 00 50 */	addi r0, r3, 0x50
/* 803A5AD8 003A1738  90 1D 00 50 */	stw r0, 0x50(r29)
/* 803A5ADC 003A173C  80 7D 00 54 */	lwz r3, 0x54(r29)
/* 803A5AE0 003A1740  34 03 FF B0 */	addic. r0, r3, -80
/* 803A5AE4 003A1744  90 1D 00 54 */	stw r0, 0x54(r29)
/* 803A5AE8 003A1748  41 81 00 30 */	bgt lbl_803A5B18
/* 803A5AEC 003A174C  93 5D 00 58 */	stw r26, 0x58(r29)
/* 803A5AF0 003A1750  93 FD 00 50 */	stw r31, 0x50(r29)
/* 803A5AF4 003A1754  48 00 00 24 */	b lbl_803A5B18
lbl_803A5AF8:
/* 803A5AF8 003A1758  88 7D 00 5E */	lbz r3, 0x5e(r29)
/* 803A5AFC 003A175C  38 63 00 01 */	addi r3, r3, 1
/* 803A5B00 003A1760  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 803A5B04 003A1764  98 7D 00 5E */	stb r3, 0x5e(r29)
/* 803A5B08 003A1768  7C 00 07 74 */	extsb r0, r0
/* 803A5B0C 003A176C  2C 00 01 2C */	cmpwi r0, 0x12c
/* 803A5B10 003A1770  40 81 00 08 */	ble lbl_803A5B18
/* 803A5B14 003A1774  93 FD 00 50 */	stw r31, 0x50(r29)
lbl_803A5B18:
/* 803A5B18 003A1778  7F 63 DB 78 */	mr r3, r27
/* 803A5B1C 003A177C  4B EC 8C 69 */	bl OSRestoreInterrupts
lbl_803A5B20:
/* 803A5B20 003A1780  3B 9C 00 01 */	addi r28, r28, 1
/* 803A5B24 003A1784  3B BD 00 68 */	addi r29, r29, 0x68
/* 803A5B28 003A1788  2C 1C 00 04 */	cmpwi r28, 4
/* 803A5B2C 003A178C  41 80 FD E8 */	blt lbl_803A5914
lbl_803A5B30:
/* 803A5B30 003A1790  39 61 00 90 */	addi r11, r1, 0x90
/* 803A5B34 003A1794  4B E2 16 3D */	bl _restgpr_26
/* 803A5B38 003A1798  80 01 00 94 */	lwz r0, 0x94(r1)
/* 803A5B3C 003A179C  7C 08 03 A6 */	mtlr r0
/* 803A5B40 003A17A0  38 21 00 90 */	addi r1, r1, 0x90
/* 803A5B44 003A17A4  4E 80 00 20 */	blr 

.global ClearPcm__Q210homebutton9RemoteSpkFv
ClearPcm__Q210homebutton9RemoteSpkFv:
/* 803A5B48 003A17A8  80 8D B2 F8 */	lwz r4, lbl_806405B8-_SDA_BASE_(r13)
/* 803A5B4C 003A17AC  38 60 FF FF */	li r3, -1
/* 803A5B50 003A17B0  38 00 00 00 */	li r0, 0
/* 803A5B54 003A17B4  90 64 00 58 */	stw r3, 0x58(r4)
/* 803A5B58 003A17B8  90 04 00 50 */	stw r0, 0x50(r4)
/* 803A5B5C 003A17BC  90 64 00 C0 */	stw r3, 0xc0(r4)
/* 803A5B60 003A17C0  90 04 00 B8 */	stw r0, 0xb8(r4)
/* 803A5B64 003A17C4  90 64 01 28 */	stw r3, 0x128(r4)
/* 803A5B68 003A17C8  90 04 01 20 */	stw r0, 0x120(r4)
/* 803A5B6C 003A17CC  90 64 01 90 */	stw r3, 0x190(r4)
/* 803A5B70 003A17D0  90 04 01 88 */	stw r0, 0x188(r4)
/* 803A5B74 003A17D4  4E 80 00 20 */	blr 

.global __ct__Q210homebutton9RemoteSpkFPv
__ct__Q210homebutton9RemoteSpkFPv:
/* 803A5B78 003A17D8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 803A5B7C 003A17DC  7C 08 02 A6 */	mflr r0
/* 803A5B80 003A17E0  90 01 00 24 */	stw r0, 0x24(r1)
/* 803A5B84 003A17E4  39 61 00 20 */	addi r11, r1, 0x20
/* 803A5B88 003A17E8  4B E2 15 9D */	bl _savegpr_26
/* 803A5B8C 003A17EC  3C A0 80 47 */	lis r5, lbl_80473058@ha
/* 803A5B90 003A17F0  2C 04 00 00 */	cmpwi r4, 0
/* 803A5B94 003A17F4  38 A5 30 58 */	addi r5, r5, lbl_80473058@l
/* 803A5B98 003A17F8  7C 7A 1B 78 */	mr r26, r3
/* 803A5B9C 003A17FC  90 A3 01 F0 */	stw r5, 0x1f0(r3)
/* 803A5BA0 003A1800  90 6D B2 F8 */	stw r3, lbl_806405B8-_SDA_BASE_(r13)
/* 803A5BA4 003A1804  41 82 00 24 */	beq lbl_803A5BC8
/* 803A5BA8 003A1808  7C 83 23 78 */	mr r3, r4
/* 803A5BAC 003A180C  38 9A 01 D0 */	addi r4, r26, 0x1d0
/* 803A5BB0 003A1810  4B F4 71 49 */	bl ARCInitHandle
/* 803A5BB4 003A1814  7C 03 00 D0 */	neg r0, r3
/* 803A5BB8 003A1818  7C 00 1B 78 */	or r0, r0, r3
/* 803A5BBC 003A181C  54 00 0F FE */	srwi r0, r0, 0x1f
/* 803A5BC0 003A1820  98 1A 01 EC */	stb r0, 0x1ec(r26)
/* 803A5BC4 003A1824  48 00 00 0C */	b lbl_803A5BD0
lbl_803A5BC8:
/* 803A5BC8 003A1828  38 00 00 00 */	li r0, 0
/* 803A5BCC 003A182C  98 03 01 EC */	stb r0, 0x1ec(r3)
lbl_803A5BD0:
/* 803A5BD0 003A1830  38 7A 01 A0 */	addi r3, r26, 0x1a0
/* 803A5BD4 003A1834  4B EC 3B 51 */	bl OSCreateAlarm
/* 803A5BD8 003A1838  7F 5C D3 78 */	mr r28, r26
/* 803A5BDC 003A183C  3B 60 00 00 */	li r27, 0
/* 803A5BE0 003A1840  3B A0 00 00 */	li r29, 0
/* 803A5BE4 003A1844  3B C0 FF FF */	li r30, -1
/* 803A5BE8 003A1848  3B E0 00 01 */	li r31, 1
lbl_803A5BEC:
/* 803A5BEC 003A184C  7F 83 E3 78 */	mr r3, r28
/* 803A5BF0 003A1850  4B EC 3B 35 */	bl OSCreateAlarm
/* 803A5BF4 003A1854  93 BC 00 50 */	stw r29, 0x50(r28)
/* 803A5BF8 003A1858  3B 7B 00 01 */	addi r27, r27, 1
/* 803A5BFC 003A185C  2C 1B 00 04 */	cmpwi r27, 4
/* 803A5C00 003A1860  93 DC 00 58 */	stw r30, 0x58(r28)
/* 803A5C04 003A1864  9B FC 00 5C */	stb r31, 0x5c(r28)
/* 803A5C08 003A1868  9B FC 00 62 */	stb r31, 0x62(r28)
/* 803A5C0C 003A186C  3B 9C 00 68 */	addi r28, r28, 0x68
/* 803A5C10 003A1870  41 80 FF DC */	blt lbl_803A5BEC
/* 803A5C14 003A1874  39 61 00 20 */	addi r11, r1, 0x20
/* 803A5C18 003A1878  7F 43 D3 78 */	mr r3, r26
/* 803A5C1C 003A187C  4B E2 15 55 */	bl _restgpr_26
/* 803A5C20 003A1880  80 01 00 24 */	lwz r0, 0x24(r1)
/* 803A5C24 003A1884  7C 08 03 A6 */	mtlr r0
/* 803A5C28 003A1888  38 21 00 20 */	addi r1, r1, 0x20
/* 803A5C2C 003A188C  4E 80 00 20 */	blr 

.global __dt__Q210homebutton9RemoteSpkFv
__dt__Q210homebutton9RemoteSpkFv:
/* 803A5C30 003A1890  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 803A5C34 003A1894  7C 08 02 A6 */	mflr r0
/* 803A5C38 003A1898  2C 03 00 00 */	cmpwi r3, 0
/* 803A5C3C 003A189C  90 01 00 24 */	stw r0, 0x24(r1)
/* 803A5C40 003A18A0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 803A5C44 003A18A4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 803A5C48 003A18A8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 803A5C4C 003A18AC  7C 9D 23 78 */	mr r29, r4
/* 803A5C50 003A18B0  93 81 00 10 */	stw r28, 0x10(r1)
/* 803A5C54 003A18B4  7C 7C 1B 78 */	mr r28, r3
/* 803A5C58 003A18B8  41 82 00 54 */	beq lbl_803A5CAC
/* 803A5C5C 003A18BC  3C 80 80 47 */	lis r4, lbl_80473058@ha
/* 803A5C60 003A18C0  38 00 00 00 */	li r0, 0
/* 803A5C64 003A18C4  38 84 30 58 */	addi r4, r4, lbl_80473058@l
/* 803A5C68 003A18C8  90 83 01 F0 */	stw r4, 0x1f0(r3)
/* 803A5C6C 003A18CC  90 0D B2 F8 */	stw r0, lbl_806405B8-_SDA_BASE_(r13)
/* 803A5C70 003A18D0  98 03 01 EC */	stb r0, 0x1ec(r3)
/* 803A5C74 003A18D4  38 63 01 A0 */	addi r3, r3, 0x1a0
/* 803A5C78 003A18D8  4B EC 3E 01 */	bl OSCancelAlarm
/* 803A5C7C 003A18DC  7F 9F E3 78 */	mr r31, r28
/* 803A5C80 003A18E0  3B C0 00 00 */	li r30, 0
lbl_803A5C84:
/* 803A5C84 003A18E4  7F E3 FB 78 */	mr r3, r31
/* 803A5C88 003A18E8  4B EC 3D F1 */	bl OSCancelAlarm
/* 803A5C8C 003A18EC  3B DE 00 01 */	addi r30, r30, 1
/* 803A5C90 003A18F0  3B FF 00 68 */	addi r31, r31, 0x68
/* 803A5C94 003A18F4  2C 1E 00 04 */	cmpwi r30, 4
/* 803A5C98 003A18F8  41 80 FF EC */	blt lbl_803A5C84
/* 803A5C9C 003A18FC  2C 1D 00 00 */	cmpwi r29, 0
/* 803A5CA0 003A1900  40 81 00 0C */	ble lbl_803A5CAC
/* 803A5CA4 003A1904  7F 83 E3 78 */	mr r3, r28
/* 803A5CA8 003A1908  4B E3 4E 11 */	bl __dl__FPv
lbl_803A5CAC:
/* 803A5CAC 003A190C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 803A5CB0 003A1910  7F 83 E3 78 */	mr r3, r28
/* 803A5CB4 003A1914  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 803A5CB8 003A1918  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 803A5CBC 003A191C  83 81 00 10 */	lwz r28, 0x10(r1)
/* 803A5CC0 003A1920  80 01 00 24 */	lwz r0, 0x24(r1)
/* 803A5CC4 003A1924  7C 08 03 A6 */	mtlr r0
/* 803A5CC8 003A1928  38 21 00 20 */	addi r1, r1, 0x20
/* 803A5CCC 003A192C  4E 80 00 20 */	blr 

.global Start__Q210homebutton9RemoteSpkFv
Start__Q210homebutton9RemoteSpkFv:
/* 803A5CD0 003A1930  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803A5CD4 003A1934  7C 08 02 A6 */	mflr r0
/* 803A5CD8 003A1938  90 01 00 14 */	stw r0, 0x14(r1)
/* 803A5CDC 003A193C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803A5CE0 003A1940  7C 7F 1B 78 */	mr r31, r3
/* 803A5CE4 003A1944  88 03 01 EC */	lbz r0, 0x1ec(r3)
/* 803A5CE8 003A1948  2C 00 00 00 */	cmpwi r0, 0
/* 803A5CEC 003A194C  41 82 00 64 */	beq lbl_803A5D50
/* 803A5CF0 003A1950  38 63 01 A0 */	addi r3, r3, 0x1a0
/* 803A5CF4 003A1954  4B EC 3A 31 */	bl OSCreateAlarm
/* 803A5CF8 003A1958  4B EC CA C1 */	bl OSGetTime
/* 803A5CFC 003A195C  3C C0 80 00 */	lis r6, 0x800000F8@ha
/* 803A5D00 003A1960  3C A0 43 1C */	lis r5, 0x431BDE83@ha
/* 803A5D04 003A1964  80 06 00 F8 */	lwz r0, 0x800000F8@l(r6)
/* 803A5D08 003A1968  3C C0 10 62 */	lis r6, 0x10624DD3@ha
/* 803A5D0C 003A196C  39 46 4D D3 */	addi r10, r6, 0x10624DD3@l
/* 803A5D10 003A1970  3D 20 80 3A */	lis r9, UpdateSpeaker__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext@ha
/* 803A5D14 003A1974  54 00 F0 BE */	srwi r0, r0, 2
/* 803A5D18 003A1978  38 A5 DE 83 */	addi r5, r5, 0x431BDE83@l
/* 803A5D1C 003A197C  7D 05 00 16 */	mulhwu r8, r5, r0
/* 803A5D20 003A1980  3C E0 00 66 */	lis r7, 0x0065B9AB@ha
/* 803A5D24 003A1984  7C 86 23 78 */	mr r6, r4
/* 803A5D28 003A1988  38 07 B9 AB */	addi r0, r7, 0x0065B9AB@l
/* 803A5D2C 003A198C  7C 65 1B 78 */	mr r5, r3
/* 803A5D30 003A1990  38 7F 01 A0 */	addi r3, r31, 0x1a0
/* 803A5D34 003A1994  55 04 8B FE */	srwi r4, r8, 0xf
/* 803A5D38 003A1998  39 29 58 E4 */	addi r9, r9, UpdateSpeaker__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext@l
/* 803A5D3C 003A199C  7C 04 01 D6 */	mullw r0, r4, r0
/* 803A5D40 003A19A0  38 E0 00 00 */	li r7, 0
/* 803A5D44 003A19A4  7C 0A 00 16 */	mulhwu r0, r10, r0
/* 803A5D48 003A19A8  54 08 BA 7E */	srwi r8, r0, 9
/* 803A5D4C 003A19AC  4B EC 3C A9 */	bl OSSetPeriodicAlarm
lbl_803A5D50:
/* 803A5D50 003A19B0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803A5D54 003A19B4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 803A5D58 003A19B8  7C 08 03 A6 */	mtlr r0
/* 803A5D5C 003A19BC  38 21 00 10 */	addi r1, r1, 0x10
/* 803A5D60 003A19C0  4E 80 00 20 */	blr 

.global Stop__Q210homebutton9RemoteSpkFv
Stop__Q210homebutton9RemoteSpkFv:
/* 803A5D64 003A19C4  38 63 01 A0 */	addi r3, r3, 0x1a0
/* 803A5D68 003A19C8  4B EC 3D 10 */	b OSCancelAlarm

.global DelaySpeakerOnCallback__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext
DelaySpeakerOnCallback__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext:
/* 803A5D6C 003A19CC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803A5D70 003A19D0  7C 08 02 A6 */	mflr r0
/* 803A5D74 003A19D4  90 01 00 14 */	stw r0, 0x14(r1)
/* 803A5D78 003A19D8  4B EC 41 31 */	bl OSGetAlarmUserData
/* 803A5D7C 003A19DC  3C A0 80 3A */	lis r5, SpeakerOnCallback__Q210homebutton9RemoteSpkFll@ha
/* 803A5D80 003A19E0  38 80 00 01 */	li r4, 1
/* 803A5D84 003A19E4  38 A5 5D 9C */	addi r5, r5, SpeakerOnCallback__Q210homebutton9RemoteSpkFll@l
/* 803A5D88 003A19E8  4B F0 3E 8D */	bl WPADControlSpeaker
/* 803A5D8C 003A19EC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803A5D90 003A19F0  7C 08 03 A6 */	mtlr r0
/* 803A5D94 003A19F4  38 21 00 10 */	addi r1, r1, 0x10
/* 803A5D98 003A19F8  4E 80 00 20 */	blr 

.global SpeakerOnCallback__Q210homebutton9RemoteSpkFll
SpeakerOnCallback__Q210homebutton9RemoteSpkFll:
/* 803A5D9C 003A19FC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803A5DA0 003A1A00  7C 08 02 A6 */	mflr r0
/* 803A5DA4 003A1A04  90 01 00 14 */	stw r0, 0x14(r1)
/* 803A5DA8 003A1A08  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803A5DAC 003A1A0C  80 CD B2 F8 */	lwz r6, lbl_806405B8-_SDA_BASE_(r13)
/* 803A5DB0 003A1A10  2C 06 00 00 */	cmpwi r6, 0
/* 803A5DB4 003A1A14  41 82 00 98 */	beq lbl_803A5E4C
/* 803A5DB8 003A1A18  2C 04 FF FF */	cmpwi r4, -1
/* 803A5DBC 003A1A1C  41 82 00 90 */	beq lbl_803A5E4C
/* 803A5DC0 003A1A20  40 80 00 10 */	bge lbl_803A5DD0
/* 803A5DC4 003A1A24  2C 04 FF FE */	cmpwi r4, -2
/* 803A5DC8 003A1A28  40 80 00 34 */	bge lbl_803A5DFC
/* 803A5DCC 003A1A2C  48 00 00 80 */	b lbl_803A5E4C
lbl_803A5DD0:
/* 803A5DD0 003A1A30  2C 04 00 01 */	cmpwi r4, 1
/* 803A5DD4 003A1A34  40 80 00 78 */	bge lbl_803A5E4C
/* 803A5DD8 003A1A38  1C 03 00 68 */	mulli r0, r3, 0x68
/* 803A5DDC 003A1A3C  3C A0 80 3A */	lis r5, SpeakerPlayCallback__Q210homebutton9RemoteSpkFll@ha
/* 803A5DE0 003A1A40  38 E0 00 01 */	li r7, 1
/* 803A5DE4 003A1A44  38 A5 5E 90 */	addi r5, r5, SpeakerPlayCallback__Q210homebutton9RemoteSpkFll@l
/* 803A5DE8 003A1A48  7C C6 02 14 */	add r6, r6, r0
/* 803A5DEC 003A1A4C  38 80 00 04 */	li r4, 4
/* 803A5DF0 003A1A50  98 E6 00 5C */	stb r7, 0x5c(r6)
/* 803A5DF4 003A1A54  4B F0 3E 21 */	bl WPADControlSpeaker
/* 803A5DF8 003A1A58  48 00 00 54 */	b lbl_803A5E4C
lbl_803A5DFC:
/* 803A5DFC 003A1A5C  1C 03 00 68 */	mulli r0, r3, 0x68
/* 803A5E00 003A1A60  7C 64 1B 78 */	mr r4, r3
/* 803A5E04 003A1A64  7F E6 02 14 */	add r31, r6, r0
/* 803A5E08 003A1A68  7F E3 FB 78 */	mr r3, r31
/* 803A5E0C 003A1A6C  4B EC 40 95 */	bl OSSetAlarmUserData
/* 803A5E10 003A1A70  7F E3 FB 78 */	mr r3, r31
/* 803A5E14 003A1A74  4B EC 3C 65 */	bl OSCancelAlarm
/* 803A5E18 003A1A78  3C 80 80 00 */	lis r4, 0x800000F8@ha
/* 803A5E1C 003A1A7C  3C E0 80 3A */	lis r7, DelaySpeakerOnCallback__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext@ha
/* 803A5E20 003A1A80  80 04 00 F8 */	lwz r0, 0x800000F8@l(r4)
/* 803A5E24 003A1A84  3C 60 10 62 */	lis r3, 0x10624DD3@ha
/* 803A5E28 003A1A88  38 83 4D D3 */	addi r4, r3, 0x10624DD3@l
/* 803A5E2C 003A1A8C  38 E7 5D 6C */	addi r7, r7, DelaySpeakerOnCallback__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext@l
/* 803A5E30 003A1A90  54 00 F0 BE */	srwi r0, r0, 2
/* 803A5E34 003A1A94  7F E3 FB 78 */	mr r3, r31
/* 803A5E38 003A1A98  7C 04 00 16 */	mulhwu r0, r4, r0
/* 803A5E3C 003A1A9C  38 A0 00 00 */	li r5, 0
/* 803A5E40 003A1AA0  54 00 D1 BE */	srwi r0, r0, 6
/* 803A5E44 003A1AA4  1C C0 00 32 */	mulli r6, r0, 0x32
/* 803A5E48 003A1AA8  4B EC 3B 3D */	bl OSSetAlarm
lbl_803A5E4C:
/* 803A5E4C 003A1AAC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803A5E50 003A1AB0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 803A5E54 003A1AB4  7C 08 03 A6 */	mtlr r0
/* 803A5E58 003A1AB8  38 21 00 10 */	addi r1, r1, 0x10
/* 803A5E5C 003A1ABC  4E 80 00 20 */	blr 

.global DelaySpeakerPlayCallback__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext
DelaySpeakerPlayCallback__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext:
/* 803A5E60 003A1AC0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803A5E64 003A1AC4  7C 08 02 A6 */	mflr r0
/* 803A5E68 003A1AC8  90 01 00 14 */	stw r0, 0x14(r1)
/* 803A5E6C 003A1ACC  4B EC 40 3D */	bl OSGetAlarmUserData
/* 803A5E70 003A1AD0  3C A0 80 3A */	lis r5, SpeakerPlayCallback__Q210homebutton9RemoteSpkFll@ha
/* 803A5E74 003A1AD4  38 80 00 04 */	li r4, 4
/* 803A5E78 003A1AD8  38 A5 5E 90 */	addi r5, r5, SpeakerPlayCallback__Q210homebutton9RemoteSpkFll@l
/* 803A5E7C 003A1ADC  4B F0 3D 99 */	bl WPADControlSpeaker
/* 803A5E80 003A1AE0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803A5E84 003A1AE4  7C 08 03 A6 */	mtlr r0
/* 803A5E88 003A1AE8  38 21 00 10 */	addi r1, r1, 0x10
/* 803A5E8C 003A1AEC  4E 80 00 20 */	blr 

.global SpeakerPlayCallback__Q210homebutton9RemoteSpkFll
SpeakerPlayCallback__Q210homebutton9RemoteSpkFll:
/* 803A5E90 003A1AF0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803A5E94 003A1AF4  7C 08 02 A6 */	mflr r0
/* 803A5E98 003A1AF8  90 01 00 14 */	stw r0, 0x14(r1)
/* 803A5E9C 003A1AFC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803A5EA0 003A1B00  80 AD B2 F8 */	lwz r5, lbl_806405B8-_SDA_BASE_(r13)
/* 803A5EA4 003A1B04  2C 05 00 00 */	cmpwi r5, 0
/* 803A5EA8 003A1B08  41 82 00 9C */	beq lbl_803A5F44
/* 803A5EAC 003A1B0C  2C 04 FF FF */	cmpwi r4, -1
/* 803A5EB0 003A1B10  41 82 00 30 */	beq lbl_803A5EE0
/* 803A5EB4 003A1B14  40 80 00 10 */	bge lbl_803A5EC4
/* 803A5EB8 003A1B18  2C 04 FF FE */	cmpwi r4, -2
/* 803A5EBC 003A1B1C  40 80 00 38 */	bge lbl_803A5EF4
/* 803A5EC0 003A1B20  48 00 00 84 */	b lbl_803A5F44
lbl_803A5EC4:
/* 803A5EC4 003A1B24  2C 04 00 01 */	cmpwi r4, 1
/* 803A5EC8 003A1B28  40 80 00 7C */	bge lbl_803A5F44
/* 803A5ECC 003A1B2C  1C 03 00 68 */	mulli r0, r3, 0x68
/* 803A5ED0 003A1B30  38 80 00 01 */	li r4, 1
/* 803A5ED4 003A1B34  7C 65 02 14 */	add r3, r5, r0
/* 803A5ED8 003A1B38  98 83 00 62 */	stb r4, 0x62(r3)
/* 803A5EDC 003A1B3C  48 00 00 68 */	b lbl_803A5F44
lbl_803A5EE0:
/* 803A5EE0 003A1B40  1C 03 00 68 */	mulli r0, r3, 0x68
/* 803A5EE4 003A1B44  38 80 00 00 */	li r4, 0
/* 803A5EE8 003A1B48  7C 65 02 14 */	add r3, r5, r0
/* 803A5EEC 003A1B4C  98 83 00 62 */	stb r4, 0x62(r3)
/* 803A5EF0 003A1B50  48 00 00 54 */	b lbl_803A5F44
lbl_803A5EF4:
/* 803A5EF4 003A1B54  1C 03 00 68 */	mulli r0, r3, 0x68
/* 803A5EF8 003A1B58  7C 64 1B 78 */	mr r4, r3
/* 803A5EFC 003A1B5C  7F E5 02 14 */	add r31, r5, r0
/* 803A5F00 003A1B60  7F E3 FB 78 */	mr r3, r31
/* 803A5F04 003A1B64  4B EC 3F 9D */	bl OSSetAlarmUserData
/* 803A5F08 003A1B68  7F E3 FB 78 */	mr r3, r31
/* 803A5F0C 003A1B6C  4B EC 3B 6D */	bl OSCancelAlarm
/* 803A5F10 003A1B70  3C 80 80 00 */	lis r4, 0x800000F8@ha
/* 803A5F14 003A1B74  3C E0 80 3A */	lis r7, DelaySpeakerPlayCallback__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext@ha
/* 803A5F18 003A1B78  80 04 00 F8 */	lwz r0, 0x800000F8@l(r4)
/* 803A5F1C 003A1B7C  3C 60 10 62 */	lis r3, 0x10624DD3@ha
/* 803A5F20 003A1B80  38 83 4D D3 */	addi r4, r3, 0x10624DD3@l
/* 803A5F24 003A1B84  38 E7 5E 60 */	addi r7, r7, DelaySpeakerPlayCallback__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext@l
/* 803A5F28 003A1B88  54 00 F0 BE */	srwi r0, r0, 2
/* 803A5F2C 003A1B8C  7F E3 FB 78 */	mr r3, r31
/* 803A5F30 003A1B90  7C 04 00 16 */	mulhwu r0, r4, r0
/* 803A5F34 003A1B94  38 A0 00 00 */	li r5, 0
/* 803A5F38 003A1B98  54 00 D1 BE */	srwi r0, r0, 6
/* 803A5F3C 003A1B9C  1C C0 00 32 */	mulli r6, r0, 0x32
/* 803A5F40 003A1BA0  4B EC 3A 45 */	bl OSSetAlarm
lbl_803A5F44:
/* 803A5F44 003A1BA4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803A5F48 003A1BA8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 803A5F4C 003A1BAC  7C 08 03 A6 */	mtlr r0
/* 803A5F50 003A1BB0  38 21 00 10 */	addi r1, r1, 0x10
/* 803A5F54 003A1BB4  4E 80 00 20 */	blr 

.global Connect__Q210homebutton9RemoteSpkFl
Connect__Q210homebutton9RemoteSpkFl:
/* 803A5F58 003A1BB8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803A5F5C 003A1BBC  7C 08 02 A6 */	mflr r0
/* 803A5F60 003A1BC0  90 01 00 14 */	stw r0, 0x14(r1)
/* 803A5F64 003A1BC4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803A5F68 003A1BC8  7C 9F 23 78 */	mr r31, r4
/* 803A5F6C 003A1BCC  93 C1 00 08 */	stw r30, 8(r1)
/* 803A5F70 003A1BD0  7C 7E 1B 78 */	mr r30, r3
/* 803A5F74 003A1BD4  88 03 01 EC */	lbz r0, 0x1ec(r3)
/* 803A5F78 003A1BD8  2C 00 00 00 */	cmpwi r0, 0
/* 803A5F7C 003A1BDC  41 82 00 44 */	beq lbl_803A5FC0
/* 803A5F80 003A1BE0  3C A0 80 3A */	lis r5, SpeakerOnCallback__Q210homebutton9RemoteSpkFll@ha
/* 803A5F84 003A1BE4  7F E3 FB 78 */	mr r3, r31
/* 803A5F88 003A1BE8  38 A5 5D 9C */	addi r5, r5, SpeakerOnCallback__Q210homebutton9RemoteSpkFll@l
/* 803A5F8C 003A1BEC  38 80 00 01 */	li r4, 1
/* 803A5F90 003A1BF0  4B F0 3C 85 */	bl WPADControlSpeaker
/* 803A5F94 003A1BF4  1F FF 00 68 */	mulli r31, r31, 0x68
/* 803A5F98 003A1BF8  38 80 00 00 */	li r4, 0
/* 803A5F9C 003A1BFC  38 A0 00 20 */	li r5, 0x20
/* 803A5FA0 003A1C00  7C 7E FA 14 */	add r3, r30, r31
/* 803A5FA4 003A1C04  38 63 00 30 */	addi r3, r3, 0x30
/* 803A5FA8 003A1C08  4B C5 E1 5D */	bl memset
/* 803A5FAC 003A1C0C  7C 7E FA 14 */	add r3, r30, r31
/* 803A5FB0 003A1C10  38 00 00 01 */	li r0, 1
/* 803A5FB4 003A1C14  98 03 00 5C */	stb r0, 0x5c(r3)
/* 803A5FB8 003A1C18  38 00 00 00 */	li r0, 0
/* 803A5FBC 003A1C1C  98 03 00 62 */	stb r0, 0x62(r3)
lbl_803A5FC0:
/* 803A5FC0 003A1C20  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803A5FC4 003A1C24  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 803A5FC8 003A1C28  83 C1 00 08 */	lwz r30, 8(r1)
/* 803A5FCC 003A1C2C  7C 08 03 A6 */	mtlr r0
/* 803A5FD0 003A1C30  38 21 00 10 */	addi r1, r1, 0x10
/* 803A5FD4 003A1C34  4E 80 00 20 */	blr 

.global Play__Q210homebutton9RemoteSpkFliSc
Play__Q210homebutton9RemoteSpkFliSc:
/* 803A5FD8 003A1C38  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 803A5FDC 003A1C3C  7C 08 02 A6 */	mflr r0
/* 803A5FE0 003A1C40  90 01 00 34 */	stw r0, 0x34(r1)
/* 803A5FE4 003A1C44  39 61 00 30 */	addi r11, r1, 0x30
/* 803A5FE8 003A1C48  4B E2 11 3D */	bl _savegpr_26
/* 803A5FEC 003A1C4C  88 03 01 EC */	lbz r0, 0x1ec(r3)
/* 803A5FF0 003A1C50  7C 7A 1B 78 */	mr r26, r3
/* 803A5FF4 003A1C54  7C 9B 23 78 */	mr r27, r4
/* 803A5FF8 003A1C58  7C BC 2B 78 */	mr r28, r5
/* 803A5FFC 003A1C5C  2C 00 00 00 */	cmpwi r0, 0
/* 803A6000 003A1C60  7C DD 33 78 */	mr r29, r6
/* 803A6004 003A1C64  41 82 00 54 */	beq lbl_803A6058
/* 803A6008 003A1C68  7F 84 E3 78 */	mr r4, r28
/* 803A600C 003A1C6C  38 A1 00 08 */	addi r5, r1, 8
/* 803A6010 003A1C70  38 63 01 D0 */	addi r3, r3, 0x1d0
/* 803A6014 003A1C74  4B F4 6D 85 */	bl ARCFastOpen
/* 803A6018 003A1C78  38 61 00 08 */	addi r3, r1, 8
/* 803A601C 003A1C7C  4B F4 70 31 */	bl ARCGetStartAddrInMem
/* 803A6020 003A1C80  7C 7E 1B 78 */	mr r30, r3
/* 803A6024 003A1C84  38 61 00 08 */	addi r3, r1, 8
/* 803A6028 003A1C88  4B F4 70 39 */	bl ARCGetLength
/* 803A602C 003A1C8C  7C 7F 1B 78 */	mr r31, r3
/* 803A6030 003A1C90  38 61 00 08 */	addi r3, r1, 8
/* 803A6034 003A1C94  4B F4 70 35 */	bl ARCClose
/* 803A6038 003A1C98  1C 7B 00 68 */	mulli r3, r27, 0x68
/* 803A603C 003A1C9C  38 00 00 00 */	li r0, 0
/* 803A6040 003A1CA0  7C 7A 1A 14 */	add r3, r26, r3
/* 803A6044 003A1CA4  98 03 00 5E */	stb r0, 0x5e(r3)
/* 803A6048 003A1CA8  93 83 00 58 */	stw r28, 0x58(r3)
/* 803A604C 003A1CAC  93 E3 00 54 */	stw r31, 0x54(r3)
/* 803A6050 003A1CB0  9B A3 00 5D */	stb r29, 0x5d(r3)
/* 803A6054 003A1CB4  93 C3 00 50 */	stw r30, 0x50(r3)
lbl_803A6058:
/* 803A6058 003A1CB8  39 61 00 30 */	addi r11, r1, 0x30
/* 803A605C 003A1CBC  4B E2 11 15 */	bl _restgpr_26
/* 803A6060 003A1CC0  80 01 00 34 */	lwz r0, 0x34(r1)
/* 803A6064 003A1CC4  7C 08 03 A6 */	mtlr r0
/* 803A6068 003A1CC8  38 21 00 30 */	addi r1, r1, 0x30
/* 803A606C 003A1CCC  4E 80 00 20 */	blr 

.global isPlaying__Q210homebutton9RemoteSpkCFl
isPlaying__Q210homebutton9RemoteSpkCFl:
/* 803A6070 003A1CD0  1C 04 00 68 */	mulli r0, r4, 0x68
/* 803A6074 003A1CD4  7C 63 02 14 */	add r3, r3, r0
/* 803A6078 003A1CD8  80 63 00 50 */	lwz r3, 0x50(r3)
/* 803A607C 003A1CDC  7C 03 00 D0 */	neg r0, r3
/* 803A6080 003A1CE0  7C 00 1B 78 */	or r0, r0, r3
/* 803A6084 003A1CE4  54 03 0F FE */	srwi r3, r0, 0x1f
/* 803A6088 003A1CE8  4E 80 00 20 */	blr 

.global isPlayingId__Q210homebutton9RemoteSpkCFli
isPlayingId__Q210homebutton9RemoteSpkCFli:
/* 803A608C 003A1CEC  1C 04 00 68 */	mulli r0, r4, 0x68
/* 803A6090 003A1CF0  7C 63 02 14 */	add r3, r3, r0
/* 803A6094 003A1CF4  80 03 00 50 */	lwz r0, 0x50(r3)
/* 803A6098 003A1CF8  2C 00 00 00 */	cmpwi r0, 0
/* 803A609C 003A1CFC  41 82 00 18 */	beq lbl_803A60B4
/* 803A60A0 003A1D00  80 03 00 58 */	lwz r0, 0x58(r3)
/* 803A60A4 003A1D04  7C 05 00 00 */	cmpw r5, r0
/* 803A60A8 003A1D08  40 82 00 0C */	bne lbl_803A60B4
/* 803A60AC 003A1D0C  38 60 00 01 */	li r3, 1
/* 803A60B0 003A1D10  4E 80 00 20 */	blr 
lbl_803A60B4:
/* 803A60B4 003A1D14  38 60 00 00 */	li r3, 0
/* 803A60B8 003A1D18  4E 80 00 20 */	blr 

.global isPlayReady__Q210homebutton9RemoteSpkCFl
isPlayReady__Q210homebutton9RemoteSpkCFl:
/* 803A60BC 003A1D1C  1C 04 00 68 */	mulli r0, r4, 0x68
/* 803A60C0 003A1D20  7C 63 02 14 */	add r3, r3, r0
/* 803A60C4 003A1D24  88 63 00 62 */	lbz r3, 0x62(r3)
/* 803A60C8 003A1D28  7C 03 00 D0 */	neg r0, r3
/* 803A60CC 003A1D2C  7C 00 1B 78 */	or r0, r0, r3
/* 803A60D0 003A1D30  54 03 0F FE */	srwi r3, r0, 0x1f
/* 803A60D4 003A1D34  4E 80 00 20 */	blr