summaryrefslogtreecommitdiff
path: root/asm/NW4R/snd_AxVoiceManager.s
blob: 8a2c333cdb57e9ab3e2c4c144555973bc6c3649d (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
.include "macros.inc"

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

.global GetInstance__Q44nw4r3snd6detail14AxVoiceManagerFv
GetInstance__Q44nw4r3snd6detail14AxVoiceManagerFv:
/* 8036BFA4 00367C04  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8036BFA8 00367C08  7C 08 02 A6 */	mflr r0
/* 8036BFAC 00367C0C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8036BFB0 00367C10  88 0D B1 E0 */	lbz r0, lbl_806404A0-_SDA_BASE_(r13)
/* 8036BFB4 00367C14  7C 00 07 75 */	extsb. r0, r0
/* 8036BFB8 00367C18  40 82 00 78 */	bne lbl_8036C030
/* 8036BFBC 00367C1C  3C C0 80 62 */	lis r6, lbl_8062194C@ha
/* 8036BFC0 00367C20  38 00 00 00 */	li r0, 0
/* 8036BFC4 00367C24  38 66 19 4C */	addi r3, r6, lbl_8062194C@l
/* 8036BFC8 00367C28  3C 80 80 37 */	lis r4, __dt__Q44nw4r3snd6detail14AxVoiceManagerFv@ha
/* 8036BFCC 00367C2C  90 03 00 04 */	stw r0, 4(r3)
/* 8036BFD0 00367C30  39 23 00 04 */	addi r9, r3, 4
/* 8036BFD4 00367C34  39 03 00 10 */	addi r8, r3, 0x10
/* 8036BFD8 00367C38  38 E3 00 1C */	addi r7, r3, 0x1c
/* 8036BFDC 00367C3C  90 03 00 08 */	stw r0, 8(r3)
/* 8036BFE0 00367C40  3C A0 80 62 */	lis r5, lbl_80621940@ha
/* 8036BFE4 00367C44  38 84 C0 48 */	addi r4, r4, __dt__Q44nw4r3snd6detail14AxVoiceManagerFv@l
/* 8036BFE8 00367C48  90 03 00 10 */	stw r0, 0x10(r3)
/* 8036BFEC 00367C4C  38 A5 19 40 */	addi r5, r5, lbl_80621940@l
/* 8036BFF0 00367C50  90 03 00 14 */	stw r0, 0x14(r3)
/* 8036BFF4 00367C54  90 03 00 1C */	stw r0, 0x1c(r3)
/* 8036BFF8 00367C58  90 03 00 20 */	stw r0, 0x20(r3)
/* 8036BFFC 00367C5C  90 06 19 4C */	stw r0, 0x194c(r6)
/* 8036C000 00367C60  91 23 00 04 */	stw r9, 4(r3)
/* 8036C004 00367C64  91 23 00 08 */	stw r9, 8(r3)
/* 8036C008 00367C68  90 03 00 0C */	stw r0, 0xc(r3)
/* 8036C00C 00367C6C  91 03 00 10 */	stw r8, 0x10(r3)
/* 8036C010 00367C70  91 03 00 14 */	stw r8, 0x14(r3)
/* 8036C014 00367C74  90 03 00 18 */	stw r0, 0x18(r3)
/* 8036C018 00367C78  90 E3 00 1C */	stw r7, 0x1c(r3)
/* 8036C01C 00367C7C  90 E3 00 20 */	stw r7, 0x20(r3)
/* 8036C020 00367C80  98 03 00 24 */	stb r0, 0x24(r3)
/* 8036C024 00367C84  4B E5 AC 25 */	bl __register_global_object_tmp
/* 8036C028 00367C88  38 00 00 01 */	li r0, 1
/* 8036C02C 00367C8C  98 0D B1 E0 */	stb r0, lbl_806404A0-_SDA_BASE_(r13)
lbl_8036C030:
/* 8036C030 00367C90  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8036C034 00367C94  3C 60 80 62 */	lis r3, lbl_8062194C@ha
/* 8036C038 00367C98  38 63 19 4C */	addi r3, r3, lbl_8062194C@l
/* 8036C03C 00367C9C  7C 08 03 A6 */	mtlr r0
/* 8036C040 00367CA0  38 21 00 10 */	addi r1, r1, 0x10
/* 8036C044 00367CA4  4E 80 00 20 */	blr

.global __dt__Q44nw4r3snd6detail14AxVoiceManagerFv
__dt__Q44nw4r3snd6detail14AxVoiceManagerFv:
/* 8036C048 00367CA8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8036C04C 00367CAC  7C 08 02 A6 */	mflr r0
/* 8036C050 00367CB0  2C 03 00 00 */	cmpwi r3, 0
/* 8036C054 00367CB4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8036C058 00367CB8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8036C05C 00367CBC  7C 9F 23 78 */	mr r31, r4
/* 8036C060 00367CC0  93 C1 00 08 */	stw r30, 8(r1)
/* 8036C064 00367CC4  7C 7E 1B 78 */	mr r30, r3
/* 8036C068 00367CC8  41 82 00 48 */	beq lbl_8036C0B0
/* 8036C06C 00367CCC  34 63 00 18 */	addic. r3, r3, 0x18
/* 8036C070 00367CD0  41 82 00 0C */	beq lbl_8036C07C
/* 8036C074 00367CD4  38 80 00 00 */	li r4, 0
/* 8036C078 00367CD8  4B FF 6A C1 */	bl __dt__Q44nw4r2ut6detail12LinkListImplFv
lbl_8036C07C:
/* 8036C07C 00367CDC  34 7E 00 0C */	addic. r3, r30, 0xc
/* 8036C080 00367CE0  41 82 00 0C */	beq lbl_8036C08C
/* 8036C084 00367CE4  38 80 00 00 */	li r4, 0
/* 8036C088 00367CE8  4B FF 6A B1 */	bl __dt__Q44nw4r2ut6detail12LinkListImplFv
lbl_8036C08C:
/* 8036C08C 00367CEC  2C 1E 00 00 */	cmpwi r30, 0
/* 8036C090 00367CF0  41 82 00 10 */	beq lbl_8036C0A0
/* 8036C094 00367CF4  7F C3 F3 78 */	mr r3, r30
/* 8036C098 00367CF8  38 80 00 00 */	li r4, 0
/* 8036C09C 00367CFC  4B FF 6A 9D */	bl __dt__Q44nw4r2ut6detail12LinkListImplFv
lbl_8036C0A0:
/* 8036C0A0 00367D00  2C 1F 00 00 */	cmpwi r31, 0
/* 8036C0A4 00367D04  40 81 00 0C */	ble lbl_8036C0B0
/* 8036C0A8 00367D08  7F C3 F3 78 */	mr r3, r30
/* 8036C0AC 00367D0C  4B E6 EA 0D */	bl func_801DAAB8
lbl_8036C0B0:
/* 8036C0B0 00367D10  7F C3 F3 78 */	mr r3, r30
/* 8036C0B4 00367D14  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8036C0B8 00367D18  83 C1 00 08 */	lwz r30, 8(r1)
/* 8036C0BC 00367D1C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8036C0C0 00367D20  7C 08 03 A6 */	mtlr r0
/* 8036C0C4 00367D24  38 21 00 10 */	addi r1, r1, 0x10
/* 8036C0C8 00367D28  4E 80 00 20 */	blr

.global GetRequiredMemSize__Q44nw4r3snd6detail14AxVoiceManagerFv
GetRequiredMemSize__Q44nw4r3snd6detail14AxVoiceManagerFv:
/* 8036C0CC 00367D2C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8036C0D0 00367D30  7C 08 02 A6 */	mflr r0
/* 8036C0D4 00367D34  90 01 00 14 */	stw r0, 0x14(r1)
/* 8036C0D8 00367D38  4B F2 62 45 */	bl func_8029231C
/* 8036C0DC 00367D3C  38 03 00 10 */	addi r0, r3, 0x10
/* 8036C0E0 00367D40  1C 60 00 48 */	mulli r3, r0, 0x48
/* 8036C0E4 00367D44  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8036C0E8 00367D48  7C 08 03 A6 */	mtlr r0
/* 8036C0EC 00367D4C  38 21 00 10 */	addi r1, r1, 0x10
/* 8036C0F0 00367D50  4E 80 00 20 */	blr

.global Setup__Q44nw4r3snd6detail14AxVoiceManagerFPvUl
Setup__Q44nw4r3snd6detail14AxVoiceManagerFPvUl:
/* 8036C0F4 00367D54  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8036C0F8 00367D58  7C 08 02 A6 */	mflr r0
/* 8036C0FC 00367D5C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8036C100 00367D60  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8036C104 00367D64  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8036C108 00367D68  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8036C10C 00367D6C  93 81 00 10 */	stw r28, 0x10(r1)
/* 8036C110 00367D70  7C 7C 1B 78 */	mr r28, r3
/* 8036C114 00367D74  88 03 00 24 */	lbz r0, 0x24(r3)
/* 8036C118 00367D78  2C 00 00 00 */	cmpwi r0, 0
/* 8036C11C 00367D7C  40 82 00 5C */	bne lbl_8036C178
/* 8036C120 00367D80  3C C0 38 E4 */	lis r6, 0x38E38E39@ha
/* 8036C124 00367D84  7C 9E 23 78 */	mr r30, r4
/* 8036C128 00367D88  38 06 8E 39 */	addi r0, r6, 0x38E38E39@l
/* 8036C12C 00367D8C  3B A0 00 00 */	li r29, 0
/* 8036C130 00367D90  7C 00 28 16 */	mulhwu r0, r0, r5
/* 8036C134 00367D94  54 00 E1 3F */	rlwinm. r0, r0, 0x1c, 4, 0x1f
/* 8036C138 00367D98  90 03 00 28 */	stw r0, 0x28(r3)
/* 8036C13C 00367D9C  41 82 00 34 */	beq lbl_8036C170
/* 8036C140 00367DA0  3B E3 00 10 */	addi r31, r3, 0x10
/* 8036C144 00367DA4  48 00 00 20 */	b lbl_8036C164
lbl_8036C148:
/* 8036C148 00367DA8  93 E1 00 08 */	stw r31, 8(r1)
/* 8036C14C 00367DAC  38 7C 00 0C */	addi r3, r28, 0xc
/* 8036C150 00367DB0  38 81 00 08 */	addi r4, r1, 8
/* 8036C154 00367DB4  38 BE 00 40 */	addi r5, r30, 0x40
/* 8036C158 00367DB8  4B FF 6A F1 */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8036C15C 00367DBC  3B DE 00 48 */	addi r30, r30, 0x48
/* 8036C160 00367DC0  3B BD 00 01 */	addi r29, r29, 1
lbl_8036C164:
/* 8036C164 00367DC4  80 1C 00 28 */	lwz r0, 0x28(r28)
/* 8036C168 00367DC8  7C 1D 00 40 */	cmplw r29, r0
/* 8036C16C 00367DCC  41 80 FF DC */	blt lbl_8036C148
lbl_8036C170:
/* 8036C170 00367DD0  38 00 00 01 */	li r0, 1
/* 8036C174 00367DD4  98 1C 00 24 */	stb r0, 0x24(r28)
lbl_8036C178:
/* 8036C178 00367DD8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8036C17C 00367DDC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8036C180 00367DE0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8036C184 00367DE4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8036C188 00367DE8  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8036C18C 00367DEC  7C 08 03 A6 */	mtlr r0
/* 8036C190 00367DF0  38 21 00 20 */	addi r1, r1, 0x20
/* 8036C194 00367DF4  4E 80 00 20 */	blr

.global AcquireAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFUlPFPQ44nw4r3snd6detail7AxVoiceQ54nw4r3snd6detail7AxVoice21AxVoiceCallbackStatusPv_vPv
AcquireAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFUlPFPQ44nw4r3snd6detail7AxVoiceQ54nw4r3snd6detail7AxVoice21AxVoiceCallbackStatusPv_vPv:
/* 8036C198 00367DF8  94 21 FF A0 */	stwu r1, -0x60(r1)
/* 8036C19C 00367DFC  7C 08 02 A6 */	mflr r0
/* 8036C1A0 00367E00  90 01 00 64 */	stw r0, 0x64(r1)
/* 8036C1A4 00367E04  39 61 00 60 */	addi r11, r1, 0x60
/* 8036C1A8 00367E08  4B E5 AF 55 */	bl _savegpr_16
/* 8036C1AC 00367E0C  7C 75 1B 78 */	mr r21, r3
/* 8036C1B0 00367E10  7C 96 23 78 */	mr r22, r4
/* 8036C1B4 00367E14  7C B7 2B 78 */	mr r23, r5
/* 8036C1B8 00367E18  7C D8 33 78 */	mr r24, r6
/* 8036C1BC 00367E1C  4B F0 25 A1 */	bl OSDisableInterrupts
/* 8036C1C0 00367E20  7C 74 1B 78 */	mr r20, r3
/* 8036C1C4 00367E24  4B F0 25 99 */	bl OSDisableInterrupts
/* 8036C1C8 00367E28  80 15 00 18 */	lwz r0, 0x18(r21)
/* 8036C1CC 00367E2C  7C 73 1B 78 */	mr r19, r3
/* 8036C1D0 00367E30  2C 00 00 00 */	cmpwi r0, 0
/* 8036C1D4 00367E34  41 82 01 48 */	beq lbl_8036C31C
/* 8036C1D8 00367E38  3F 60 80 62 */	lis r27, lbl_8062194C@ha
/* 8036C1DC 00367E3C  3B 80 00 00 */	li r28, 0
/* 8036C1E0 00367E40  3B 5B 19 4C */	addi r26, r27, lbl_8062194C@l
/* 8036C1E4 00367E44  3F A0 80 37 */	lis r29, 0x8037
/* 8036C1E8 00367E48  3F C0 80 62 */	lis r30, 0x8062
/* 8036C1EC 00367E4C  3B E0 00 01 */	li r31, 1
/* 8036C1F0 00367E50  3A 1A 00 10 */	addi r16, r26, 0x10
/* 8036C1F4 00367E54  48 00 01 1C */	b lbl_8036C310
lbl_8036C1F8:
/* 8036C1F8 00367E58  80 75 00 1C */	lwz r3, 0x1c(r21)
/* 8036C1FC 00367E5C  81 83 FF F8 */	lwz r12, -8(r3)
/* 8036C200 00367E60  3B 23 FF C0 */	addi r25, r3, -64
/* 8036C204 00367E64  2C 0C 00 00 */	cmpwi r12, 0
/* 8036C208 00367E68  41 82 00 18 */	beq lbl_8036C220
/* 8036C20C 00367E6C  7F 23 CB 78 */	mr r3, r25
/* 8036C210 00367E70  80 B9 00 3C */	lwz r5, 0x3c(r25)
/* 8036C214 00367E74  38 80 00 01 */	li r4, 1
/* 8036C218 00367E78  7D 89 03 A6 */	mtctr r12
/* 8036C21C 00367E7C  4E 80 04 21 */	bctrl
lbl_8036C220:
/* 8036C220 00367E80  88 0D B1 E0 */	lbz r0, lbl_806404A0-_SDA_BASE_(r13)
/* 8036C224 00367E84  7C 00 07 75 */	extsb. r0, r0
/* 8036C228 00367E88  40 82 00 64 */	bne lbl_8036C28C
/* 8036C22C 00367E8C  93 9A 00 04 */	stw r28, 4(r26)
/* 8036C230 00367E90  38 DA 00 04 */	addi r6, r26, 4
/* 8036C234 00367E94  38 FA 00 10 */	addi r7, r26, 0x10
/* 8036C238 00367E98  39 1A 00 1C */	addi r8, r26, 0x1c
/* 8036C23C 00367E9C  93 9A 00 08 */	stw r28, 8(r26)
/* 8036C240 00367EA0  7F 43 D3 78 */	mr r3, r26
/* 8036C244 00367EA4  38 9D C0 48 */	addi r4, r29, -16312
/* 8036C248 00367EA8  38 BE 19 40 */	addi r5, r30, 0x1940
/* 8036C24C 00367EAC  93 9A 00 10 */	stw r28, 0x10(r26)
/* 8036C250 00367EB0  93 9A 00 14 */	stw r28, 0x14(r26)
/* 8036C254 00367EB4  93 9A 00 1C */	stw r28, 0x1c(r26)
/* 8036C258 00367EB8  93 9A 00 20 */	stw r28, 0x20(r26)
/* 8036C25C 00367EBC  93 9B 19 4C */	stw r28, 0x194c(r27)
/* 8036C260 00367EC0  90 DA 00 04 */	stw r6, 4(r26)
/* 8036C264 00367EC4  90 DA 00 08 */	stw r6, 8(r26)
/* 8036C268 00367EC8  93 9A 00 0C */	stw r28, 0xc(r26)
/* 8036C26C 00367ECC  90 FA 00 10 */	stw r7, 0x10(r26)
/* 8036C270 00367ED0  90 FA 00 14 */	stw r7, 0x14(r26)
/* 8036C274 00367ED4  93 9A 00 18 */	stw r28, 0x18(r26)
/* 8036C278 00367ED8  91 1A 00 1C */	stw r8, 0x1c(r26)
/* 8036C27C 00367EDC  91 1A 00 20 */	stw r8, 0x20(r26)
/* 8036C280 00367EE0  9B 9A 00 24 */	stb r28, 0x24(r26)
/* 8036C284 00367EE4  4B E5 A9 C5 */	bl __register_global_object_tmp
/* 8036C288 00367EE8  9B ED B1 E0 */	stb r31, lbl_806404A0-_SDA_BASE_(r13)
lbl_8036C28C:
/* 8036C28C 00367EEC  4B F0 24 D1 */	bl OSDisableInterrupts
/* 8036C290 00367EF0  80 19 00 00 */	lwz r0, 0(r25)
/* 8036C294 00367EF4  7C 72 1B 78 */	mr r18, r3
/* 8036C298 00367EF8  2C 00 00 00 */	cmpwi r0, 0
/* 8036C29C 00367EFC  41 82 00 0C */	beq lbl_8036C2A8
/* 8036C2A0 00367F00  7C 03 03 78 */	mr r3, r0
/* 8036C2A4 00367F04  4B F2 30 11 */	bl func_8028F2B4
lbl_8036C2A8:
/* 8036C2A8 00367F08  7F 23 CB 78 */	mr r3, r25
/* 8036C2AC 00367F0C  38 80 FF FF */	li r4, -1
/* 8036C2B0 00367F10  4B FF D3 C9 */	bl __dt__Q44nw4r3snd6detail7AxVoiceFv
/* 8036C2B4 00367F14  4B F0 24 A9 */	bl OSDisableInterrupts
/* 8036C2B8 00367F18  88 19 00 1D */	lbz r0, 0x1d(r25)
/* 8036C2BC 00367F1C  7C 71 1B 78 */	mr r17, r3
/* 8036C2C0 00367F20  2C 00 00 00 */	cmpwi r0, 0
/* 8036C2C4 00367F24  41 82 00 18 */	beq lbl_8036C2DC
/* 8036C2C8 00367F28  3B 39 00 40 */	addi r25, r25, 0x40
/* 8036C2CC 00367F2C  38 7A 00 18 */	addi r3, r26, 0x18
/* 8036C2D0 00367F30  7F 24 CB 78 */	mr r4, r25
/* 8036C2D4 00367F34  4B FF 69 A1 */	bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
/* 8036C2D8 00367F38  48 00 00 14 */	b lbl_8036C2EC
lbl_8036C2DC:
/* 8036C2DC 00367F3C  3B 39 00 40 */	addi r25, r25, 0x40
/* 8036C2E0 00367F40  7F 43 D3 78 */	mr r3, r26
/* 8036C2E4 00367F44  7F 24 CB 78 */	mr r4, r25
/* 8036C2E8 00367F48  4B FF 69 8D */	bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
lbl_8036C2EC:
/* 8036C2EC 00367F4C  92 01 00 08 */	stw r16, 8(r1)
/* 8036C2F0 00367F50  7F 25 CB 78 */	mr r5, r25
/* 8036C2F4 00367F54  38 7A 00 0C */	addi r3, r26, 0xc
/* 8036C2F8 00367F58  38 81 00 08 */	addi r4, r1, 8
/* 8036C2FC 00367F5C  4B FF 69 4D */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8036C300 00367F60  7E 23 8B 78 */	mr r3, r17
/* 8036C304 00367F64  4B F0 24 81 */	bl OSRestoreInterrupts
/* 8036C308 00367F68  7E 43 93 78 */	mr r3, r18
/* 8036C30C 00367F6C  4B F0 24 79 */	bl OSRestoreInterrupts
lbl_8036C310:
/* 8036C310 00367F70  80 15 00 18 */	lwz r0, 0x18(r21)
/* 8036C314 00367F74  2C 00 00 00 */	cmpwi r0, 0
/* 8036C318 00367F78  40 82 FE E0 */	bne lbl_8036C1F8
lbl_8036C31C:
/* 8036C31C 00367F7C  80 15 00 0C */	lwz r0, 0xc(r21)
/* 8036C320 00367F80  2C 00 00 00 */	cmpwi r0, 0
/* 8036C324 00367F84  40 82 00 14 */	bne lbl_8036C338
/* 8036C328 00367F88  7E 63 9B 78 */	mr r3, r19
/* 8036C32C 00367F8C  4B F0 24 59 */	bl OSRestoreInterrupts
/* 8036C330 00367F90  3A 20 00 00 */	li r17, 0
/* 8036C334 00367F94  48 00 00 54 */	b lbl_8036C388
lbl_8036C338:
/* 8036C338 00367F98  80 B5 00 10 */	lwz r5, 0x10(r21)
/* 8036C33C 00367F9C  38 75 00 0C */	addi r3, r21, 0xc
/* 8036C340 00367FA0  38 81 00 0C */	addi r4, r1, 0xc
/* 8036C344 00367FA4  90 A1 00 0C */	stw r5, 0xc(r1)
/* 8036C348 00367FA8  3A 05 FF C0 */	addi r16, r5, -64
/* 8036C34C 00367FAC  4B FF 68 71 */	bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
/* 8036C350 00367FB0  2C 10 00 00 */	cmpwi r16, 0
/* 8036C354 00367FB4  7E 11 83 78 */	mr r17, r16
/* 8036C358 00367FB8  41 82 00 10 */	beq lbl_8036C368
/* 8036C35C 00367FBC  7E 03 83 78 */	mr r3, r16
/* 8036C360 00367FC0  4B FF D2 D5 */	bl __ct__Q44nw4r3snd6detail7AxVoiceFv
/* 8036C364 00367FC4  7C 71 1B 78 */	mr r17, r3
lbl_8036C368:
/* 8036C368 00367FC8  38 15 00 04 */	addi r0, r21, 4
/* 8036C36C 00367FCC  7E A3 AB 78 */	mr r3, r21
/* 8036C370 00367FD0  90 01 00 10 */	stw r0, 0x10(r1)
/* 8036C374 00367FD4  38 81 00 10 */	addi r4, r1, 0x10
/* 8036C378 00367FD8  38 B0 00 40 */	addi r5, r16, 0x40
/* 8036C37C 00367FDC  4B FF 68 CD */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8036C380 00367FE0  7E 63 9B 78 */	mr r3, r19
/* 8036C384 00367FE4  4B F0 24 01 */	bl OSRestoreInterrupts
lbl_8036C388:
/* 8036C388 00367FE8  2C 11 00 00 */	cmpwi r17, 0
/* 8036C38C 00367FEC  40 82 00 14 */	bne lbl_8036C3A0
/* 8036C390 00367FF0  7E 83 A3 78 */	mr r3, r20
/* 8036C394 00367FF4  4B F0 23 F1 */	bl OSRestoreInterrupts
/* 8036C398 00367FF8  38 60 00 00 */	li r3, 0
/* 8036C39C 00367FFC  48 00 00 50 */	b lbl_8036C3EC
lbl_8036C3A0:
/* 8036C3A0 00368000  3C 80 80 37 */	lis r4, VoiceCallback__Q44nw4r3snd6detail7AxVoiceFPv@ha
/* 8036C3A4 00368004  7E C3 B3 78 */	mr r3, r22
/* 8036C3A8 00368008  7E 25 8B 78 */	mr r5, r17
/* 8036C3AC 0036800C  38 84 9F B4 */	addi r4, r4, VoiceCallback__Q44nw4r3snd6detail7AxVoiceFPv@l
/* 8036C3B0 00368010  4B F2 2F 81 */	bl func_8028F330
/* 8036C3B4 00368014  2C 03 00 00 */	cmpwi r3, 0
/* 8036C3B8 00368018  7C 64 1B 78 */	mr r4, r3
/* 8036C3BC 0036801C  40 82 00 14 */	bne lbl_8036C3D0
/* 8036C3C0 00368020  7E 83 A3 78 */	mr r3, r20
/* 8036C3C4 00368024  4B F0 23 C1 */	bl OSRestoreInterrupts
/* 8036C3C8 00368028  38 60 00 00 */	li r3, 0
/* 8036C3CC 0036802C  48 00 00 20 */	b lbl_8036C3EC
lbl_8036C3D0:
/* 8036C3D0 00368030  7E 23 8B 78 */	mr r3, r17
/* 8036C3D4 00368034  4B FF F4 DD */	bl Set__Q44nw4r3snd6detail17AxVoiceParamBlockFP6_AXVPB
/* 8036C3D8 00368038  92 F1 00 38 */	stw r23, 0x38(r17)
/* 8036C3DC 0036803C  7E 83 A3 78 */	mr r3, r20
/* 8036C3E0 00368040  93 11 00 3C */	stw r24, 0x3c(r17)
/* 8036C3E4 00368044  4B F0 23 A1 */	bl OSRestoreInterrupts
/* 8036C3E8 00368048  7E 23 8B 78 */	mr r3, r17
lbl_8036C3EC:
/* 8036C3EC 0036804C  39 61 00 60 */	addi r11, r1, 0x60
/* 8036C3F0 00368050  4B E5 AD 59 */	bl func_801C7148
/* 8036C3F4 00368054  80 01 00 64 */	lwz r0, 0x64(r1)
/* 8036C3F8 00368058  7C 08 03 A6 */	mtlr r0
/* 8036C3FC 0036805C  38 21 00 60 */	addi r1, r1, 0x60
/* 8036C400 00368060  4E 80 00 20 */	blr

.global FreeAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFPQ44nw4r3snd6detail7AxVoice
FreeAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFPQ44nw4r3snd6detail7AxVoice:
/* 8036C404 00368064  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8036C408 00368068  7C 08 02 A6 */	mflr r0
/* 8036C40C 0036806C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8036C410 00368070  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8036C414 00368074  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8036C418 00368078  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8036C41C 0036807C  7C 9D 23 78 */	mr r29, r4
/* 8036C420 00368080  93 81 00 10 */	stw r28, 0x10(r1)
/* 8036C424 00368084  7C 7C 1B 78 */	mr r28, r3
/* 8036C428 00368088  4B F0 23 35 */	bl OSDisableInterrupts
/* 8036C42C 0036808C  80 1D 00 00 */	lwz r0, 0(r29)
/* 8036C430 00368090  7C 7F 1B 78 */	mr r31, r3
/* 8036C434 00368094  2C 00 00 00 */	cmpwi r0, 0
/* 8036C438 00368098  41 82 00 0C */	beq lbl_8036C444
/* 8036C43C 0036809C  7C 03 03 78 */	mr r3, r0
/* 8036C440 003680A0  4B F2 2E 75 */	bl func_8028F2B4
lbl_8036C444:
/* 8036C444 003680A4  7F A3 EB 78 */	mr r3, r29
/* 8036C448 003680A8  38 80 FF FF */	li r4, -1
/* 8036C44C 003680AC  4B FF D2 2D */	bl __dt__Q44nw4r3snd6detail7AxVoiceFv
/* 8036C450 003680B0  4B F0 23 0D */	bl OSDisableInterrupts
/* 8036C454 003680B4  88 1D 00 1D */	lbz r0, 0x1d(r29)
/* 8036C458 003680B8  7C 7E 1B 78 */	mr r30, r3
/* 8036C45C 003680BC  2C 00 00 00 */	cmpwi r0, 0
/* 8036C460 003680C0  41 82 00 18 */	beq lbl_8036C478
/* 8036C464 003680C4  3B BD 00 40 */	addi r29, r29, 0x40
/* 8036C468 003680C8  38 7C 00 18 */	addi r3, r28, 0x18
/* 8036C46C 003680CC  7F A4 EB 78 */	mr r4, r29
/* 8036C470 003680D0  4B FF 68 05 */	bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
/* 8036C474 003680D4  48 00 00 14 */	b lbl_8036C488
lbl_8036C478:
/* 8036C478 003680D8  3B BD 00 40 */	addi r29, r29, 0x40
/* 8036C47C 003680DC  7F 83 E3 78 */	mr r3, r28
/* 8036C480 003680E0  7F A4 EB 78 */	mr r4, r29
/* 8036C484 003680E4  4B FF 67 F1 */	bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
lbl_8036C488:
/* 8036C488 003680E8  38 1C 00 10 */	addi r0, r28, 0x10
/* 8036C48C 003680EC  7F A5 EB 78 */	mr r5, r29
/* 8036C490 003680F0  90 01 00 08 */	stw r0, 8(r1)
/* 8036C494 003680F4  38 7C 00 0C */	addi r3, r28, 0xc
/* 8036C498 003680F8  38 81 00 08 */	addi r4, r1, 8
/* 8036C49C 003680FC  4B FF 67 AD */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8036C4A0 00368100  7F C3 F3 78 */	mr r3, r30
/* 8036C4A4 00368104  4B F0 22 E1 */	bl OSRestoreInterrupts
/* 8036C4A8 00368108  7F E3 FB 78 */	mr r3, r31
/* 8036C4AC 0036810C  4B F0 22 D9 */	bl OSRestoreInterrupts
/* 8036C4B0 00368110  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8036C4B4 00368114  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8036C4B8 00368118  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8036C4BC 0036811C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8036C4C0 00368120  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8036C4C4 00368124  7C 08 03 A6 */	mtlr r0
/* 8036C4C8 00368128  38 21 00 20 */	addi r1, r1, 0x20
/* 8036C4CC 0036812C  4E 80 00 20 */	blr

.global ReserveForFreeAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFPQ44nw4r3snd6detail7AxVoice
ReserveForFreeAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFPQ44nw4r3snd6detail7AxVoice:
/* 8036C4D0 00368130  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8036C4D4 00368134  7C 08 02 A6 */	mflr r0
/* 8036C4D8 00368138  90 01 00 24 */	stw r0, 0x24(r1)
/* 8036C4DC 0036813C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8036C4E0 00368140  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8036C4E4 00368144  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8036C4E8 00368148  7C 9D 23 78 */	mr r29, r4
/* 8036C4EC 0036814C  93 81 00 10 */	stw r28, 0x10(r1)
/* 8036C4F0 00368150  7C 7C 1B 78 */	mr r28, r3
/* 8036C4F4 00368154  4B F0 22 69 */	bl OSDisableInterrupts
/* 8036C4F8 00368158  38 00 00 01 */	li r0, 1
/* 8036C4FC 0036815C  7C 7F 1B 78 */	mr r31, r3
/* 8036C500 00368160  98 1D 00 1D */	stb r0, 0x1d(r29)
/* 8036C504 00368164  4B F0 22 59 */	bl OSDisableInterrupts
/* 8036C508 00368168  3B BD 00 40 */	addi r29, r29, 0x40
/* 8036C50C 0036816C  7C 7E 1B 78 */	mr r30, r3
/* 8036C510 00368170  7F 83 E3 78 */	mr r3, r28
/* 8036C514 00368174  7F A4 EB 78 */	mr r4, r29
/* 8036C518 00368178  4B FF 67 5D */	bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
/* 8036C51C 0036817C  38 1C 00 1C */	addi r0, r28, 0x1c
/* 8036C520 00368180  7F A5 EB 78 */	mr r5, r29
/* 8036C524 00368184  90 01 00 08 */	stw r0, 8(r1)
/* 8036C528 00368188  38 7C 00 18 */	addi r3, r28, 0x18
/* 8036C52C 0036818C  38 81 00 08 */	addi r4, r1, 8
/* 8036C530 00368190  4B FF 67 19 */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8036C534 00368194  7F C3 F3 78 */	mr r3, r30
/* 8036C538 00368198  4B F0 22 4D */	bl OSRestoreInterrupts
/* 8036C53C 0036819C  7F E3 FB 78 */	mr r3, r31
/* 8036C540 003681A0  4B F0 22 45 */	bl OSRestoreInterrupts
/* 8036C544 003681A4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8036C548 003681A8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8036C54C 003681AC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8036C550 003681B0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8036C554 003681B4  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8036C558 003681B8  7C 08 03 A6 */	mtlr r0
/* 8036C55C 003681BC  38 21 00 20 */	addi r1, r1, 0x20
/* 8036C560 003681C0  4E 80 00 20 */	blr

.global FreeAllReservedAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFv
FreeAllReservedAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFv:
/* 8036C564 003681C4  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 8036C568 003681C8  7C 08 02 A6 */	mflr r0
/* 8036C56C 003681CC  90 01 00 44 */	stw r0, 0x44(r1)
/* 8036C570 003681D0  39 61 00 40 */	addi r11, r1, 0x40
/* 8036C574 003681D4  4B E5 AB 9D */	bl _savegpr_21
/* 8036C578 003681D8  80 03 00 18 */	lwz r0, 0x18(r3)
/* 8036C57C 003681DC  7C 7F 1B 78 */	mr r31, r3
/* 8036C580 003681E0  2C 00 00 00 */	cmpwi r0, 0
/* 8036C584 003681E4  41 82 01 48 */	beq lbl_8036C6CC
/* 8036C588 003681E8  3E E0 80 62 */	lis r23, lbl_8062194C@ha
/* 8036C58C 003681EC  3B 00 00 00 */	li r24, 0
/* 8036C590 003681F0  3A D7 19 4C */	addi r22, r23, lbl_8062194C@l
/* 8036C594 003681F4  3F 20 80 37 */	lis r25, 0x8037
/* 8036C598 003681F8  3F 40 80 62 */	lis r26, 0x8062
/* 8036C59C 003681FC  3B 60 00 01 */	li r27, 1
/* 8036C5A0 00368200  3B 96 00 10 */	addi r28, r22, 0x10
/* 8036C5A4 00368204  48 00 01 1C */	b lbl_8036C6C0
lbl_8036C5A8:
/* 8036C5A8 00368208  80 7F 00 1C */	lwz r3, 0x1c(r31)
/* 8036C5AC 0036820C  81 83 FF F8 */	lwz r12, -8(r3)
/* 8036C5B0 00368210  3A A3 FF C0 */	addi r21, r3, -64
/* 8036C5B4 00368214  2C 0C 00 00 */	cmpwi r12, 0
/* 8036C5B8 00368218  41 82 00 18 */	beq lbl_8036C5D0
/* 8036C5BC 0036821C  7E A3 AB 78 */	mr r3, r21
/* 8036C5C0 00368220  80 B5 00 3C */	lwz r5, 0x3c(r21)
/* 8036C5C4 00368224  38 80 00 01 */	li r4, 1
/* 8036C5C8 00368228  7D 89 03 A6 */	mtctr r12
/* 8036C5CC 0036822C  4E 80 04 21 */	bctrl
lbl_8036C5D0:
/* 8036C5D0 00368230  88 0D B1 E0 */	lbz r0, lbl_806404A0-_SDA_BASE_(r13)
/* 8036C5D4 00368234  7C 00 07 75 */	extsb. r0, r0
/* 8036C5D8 00368238  40 82 00 64 */	bne lbl_8036C63C
/* 8036C5DC 0036823C  93 16 00 04 */	stw r24, 4(r22)
/* 8036C5E0 00368240  38 D6 00 04 */	addi r6, r22, 4
/* 8036C5E4 00368244  38 F6 00 10 */	addi r7, r22, 0x10
/* 8036C5E8 00368248  39 16 00 1C */	addi r8, r22, 0x1c
/* 8036C5EC 0036824C  93 16 00 08 */	stw r24, 8(r22)
/* 8036C5F0 00368250  7E C3 B3 78 */	mr r3, r22
/* 8036C5F4 00368254  38 99 C0 48 */	addi r4, r25, -16312
/* 8036C5F8 00368258  38 BA 19 40 */	addi r5, r26, 0x1940
/* 8036C5FC 0036825C  93 16 00 10 */	stw r24, 0x10(r22)
/* 8036C600 00368260  93 16 00 14 */	stw r24, 0x14(r22)
/* 8036C604 00368264  93 16 00 1C */	stw r24, 0x1c(r22)
/* 8036C608 00368268  93 16 00 20 */	stw r24, 0x20(r22)
/* 8036C60C 0036826C  93 17 19 4C */	stw r24, 0x194c(r23)
/* 8036C610 00368270  90 D6 00 04 */	stw r6, 4(r22)
/* 8036C614 00368274  90 D6 00 08 */	stw r6, 8(r22)
/* 8036C618 00368278  93 16 00 0C */	stw r24, 0xc(r22)
/* 8036C61C 0036827C  90 F6 00 10 */	stw r7, 0x10(r22)
/* 8036C620 00368280  90 F6 00 14 */	stw r7, 0x14(r22)
/* 8036C624 00368284  93 16 00 18 */	stw r24, 0x18(r22)
/* 8036C628 00368288  91 16 00 1C */	stw r8, 0x1c(r22)
/* 8036C62C 0036828C  91 16 00 20 */	stw r8, 0x20(r22)
/* 8036C630 00368290  9B 16 00 24 */	stb r24, 0x24(r22)
/* 8036C634 00368294  4B E5 A6 15 */	bl __register_global_object_tmp
/* 8036C638 00368298  9B 6D B1 E0 */	stb r27, lbl_806404A0-_SDA_BASE_(r13)
lbl_8036C63C:
/* 8036C63C 0036829C  4B F0 21 21 */	bl OSDisableInterrupts
/* 8036C640 003682A0  80 15 00 00 */	lwz r0, 0(r21)
/* 8036C644 003682A4  7C 7E 1B 78 */	mr r30, r3
/* 8036C648 003682A8  2C 00 00 00 */	cmpwi r0, 0
/* 8036C64C 003682AC  41 82 00 0C */	beq lbl_8036C658
/* 8036C650 003682B0  7C 03 03 78 */	mr r3, r0
/* 8036C654 003682B4  4B F2 2C 61 */	bl func_8028F2B4
lbl_8036C658:
/* 8036C658 003682B8  7E A3 AB 78 */	mr r3, r21
/* 8036C65C 003682BC  38 80 FF FF */	li r4, -1
/* 8036C660 003682C0  4B FF D0 19 */	bl __dt__Q44nw4r3snd6detail7AxVoiceFv
/* 8036C664 003682C4  4B F0 20 F9 */	bl OSDisableInterrupts
/* 8036C668 003682C8  88 15 00 1D */	lbz r0, 0x1d(r21)
/* 8036C66C 003682CC  7C 7D 1B 78 */	mr r29, r3
/* 8036C670 003682D0  2C 00 00 00 */	cmpwi r0, 0
/* 8036C674 003682D4  41 82 00 18 */	beq lbl_8036C68C
/* 8036C678 003682D8  3A B5 00 40 */	addi r21, r21, 0x40
/* 8036C67C 003682DC  38 76 00 18 */	addi r3, r22, 0x18
/* 8036C680 003682E0  7E A4 AB 78 */	mr r4, r21
/* 8036C684 003682E4  4B FF 65 F1 */	bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
/* 8036C688 003682E8  48 00 00 14 */	b lbl_8036C69C
lbl_8036C68C:
/* 8036C68C 003682EC  3A B5 00 40 */	addi r21, r21, 0x40
/* 8036C690 003682F0  7E C3 B3 78 */	mr r3, r22
/* 8036C694 003682F4  7E A4 AB 78 */	mr r4, r21
/* 8036C698 003682F8  4B FF 65 DD */	bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
lbl_8036C69C:
/* 8036C69C 003682FC  93 81 00 08 */	stw r28, 8(r1)
/* 8036C6A0 00368300  7E A5 AB 78 */	mr r5, r21
/* 8036C6A4 00368304  38 76 00 0C */	addi r3, r22, 0xc
/* 8036C6A8 00368308  38 81 00 08 */	addi r4, r1, 8
/* 8036C6AC 0036830C  4B FF 65 9D */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8036C6B0 00368310  7F A3 EB 78 */	mr r3, r29
/* 8036C6B4 00368314  4B F0 20 D1 */	bl OSRestoreInterrupts
/* 8036C6B8 00368318  7F C3 F3 78 */	mr r3, r30
/* 8036C6BC 0036831C  4B F0 20 C9 */	bl OSRestoreInterrupts
lbl_8036C6C0:
/* 8036C6C0 00368320  80 1F 00 18 */	lwz r0, 0x18(r31)
/* 8036C6C4 00368324  2C 00 00 00 */	cmpwi r0, 0
/* 8036C6C8 00368328  40 82 FE E0 */	bne lbl_8036C5A8
lbl_8036C6CC:
/* 8036C6CC 0036832C  39 61 00 40 */	addi r11, r1, 0x40
/* 8036C6D0 00368330  4B E5 AA 8D */	bl func_801C715C
/* 8036C6D4 00368334  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8036C6D8 00368338  7C 08 03 A6 */	mtlr r0
/* 8036C6DC 0036833C  38 21 00 40 */	addi r1, r1, 0x40
/* 8036C6E0 00368340  4E 80 00 20 */	blr