summaryrefslogtreecommitdiff
path: root/asm/SDK/OS/OSAudioSystem.s
blob: 2b0ba4cdf8f33d54ea73bfd04835b4eb199edb32 (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
.include "macros.inc"

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

.global __AIClockInit
__AIClockInit:
/* 8026A160 00265DC0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8026A164 00265DC4  7C 08 02 A6 */	mflr r0
/* 8026A168 00265DC8  3C 80 CD 80 */	lis r4, 0xCD800180@ha
/* 8026A16C 00265DCC  90 01 00 24 */	stw r0, 0x24(r1)
/* 8026A170 00265DD0  54 60 40 2E */	slwi r0, r3, 8
/* 8026A174 00265DD4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8026A178 00265DD8  7C 7F 1B 78 */	mr r31, r3
/* 8026A17C 00265DDC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8026A180 00265DE0  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8026A184 00265DE4  93 81 00 10 */	stw r28, 0x10(r1)
/* 8026A188 00265DE8  80 A4 01 80 */	lwz r5, 0xCD800180@l(r4)
/* 8026A18C 00265DEC  54 A5 06 2C */	rlwinm r5, r5, 0, 0x18, 0x16
/* 8026A190 00265DF0  7C A5 03 78 */	or r5, r5, r0
/* 8026A194 00265DF4  54 A0 06 6E */	rlwinm r0, r5, 0, 0x19, 0x17
/* 8026A198 00265DF8  90 04 01 80 */	stw r0, 0x180(r4)
/* 8026A19C 00265DFC  80 04 01 D0 */	lwz r0, 0x1d0(r4)
/* 8026A1A0 00265E00  54 00 00 BE */	clrlwi r0, r0, 2
/* 8026A1A4 00265E04  90 04 01 D0 */	stw r0, 0x1d0(r4)
/* 8026A1A8 00265E08  48 00 86 29 */	bl OSGetTick
/* 8026A1AC 00265E0C  3C 80 43 1C */	lis r4, 0x431BDE83@ha
/* 8026A1B0 00265E10  7C 7C 1B 78 */	mr r28, r3
/* 8026A1B4 00265E14  3B C4 DE 83 */	addi r30, r4, 0x431BDE83@l
/* 8026A1B8 00265E18  3F A0 80 00 */	lis r29, 0x8000
lbl_8026A1BC:
/* 8026A1BC 00265E1C  48 00 86 15 */	bl OSGetTick
/* 8026A1C0 00265E20  80 1D 00 F8 */	lwz r0, 0xf8(r29)
/* 8026A1C4 00265E24  7C 7C 18 50 */	subf r3, r28, r3
/* 8026A1C8 00265E28  54 63 18 38 */	slwi r3, r3, 3
/* 8026A1CC 00265E2C  54 00 F0 BE */	srwi r0, r0, 2
/* 8026A1D0 00265E30  7C 1E 00 16 */	mulhwu r0, r30, r0
/* 8026A1D4 00265E34  54 00 8B FE */	srwi r0, r0, 0xf
/* 8026A1D8 00265E38  7C 03 03 96 */	divwu r0, r3, r0
/* 8026A1DC 00265E3C  28 00 00 64 */	cmplwi r0, 0x64
/* 8026A1E0 00265E40  41 80 FF DC */	blt lbl_8026A1BC
/* 8026A1E4 00265E44  2C 1F 00 00 */	cmpwi r31, 0
/* 8026A1E8 00265E48  40 82 00 2C */	bne lbl_8026A214
/* 8026A1EC 00265E4C  3C 80 CD 80 */	lis r4, 0xCD8001CC@ha
/* 8026A1F0 00265E50  3C 60 F8 04 */	lis r3, 0xF803FFC0@ha
/* 8026A1F4 00265E54  80 A4 01 CC */	lwz r5, 0xCD8001CC@l(r4)
/* 8026A1F8 00265E58  38 03 FF C0 */	addi r0, r3, 0xF803FFC0@l
/* 8026A1FC 00265E5C  54 A3 06 9A */	rlwinm r3, r5, 0, 0x1a, 0xd
/* 8026A200 00265E60  60 63 0F C0 */	ori r3, r3, 0xfc0
/* 8026A204 00265E64  7C 60 00 38 */	and r0, r3, r0
/* 8026A208 00265E68  64 00 04 64 */	oris r0, r0, 0x464
/* 8026A20C 00265E6C  90 04 01 CC */	stw r0, 0x1cc(r4)
/* 8026A210 00265E70  48 00 00 28 */	b lbl_8026A238
lbl_8026A214:
/* 8026A214 00265E74  3C 60 CD 80 */	lis r3, 0xCD8001CC@ha
/* 8026A218 00265E78  80 03 01 CC */	lwz r0, 0xCD8001CC@l(r3)
/* 8026A21C 00265E7C  54 00 06 9A */	rlwinm r0, r0, 0, 0x1a, 0xd
/* 8026A220 00265E80  60 00 FF C0 */	ori r0, r0, 0xffc0
/* 8026A224 00265E84  54 00 00 32 */	rlwinm r0, r0, 0, 0, 0x19
/* 8026A228 00265E88  60 00 00 0E */	ori r0, r0, 0xe
/* 8026A22C 00265E8C  54 00 03 88 */	rlwinm r0, r0, 0, 0xe, 4
/* 8026A230 00265E90  64 00 04 B0 */	oris r0, r0, 0x4b0
/* 8026A234 00265E94  90 03 01 CC */	stw r0, 0x1cc(r3)
lbl_8026A238:
/* 8026A238 00265E98  48 00 85 99 */	bl OSGetTick
/* 8026A23C 00265E9C  3C 80 43 1C */	lis r4, 0x431BDE83@ha
/* 8026A240 00265EA0  7C 7F 1B 78 */	mr r31, r3
/* 8026A244 00265EA4  3B C4 DE 83 */	addi r30, r4, 0x431BDE83@l
/* 8026A248 00265EA8  3F A0 80 00 */	lis r29, 0x8000
lbl_8026A24C:
/* 8026A24C 00265EAC  48 00 85 85 */	bl OSGetTick
/* 8026A250 00265EB0  80 1D 00 F8 */	lwz r0, 0xf8(r29)
/* 8026A254 00265EB4  7C 7F 18 50 */	subf r3, r31, r3
/* 8026A258 00265EB8  54 63 18 38 */	slwi r3, r3, 3
/* 8026A25C 00265EBC  54 00 F0 BE */	srwi r0, r0, 2
/* 8026A260 00265EC0  7C 1E 00 16 */	mulhwu r0, r30, r0
/* 8026A264 00265EC4  54 00 8B FE */	srwi r0, r0, 0xf
/* 8026A268 00265EC8  7C 03 03 96 */	divwu r0, r3, r0
/* 8026A26C 00265ECC  28 00 00 64 */	cmplwi r0, 0x64
/* 8026A270 00265ED0  41 80 FF DC */	blt lbl_8026A24C
/* 8026A274 00265ED4  3C 60 CD 80 */	lis r3, 0xCD8001D0@ha
/* 8026A278 00265ED8  80 03 01 D0 */	lwz r0, 0xCD8001D0@l(r3)
/* 8026A27C 00265EDC  54 00 01 04 */	rlwinm r0, r0, 0, 4, 2
/* 8026A280 00265EE0  90 03 01 D0 */	stw r0, 0x1d0(r3)
/* 8026A284 00265EE4  48 00 85 4D */	bl OSGetTick
/* 8026A288 00265EE8  3C 80 43 1C */	lis r4, 0x431BDE83@ha
/* 8026A28C 00265EEC  7C 7F 1B 78 */	mr r31, r3
/* 8026A290 00265EF0  3B C4 DE 83 */	addi r30, r4, 0x431BDE83@l
/* 8026A294 00265EF4  3F A0 80 00 */	lis r29, 0x8000
lbl_8026A298:
/* 8026A298 00265EF8  48 00 85 39 */	bl OSGetTick
/* 8026A29C 00265EFC  80 1D 00 F8 */	lwz r0, 0xf8(r29)
/* 8026A2A0 00265F00  7C 7F 18 50 */	subf r3, r31, r3
/* 8026A2A4 00265F04  54 63 18 38 */	slwi r3, r3, 3
/* 8026A2A8 00265F08  54 00 F0 BE */	srwi r0, r0, 2
/* 8026A2AC 00265F0C  7C 1E 00 16 */	mulhwu r0, r30, r0
/* 8026A2B0 00265F10  54 00 8B FE */	srwi r0, r0, 0xf
/* 8026A2B4 00265F14  7C 03 03 96 */	divwu r0, r3, r0
/* 8026A2B8 00265F18  28 00 03 E8 */	cmplwi r0, 0x3e8
/* 8026A2BC 00265F1C  41 80 FF DC */	blt lbl_8026A298
/* 8026A2C0 00265F20  3C 60 CD 80 */	lis r3, 0xCD8001D0@ha
/* 8026A2C4 00265F24  80 03 01 D0 */	lwz r0, 0xCD8001D0@l(r3)
/* 8026A2C8 00265F28  54 00 00 80 */	rlwinm r0, r0, 0, 2, 0
/* 8026A2CC 00265F2C  64 00 40 00 */	oris r0, r0, 0x4000
/* 8026A2D0 00265F30  90 03 01 D0 */	stw r0, 0x1d0(r3)
/* 8026A2D4 00265F34  48 00 84 FD */	bl OSGetTick
/* 8026A2D8 00265F38  3C 80 43 1C */	lis r4, 0x431BDE83@ha
/* 8026A2DC 00265F3C  7C 7F 1B 78 */	mr r31, r3
/* 8026A2E0 00265F40  3B C4 DE 83 */	addi r30, r4, 0x431BDE83@l
/* 8026A2E4 00265F44  3F A0 80 00 */	lis r29, 0x8000
lbl_8026A2E8:
/* 8026A2E8 00265F48  48 00 84 E9 */	bl OSGetTick
/* 8026A2EC 00265F4C  80 1D 00 F8 */	lwz r0, 0xf8(r29)
/* 8026A2F0 00265F50  7C 7F 18 50 */	subf r3, r31, r3
/* 8026A2F4 00265F54  54 63 18 38 */	slwi r3, r3, 3
/* 8026A2F8 00265F58  54 00 F0 BE */	srwi r0, r0, 2
/* 8026A2FC 00265F5C  7C 1E 00 16 */	mulhwu r0, r30, r0
/* 8026A300 00265F60  54 00 8B FE */	srwi r0, r0, 0xf
/* 8026A304 00265F64  7C 03 03 96 */	divwu r0, r3, r0
/* 8026A308 00265F68  28 00 03 E8 */	cmplwi r0, 0x3e8
/* 8026A30C 00265F6C  41 80 FF DC */	blt lbl_8026A2E8
/* 8026A310 00265F70  3C 60 CD 80 */	lis r3, 0xCD8001D0@ha
/* 8026A314 00265F74  80 03 01 D0 */	lwz r0, 0xCD8001D0@l(r3)
/* 8026A318 00265F78  54 00 00 7E */	clrlwi r0, r0, 1
/* 8026A31C 00265F7C  64 00 80 00 */	oris r0, r0, 0x8000
/* 8026A320 00265F80  90 03 01 D0 */	stw r0, 0x1d0(r3)
/* 8026A324 00265F84  48 00 84 AD */	bl OSGetTick
/* 8026A328 00265F88  3C 80 43 1C */	lis r4, 0x431BDE83@ha
/* 8026A32C 00265F8C  7C 7D 1B 78 */	mr r29, r3
/* 8026A330 00265F90  3B C4 DE 83 */	addi r30, r4, 0x431BDE83@l
/* 8026A334 00265F94  3F E0 80 00 */	lis r31, 0x8000
lbl_8026A338:
/* 8026A338 00265F98  48 00 84 99 */	bl OSGetTick
/* 8026A33C 00265F9C  80 1F 00 F8 */	lwz r0, 0xf8(r31)
/* 8026A340 00265FA0  7C 7D 18 50 */	subf r3, r29, r3
/* 8026A344 00265FA4  54 63 18 38 */	slwi r3, r3, 3
/* 8026A348 00265FA8  54 00 F0 BE */	srwi r0, r0, 2
/* 8026A34C 00265FAC  7C 1E 00 16 */	mulhwu r0, r30, r0
/* 8026A350 00265FB0  54 00 8B FE */	srwi r0, r0, 0xf
/* 8026A354 00265FB4  7C 03 03 96 */	divwu r0, r3, r0
/* 8026A358 00265FB8  28 00 03 E8 */	cmplwi r0, 0x3e8
/* 8026A35C 00265FBC  41 80 FF DC */	blt lbl_8026A338
/* 8026A360 00265FC0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8026A364 00265FC4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8026A368 00265FC8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8026A36C 00265FCC  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8026A370 00265FD0  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8026A374 00265FD4  7C 08 03 A6 */	mtlr r0
/* 8026A378 00265FD8  38 21 00 20 */	addi r1, r1, 0x20
/* 8026A37C 00265FDC  4E 80 00 20 */	blr

.global __OSInitAudioSystem
__OSInitAudioSystem:
/* 8026A380 00265FE0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8026A384 00265FE4  7C 08 02 A6 */	mflr r0
/* 8026A388 00265FE8  90 01 00 14 */	stw r0, 0x14(r1)
/* 8026A38C 00265FEC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8026A390 00265FF0  80 0D A7 68 */	lwz r0, lbl_8063FA28-_SDA_BASE_(r13)
/* 8026A394 00265FF4  2C 00 00 00 */	cmpwi r0, 0
/* 8026A398 00265FF8  40 82 00 0C */	bne lbl_8026A3A4
/* 8026A39C 00265FFC  38 60 00 01 */	li r3, 1
/* 8026A3A0 00266000  4B FF FD C1 */	bl __AIClockInit
lbl_8026A3A4:
/* 8026A3A4 00266004  4B FF FD 39 */	bl OSGetArenaHi
/* 8026A3A8 00266008  3C 80 81 00 */	lis r4, 0x8100
/* 8026A3AC 0026600C  38 A0 00 80 */	li r5, 0x80
/* 8026A3B0 00266010  38 63 FF 80 */	addi r3, r3, -128
/* 8026A3B4 00266014  4B D9 9C 4D */	bl memcpy
/* 8026A3B8 00266018  3C 80 80 42 */	lis r4, lbl_804269E0@ha
/* 8026A3BC 0026601C  3C 60 81 00 */	lis r3, 0x8100
/* 8026A3C0 00266020  38 84 69 E0 */	addi r4, r4, lbl_804269E0@l
/* 8026A3C4 00266024  38 A0 00 80 */	li r5, 0x80
/* 8026A3C8 00266028  4B D9 9C 39 */	bl memcpy
/* 8026A3CC 0026602C  3C 60 81 00 */	lis r3, 0x8100
/* 8026A3D0 00266030  38 80 00 80 */	li r4, 0x80
/* 8026A3D4 00266034  48 00 02 81 */	bl DCFlushRange
/* 8026A3D8 00266038  3C 60 CC 00 */	lis r3, 0xCC005012@ha
/* 8026A3DC 0026603C  38 00 00 43 */	li r0, 0x43
/* 8026A3E0 00266040  B0 03 50 12 */	sth r0, 0xCC005012@l(r3)
/* 8026A3E4 00266044  38 00 08 AC */	li r0, 0x8ac
/* 8026A3E8 00266048  B0 03 50 0A */	sth r0, 0x500a(r3)
/* 8026A3EC 0026604C  A0 03 50 0A */	lhz r0, 0x500a(r3)
/* 8026A3F0 00266050  60 00 00 01 */	ori r0, r0, 1
/* 8026A3F4 00266054  B0 03 50 0A */	sth r0, 0x500a(r3)
lbl_8026A3F8:
/* 8026A3F8 00266058  A0 03 50 0A */	lhz r0, 0x500a(r3)
/* 8026A3FC 0026605C  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8026A400 00266060  40 82 FF F8 */	bne lbl_8026A3F8
/* 8026A404 00266064  38 00 00 00 */	li r0, 0
/* 8026A408 00266068  3C 80 CC 00 */	lis r4, 0xCC005000@ha
/* 8026A40C 0026606C  B0 04 50 00 */	sth r0, 0xCC005000@l(r4)
lbl_8026A410:
/* 8026A410 00266070  A0 64 50 04 */	lhz r3, 0x5004(r4)
/* 8026A414 00266074  A0 04 50 06 */	lhz r0, 0x5006(r4)
/* 8026A418 00266078  50 60 80 1E */	rlwimi r0, r3, 0x10, 0, 0xf
/* 8026A41C 0026607C  54 00 00 01 */	rlwinm. r0, r0, 0, 0, 0
/* 8026A420 00266080  40 82 FF F0 */	bne lbl_8026A410
/* 8026A424 00266084  3C 80 CC 00 */	lis r4, 0xCC005020@ha
/* 8026A428 00266088  3C 00 01 00 */	lis r0, 0x100
/* 8026A42C 0026608C  90 04 50 20 */	stw r0, 0xCC005020@l(r4)
/* 8026A430 00266090  38 60 00 00 */	li r3, 0
/* 8026A434 00266094  38 00 00 20 */	li r0, 0x20
/* 8026A438 00266098  90 64 50 24 */	stw r3, 0x5024(r4)
/* 8026A43C 0026609C  90 04 50 28 */	stw r0, 0x5028(r4)
/* 8026A440 002660A0  A0 A4 50 0A */	lhz r5, 0x500a(r4)
/* 8026A444 002660A4  48 00 00 08 */	b lbl_8026A44C
lbl_8026A448:
/* 8026A448 002660A8  A0 A4 50 0A */	lhz r5, 0x500a(r4)
lbl_8026A44C:
/* 8026A44C 002660AC  54 A0 06 B5 */	rlwinm. r0, r5, 0, 0x1a, 0x1a
/* 8026A450 002660B0  41 82 FF F8 */	beq lbl_8026A448
/* 8026A454 002660B4  3C 60 CC 00 */	lis r3, 0xCC00500A@ha
/* 8026A458 002660B8  B0 A3 50 0A */	sth r5, 0xCC00500A@l(r3)
/* 8026A45C 002660BC  48 00 83 75 */	bl OSGetTick
/* 8026A460 002660C0  7C 7F 1B 78 */	mr r31, r3
lbl_8026A464:
/* 8026A464 002660C4  48 00 83 6D */	bl OSGetTick
/* 8026A468 002660C8  7C 1F 18 50 */	subf r0, r31, r3
/* 8026A46C 002660CC  2C 00 08 92 */	cmpwi r0, 0x892
/* 8026A470 002660D0  41 80 FF F4 */	blt lbl_8026A464
/* 8026A474 002660D4  3C 80 CC 00 */	lis r4, 0xCC005020@ha
/* 8026A478 002660D8  3C 00 01 00 */	lis r0, 0x100
/* 8026A47C 002660DC  90 04 50 20 */	stw r0, 0xCC005020@l(r4)
/* 8026A480 002660E0  38 60 00 00 */	li r3, 0
/* 8026A484 002660E4  38 00 00 20 */	li r0, 0x20
/* 8026A488 002660E8  90 64 50 24 */	stw r3, 0x5024(r4)
/* 8026A48C 002660EC  90 04 50 28 */	stw r0, 0x5028(r4)
/* 8026A490 002660F0  A0 A4 50 0A */	lhz r5, 0x500a(r4)
/* 8026A494 002660F4  48 00 00 08 */	b lbl_8026A49C
lbl_8026A498:
/* 8026A498 002660F8  A0 A4 50 0A */	lhz r5, 0x500a(r4)
lbl_8026A49C:
/* 8026A49C 002660FC  54 A0 06 B5 */	rlwinm. r0, r5, 0, 0x1a, 0x1a
/* 8026A4A0 00266100  41 82 FF F8 */	beq lbl_8026A498
/* 8026A4A4 00266104  3C 60 CC 00 */	lis r3, 0xCC00500A@ha
/* 8026A4A8 00266108  B0 A3 50 0A */	sth r5, 0xCC00500A@l(r3)
/* 8026A4AC 0026610C  A0 03 50 0A */	lhz r0, 0x500a(r3)
/* 8026A4B0 00266110  54 00 05 66 */	rlwinm r0, r0, 0, 0x15, 0x13
/* 8026A4B4 00266114  B0 03 50 0A */	sth r0, 0x500a(r3)
lbl_8026A4B8:
/* 8026A4B8 00266118  A0 03 50 0A */	lhz r0, 0x500a(r3)
/* 8026A4BC 0026611C  54 00 05 6B */	rlwinm. r0, r0, 0, 0x15, 0x15
/* 8026A4C0 00266120  40 82 FF F8 */	bne lbl_8026A4B8
/* 8026A4C4 00266124  3C 60 CC 00 */	lis r3, 0xCC00500A@ha
/* 8026A4C8 00266128  A0 03 50 0A */	lhz r0, 0xCC00500A@l(r3)
/* 8026A4CC 0026612C  54 00 07 B8 */	rlwinm r0, r0, 0, 0x1e, 0x1c
/* 8026A4D0 00266130  B0 03 50 0A */	sth r0, 0x500a(r3)
/* 8026A4D4 00266134  A0 03 50 04 */	lhz r0, 0x5004(r3)
/* 8026A4D8 00266138  48 00 00 08 */	b lbl_8026A4E0
lbl_8026A4DC:
/* 8026A4DC 0026613C  A0 03 50 04 */	lhz r0, 0x5004(r3)
lbl_8026A4E0:
/* 8026A4E0 00266140  54 00 04 21 */	rlwinm. r0, r0, 0, 0x10, 0x10
/* 8026A4E4 00266144  41 82 FF F8 */	beq lbl_8026A4DC
/* 8026A4E8 00266148  3C 80 CC 00 */	lis r4, 0xCC005006@ha
/* 8026A4EC 0026614C  38 00 08 AC */	li r0, 0x8ac
/* 8026A4F0 00266150  A0 64 50 06 */	lhz r3, 0xCC005006@l(r4)
/* 8026A4F4 00266154  A0 64 50 0A */	lhz r3, 0x500a(r4)
/* 8026A4F8 00266158  60 63 00 04 */	ori r3, r3, 4
/* 8026A4FC 0026615C  B0 64 50 0A */	sth r3, 0x500a(r4)
/* 8026A500 00266160  B0 04 50 0A */	sth r0, 0x500a(r4)
/* 8026A504 00266164  A0 04 50 0A */	lhz r0, 0x500a(r4)
/* 8026A508 00266168  60 00 00 01 */	ori r0, r0, 1
/* 8026A50C 0026616C  B0 04 50 0A */	sth r0, 0x500a(r4)
lbl_8026A510:
/* 8026A510 00266170  A0 04 50 0A */	lhz r0, 0x500a(r4)
/* 8026A514 00266174  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8026A518 00266178  40 82 FF F8 */	bne lbl_8026A510
/* 8026A51C 0026617C  4B FF FB C1 */	bl OSGetArenaHi
/* 8026A520 00266180  7C 64 1B 78 */	mr r4, r3
/* 8026A524 00266184  3C 60 81 00 */	lis r3, 0x8100
/* 8026A528 00266188  38 84 FF 80 */	addi r4, r4, -128
/* 8026A52C 0026618C  38 A0 00 80 */	li r5, 0x80
/* 8026A530 00266190  4B D9 9A D1 */	bl memcpy
/* 8026A534 00266194  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8026A538 00266198  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8026A53C 0026619C  7C 08 03 A6 */	mtlr r0
/* 8026A540 002661A0  38 21 00 10 */	addi r1, r1, 0x10
/* 8026A544 002661A4  4E 80 00 20 */	blr

.global __OSStopAudioSystem
__OSStopAudioSystem:
/* 8026A548 002661A8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8026A54C 002661AC  7C 08 02 A6 */	mflr r0
/* 8026A550 002661B0  3C 60 CC 00 */	lis r3, 0xCC00500A@ha
/* 8026A554 002661B4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8026A558 002661B8  38 00 08 04 */	li r0, 0x804
/* 8026A55C 002661BC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8026A560 002661C0  B0 03 50 0A */	sth r0, 0xCC00500A@l(r3)
/* 8026A564 002661C4  A0 03 50 36 */	lhz r0, 0x5036(r3)
/* 8026A568 002661C8  54 00 04 7E */	clrlwi r0, r0, 0x11
/* 8026A56C 002661CC  B0 03 50 36 */	sth r0, 0x5036(r3)
/* 8026A570 002661D0  A0 03 50 0A */	lhz r0, 0x500a(r3)
/* 8026A574 002661D4  48 00 00 08 */	b lbl_8026A57C
lbl_8026A578:
/* 8026A578 002661D8  A0 03 50 0A */	lhz r0, 0x500a(r3)
lbl_8026A57C:
/* 8026A57C 002661DC  54 00 05 6B */	rlwinm. r0, r0, 0, 0x15, 0x15
/* 8026A580 002661E0  40 82 FF F8 */	bne lbl_8026A578
/* 8026A584 002661E4  3C 60 CC 00 */	lis r3, 0xCC00500A@ha
/* 8026A588 002661E8  A0 03 50 0A */	lhz r0, 0xCC00500A@l(r3)
/* 8026A58C 002661EC  48 00 00 08 */	b lbl_8026A594
lbl_8026A590:
/* 8026A590 002661F0  A0 03 50 0A */	lhz r0, 0x500a(r3)
lbl_8026A594:
/* 8026A594 002661F4  54 00 05 AD */	rlwinm. r0, r0, 0, 0x16, 0x16
/* 8026A598 002661F8  40 82 FF F8 */	bne lbl_8026A590
/* 8026A59C 002661FC  3C 80 CC 00 */	lis r4, 0xCC00500A@ha
/* 8026A5A0 00266200  38 00 08 AC */	li r0, 0x8ac
/* 8026A5A4 00266204  B0 04 50 0A */	sth r0, 0xCC00500A@l(r4)
/* 8026A5A8 00266208  38 00 00 00 */	li r0, 0
/* 8026A5AC 0026620C  B0 04 50 00 */	sth r0, 0x5000(r4)
lbl_8026A5B0:
/* 8026A5B0 00266210  A0 64 50 04 */	lhz r3, 0x5004(r4)
/* 8026A5B4 00266214  A0 04 50 06 */	lhz r0, 0x5006(r4)
/* 8026A5B8 00266218  50 60 80 1E */	rlwimi r0, r3, 0x10, 0, 0xf
/* 8026A5BC 0026621C  54 00 00 01 */	rlwinm. r0, r0, 0, 0, 0
/* 8026A5C0 00266220  40 82 FF F0 */	bne lbl_8026A5B0
/* 8026A5C4 00266224  48 00 82 0D */	bl OSGetTick
/* 8026A5C8 00266228  7C 7F 1B 78 */	mr r31, r3
lbl_8026A5CC:
/* 8026A5CC 0026622C  48 00 82 05 */	bl OSGetTick
/* 8026A5D0 00266230  7C 1F 18 50 */	subf r0, r31, r3
/* 8026A5D4 00266234  2C 00 00 2C */	cmpwi r0, 0x2c
/* 8026A5D8 00266238  41 80 FF F4 */	blt lbl_8026A5CC
/* 8026A5DC 0026623C  3C 60 CC 00 */	lis r3, 0xCC00500A@ha
/* 8026A5E0 00266240  A0 03 50 0A */	lhz r0, 0xCC00500A@l(r3)
/* 8026A5E4 00266244  60 00 00 01 */	ori r0, r0, 1
/* 8026A5E8 00266248  B0 03 50 0A */	sth r0, 0x500a(r3)
/* 8026A5EC 0026624C  A0 03 50 0A */	lhz r0, 0x500a(r3)
/* 8026A5F0 00266250  48 00 00 08 */	b lbl_8026A5F8
lbl_8026A5F4:
/* 8026A5F4 00266254  A0 03 50 0A */	lhz r0, 0x500a(r3)
lbl_8026A5F8:
/* 8026A5F8 00266258  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8026A5FC 0026625C  40 82 FF F8 */	bne lbl_8026A5F4
/* 8026A600 00266260  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8026A604 00266264  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8026A608 00266268  7C 08 03 A6 */	mtlr r0
/* 8026A60C 0026626C  38 21 00 10 */	addi r1, r1, 0x10
/* 8026A610 00266270  4E 80 00 20 */	blr