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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global GetInstance__Q44nw4r3snd6detail11SoundThreadFv
GetInstance__Q44nw4r3snd6detail11SoundThreadFv:
/* 8037C450 003780B0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8037C454 003780B4 7C 08 02 A6 */ mflr r0
/* 8037C458 003780B8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8037C45C 003780BC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8037C460 003780C0 88 0D B2 78 */ lbz r0, lbl_80640538-_SDA_BASE_(r13)
/* 8037C464 003780C4 7C 00 07 75 */ extsb. r0, r0
/* 8037C468 003780C8 40 82 00 90 */ bne lbl_8037C4F8
/* 8037C46C 003780CC 3F E0 80 64 */ lis r31, lbl_806389C0@ha
/* 8037C470 003780D0 38 00 00 00 */ li r0, 0
/* 8037C474 003780D4 3B FF 89 C0 */ addi r31, r31, lbl_806389C0@l
/* 8037C478 003780D8 38 A0 00 04 */ li r5, 4
/* 8037C47C 003780DC 90 1F 03 7C */ stw r0, 0x37c(r31)
/* 8037C480 003780E0 38 FF 03 7C */ addi r7, r31, 0x37c
/* 8037C484 003780E4 38 DF 03 88 */ addi r6, r31, 0x388
/* 8037C488 003780E8 38 7F 03 20 */ addi r3, r31, 0x320
/* 8037C48C 003780EC 90 1F 03 80 */ stw r0, 0x380(r31)
/* 8037C490 003780F0 38 9F 03 40 */ addi r4, r31, 0x340
/* 8037C494 003780F4 90 1F 03 88 */ stw r0, 0x388(r31)
/* 8037C498 003780F8 90 1F 03 8C */ stw r0, 0x38c(r31)
/* 8037C49C 003780FC 90 1F 03 50 */ stw r0, 0x350(r31)
/* 8037C4A0 00378100 90 1F 03 6C */ stw r0, 0x36c(r31)
/* 8037C4A4 00378104 90 1F 03 70 */ stw r0, 0x370(r31)
/* 8037C4A8 00378108 90 1F 03 78 */ stw r0, 0x378(r31)
/* 8037C4AC 0037810C 90 FF 03 7C */ stw r7, 0x37c(r31)
/* 8037C4B0 00378110 90 FF 03 80 */ stw r7, 0x380(r31)
/* 8037C4B4 00378114 90 1F 03 84 */ stw r0, 0x384(r31)
/* 8037C4B8 00378118 90 DF 03 88 */ stw r6, 0x388(r31)
/* 8037C4BC 0037811C 90 DF 03 8C */ stw r6, 0x38c(r31)
/* 8037C4C0 00378120 98 1F 03 94 */ stb r0, 0x394(r31)
/* 8037C4C4 00378124 4B EF 2A 35 */ bl OSInitMessageQueue
/* 8037C4C8 00378128 38 7F 03 18 */ addi r3, r31, 0x318
/* 8037C4CC 0037812C 4B EF 4E 1D */ bl OSInitThreadQueue
/* 8037C4D0 00378130 38 7F 03 54 */ addi r3, r31, 0x354
/* 8037C4D4 00378134 4B EF 34 3D */ bl OSInitMutex
/* 8037C4D8 00378138 3C 80 80 38 */ lis r4, __dt__Q44nw4r3snd6detail11SoundThreadFv@ha
/* 8037C4DC 0037813C 3C A0 80 64 */ lis r5, lbl_806389B0@ha
/* 8037C4E0 00378140 7F E3 FB 78 */ mr r3, r31
/* 8037C4E4 00378144 38 84 C5 14 */ addi r4, r4, __dt__Q44nw4r3snd6detail11SoundThreadFv@l
/* 8037C4E8 00378148 38 A5 89 B0 */ addi r5, r5, lbl_806389B0@l
/* 8037C4EC 0037814C 4B E4 A7 5D */ bl __register_global_object_tmp
/* 8037C4F0 00378150 38 00 00 01 */ li r0, 1
/* 8037C4F4 00378154 98 0D B2 78 */ stb r0, lbl_80640538-_SDA_BASE_(r13)
lbl_8037C4F8:
/* 8037C4F8 00378158 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8037C4FC 0037815C 3C 60 80 64 */ lis r3, lbl_806389C0@ha
/* 8037C500 00378160 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8037C504 00378164 38 63 89 C0 */ addi r3, r3, lbl_806389C0@l
/* 8037C508 00378168 7C 08 03 A6 */ mtlr r0
/* 8037C50C 0037816C 38 21 00 10 */ addi r1, r1, 0x10
/* 8037C510 00378170 4E 80 00 20 */ blr
.global __dt__Q44nw4r3snd6detail11SoundThreadFv
__dt__Q44nw4r3snd6detail11SoundThreadFv:
/* 8037C514 00378174 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8037C518 00378178 7C 08 02 A6 */ mflr r0
/* 8037C51C 0037817C 2C 03 00 00 */ cmpwi r3, 0
/* 8037C520 00378180 90 01 00 14 */ stw r0, 0x14(r1)
/* 8037C524 00378184 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8037C528 00378188 7C 9F 23 78 */ mr r31, r4
/* 8037C52C 0037818C 93 C1 00 08 */ stw r30, 8(r1)
/* 8037C530 00378190 7C 7E 1B 78 */ mr r30, r3
/* 8037C534 00378194 41 82 00 34 */ beq lbl_8037C568
/* 8037C538 00378198 34 63 03 84 */ addic. r3, r3, 0x384
/* 8037C53C 0037819C 41 82 00 0C */ beq lbl_8037C548
/* 8037C540 003781A0 38 80 00 00 */ li r4, 0
/* 8037C544 003781A4 4B FE 65 F5 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
lbl_8037C548:
/* 8037C548 003781A8 34 7E 03 78 */ addic. r3, r30, 0x378
/* 8037C54C 003781AC 41 82 00 0C */ beq lbl_8037C558
/* 8037C550 003781B0 38 80 00 00 */ li r4, 0
/* 8037C554 003781B4 4B FE 65 E5 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
lbl_8037C558:
/* 8037C558 003781B8 2C 1F 00 00 */ cmpwi r31, 0
/* 8037C55C 003781BC 40 81 00 0C */ ble lbl_8037C568
/* 8037C560 003781C0 7F C3 F3 78 */ mr r3, r30
/* 8037C564 003781C4 4B E5 E5 55 */ bl __dl__FPv
lbl_8037C568:
/* 8037C568 003781C8 7F C3 F3 78 */ mr r3, r30
/* 8037C56C 003781CC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8037C570 003781D0 83 C1 00 08 */ lwz r30, 8(r1)
/* 8037C574 003781D4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8037C578 003781D8 7C 08 03 A6 */ mtlr r0
/* 8037C57C 003781DC 38 21 00 10 */ addi r1, r1, 0x10
/* 8037C580 003781E0 4E 80 00 20 */ blr
.global Create__Q44nw4r3snd6detail11SoundThreadFlPvUl
Create__Q44nw4r3snd6detail11SoundThreadFlPvUl:
/* 8037C584 003781E4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8037C588 003781E8 7C 08 02 A6 */ mflr r0
/* 8037C58C 003781EC 90 01 00 24 */ stw r0, 0x24(r1)
/* 8037C590 003781F0 39 61 00 20 */ addi r11, r1, 0x20
/* 8037C594 003781F4 4B E4 AB 91 */ bl _savegpr_26
/* 8037C598 003781F8 88 03 03 94 */ lbz r0, 0x394(r3)
/* 8037C59C 003781FC 7C 7A 1B 78 */ mr r26, r3
/* 8037C5A0 00378200 7C 9B 23 78 */ mr r27, r4
/* 8037C5A4 00378204 7C BC 2B 78 */ mr r28, r5
/* 8037C5A8 00378208 2C 00 00 00 */ cmpwi r0, 0
/* 8037C5AC 0037820C 7C DD 33 78 */ mr r29, r6
/* 8037C5B0 00378210 41 82 00 0C */ beq lbl_8037C5BC
/* 8037C5B4 00378214 38 60 00 01 */ li r3, 1
/* 8037C5B8 00378218 48 00 00 EC */ b lbl_8037C6A4
lbl_8037C5BC:
/* 8037C5BC 0037821C 3B E0 00 01 */ li r31, 1
/* 8037C5C0 00378220 90 A3 03 50 */ stw r5, 0x350(r3)
/* 8037C5C4 00378224 9B E3 03 94 */ stb r31, 0x394(r3)
/* 8037C5C8 00378228 88 0D B2 78 */ lbz r0, lbl_80640538-_SDA_BASE_(r13)
/* 8037C5CC 0037822C 7C 00 07 75 */ extsb. r0, r0
/* 8037C5D0 00378230 40 82 00 8C */ bne lbl_8037C65C
/* 8037C5D4 00378234 3F C0 80 64 */ lis r30, lbl_806389C0@ha
/* 8037C5D8 00378238 38 00 00 00 */ li r0, 0
/* 8037C5DC 0037823C 3B DE 89 C0 */ addi r30, r30, lbl_806389C0@l
/* 8037C5E0 00378240 38 A0 00 04 */ li r5, 4
/* 8037C5E4 00378244 90 1E 03 7C */ stw r0, 0x37c(r30)
/* 8037C5E8 00378248 38 DE 03 7C */ addi r6, r30, 0x37c
/* 8037C5EC 0037824C 38 FE 03 88 */ addi r7, r30, 0x388
/* 8037C5F0 00378250 38 7E 03 20 */ addi r3, r30, 0x320
/* 8037C5F4 00378254 90 1E 03 80 */ stw r0, 0x380(r30)
/* 8037C5F8 00378258 38 9E 03 40 */ addi r4, r30, 0x340
/* 8037C5FC 0037825C 90 1E 03 88 */ stw r0, 0x388(r30)
/* 8037C600 00378260 90 1E 03 8C */ stw r0, 0x38c(r30)
/* 8037C604 00378264 90 1E 03 50 */ stw r0, 0x350(r30)
/* 8037C608 00378268 90 1E 03 6C */ stw r0, 0x36c(r30)
/* 8037C60C 0037826C 90 1E 03 70 */ stw r0, 0x370(r30)
/* 8037C610 00378270 90 1E 03 78 */ stw r0, 0x378(r30)
/* 8037C614 00378274 90 DE 03 7C */ stw r6, 0x37c(r30)
/* 8037C618 00378278 90 DE 03 80 */ stw r6, 0x380(r30)
/* 8037C61C 0037827C 90 1E 03 84 */ stw r0, 0x384(r30)
/* 8037C620 00378280 90 FE 03 88 */ stw r7, 0x388(r30)
/* 8037C624 00378284 90 FE 03 8C */ stw r7, 0x38c(r30)
/* 8037C628 00378288 98 1E 03 94 */ stb r0, 0x394(r30)
/* 8037C62C 0037828C 4B EF 28 CD */ bl OSInitMessageQueue
/* 8037C630 00378290 38 7E 03 18 */ addi r3, r30, 0x318
/* 8037C634 00378294 4B EF 4C B5 */ bl OSInitThreadQueue
/* 8037C638 00378298 38 7E 03 54 */ addi r3, r30, 0x354
/* 8037C63C 0037829C 4B EF 32 D5 */ bl OSInitMutex
/* 8037C640 003782A0 3C 80 80 38 */ lis r4, __dt__Q44nw4r3snd6detail11SoundThreadFv@ha
/* 8037C644 003782A4 3C A0 80 64 */ lis r5, lbl_806389B0@ha
/* 8037C648 003782A8 7F C3 F3 78 */ mr r3, r30
/* 8037C64C 003782AC 38 84 C5 14 */ addi r4, r4, __dt__Q44nw4r3snd6detail11SoundThreadFv@l
/* 8037C650 003782B0 38 A5 89 B0 */ addi r5, r5, lbl_806389B0@l
/* 8037C654 003782B4 4B E4 A5 F5 */ bl __register_global_object_tmp
/* 8037C658 003782B8 9B ED B2 78 */ stb r31, lbl_80640538-_SDA_BASE_(r13)
lbl_8037C65C:
/* 8037C65C 003782BC 3C 80 80 38 */ lis r4, SoundThreadFunc__Q44nw4r3snd6detail11SoundThreadFPv@ha
/* 8037C660 003782C0 3C A0 80 64 */ lis r5, lbl_806389C0@ha
/* 8037C664 003782C4 7F 43 D3 78 */ mr r3, r26
/* 8037C668 003782C8 7F A7 EB 78 */ mr r7, r29
/* 8037C66C 003782CC 7F 68 DB 78 */ mr r8, r27
/* 8037C670 003782D0 38 84 C7 C8 */ addi r4, r4, SoundThreadFunc__Q44nw4r3snd6detail11SoundThreadFPv@l
/* 8037C674 003782D4 38 A5 89 C0 */ addi r5, r5, lbl_806389C0@l
/* 8037C678 003782D8 7C DC EA 14 */ add r6, r28, r29
/* 8037C67C 003782DC 39 20 00 00 */ li r9, 0
/* 8037C680 003782E0 4B EF 52 61 */ bl OSCreateThread
/* 8037C684 003782E4 2C 03 00 00 */ cmpwi r3, 0
/* 8037C688 003782E8 7C 7F 1B 78 */ mr r31, r3
/* 8037C68C 003782EC 41 82 00 0C */ beq lbl_8037C698
/* 8037C690 003782F0 7F 43 D3 78 */ mr r3, r26
/* 8037C694 003782F4 4B EF 58 B5 */ bl OSResumeThread
lbl_8037C698:
/* 8037C698 003782F8 7C 1F 00 D0 */ neg r0, r31
/* 8037C69C 003782FC 7C 00 FB 78 */ or r0, r0, r31
/* 8037C6A0 00378300 54 03 0F FE */ srwi r3, r0, 0x1f
lbl_8037C6A4:
/* 8037C6A4 00378304 39 61 00 20 */ addi r11, r1, 0x20
/* 8037C6A8 00378308 4B E4 AA C9 */ bl _restgpr_26
/* 8037C6AC 0037830C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8037C6B0 00378310 7C 08 03 A6 */ mtlr r0
/* 8037C6B4 00378314 38 21 00 20 */ addi r1, r1, 0x20
/* 8037C6B8 00378318 4E 80 00 20 */ blr
.global AxCallbackFunc__Q44nw4r3snd6detail11SoundThreadFv
AxCallbackFunc__Q44nw4r3snd6detail11SoundThreadFv:
/* 8037C6BC 0037831C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8037C6C0 00378320 7C 08 02 A6 */ mflr r0
/* 8037C6C4 00378324 90 01 00 14 */ stw r0, 0x14(r1)
/* 8037C6C8 00378328 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8037C6CC 0037832C 93 C1 00 08 */ stw r30, 8(r1)
/* 8037C6D0 00378330 88 0D B2 78 */ lbz r0, lbl_80640538-_SDA_BASE_(r13)
/* 8037C6D4 00378334 7C 00 07 75 */ extsb. r0, r0
/* 8037C6D8 00378338 40 82 00 90 */ bne lbl_8037C768
/* 8037C6DC 0037833C 3F C0 80 64 */ lis r30, lbl_806389C0@ha
/* 8037C6E0 00378340 38 00 00 00 */ li r0, 0
/* 8037C6E4 00378344 3B DE 89 C0 */ addi r30, r30, lbl_806389C0@l
/* 8037C6E8 00378348 38 A0 00 04 */ li r5, 4
/* 8037C6EC 0037834C 90 1E 03 7C */ stw r0, 0x37c(r30)
/* 8037C6F0 00378350 38 DE 03 7C */ addi r6, r30, 0x37c
/* 8037C6F4 00378354 38 FE 03 88 */ addi r7, r30, 0x388
/* 8037C6F8 00378358 38 7E 03 20 */ addi r3, r30, 0x320
/* 8037C6FC 0037835C 90 1E 03 80 */ stw r0, 0x380(r30)
/* 8037C700 00378360 38 9E 03 40 */ addi r4, r30, 0x340
/* 8037C704 00378364 90 1E 03 88 */ stw r0, 0x388(r30)
/* 8037C708 00378368 90 1E 03 8C */ stw r0, 0x38c(r30)
/* 8037C70C 0037836C 90 1E 03 50 */ stw r0, 0x350(r30)
/* 8037C710 00378370 90 1E 03 6C */ stw r0, 0x36c(r30)
/* 8037C714 00378374 90 1E 03 70 */ stw r0, 0x370(r30)
/* 8037C718 00378378 90 1E 03 78 */ stw r0, 0x378(r30)
/* 8037C71C 0037837C 90 DE 03 7C */ stw r6, 0x37c(r30)
/* 8037C720 00378380 90 DE 03 80 */ stw r6, 0x380(r30)
/* 8037C724 00378384 90 1E 03 84 */ stw r0, 0x384(r30)
/* 8037C728 00378388 90 FE 03 88 */ stw r7, 0x388(r30)
/* 8037C72C 0037838C 90 FE 03 8C */ stw r7, 0x38c(r30)
/* 8037C730 00378390 98 1E 03 94 */ stb r0, 0x394(r30)
/* 8037C734 00378394 4B EF 27 C5 */ bl OSInitMessageQueue
/* 8037C738 00378398 38 7E 03 18 */ addi r3, r30, 0x318
/* 8037C73C 0037839C 4B EF 4B AD */ bl OSInitThreadQueue
/* 8037C740 003783A0 38 7E 03 54 */ addi r3, r30, 0x354
/* 8037C744 003783A4 4B EF 31 CD */ bl OSInitMutex
/* 8037C748 003783A8 3C 80 80 38 */ lis r4, __dt__Q44nw4r3snd6detail11SoundThreadFv@ha
/* 8037C74C 003783AC 3C A0 80 64 */ lis r5, lbl_806389B0@ha
/* 8037C750 003783B0 7F C3 F3 78 */ mr r3, r30
/* 8037C754 003783B4 38 84 C5 14 */ addi r4, r4, __dt__Q44nw4r3snd6detail11SoundThreadFv@l
/* 8037C758 003783B8 38 A5 89 B0 */ addi r5, r5, lbl_806389B0@l
/* 8037C75C 003783BC 4B E4 A4 ED */ bl __register_global_object_tmp
/* 8037C760 003783C0 38 00 00 01 */ li r0, 1
/* 8037C764 003783C4 98 0D B2 78 */ stb r0, lbl_80640538-_SDA_BASE_(r13)
lbl_8037C768:
/* 8037C768 003783C8 3F C0 80 64 */ lis r30, lbl_806389C0@ha
/* 8037C76C 003783CC 38 80 00 01 */ li r4, 1
/* 8037C770 003783D0 3B DE 89 C0 */ addi r30, r30, lbl_806389C0@l
/* 8037C774 003783D4 38 A0 00 00 */ li r5, 0
/* 8037C778 003783D8 38 7E 03 20 */ addi r3, r30, 0x320
/* 8037C77C 003783DC 4B EF 27 DD */ bl OSSendMessage
/* 8037C780 003783E0 87 FE 03 88 */ lwzu r31, 0x388(r30)
/* 8037C784 003783E4 48 00 00 1C */ b lbl_8037C7A0
lbl_8037C788:
/* 8037C788 003783E8 7F E3 FB 78 */ mr r3, r31
/* 8037C78C 003783EC 83 FF 00 00 */ lwz r31, 0(r31)
/* 8037C790 003783F0 81 83 00 08 */ lwz r12, 8(r3)
/* 8037C794 003783F4 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8037C798 003783F8 7D 89 03 A6 */ mtctr r12
/* 8037C79C 003783FC 4E 80 04 21 */ bctrl
lbl_8037C7A0:
/* 8037C7A0 00378400 7C 1F F0 40 */ cmplw r31, r30
/* 8037C7A4 00378404 40 82 FF E4 */ bne lbl_8037C788
/* 8037C7A8 00378408 48 00 61 59 */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037C7AC 0037840C 48 00 66 1D */ bl NotifyVoiceUpdate__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037C7B0 00378410 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8037C7B4 00378414 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8037C7B8 00378418 83 C1 00 08 */ lwz r30, 8(r1)
/* 8037C7BC 0037841C 7C 08 03 A6 */ mtlr r0
/* 8037C7C0 00378420 38 21 00 10 */ addi r1, r1, 0x10
/* 8037C7C4 00378424 4E 80 00 20 */ blr
.global SoundThreadFunc__Q44nw4r3snd6detail11SoundThreadFPv
SoundThreadFunc__Q44nw4r3snd6detail11SoundThreadFPv:
/* 8037C7C8 00378428 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8037C7CC 0037842C 7C 08 02 A6 */ mflr r0
/* 8037C7D0 00378430 90 01 00 14 */ stw r0, 0x14(r1)
/* 8037C7D4 00378434 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8037C7D8 00378438 7C 7F 1B 78 */ mr r31, r3
/* 8037C7DC 0037843C 4B FE BC E9 */ bl GetInstance__Q44nw4r3snd6detail9AxManagerFv
/* 8037C7E0 00378440 3C A0 80 38 */ lis r5, AxCallbackFunc__Q44nw4r3snd6detail11SoundThreadFv@ha
/* 8037C7E4 00378444 38 9F 03 6C */ addi r4, r31, 0x36c
/* 8037C7E8 00378448 38 A5 C6 BC */ addi r5, r5, AxCallbackFunc__Q44nw4r3snd6detail11SoundThreadFv@l
/* 8037C7EC 0037844C 4B FE C3 29 */ bl RegisterCallback__Q44nw4r3snd6detail9AxManagerFPQ54nw4r3snd6detail9AxManager16CallbackListNodePFv_v
/* 8037C7F0 00378450 7F E3 FB 78 */ mr r3, r31
/* 8037C7F4 00378454 48 00 00 E5 */ bl SoundThreadProc__Q44nw4r3snd6detail11SoundThreadFv
/* 8037C7F8 00378458 4B FE BC CD */ bl GetInstance__Q44nw4r3snd6detail9AxManagerFv
/* 8037C7FC 0037845C 38 9F 03 6C */ addi r4, r31, 0x36c
/* 8037C800 00378460 4B FE C3 81 */ bl UnregisterCallback__Q44nw4r3snd6detail9AxManagerFPQ54nw4r3snd6detail9AxManager16CallbackListNode
/* 8037C804 00378464 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8037C808 00378468 38 60 00 00 */ li r3, 0
/* 8037C80C 0037846C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8037C810 00378470 7C 08 03 A6 */ mtlr r0
/* 8037C814 00378474 38 21 00 10 */ addi r1, r1, 0x10
/* 8037C818 00378478 4E 80 00 20 */ blr
.global RegisterPlayerCallback__Q44nw4r3snd6detail11SoundThreadFPQ54nw4r3snd6detail11SoundThread14PlayerCallback
RegisterPlayerCallback__Q44nw4r3snd6detail11SoundThreadFPQ54nw4r3snd6detail11SoundThread14PlayerCallback:
/* 8037C81C 0037847C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8037C820 00378480 7C 08 02 A6 */ mflr r0
/* 8037C824 00378484 90 01 00 24 */ stw r0, 0x24(r1)
/* 8037C828 00378488 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8037C82C 0037848C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8037C830 00378490 7C 9E 23 78 */ mr r30, r4
/* 8037C834 00378494 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8037C838 00378498 7C 7D 1B 78 */ mr r29, r3
/* 8037C83C 0037849C 4B EF 1F 21 */ bl OSDisableInterrupts
/* 8037C840 003784A0 38 1D 03 88 */ addi r0, r29, 0x388
/* 8037C844 003784A4 7C 7F 1B 78 */ mr r31, r3
/* 8037C848 003784A8 90 01 00 08 */ stw r0, 8(r1)
/* 8037C84C 003784AC 7F C5 F3 78 */ mr r5, r30
/* 8037C850 003784B0 38 7D 03 84 */ addi r3, r29, 0x384
/* 8037C854 003784B4 38 81 00 08 */ addi r4, r1, 8
/* 8037C858 003784B8 4B FE 63 F1 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8037C85C 003784BC 7F E3 FB 78 */ mr r3, r31
/* 8037C860 003784C0 4B EF 1F 25 */ bl OSRestoreInterrupts
/* 8037C864 003784C4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8037C868 003784C8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8037C86C 003784CC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8037C870 003784D0 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8037C874 003784D4 7C 08 03 A6 */ mtlr r0
/* 8037C878 003784D8 38 21 00 20 */ addi r1, r1, 0x20
/* 8037C87C 003784DC 4E 80 00 20 */ blr
.global UnregisterPlayerCallback__Q44nw4r3snd6detail11SoundThreadFPQ54nw4r3snd6detail11SoundThread14PlayerCallback
UnregisterPlayerCallback__Q44nw4r3snd6detail11SoundThreadFPQ54nw4r3snd6detail11SoundThread14PlayerCallback:
/* 8037C880 003784E0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8037C884 003784E4 7C 08 02 A6 */ mflr r0
/* 8037C888 003784E8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8037C88C 003784EC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8037C890 003784F0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8037C894 003784F4 7C 9E 23 78 */ mr r30, r4
/* 8037C898 003784F8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8037C89C 003784FC 7C 7D 1B 78 */ mr r29, r3
/* 8037C8A0 00378500 4B EF 1E BD */ bl OSDisableInterrupts
/* 8037C8A4 00378504 7C 7F 1B 78 */ mr r31, r3
/* 8037C8A8 00378508 7F C4 F3 78 */ mr r4, r30
/* 8037C8AC 0037850C 38 7D 03 84 */ addi r3, r29, 0x384
/* 8037C8B0 00378510 4B FE 63 C5 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
/* 8037C8B4 00378514 7F E3 FB 78 */ mr r3, r31
/* 8037C8B8 00378518 4B EF 1E CD */ bl OSRestoreInterrupts
/* 8037C8BC 0037851C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8037C8C0 00378520 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8037C8C4 00378524 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8037C8C8 00378528 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8037C8CC 0037852C 7C 08 03 A6 */ mtlr r0
/* 8037C8D0 00378530 38 21 00 20 */ addi r1, r1, 0x20
/* 8037C8D4 00378534 4E 80 00 20 */ blr
.global SoundThreadProc__Q44nw4r3snd6detail11SoundThreadFv
SoundThreadProc__Q44nw4r3snd6detail11SoundThreadFv:
/* 8037C8D8 00378538 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8037C8DC 0037853C 7C 08 02 A6 */ mflr r0
/* 8037C8E0 00378540 90 01 00 34 */ stw r0, 0x34(r1)
/* 8037C8E4 00378544 39 61 00 30 */ addi r11, r1, 0x30
/* 8037C8E8 00378548 4B E4 A8 39 */ bl _savegpr_25
/* 8037C8EC 0037854C 7C 7F 1B 78 */ mr r31, r3
lbl_8037C8F0:
/* 8037C8F0 00378550 38 7F 03 20 */ addi r3, r31, 0x320
/* 8037C8F4 00378554 38 81 00 08 */ addi r4, r1, 8
/* 8037C8F8 00378558 38 A0 00 01 */ li r5, 1
/* 8037C8FC 0037855C 4B EF 27 25 */ bl OSReceiveMessage
/* 8037C900 00378560 80 01 00 08 */ lwz r0, 8(r1)
/* 8037C904 00378564 28 00 00 01 */ cmplwi r0, 1
/* 8037C908 00378568 40 82 01 50 */ bne lbl_8037CA58
/* 8037C90C 0037856C 3B 5F 03 54 */ addi r26, r31, 0x354
/* 8037C910 00378570 7F 43 D3 78 */ mr r3, r26
/* 8037C914 00378574 4B EF 30 35 */ bl OSLockMutex
/* 8037C918 00378578 4B EF 1E 45 */ bl OSDisableInterrupts
/* 8037C91C 0037857C 7C 79 1B 78 */ mr r25, r3
/* 8037C920 00378580 4B EF 1E 3D */ bl OSDisableInterrupts
/* 8037C924 00378584 83 BF 03 7C */ lwz r29, 0x37c(r31)
/* 8037C928 00378588 7C 7E 1B 78 */ mr r30, r3
/* 8037C92C 0037858C 3B 9F 03 7C */ addi r28, r31, 0x37c
/* 8037C930 00378590 48 00 00 30 */ b lbl_8037C960
lbl_8037C934:
/* 8037C934 00378594 7F BB EB 78 */ mr r27, r29
/* 8037C938 00378598 83 BD 00 00 */ lwz r29, 0(r29)
/* 8037C93C 0037859C 7F 23 CB 78 */ mr r3, r25
/* 8037C940 003785A0 4B EF 1E 45 */ bl OSRestoreInterrupts
/* 8037C944 003785A4 81 9B 00 08 */ lwz r12, 8(r27)
/* 8037C948 003785A8 7F 63 DB 78 */ mr r3, r27
/* 8037C94C 003785AC 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8037C950 003785B0 7D 89 03 A6 */ mtctr r12
/* 8037C954 003785B4 4E 80 04 21 */ bctrl
/* 8037C958 003785B8 4B EF 1E 05 */ bl OSDisableInterrupts
/* 8037C95C 003785BC 7C 79 1B 78 */ mr r25, r3
lbl_8037C960:
/* 8037C960 003785C0 7C 1D E0 40 */ cmplw r29, r28
/* 8037C964 003785C4 40 82 FF D0 */ bne lbl_8037C934
/* 8037C968 003785C8 7F 23 CB 78 */ mr r3, r25
/* 8037C96C 003785CC 4B EF 1E 19 */ bl OSRestoreInterrupts
/* 8037C970 003785D0 7F C3 F3 78 */ mr r3, r30
/* 8037C974 003785D4 4B EF 1E 11 */ bl OSRestoreInterrupts
/* 8037C978 003785D8 4B EF 5E 59 */ bl OSGetTick
/* 8037C97C 003785DC 7C 7B 1B 78 */ mr r27, r3
/* 8037C980 003785E0 4B FE F6 25 */ bl GetInstance__Q44nw4r3snd6detail14AxVoiceManagerFv
/* 8037C984 003785E4 4B FE FB E1 */ bl FreeAllReservedAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFv
/* 8037C988 003785E8 4B FE BB 3D */ bl GetInstance__Q44nw4r3snd6detail9AxManagerFv
/* 8037C98C 003785EC 4B FE BD 55 */ bl Update__Q44nw4r3snd6detail9AxManagerFv
/* 8037C990 003785F0 4B FE BB 35 */ bl GetInstance__Q44nw4r3snd6detail9AxManagerFv
/* 8037C994 003785F4 88 03 00 1A */ lbz r0, 0x1a(r3)
/* 8037C998 003785F8 2C 00 00 00 */ cmpwi r0, 0
/* 8037C99C 003785FC 40 82 00 4C */ bne lbl_8037C9E8
/* 8037C9A0 00378600 4B EF 1D BD */ bl OSDisableInterrupts
/* 8037C9A4 00378604 83 9F 03 88 */ lwz r28, 0x388(r31)
/* 8037C9A8 00378608 3B BF 03 88 */ addi r29, r31, 0x388
/* 8037C9AC 0037860C 48 00 00 28 */ b lbl_8037C9D4
lbl_8037C9B0:
/* 8037C9B0 00378610 7F 9E E3 78 */ mr r30, r28
/* 8037C9B4 00378614 83 9C 00 00 */ lwz r28, 0(r28)
/* 8037C9B8 00378618 4B EF 1D CD */ bl OSRestoreInterrupts
/* 8037C9BC 0037861C 81 9E 00 08 */ lwz r12, 8(r30)
/* 8037C9C0 00378620 7F C3 F3 78 */ mr r3, r30
/* 8037C9C4 00378624 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8037C9C8 00378628 7D 89 03 A6 */ mtctr r12
/* 8037C9CC 0037862C 4E 80 04 21 */ bctrl
/* 8037C9D0 00378630 4B EF 1D 8D */ bl OSDisableInterrupts
lbl_8037C9D4:
/* 8037C9D4 00378634 7C 1C E8 40 */ cmplw r28, r29
/* 8037C9D8 00378638 40 82 FF D8 */ bne lbl_8037C9B0
/* 8037C9DC 0037863C 4B EF 1D A9 */ bl OSRestoreInterrupts
/* 8037C9E0 00378640 4B FF 17 B9 */ bl GetInstance__Q44nw4r3snd6detail14ChannelManagerFv
/* 8037C9E4 00378644 4B FF 19 61 */ bl __ct__Q44nw4r3snd6detail7ChannelFv
lbl_8037C9E8:
/* 8037C9E8 00378648 48 00 69 DD */ bl CalcRandom__Q44nw4r3snd6detail4UtilFv
/* 8037C9EC 0037864C 48 00 5F 15 */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037C9F0 00378650 48 00 63 29 */ bl UpdateAllVoices__Q44nw4r3snd6detail12VoiceManagerFv
/* 8037C9F4 00378654 4B EF 5D DD */ bl OSGetTick
/* 8037C9F8 00378658 7C 1B 18 50 */ subf r0, r27, r3
/* 8037C9FC 0037865C 90 1F 03 90 */ stw r0, 0x390(r31)
/* 8037CA00 00378660 4B EF 1D 5D */ bl OSDisableInterrupts
/* 8037CA04 00378664 83 9F 03 7C */ lwz r28, 0x37c(r31)
/* 8037CA08 00378668 7C 79 1B 78 */ mr r25, r3
/* 8037CA0C 0037866C 3B BF 03 7C */ addi r29, r31, 0x37c
/* 8037CA10 00378670 48 00 00 2C */ b lbl_8037CA3C
lbl_8037CA14:
/* 8037CA14 00378674 7F 9E E3 78 */ mr r30, r28
/* 8037CA18 00378678 83 9C 00 00 */ lwz r28, 0(r28)
/* 8037CA1C 0037867C 7F 23 CB 78 */ mr r3, r25
/* 8037CA20 00378680 4B EF 1D 65 */ bl OSRestoreInterrupts
/* 8037CA24 00378684 81 9E 00 08 */ lwz r12, 8(r30)
/* 8037CA28 00378688 7F C3 F3 78 */ mr r3, r30
/* 8037CA2C 0037868C 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8037CA30 00378690 7D 89 03 A6 */ mtctr r12
/* 8037CA34 00378694 4E 80 04 21 */ bctrl
/* 8037CA38 00378698 4B EF 1D 25 */ bl OSDisableInterrupts
lbl_8037CA3C:
/* 8037CA3C 0037869C 7C 1C E8 40 */ cmplw r28, r29
/* 8037CA40 003786A0 40 82 FF D4 */ bne lbl_8037CA14
/* 8037CA44 003786A4 7F 23 CB 78 */ mr r3, r25
/* 8037CA48 003786A8 4B EF 1D 3D */ bl OSRestoreInterrupts
/* 8037CA4C 003786AC 7F 43 D3 78 */ mr r3, r26
/* 8037CA50 003786B0 4B EF 2F D5 */ bl OSUnlockMutex
/* 8037CA54 003786B4 4B FF FE 9C */ b lbl_8037C8F0
lbl_8037CA58:
/* 8037CA58 003786B8 28 00 00 02 */ cmplwi r0, 2
/* 8037CA5C 003786BC 40 82 FE 94 */ bne lbl_8037C8F0
/* 8037CA60 003786C0 4B EF 1C FD */ bl OSDisableInterrupts
/* 8037CA64 003786C4 83 9F 03 88 */ lwz r28, 0x388(r31)
/* 8037CA68 003786C8 7C 79 1B 78 */ mr r25, r3
/* 8037CA6C 003786CC 3B BF 03 88 */ addi r29, r31, 0x388
/* 8037CA70 003786D0 48 00 00 2C */ b lbl_8037CA9C
lbl_8037CA74:
/* 8037CA74 003786D4 7F 9E E3 78 */ mr r30, r28
/* 8037CA78 003786D8 83 9C 00 00 */ lwz r28, 0(r28)
/* 8037CA7C 003786DC 7F 23 CB 78 */ mr r3, r25
/* 8037CA80 003786E0 4B EF 1D 05 */ bl OSRestoreInterrupts
/* 8037CA84 003786E4 81 9E 00 08 */ lwz r12, 8(r30)
/* 8037CA88 003786E8 7F C3 F3 78 */ mr r3, r30
/* 8037CA8C 003786EC 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 8037CA90 003786F0 7D 89 03 A6 */ mtctr r12
/* 8037CA94 003786F4 4E 80 04 21 */ bctrl
/* 8037CA98 003786F8 4B EF 1C C5 */ bl OSDisableInterrupts
lbl_8037CA9C:
/* 8037CA9C 003786FC 7C 1C E8 40 */ cmplw r28, r29
/* 8037CAA0 00378700 40 82 FF D4 */ bne lbl_8037CA74
/* 8037CAA4 00378704 7F 23 CB 78 */ mr r3, r25
/* 8037CAA8 00378708 4B EF 1C DD */ bl OSRestoreInterrupts
/* 8037CAAC 0037870C 39 61 00 30 */ addi r11, r1, 0x30
/* 8037CAB0 00378710 4B E4 A6 BD */ bl _restgpr_25
/* 8037CAB4 00378714 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8037CAB8 00378718 7C 08 03 A6 */ mtlr r0
/* 8037CABC 0037871C 38 21 00 30 */ addi r1, r1, 0x30
/* 8037CAC0 00378720 4E 80 00 20 */ blr
|