summaryrefslogtreecommitdiff
path: root/asm/nw4r/snd/snd_SoundPlayer.s
blob: d5159adf5e5a4d9687887c5bad07ac17a02a15c8 (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
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
.include "macros.inc"

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

.global __ct__Q34nw4r3snd11SoundPlayerFv
__ct__Q34nw4r3snd11SoundPlayerFv:
/* 8037ABDC 0037683C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037ABE0 00376840  7C 08 02 A6 */	mflr r0
/* 8037ABE4 00376844  38 83 00 04 */	addi r4, r3, 4
/* 8037ABE8 00376848  38 A3 00 10 */	addi r5, r3, 0x10
/* 8037ABEC 0037684C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037ABF0 00376850  38 C3 00 1C */	addi r6, r3, 0x1c
/* 8037ABF4 00376854  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8037ABF8 00376858  3B E0 00 01 */	li r31, 1
/* 8037ABFC 0037685C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8037AC00 00376860  3B C0 00 00 */	li r30, 0
/* 8037AC04 00376864  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8037AC08 00376868  7C 7D 1B 78 */	mr r29, r3
/* 8037AC0C 0037686C  93 C3 00 04 */	stw r30, 4(r3)
/* 8037AC10 00376870  93 C3 00 08 */	stw r30, 8(r3)
/* 8037AC14 00376874  93 C3 00 10 */	stw r30, 0x10(r3)
/* 8037AC18 00376878  93 C3 00 14 */	stw r30, 0x14(r3)
/* 8037AC1C 0037687C  93 C3 00 1C */	stw r30, 0x1c(r3)
/* 8037AC20 00376880  93 C3 00 20 */	stw r30, 0x20(r3)
/* 8037AC24 00376884  93 C3 00 00 */	stw r30, 0(r3)
/* 8037AC28 00376888  90 83 00 04 */	stw r4, 4(r3)
/* 8037AC2C 0037688C  90 83 00 08 */	stw r4, 8(r3)
/* 8037AC30 00376890  93 C3 00 0C */	stw r30, 0xc(r3)
/* 8037AC34 00376894  90 A3 00 10 */	stw r5, 0x10(r3)
/* 8037AC38 00376898  90 A3 00 14 */	stw r5, 0x14(r3)
/* 8037AC3C 0037689C  93 C3 00 18 */	stw r30, 0x18(r3)
/* 8037AC40 003768A0  90 C3 00 1C */	stw r6, 0x1c(r3)
/* 8037AC44 003768A4  90 C3 00 20 */	stw r6, 0x20(r3)
/* 8037AC48 003768A8  B3 E3 00 24 */	sth r31, 0x24(r3)
/* 8037AC4C 003768AC  B3 E3 00 26 */	sth r31, 0x26(r3)
/* 8037AC50 003768B0  9B C3 00 2D */	stb r30, 0x2d(r3)
/* 8037AC54 003768B4  38 63 00 48 */	addi r3, r3, 0x48
/* 8037AC58 003768B8  4B EF 4C B9 */	bl OSInitMutex
/* 8037AC5C 003768BC  C0 02 A7 60 */	lfs f0, lbl_80642D60-_SDA2_BASE_(r2)
/* 8037AC60 003768C0  7F A3 EB 78 */	mr r3, r29
/* 8037AC64 003768C4  93 FD 00 30 */	stw r31, 0x30(r29)
/* 8037AC68 003768C8  D0 1D 00 28 */	stfs f0, 0x28(r29)
/* 8037AC6C 003768CC  9B DD 00 2C */	stb r30, 0x2c(r29)
/* 8037AC70 003768D0  D0 1D 00 34 */	stfs f0, 0x34(r29)
/* 8037AC74 003768D4  D0 1D 00 38 */	stfs f0, 0x38(r29)
/* 8037AC78 003768D8  D0 1D 00 3C */	stfs f0, 0x3c(r29)
/* 8037AC7C 003768DC  D0 1D 00 40 */	stfs f0, 0x40(r29)
/* 8037AC80 003768E0  D0 1D 00 44 */	stfs f0, 0x44(r29)
/* 8037AC84 003768E4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8037AC88 003768E8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8037AC8C 003768EC  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8037AC90 003768F0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037AC94 003768F4  7C 08 03 A6 */	mtlr r0
/* 8037AC98 003768F8  38 21 00 20 */	addi r1, r1, 0x20
/* 8037AC9C 003768FC  4E 80 00 20 */	blr

.global __ct__Q34nw4r2ut44LinkList$0Q44nw4r3snd6detail10BasicSound$4200$1Fv
__ct__Q34nw4r2ut44LinkList$0Q44nw4r3snd6detail10BasicSound$4200$1Fv:
/* 8037ACA0 00376900  38 00 00 00 */	li r0, 0
/* 8037ACA4 00376904  38 83 00 04 */	addi r4, r3, 4
/* 8037ACA8 00376908  90 03 00 04 */	stw r0, 4(r3)
/* 8037ACAC 0037690C  90 03 00 08 */	stw r0, 8(r3)
/* 8037ACB0 00376910  90 03 00 00 */	stw r0, 0(r3)
/* 8037ACB4 00376914  90 83 00 04 */	stw r4, 4(r3)
/* 8037ACB8 00376918  90 83 00 08 */	stw r4, 8(r3)
/* 8037ACBC 0037691C  4E 80 00 20 */	blr

.global __dt__Q34nw4r2ut44LinkList$0Q44nw4r3snd6detail10BasicSound$4200$1Fv
__dt__Q34nw4r2ut44LinkList$0Q44nw4r3snd6detail10BasicSound$4200$1Fv:
/* 8037ACC0 00376920  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8037ACC4 00376924  7C 08 02 A6 */	mflr r0
/* 8037ACC8 00376928  2C 03 00 00 */	cmpwi r3, 0
/* 8037ACCC 0037692C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8037ACD0 00376930  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8037ACD4 00376934  7C 9F 23 78 */	mr r31, r4
/* 8037ACD8 00376938  93 C1 00 08 */	stw r30, 8(r1)
/* 8037ACDC 0037693C  7C 7E 1B 78 */	mr r30, r3
/* 8037ACE0 00376940  41 82 00 1C */	beq lbl_8037ACFC
/* 8037ACE4 00376944  38 80 00 00 */	li r4, 0
/* 8037ACE8 00376948  4B FE 7E 51 */	bl __dt__Q44nw4r2ut6detail12LinkListImplFv
/* 8037ACEC 0037694C  2C 1F 00 00 */	cmpwi r31, 0
/* 8037ACF0 00376950  40 81 00 0C */	ble lbl_8037ACFC
/* 8037ACF4 00376954  7F C3 F3 78 */	mr r3, r30
/* 8037ACF8 00376958  4B E5 FD C1 */	bl __dl__FPv
lbl_8037ACFC:
/* 8037ACFC 0037695C  7F C3 F3 78 */	mr r3, r30
/* 8037AD00 00376960  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8037AD04 00376964  83 C1 00 08 */	lwz r30, 8(r1)
/* 8037AD08 00376968  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8037AD0C 0037696C  7C 08 03 A6 */	mtlr r0
/* 8037AD10 00376970  38 21 00 10 */	addi r1, r1, 0x10
/* 8037AD14 00376974  4E 80 00 20 */	blr

.global __dt__Q34nw4r3snd11SoundPlayerFv
__dt__Q34nw4r3snd11SoundPlayerFv:
/* 8037AD18 00376978  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037AD1C 0037697C  7C 08 02 A6 */	mflr r0
/* 8037AD20 00376980  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037AD24 00376984  39 61 00 20 */	addi r11, r1, 0x20
/* 8037AD28 00376988  4B E4 C4 01 */	bl _savegpr_27
/* 8037AD2C 0037698C  2C 03 00 00 */	cmpwi r3, 0
/* 8037AD30 00376990  7C 7B 1B 78 */	mr r27, r3
/* 8037AD34 00376994  7C 9C 23 78 */	mr r28, r4
/* 8037AD38 00376998  41 82 00 8C */	beq lbl_8037ADC4
/* 8037AD3C 0037699C  3B A3 00 48 */	addi r29, r3, 0x48
/* 8037AD40 003769A0  7F A3 EB 78 */	mr r3, r29
/* 8037AD44 003769A4  4B EF 4C 05 */	bl OSLockMutex
/* 8037AD48 003769A8  83 FB 00 04 */	lwz r31, 4(r27)
/* 8037AD4C 003769AC  3B DB 00 04 */	addi r30, r27, 4
/* 8037AD50 003769B0  48 00 00 20 */	b lbl_8037AD70
lbl_8037AD54:
/* 8037AD54 003769B4  7F E3 FB 78 */	mr r3, r31
/* 8037AD58 003769B8  85 83 FF 40 */	lwzu r12, -0xc0(r3)
/* 8037AD5C 003769BC  83 FF 00 00 */	lwz r31, 0(r31)
/* 8037AD60 003769C0  38 80 00 00 */	li r4, 0
/* 8037AD64 003769C4  81 8C 00 18 */	lwz r12, 0x18(r12)
/* 8037AD68 003769C8  7D 89 03 A6 */	mtctr r12
/* 8037AD6C 003769CC  4E 80 04 21 */	bctrl
lbl_8037AD70:
/* 8037AD70 003769D0  7C 1F F0 40 */	cmplw r31, r30
/* 8037AD74 003769D4  40 82 FF E0 */	bne lbl_8037AD54
/* 8037AD78 003769D8  7F A3 EB 78 */	mr r3, r29
/* 8037AD7C 003769DC  4B EF 4C A9 */	bl OSUnlockMutex
/* 8037AD80 003769E0  34 7B 00 18 */	addic. r3, r27, 0x18
/* 8037AD84 003769E4  41 82 00 0C */	beq lbl_8037AD90
/* 8037AD88 003769E8  38 80 00 00 */	li r4, 0
/* 8037AD8C 003769EC  4B FE 7D AD */	bl __dt__Q44nw4r2ut6detail12LinkListImplFv
lbl_8037AD90:
/* 8037AD90 003769F0  34 7B 00 0C */	addic. r3, r27, 0xc
/* 8037AD94 003769F4  41 82 00 0C */	beq lbl_8037ADA0
/* 8037AD98 003769F8  38 80 00 00 */	li r4, 0
/* 8037AD9C 003769FC  4B FE 7D 9D */	bl __dt__Q44nw4r2ut6detail12LinkListImplFv
lbl_8037ADA0:
/* 8037ADA0 00376A00  2C 1B 00 00 */	cmpwi r27, 0
/* 8037ADA4 00376A04  41 82 00 10 */	beq lbl_8037ADB4
/* 8037ADA8 00376A08  7F 63 DB 78 */	mr r3, r27
/* 8037ADAC 00376A0C  38 80 00 00 */	li r4, 0
/* 8037ADB0 00376A10  4B FE 7D 89 */	bl __dt__Q44nw4r2ut6detail12LinkListImplFv
lbl_8037ADB4:
/* 8037ADB4 00376A14  2C 1C 00 00 */	cmpwi r28, 0
/* 8037ADB8 00376A18  40 81 00 0C */	ble lbl_8037ADC4
/* 8037ADBC 00376A1C  7F 63 DB 78 */	mr r3, r27
/* 8037ADC0 00376A20  4B E5 FC F9 */	bl __dl__FPv
lbl_8037ADC4:
/* 8037ADC4 00376A24  39 61 00 20 */	addi r11, r1, 0x20
/* 8037ADC8 00376A28  7F 63 DB 78 */	mr r3, r27
/* 8037ADCC 00376A2C  4B E4 C3 A9 */	bl _restgpr_27
/* 8037ADD0 00376A30  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037ADD4 00376A34  7C 08 03 A6 */	mtlr r0
/* 8037ADD8 00376A38  38 21 00 20 */	addi r1, r1, 0x20
/* 8037ADDC 00376A3C  4E 80 00 20 */	blr

.global Update__Q34nw4r3snd11SoundPlayerFv
Update__Q34nw4r3snd11SoundPlayerFv:
/* 8037ADE0 00376A40  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037ADE4 00376A44  7C 08 02 A6 */	mflr r0
/* 8037ADE8 00376A48  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037ADEC 00376A4C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8037ADF0 00376A50  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8037ADF4 00376A54  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8037ADF8 00376A58  3B A3 00 48 */	addi r29, r3, 0x48
/* 8037ADFC 00376A5C  93 81 00 10 */	stw r28, 0x10(r1)
/* 8037AE00 00376A60  7C 7C 1B 78 */	mr r28, r3
/* 8037AE04 00376A64  7F A3 EB 78 */	mr r3, r29
/* 8037AE08 00376A68  4B EF 4B 41 */	bl OSLockMutex
/* 8037AE0C 00376A6C  83 FC 00 04 */	lwz r31, 4(r28)
/* 8037AE10 00376A70  3B DC 00 04 */	addi r30, r28, 4
/* 8037AE14 00376A74  48 00 00 1C */	b lbl_8037AE30
lbl_8037AE18:
/* 8037AE18 00376A78  7F E3 FB 78 */	mr r3, r31
/* 8037AE1C 00376A7C  85 83 FF 40 */	lwzu r12, -0xc0(r3)
/* 8037AE20 00376A80  83 FF 00 00 */	lwz r31, 0(r31)
/* 8037AE24 00376A84  81 8C 00 10 */	lwz r12, 0x10(r12)
/* 8037AE28 00376A88  7D 89 03 A6 */	mtctr r12
/* 8037AE2C 00376A8C  4E 80 04 21 */	bctrl
lbl_8037AE30:
/* 8037AE30 00376A90  7C 1F F0 40 */	cmplw r31, r30
/* 8037AE34 00376A94  40 82 FF E4 */	bne lbl_8037AE18
/* 8037AE38 00376A98  7F 83 E3 78 */	mr r3, r28
/* 8037AE3C 00376A9C  48 00 03 05 */	bl detail_SortPriorityList__Q34nw4r3snd11SoundPlayerFv
/* 8037AE40 00376AA0  7F A3 EB 78 */	mr r3, r29
/* 8037AE44 00376AA4  4B EF 4B E1 */	bl OSUnlockMutex
/* 8037AE48 00376AA8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037AE4C 00376AAC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8037AE50 00376AB0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8037AE54 00376AB4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8037AE58 00376AB8  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8037AE5C 00376ABC  7C 08 03 A6 */	mtlr r0
/* 8037AE60 00376AC0  38 21 00 20 */	addi r1, r1, 0x20
/* 8037AE64 00376AC4  4E 80 00 20 */	blr

.global StopAllSound__Q34nw4r3snd11SoundPlayerFi
StopAllSound__Q34nw4r3snd11SoundPlayerFi:
/* 8037AE68 00376AC8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037AE6C 00376ACC  7C 08 02 A6 */	mflr r0
/* 8037AE70 00376AD0  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037AE74 00376AD4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8037AE78 00376AD8  7C 7F 1B 78 */	mr r31, r3
/* 8037AE7C 00376ADC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8037AE80 00376AE0  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8037AE84 00376AE4  3B A3 00 48 */	addi r29, r3, 0x48
/* 8037AE88 00376AE8  7F A3 EB 78 */	mr r3, r29
/* 8037AE8C 00376AEC  93 81 00 10 */	stw r28, 0x10(r1)
/* 8037AE90 00376AF0  7C 9C 23 78 */	mr r28, r4
/* 8037AE94 00376AF4  4B EF 4A B5 */	bl OSLockMutex
/* 8037AE98 00376AF8  87 DF 00 04 */	lwzu r30, 4(r31)
/* 8037AE9C 00376AFC  48 00 00 20 */	b lbl_8037AEBC
lbl_8037AEA0:
/* 8037AEA0 00376B00  38 7E FF 40 */	addi r3, r30, -192
/* 8037AEA4 00376B04  7F 84 E3 78 */	mr r4, r28
/* 8037AEA8 00376B08  81 83 00 00 */	lwz r12, 0(r3)
/* 8037AEAC 00376B0C  83 DE 00 00 */	lwz r30, 0(r30)
/* 8037AEB0 00376B10  81 8C 00 18 */	lwz r12, 0x18(r12)
/* 8037AEB4 00376B14  7D 89 03 A6 */	mtctr r12
/* 8037AEB8 00376B18  4E 80 04 21 */	bctrl
lbl_8037AEBC:
/* 8037AEBC 00376B1C  7C 1E F8 40 */	cmplw r30, r31
/* 8037AEC0 00376B20  40 82 FF E0 */	bne lbl_8037AEA0
/* 8037AEC4 00376B24  7F A3 EB 78 */	mr r3, r29
/* 8037AEC8 00376B28  4B EF 4B 5D */	bl OSUnlockMutex
/* 8037AECC 00376B2C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037AED0 00376B30  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8037AED4 00376B34  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8037AED8 00376B38  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8037AEDC 00376B3C  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8037AEE0 00376B40  7C 08 03 A6 */	mtlr r0
/* 8037AEE4 00376B44  38 21 00 20 */	addi r1, r1, 0x20
/* 8037AEE8 00376B48  4E 80 00 20 */	blr

.global PauseAllSound__Q34nw4r3snd11SoundPlayerFbi
PauseAllSound__Q34nw4r3snd11SoundPlayerFbi:
/* 8037AEEC 00376B4C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037AEF0 00376B50  7C 08 02 A6 */	mflr r0
/* 8037AEF4 00376B54  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037AEF8 00376B58  39 61 00 20 */	addi r11, r1, 0x20
/* 8037AEFC 00376B5C  4B E4 C2 2D */	bl _savegpr_27
/* 8037AF00 00376B60  3B A3 00 48 */	addi r29, r3, 0x48
/* 8037AF04 00376B64  7C 7F 1B 78 */	mr r31, r3
/* 8037AF08 00376B68  7C 9B 23 78 */	mr r27, r4
/* 8037AF0C 00376B6C  7C BC 2B 78 */	mr r28, r5
/* 8037AF10 00376B70  7F A3 EB 78 */	mr r3, r29
/* 8037AF14 00376B74  4B EF 4A 35 */	bl OSLockMutex
/* 8037AF18 00376B78  87 DF 00 04 */	lwzu r30, 4(r31)
/* 8037AF1C 00376B7C  48 00 00 24 */	b lbl_8037AF40
lbl_8037AF20:
/* 8037AF20 00376B80  81 9E FF 40 */	lwz r12, -0xc0(r30)
/* 8037AF24 00376B84  38 7E FF 40 */	addi r3, r30, -192
/* 8037AF28 00376B88  7F 64 DB 78 */	mr r4, r27
/* 8037AF2C 00376B8C  7F 85 E3 78 */	mr r5, r28
/* 8037AF30 00376B90  81 8C 00 1C */	lwz r12, 0x1c(r12)
/* 8037AF34 00376B94  83 DE 00 00 */	lwz r30, 0(r30)
/* 8037AF38 00376B98  7D 89 03 A6 */	mtctr r12
/* 8037AF3C 00376B9C  4E 80 04 21 */	bctrl
lbl_8037AF40:
/* 8037AF40 00376BA0  7C 1E F8 40 */	cmplw r30, r31
/* 8037AF44 00376BA4  40 82 FF DC */	bne lbl_8037AF20
/* 8037AF48 00376BA8  7F A3 EB 78 */	mr r3, r29
/* 8037AF4C 00376BAC  4B EF 4A D9 */	bl OSUnlockMutex
/* 8037AF50 00376BB0  39 61 00 20 */	addi r11, r1, 0x20
/* 8037AF54 00376BB4  4B E4 C2 21 */	bl _restgpr_27
/* 8037AF58 00376BB8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037AF5C 00376BBC  7C 08 03 A6 */	mtlr r0
/* 8037AF60 00376BC0  38 21 00 20 */	addi r1, r1, 0x20
/* 8037AF64 00376BC4  4E 80 00 20 */	blr

.global SetVolume__Q34nw4r3snd11SoundPlayerFf
SetVolume__Q34nw4r3snd11SoundPlayerFf:
/* 8037AF68 00376BC8  C0 02 A7 60 */	lfs f0, lbl_80642D60-_SDA2_BASE_(r2)
/* 8037AF6C 00376BCC  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8037AF70 00376BD0  40 81 00 08 */	ble lbl_8037AF78
/* 8037AF74 00376BD4  48 00 00 18 */	b lbl_8037AF8C
lbl_8037AF78:
/* 8037AF78 00376BD8  C0 02 A7 64 */	lfs f0, lbl_80642D64-_SDA2_BASE_(r2)
/* 8037AF7C 00376BDC  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8037AF80 00376BE0  40 80 00 08 */	bge lbl_8037AF88
/* 8037AF84 00376BE4  48 00 00 08 */	b lbl_8037AF8C
lbl_8037AF88:
/* 8037AF88 00376BE8  FC 00 08 90 */	fmr f0, f1
lbl_8037AF8C:
/* 8037AF8C 00376BEC  D0 03 00 28 */	stfs f0, 0x28(r3)
/* 8037AF90 00376BF0  4E 80 00 20 */	blr

.global detail_GetOutputLine__Q34nw4r3snd11SoundPlayerCFv
detail_GetOutputLine__Q34nw4r3snd11SoundPlayerCFv:
/* 8037AF94 00376BF4  80 63 00 30 */	lwz r3, 0x30(r3)
/* 8037AF98 00376BF8  4E 80 00 20 */	blr

.global detail_IsEnabledOutputLine__Q34nw4r3snd11SoundPlayerCFv
detail_IsEnabledOutputLine__Q34nw4r3snd11SoundPlayerCFv:
/* 8037AF9C 00376BFC  88 63 00 2C */	lbz r3, 0x2c(r3)
/* 8037AFA0 00376C00  4E 80 00 20 */	blr

.global detail_GetRemoteOutVolume__Q34nw4r3snd11SoundPlayerCFi
detail_GetRemoteOutVolume__Q34nw4r3snd11SoundPlayerCFi:
/* 8037AFA4 00376C04  54 80 10 3A */	slwi r0, r4, 2
/* 8037AFA8 00376C08  7C 63 02 14 */	add r3, r3, r0
/* 8037AFAC 00376C0C  C0 23 00 38 */	lfs f1, 0x38(r3)
/* 8037AFB0 00376C10  4E 80 00 20 */	blr

.global detail_RemoveSoundList__Q34nw4r3snd11SoundPlayerFPQ44nw4r3snd6detail10BasicSound
detail_RemoveSoundList__Q34nw4r3snd11SoundPlayerFPQ44nw4r3snd6detail10BasicSound:
/* 8037AFB4 00376C14  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037AFB8 00376C18  7C 08 02 A6 */	mflr r0
/* 8037AFBC 00376C1C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037AFC0 00376C20  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8037AFC4 00376C24  3B E3 00 48 */	addi r31, r3, 0x48
/* 8037AFC8 00376C28  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8037AFCC 00376C2C  7C 9E 23 78 */	mr r30, r4
/* 8037AFD0 00376C30  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8037AFD4 00376C34  7C 7D 1B 78 */	mr r29, r3
/* 8037AFD8 00376C38  7F E3 FB 78 */	mr r3, r31
/* 8037AFDC 00376C3C  4B EF 49 6D */	bl OSLockMutex
/* 8037AFE0 00376C40  7F A3 EB 78 */	mr r3, r29
/* 8037AFE4 00376C44  38 9E 00 C0 */	addi r4, r30, 0xc0
/* 8037AFE8 00376C48  4B FE 7C 8D */	bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
/* 8037AFEC 00376C4C  38 00 00 00 */	li r0, 0
/* 8037AFF0 00376C50  7F E3 FB 78 */	mr r3, r31
/* 8037AFF4 00376C54  90 1E 00 10 */	stw r0, 0x10(r30)
/* 8037AFF8 00376C58  4B EF 4A 2D */	bl OSUnlockMutex
/* 8037AFFC 00376C5C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037B000 00376C60  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8037B004 00376C64  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8037B008 00376C68  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8037B00C 00376C6C  7C 08 03 A6 */	mtlr r0
/* 8037B010 00376C70  38 21 00 20 */	addi r1, r1, 0x20
/* 8037B014 00376C74  4E 80 00 20 */	blr

.global detail_InsertPriorityList__Q34nw4r3snd11SoundPlayerFPQ44nw4r3snd6detail10BasicSound
detail_InsertPriorityList__Q34nw4r3snd11SoundPlayerFPQ44nw4r3snd6detail10BasicSound:
/* 8037B018 00376C78  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037B01C 00376C7C  7C 08 02 A6 */	mflr r0
/* 8037B020 00376C80  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037B024 00376C84  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8037B028 00376C88  3B E3 00 48 */	addi r31, r3, 0x48
/* 8037B02C 00376C8C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8037B030 00376C90  7C 9E 23 78 */	mr r30, r4
/* 8037B034 00376C94  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8037B038 00376C98  7C 7D 1B 78 */	mr r29, r3
/* 8037B03C 00376C9C  7F E3 FB 78 */	mr r3, r31
/* 8037B040 00376CA0  4B EF 49 09 */	bl OSLockMutex
/* 8037B044 00376CA4  80 7D 00 10 */	lwz r3, 0x10(r29)
/* 8037B048 00376CA8  38 1D 00 10 */	addi r0, r29, 0x10
/* 8037B04C 00376CAC  48 00 00 58 */	b lbl_8037B0A4
lbl_8037B050:
/* 8037B050 00376CB0  88 A3 FF AC */	lbz r5, -0x54(r3)
/* 8037B054 00376CB4  80 83 FF 78 */	lwz r4, -0x88(r3)
/* 8037B058 00376CB8  7C A5 22 14 */	add r5, r5, r4
/* 8037B05C 00376CBC  2C 05 00 7F */	cmpwi r5, 0x7f
/* 8037B060 00376CC0  40 81 00 0C */	ble lbl_8037B06C
/* 8037B064 00376CC4  38 C0 00 7F */	li r6, 0x7f
/* 8037B068 00376CC8  48 00 00 0C */	b lbl_8037B074
lbl_8037B06C:
/* 8037B06C 00376CCC  7C A4 FE 70 */	srawi r4, r5, 0x1f
/* 8037B070 00376CD0  7C A6 20 78 */	andc r6, r5, r4
lbl_8037B074:
/* 8037B074 00376CD4  88 BE 00 74 */	lbz r5, 0x74(r30)
/* 8037B078 00376CD8  80 9E 00 40 */	lwz r4, 0x40(r30)
/* 8037B07C 00376CDC  7C A5 22 14 */	add r5, r5, r4
/* 8037B080 00376CE0  2C 05 00 7F */	cmpwi r5, 0x7f
/* 8037B084 00376CE4  40 81 00 0C */	ble lbl_8037B090
/* 8037B088 00376CE8  38 80 00 7F */	li r4, 0x7f
/* 8037B08C 00376CEC  48 00 00 0C */	b lbl_8037B098
lbl_8037B090:
/* 8037B090 00376CF0  7C A4 FE 70 */	srawi r4, r5, 0x1f
/* 8037B094 00376CF4  7C A4 20 78 */	andc r4, r5, r4
lbl_8037B098:
/* 8037B098 00376CF8  7C 04 30 00 */	cmpw r4, r6
/* 8037B09C 00376CFC  41 80 00 10 */	blt lbl_8037B0AC
/* 8037B0A0 00376D00  80 63 00 00 */	lwz r3, 0(r3)
lbl_8037B0A4:
/* 8037B0A4 00376D04  7C 03 00 40 */	cmplw r3, r0
/* 8037B0A8 00376D08  40 82 FF A8 */	bne lbl_8037B050
lbl_8037B0AC:
/* 8037B0AC 00376D0C  90 61 00 08 */	stw r3, 8(r1)
/* 8037B0B0 00376D10  38 7D 00 0C */	addi r3, r29, 0xc
/* 8037B0B4 00376D14  38 81 00 08 */	addi r4, r1, 8
/* 8037B0B8 00376D18  38 BE 00 C8 */	addi r5, r30, 0xc8
/* 8037B0BC 00376D1C  4B FE 7B 8D */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8037B0C0 00376D20  7F E3 FB 78 */	mr r3, r31
/* 8037B0C4 00376D24  4B EF 49 61 */	bl OSUnlockMutex
/* 8037B0C8 00376D28  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037B0CC 00376D2C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8037B0D0 00376D30  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8037B0D4 00376D34  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8037B0D8 00376D38  7C 08 03 A6 */	mtlr r0
/* 8037B0DC 00376D3C  38 21 00 20 */	addi r1, r1, 0x20
/* 8037B0E0 00376D40  4E 80 00 20 */	blr

.global detail_RemovePriorityList__Q34nw4r3snd11SoundPlayerFPQ44nw4r3snd6detail10BasicSound
detail_RemovePriorityList__Q34nw4r3snd11SoundPlayerFPQ44nw4r3snd6detail10BasicSound:
/* 8037B0E4 00376D44  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037B0E8 00376D48  7C 08 02 A6 */	mflr r0
/* 8037B0EC 00376D4C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037B0F0 00376D50  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8037B0F4 00376D54  3B E3 00 48 */	addi r31, r3, 0x48
/* 8037B0F8 00376D58  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8037B0FC 00376D5C  7C 9E 23 78 */	mr r30, r4
/* 8037B100 00376D60  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8037B104 00376D64  7C 7D 1B 78 */	mr r29, r3
/* 8037B108 00376D68  7F E3 FB 78 */	mr r3, r31
/* 8037B10C 00376D6C  4B EF 48 3D */	bl OSLockMutex
/* 8037B110 00376D70  38 7D 00 0C */	addi r3, r29, 0xc
/* 8037B114 00376D74  38 9E 00 C8 */	addi r4, r30, 0xc8
/* 8037B118 00376D78  4B FE 7B 5D */	bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
/* 8037B11C 00376D7C  7F E3 FB 78 */	mr r3, r31
/* 8037B120 00376D80  4B EF 49 05 */	bl OSUnlockMutex
/* 8037B124 00376D84  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037B128 00376D88  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8037B12C 00376D8C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8037B130 00376D90  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8037B134 00376D94  7C 08 03 A6 */	mtlr r0
/* 8037B138 00376D98  38 21 00 20 */	addi r1, r1, 0x20
/* 8037B13C 00376D9C  4E 80 00 20 */	blr

.global detail_SortPriorityList__Q34nw4r3snd11SoundPlayerFv
detail_SortPriorityList__Q34nw4r3snd11SoundPlayerFv:
/* 8037B140 00376DA0  94 21 F9 D0 */	stwu r1, -0x630(r1)
/* 8037B144 00376DA4  7C 08 02 A6 */	mflr r0
/* 8037B148 00376DA8  90 01 06 34 */	stw r0, 0x634(r1)
/* 8037B14C 00376DAC  39 61 06 30 */	addi r11, r1, 0x630
/* 8037B150 00376DB0  4B E4 BF D5 */	bl _savegpr_26
/* 8037B154 00376DB4  3B C3 00 48 */	addi r30, r3, 0x48
/* 8037B158 00376DB8  7C 7A 1B 78 */	mr r26, r3
/* 8037B15C 00376DBC  7F C3 F3 78 */	mr r3, r30
/* 8037B160 00376DC0  4B EF 47 E9 */	bl OSLockMutex
/* 8037B164 00376DC4  3C 80 80 38 */	lis r4, __ct__Q34nw4r2ut44LinkList$0Q44nw4r3snd6detail10BasicSound$4200$1Fv@ha
/* 8037B168 00376DC8  3C A0 80 38 */	lis r5, __dt__Q34nw4r2ut44LinkList$0Q44nw4r3snd6detail10BasicSound$4200$1Fv@ha
/* 8037B16C 00376DCC  38 61 00 18 */	addi r3, r1, 0x18
/* 8037B170 00376DD0  38 C0 00 0C */	li r6, 0xc
/* 8037B174 00376DD4  38 84 AC A0 */	addi r4, r4, __ct__Q34nw4r2ut44LinkList$0Q44nw4r3snd6detail10BasicSound$4200$1Fv@l
/* 8037B178 00376DD8  38 A5 AC C0 */	addi r5, r5, __dt__Q34nw4r2ut44LinkList$0Q44nw4r3snd6detail10BasicSound$4200$1Fv@l
/* 8037B17C 00376DDC  38 E0 00 80 */	li r7, 0x80
/* 8037B180 00376DE0  4B E4 BC E9 */	bl __construct_array
/* 8037B184 00376DE4  48 00 00 5C */	b lbl_8037B1E0
lbl_8037B188:
/* 8037B188 00376DE8  83 BA 00 10 */	lwz r29, 0x10(r26)
/* 8037B18C 00376DEC  38 7A 00 0C */	addi r3, r26, 0xc
/* 8037B190 00376DF0  38 81 00 14 */	addi r4, r1, 0x14
/* 8037B194 00376DF4  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8037B198 00376DF8  4B FE 7A 25 */	bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
/* 8037B19C 00376DFC  88 7D FF AC */	lbz r3, -0x54(r29)
/* 8037B1A0 00376E00  80 1D FF 78 */	lwz r0, -0x88(r29)
/* 8037B1A4 00376E04  7C 63 02 14 */	add r3, r3, r0
/* 8037B1A8 00376E08  2C 03 00 7F */	cmpwi r3, 0x7f
/* 8037B1AC 00376E0C  40 81 00 0C */	ble lbl_8037B1B8
/* 8037B1B0 00376E10  38 00 00 7F */	li r0, 0x7f
/* 8037B1B4 00376E14  48 00 00 0C */	b lbl_8037B1C0
lbl_8037B1B8:
/* 8037B1B8 00376E18  7C 60 FE 70 */	srawi r0, r3, 0x1f
/* 8037B1BC 00376E1C  7C 60 00 78 */	andc r0, r3, r0
lbl_8037B1C0:
/* 8037B1C0 00376E20  1C 00 00 0C */	mulli r0, r0, 0xc
/* 8037B1C4 00376E24  38 61 00 18 */	addi r3, r1, 0x18
/* 8037B1C8 00376E28  7F A5 EB 78 */	mr r5, r29
/* 8037B1CC 00376E2C  38 81 00 10 */	addi r4, r1, 0x10
/* 8037B1D0 00376E30  7C 63 02 14 */	add r3, r3, r0
/* 8037B1D4 00376E34  38 03 00 04 */	addi r0, r3, 4
/* 8037B1D8 00376E38  90 01 00 10 */	stw r0, 0x10(r1)
/* 8037B1DC 00376E3C  4B FE 7A 6D */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
lbl_8037B1E0:
/* 8037B1E0 00376E40  80 1A 00 0C */	lwz r0, 0xc(r26)
/* 8037B1E4 00376E44  2C 00 00 00 */	cmpwi r0, 0
/* 8037B1E8 00376E48  40 82 FF A0 */	bne lbl_8037B188
/* 8037B1EC 00376E4C  3B A1 00 18 */	addi r29, r1, 0x18
/* 8037B1F0 00376E50  3B FA 00 10 */	addi r31, r26, 0x10
/* 8037B1F4 00376E54  3B 60 00 00 */	li r27, 0
lbl_8037B1F8:
/* 8037B1F8 00376E58  80 1D 00 00 */	lwz r0, 0(r29)
/* 8037B1FC 00376E5C  2C 00 00 00 */	cmpwi r0, 0
/* 8037B200 00376E60  41 82 00 3C */	beq lbl_8037B23C
/* 8037B204 00376E64  48 00 00 2C */	b lbl_8037B230
lbl_8037B208:
/* 8037B208 00376E68  83 9D 00 04 */	lwz r28, 4(r29)
/* 8037B20C 00376E6C  7F A3 EB 78 */	mr r3, r29
/* 8037B210 00376E70  38 81 00 0C */	addi r4, r1, 0xc
/* 8037B214 00376E74  93 81 00 0C */	stw r28, 0xc(r1)
/* 8037B218 00376E78  4B FE 79 A5 */	bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
/* 8037B21C 00376E7C  93 E1 00 08 */	stw r31, 8(r1)
/* 8037B220 00376E80  7F 85 E3 78 */	mr r5, r28
/* 8037B224 00376E84  38 7A 00 0C */	addi r3, r26, 0xc
/* 8037B228 00376E88  38 81 00 08 */	addi r4, r1, 8
/* 8037B22C 00376E8C  4B FE 7A 1D */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
lbl_8037B230:
/* 8037B230 00376E90  80 1D 00 00 */	lwz r0, 0(r29)
/* 8037B234 00376E94  2C 00 00 00 */	cmpwi r0, 0
/* 8037B238 00376E98  40 82 FF D0 */	bne lbl_8037B208
lbl_8037B23C:
/* 8037B23C 00376E9C  3B 7B 00 01 */	addi r27, r27, 1
/* 8037B240 00376EA0  3B BD 00 0C */	addi r29, r29, 0xc
/* 8037B244 00376EA4  2C 1B 00 80 */	cmpwi r27, 0x80
/* 8037B248 00376EA8  41 80 FF B0 */	blt lbl_8037B1F8
/* 8037B24C 00376EAC  3C 80 80 38 */	lis r4, __dt__Q34nw4r2ut44LinkList$0Q44nw4r3snd6detail10BasicSound$4200$1Fv@ha
/* 8037B250 00376EB0  38 61 00 18 */	addi r3, r1, 0x18
/* 8037B254 00376EB4  38 84 AC C0 */	addi r4, r4, __dt__Q34nw4r2ut44LinkList$0Q44nw4r3snd6detail10BasicSound$4200$1Fv@l
/* 8037B258 00376EB8  38 A0 00 0C */	li r5, 0xc
/* 8037B25C 00376EBC  38 C0 00 80 */	li r6, 0x80
/* 8037B260 00376EC0  4B E4 BD 01 */	bl __destroy_arr
/* 8037B264 00376EC4  7F C3 F3 78 */	mr r3, r30
/* 8037B268 00376EC8  4B EF 47 BD */	bl OSUnlockMutex
/* 8037B26C 00376ECC  39 61 06 30 */	addi r11, r1, 0x630
/* 8037B270 00376ED0  4B E4 BF 01 */	bl _restgpr_26
/* 8037B274 00376ED4  80 01 06 34 */	lwz r0, 0x634(r1)
/* 8037B278 00376ED8  7C 08 03 A6 */	mtlr r0
/* 8037B27C 00376EDC  38 21 06 30 */	addi r1, r1, 0x630
/* 8037B280 00376EE0  4E 80 00 20 */	blr

.global detail_AllocSeqSound__Q34nw4r3snd11SoundPlayerFiiPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerUlPQ44nw4r3snd6detail49SoundInstanceManager$0Q44nw4r3snd6detail8SeqSound$1
detail_AllocSeqSound__Q34nw4r3snd11SoundPlayerFiiPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerUlPQ44nw4r3snd6detail49SoundInstanceManager$0Q44nw4r3snd6detail8SeqSound$1:
/* 8037B284 00376EE4  94 21 FF A0 */	stwu r1, -0x60(r1)
/* 8037B288 00376EE8  7C 08 02 A6 */	mflr r0
/* 8037B28C 00376EEC  90 01 00 64 */	stw r0, 0x64(r1)
/* 8037B290 00376EF0  39 61 00 60 */	addi r11, r1, 0x60
/* 8037B294 00376EF4  4B E4 BE 81 */	bl _savegpr_22
/* 8037B298 00376EF8  3B C3 00 48 */	addi r30, r3, 0x48
/* 8037B29C 00376EFC  7C 76 1B 78 */	mr r22, r3
/* 8037B2A0 00376F00  7C 97 23 78 */	mr r23, r4
/* 8037B2A4 00376F04  7C BC 2B 78 */	mr r28, r5
/* 8037B2A8 00376F08  7C D8 33 78 */	mr r24, r6
/* 8037B2AC 00376F0C  7C F9 3B 78 */	mr r25, r7
/* 8037B2B0 00376F10  7D 1B 43 78 */	mr r27, r8
/* 8037B2B4 00376F14  7D 3A 4B 78 */	mr r26, r9
/* 8037B2B8 00376F18  7F C3 F3 78 */	mr r3, r30
/* 8037B2BC 00376F1C  4B EF 46 8D */	bl OSLockMutex
/* 8037B2C0 00376F20  2C 1A 00 00 */	cmpwi r26, 0
/* 8037B2C4 00376F24  40 82 00 14 */	bne lbl_8037B2D8
/* 8037B2C8 00376F28  7F C3 F3 78 */	mr r3, r30
/* 8037B2CC 00376F2C  4B EF 47 59 */	bl OSUnlockMutex
/* 8037B2D0 00376F30  38 60 00 00 */	li r3, 0
/* 8037B2D4 00376F34  48 00 03 5C */	b lbl_8037B630
lbl_8037B2D8:
/* 8037B2D8 00376F38  2C 18 00 00 */	cmpwi r24, 0
/* 8037B2DC 00376F3C  3B A0 00 00 */	li r29, 0
/* 8037B2E0 00376F40  41 82 00 30 */	beq lbl_8037B310
/* 8037B2E4 00376F44  80 78 00 00 */	lwz r3, 0(r24)
/* 8037B2E8 00376F48  7F 65 DB 78 */	mr r5, r27
/* 8037B2EC 00376F4C  38 81 00 18 */	addi r4, r1, 0x18
/* 8037B2F0 00376F50  80 F8 00 0C */	lwz r7, 0xc(r24)
/* 8037B2F4 00376F54  81 83 00 00 */	lwz r12, 0(r3)
/* 8037B2F8 00376F58  38 C0 00 00 */	li r6, 0
/* 8037B2FC 00376F5C  39 00 00 08 */	li r8, 8
/* 8037B300 00376F60  81 8C 00 08 */	lwz r12, 8(r12)
/* 8037B304 00376F64  7D 89 03 A6 */	mtctr r12
/* 8037B308 00376F68  4E 80 04 21 */	bctrl
/* 8037B30C 00376F6C  83 A1 00 30 */	lwz r29, 0x30(r1)
lbl_8037B310:
/* 8037B310 00376F70  7C 7C EA 14 */	add r3, r28, r29
/* 8037B314 00376F74  2C 03 00 7F */	cmpwi r3, 0x7f
/* 8037B318 00376F78  40 81 00 0C */	ble lbl_8037B324
/* 8037B31C 00376F7C  3B 80 00 7F */	li r28, 0x7f
/* 8037B320 00376F80  48 00 00 0C */	b lbl_8037B32C
lbl_8037B324:
/* 8037B324 00376F84  7C 60 FE 70 */	srawi r0, r3, 0x1f
/* 8037B328 00376F88  7C 7C 00 78 */	andc r28, r3, r0
lbl_8037B32C:
/* 8037B32C 00376F8C  7E C3 B3 78 */	mr r3, r22
/* 8037B330 00376F90  7F 84 E3 78 */	mr r4, r28
/* 8037B334 00376F94  7F 25 CB 78 */	mr r5, r25
/* 8037B338 00376F98  48 00 0B 41 */	bl CheckPlayableSoundCount__Q34nw4r3snd11SoundPlayerFiPQ44nw4r3snd6detail19ExternalSoundPlayer
/* 8037B33C 00376F9C  2C 03 00 00 */	cmpwi r3, 0
/* 8037B340 00376FA0  40 82 00 14 */	bne lbl_8037B354
/* 8037B344 00376FA4  7F C3 F3 78 */	mr r3, r30
/* 8037B348 00376FA8  4B EF 46 DD */	bl OSUnlockMutex
/* 8037B34C 00376FAC  38 60 00 00 */	li r3, 0
/* 8037B350 00376FB0  48 00 02 E0 */	b lbl_8037B630
lbl_8037B354:
/* 8037B354 00376FB4  3B FA 00 10 */	addi r31, r26, 0x10
/* 8037B358 00376FB8  7F E3 FB 78 */	mr r3, r31
/* 8037B35C 00376FBC  4B EF 45 ED */	bl OSLockMutex
/* 8037B360 00376FC0  7F 43 D3 78 */	mr r3, r26
/* 8037B364 00376FC4  4B FF 67 F5 */	bl AllocImpl__Q44nw4r3snd6detail8PoolImplFv
/* 8037B368 00376FC8  2C 03 00 00 */	cmpwi r3, 0
/* 8037B36C 00376FCC  41 82 00 1C */	beq lbl_8037B388
/* 8037B370 00376FD0  7C 7B 1B 78 */	mr r27, r3
/* 8037B374 00376FD4  41 82 00 B4 */	beq lbl_8037B428
/* 8037B378 00376FD8  7F 44 D3 78 */	mr r4, r26
/* 8037B37C 00376FDC  4B FF 98 B5 */	bl __ct__Q44nw4r3snd6detail8SeqSoundFPQ44nw4r3snd6detail49SoundInstanceManager$0Q44nw4r3snd6detail8SeqSound$1
/* 8037B380 00376FE0  7C 7B 1B 78 */	mr r27, r3
/* 8037B384 00376FE4  48 00 00 A4 */	b lbl_8037B428
lbl_8037B388:
/* 8037B388 00376FE8  80 1A 00 04 */	lwz r0, 4(r26)
/* 8037B38C 00376FEC  2C 00 00 00 */	cmpwi r0, 0
/* 8037B390 00376FF0  40 82 00 0C */	bne lbl_8037B39C
/* 8037B394 00376FF4  38 60 00 00 */	li r3, 0
/* 8037B398 00376FF8  48 00 00 0C */	b lbl_8037B3A4
lbl_8037B39C:
/* 8037B39C 00376FFC  80 7A 00 08 */	lwz r3, 8(r26)
/* 8037B3A0 00377000  38 63 FF 48 */	addi r3, r3, -184
lbl_8037B3A4:
/* 8037B3A4 00377004  2C 03 00 00 */	cmpwi r3, 0
/* 8037B3A8 00377008  40 82 00 14 */	bne lbl_8037B3BC
/* 8037B3AC 0037700C  7F E3 FB 78 */	mr r3, r31
/* 8037B3B0 00377010  4B EF 46 75 */	bl OSUnlockMutex
/* 8037B3B4 00377014  3B 60 00 00 */	li r27, 0
/* 8037B3B8 00377018  48 00 00 D0 */	b lbl_8037B488
lbl_8037B3BC:
/* 8037B3BC 0037701C  88 83 00 74 */	lbz r4, 0x74(r3)
/* 8037B3C0 00377020  80 03 00 40 */	lwz r0, 0x40(r3)
/* 8037B3C4 00377024  7C 84 02 14 */	add r4, r4, r0
/* 8037B3C8 00377028  2C 04 00 7F */	cmpwi r4, 0x7f
/* 8037B3CC 0037702C  40 81 00 0C */	ble lbl_8037B3D8
/* 8037B3D0 00377030  38 00 00 7F */	li r0, 0x7f
/* 8037B3D4 00377034  48 00 00 0C */	b lbl_8037B3E0
lbl_8037B3D8:
/* 8037B3D8 00377038  7C 80 FE 70 */	srawi r0, r4, 0x1f
/* 8037B3DC 0037703C  7C 80 00 78 */	andc r0, r4, r0
lbl_8037B3E0:
/* 8037B3E0 00377040  7C 1C 00 00 */	cmpw r28, r0
/* 8037B3E4 00377044  40 80 00 14 */	bge lbl_8037B3F8
/* 8037B3E8 00377048  7F E3 FB 78 */	mr r3, r31
/* 8037B3EC 0037704C  4B EF 46 39 */	bl OSUnlockMutex
/* 8037B3F0 00377050  3B 60 00 00 */	li r27, 0
/* 8037B3F4 00377054  48 00 00 94 */	b lbl_8037B488
lbl_8037B3F8:
/* 8037B3F8 00377058  81 83 00 00 */	lwz r12, 0(r3)
/* 8037B3FC 0037705C  38 80 00 00 */	li r4, 0
/* 8037B400 00377060  81 8C 00 18 */	lwz r12, 0x18(r12)
/* 8037B404 00377064  7D 89 03 A6 */	mtctr r12
/* 8037B408 00377068  4E 80 04 21 */	bctrl
/* 8037B40C 0037706C  7F 43 D3 78 */	mr r3, r26
/* 8037B410 00377070  4B FF 67 49 */	bl AllocImpl__Q44nw4r3snd6detail8PoolImplFv
/* 8037B414 00377074  2C 03 00 00 */	cmpwi r3, 0
/* 8037B418 00377078  41 82 00 0C */	beq lbl_8037B424
/* 8037B41C 0037707C  7F 44 D3 78 */	mr r4, r26
/* 8037B420 00377080  4B FF 98 11 */	bl __ct__Q44nw4r3snd6detail8SeqSoundFPQ44nw4r3snd6detail49SoundInstanceManager$0Q44nw4r3snd6detail8SeqSound$1
lbl_8037B424:
/* 8037B424 00377084  7C 7B 1B 78 */	mr r27, r3
lbl_8037B428:
/* 8037B428 00377088  80 7A 00 08 */	lwz r3, 8(r26)
/* 8037B42C 0037708C  38 1A 00 08 */	addi r0, r26, 8
/* 8037B430 00377090  48 00 00 34 */	b lbl_8037B464
lbl_8037B434:
/* 8037B434 00377094  88 A3 FF BC */	lbz r5, -0x44(r3)
/* 8037B438 00377098  80 83 FF 88 */	lwz r4, -0x78(r3)
/* 8037B43C 0037709C  7C A5 22 14 */	add r5, r5, r4
/* 8037B440 003770A0  2C 05 00 7F */	cmpwi r5, 0x7f
/* 8037B444 003770A4  40 81 00 0C */	ble lbl_8037B450
/* 8037B448 003770A8  38 80 00 7F */	li r4, 0x7f
/* 8037B44C 003770AC  48 00 00 0C */	b lbl_8037B458
lbl_8037B450:
/* 8037B450 003770B0  7C A4 FE 70 */	srawi r4, r5, 0x1f
/* 8037B454 003770B4  7C A4 20 78 */	andc r4, r5, r4
lbl_8037B458:
/* 8037B458 003770B8  7C 1C 20 00 */	cmpw r28, r4
/* 8037B45C 003770BC  41 80 00 10 */	blt lbl_8037B46C
/* 8037B460 003770C0  80 63 00 00 */	lwz r3, 0(r3)
lbl_8037B464:
/* 8037B464 003770C4  7C 03 00 40 */	cmplw r3, r0
/* 8037B468 003770C8  40 82 FF CC */	bne lbl_8037B434
lbl_8037B46C:
/* 8037B46C 003770CC  90 61 00 14 */	stw r3, 0x14(r1)
/* 8037B470 003770D0  38 7A 00 04 */	addi r3, r26, 4
/* 8037B474 003770D4  38 81 00 14 */	addi r4, r1, 0x14
/* 8037B478 003770D8  38 BB 00 B8 */	addi r5, r27, 0xb8
/* 8037B47C 003770DC  4B FE 77 CD */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8037B480 003770E0  7F E3 FB 78 */	mr r3, r31
/* 8037B484 003770E4  4B EF 45 A1 */	bl OSUnlockMutex
lbl_8037B488:
/* 8037B488 003770E8  2C 1B 00 00 */	cmpwi r27, 0
/* 8037B48C 003770EC  40 82 00 14 */	bne lbl_8037B4A0
/* 8037B490 003770F0  7F C3 F3 78 */	mr r3, r30
/* 8037B494 003770F4  4B EF 45 91 */	bl OSUnlockMutex
/* 8037B498 003770F8  38 60 00 00 */	li r3, 0
/* 8037B49C 003770FC  48 00 01 94 */	b lbl_8037B630
lbl_8037B4A0:
/* 8037B4A0 00377100  3B 96 00 48 */	addi r28, r22, 0x48
/* 8037B4A4 00377104  7F 83 E3 78 */	mr r3, r28
/* 8037B4A8 00377108  4B EF 44 A1 */	bl OSLockMutex
/* 8037B4AC 0037710C  80 16 00 18 */	lwz r0, 0x18(r22)
/* 8037B4B0 00377110  2C 00 00 00 */	cmpwi r0, 0
/* 8037B4B4 00377114  40 82 00 10 */	bne lbl_8037B4C4
/* 8037B4B8 00377118  7F 83 E3 78 */	mr r3, r28
/* 8037B4BC 0037711C  4B EF 45 69 */	bl OSUnlockMutex
/* 8037B4C0 00377120  48 00 00 48 */	b lbl_8037B508
lbl_8037B4C4:
/* 8037B4C4 00377124  80 B6 00 1C */	lwz r5, 0x1c(r22)
/* 8037B4C8 00377128  38 76 00 18 */	addi r3, r22, 0x18
/* 8037B4CC 0037712C  38 81 00 10 */	addi r4, r1, 0x10
/* 8037B4D0 00377130  90 A1 00 10 */	stw r5, 0x10(r1)
/* 8037B4D4 00377134  3B E5 FF D4 */	addi r31, r5, -44
/* 8037B4D8 00377138  4B FE 76 E5 */	bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
/* 8037B4DC 0037713C  93 7F 00 34 */	stw r27, 0x34(r31)
/* 8037B4E0 00377140  3B 5F 00 04 */	addi r26, r31, 4
/* 8037B4E4 00377144  7F 43 D3 78 */	mr r3, r26
/* 8037B4E8 00377148  93 FB 00 04 */	stw r31, 4(r27)
/* 8037B4EC 0037714C  4B EF 44 5D */	bl OSLockMutex
/* 8037B4F0 00377150  38 7F 00 1C */	addi r3, r31, 0x1c
/* 8037B4F4 00377154  4B FF 4F 2D */	bl Clear__Q44nw4r3snd6detail9FrameHeapFv
/* 8037B4F8 00377158  7F 43 D3 78 */	mr r3, r26
/* 8037B4FC 0037715C  4B EF 45 29 */	bl OSUnlockMutex
/* 8037B500 00377160  7F 83 E3 78 */	mr r3, r28
/* 8037B504 00377164  4B EF 45 21 */	bl OSUnlockMutex
lbl_8037B508:
/* 8037B508 00377168  2C 18 00 00 */	cmpwi r24, 0
/* 8037B50C 0037716C  41 82 00 50 */	beq lbl_8037B55C
/* 8037B510 00377170  41 82 00 4C */	beq lbl_8037B55C
/* 8037B514 00377174  80 78 00 08 */	lwz r3, 8(r24)
/* 8037B518 00377178  80 98 00 10 */	lwz r4, 0x10(r24)
/* 8037B51C 0037717C  81 83 00 00 */	lwz r12, 0(r3)
/* 8037B520 00377180  81 8C 00 08 */	lwz r12, 8(r12)
/* 8037B524 00377184  7D 89 03 A6 */	mtctr r12
/* 8037B528 00377188  4E 80 04 21 */	bctrl
/* 8037B52C 0037718C  2C 03 00 00 */	cmpwi r3, 0
/* 8037B530 00377190  7C 7A 1B 78 */	mr r26, r3
/* 8037B534 00377194  41 82 00 28 */	beq lbl_8037B55C
/* 8037B538 00377198  80 98 00 0C */	lwz r4, 0xc(r24)
/* 8037B53C 0037719C  80 B8 00 10 */	lwz r5, 0x10(r24)
/* 8037B540 003771A0  4B C8 8A C1 */	bl memcpy
/* 8037B544 003771A4  80 98 00 00 */	lwz r4, 0(r24)
/* 8037B548 003771A8  7F 63 DB 78 */	mr r3, r27
/* 8037B54C 003771AC  80 B8 00 04 */	lwz r5, 4(r24)
/* 8037B550 003771B0  7F 47 D3 78 */	mr r7, r26
/* 8037B554 003771B4  80 D8 00 08 */	lwz r6, 8(r24)
/* 8037B558 003771B8  4B FF 2B 61 */	bl SetAmbientParamCallback__Q44nw4r3snd6detail10BasicSoundFPQ54nw4r3snd6detail10BasicSound26AmbientParamUpdateCallbackPQ54nw4r3snd6detail10BasicSound24AmbientArgUpdateCallbackPQ54nw4r3snd6detail10BasicSound27AmbientArgAllocaterCallbackPv
lbl_8037B55C:
/* 8037B55C 003771BC  9A FB 00 74 */	stb r23, 0x74(r27)
/* 8037B560 003771C0  38 16 00 04 */	addi r0, r22, 4
/* 8037B564 003771C4  7E C3 B3 78 */	mr r3, r22
/* 8037B568 003771C8  38 81 00 0C */	addi r4, r1, 0xc
/* 8037B56C 003771CC  93 BB 00 40 */	stw r29, 0x40(r27)
/* 8037B570 003771D0  38 BB 00 C0 */	addi r5, r27, 0xc0
/* 8037B574 003771D4  90 01 00 0C */	stw r0, 0xc(r1)
/* 8037B578 003771D8  4B FE 76 D1 */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8037B57C 003771DC  2C 19 00 00 */	cmpwi r25, 0
/* 8037B580 003771E0  92 DB 00 10 */	stw r22, 0x10(r27)
/* 8037B584 003771E4  41 82 00 10 */	beq lbl_8037B594
/* 8037B588 003771E8  7F 23 CB 78 */	mr r3, r25
/* 8037B58C 003771EC  7F 64 DB 78 */	mr r4, r27
/* 8037B590 003771F0  4B FF 49 ED */	bl InsertSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
lbl_8037B594:
/* 8037B594 003771F4  3A F6 00 48 */	addi r23, r22, 0x48
/* 8037B598 003771F8  7E E3 BB 78 */	mr r3, r23
/* 8037B59C 003771FC  4B EF 43 AD */	bl OSLockMutex
/* 8037B5A0 00377200  80 76 00 10 */	lwz r3, 0x10(r22)
/* 8037B5A4 00377204  38 16 00 10 */	addi r0, r22, 0x10
/* 8037B5A8 00377208  48 00 00 58 */	b lbl_8037B600
lbl_8037B5AC:
/* 8037B5AC 0037720C  88 A3 FF AC */	lbz r5, -0x54(r3)
/* 8037B5B0 00377210  80 83 FF 78 */	lwz r4, -0x88(r3)
/* 8037B5B4 00377214  7C A5 22 14 */	add r5, r5, r4
/* 8037B5B8 00377218  2C 05 00 7F */	cmpwi r5, 0x7f
/* 8037B5BC 0037721C  40 81 00 0C */	ble lbl_8037B5C8
/* 8037B5C0 00377220  38 C0 00 7F */	li r6, 0x7f
/* 8037B5C4 00377224  48 00 00 0C */	b lbl_8037B5D0
lbl_8037B5C8:
/* 8037B5C8 00377228  7C A4 FE 70 */	srawi r4, r5, 0x1f
/* 8037B5CC 0037722C  7C A6 20 78 */	andc r6, r5, r4
lbl_8037B5D0:
/* 8037B5D0 00377230  88 BB 00 74 */	lbz r5, 0x74(r27)
/* 8037B5D4 00377234  80 9B 00 40 */	lwz r4, 0x40(r27)
/* 8037B5D8 00377238  7C A5 22 14 */	add r5, r5, r4
/* 8037B5DC 0037723C  2C 05 00 7F */	cmpwi r5, 0x7f
/* 8037B5E0 00377240  40 81 00 0C */	ble lbl_8037B5EC
/* 8037B5E4 00377244  38 80 00 7F */	li r4, 0x7f
/* 8037B5E8 00377248  48 00 00 0C */	b lbl_8037B5F4
lbl_8037B5EC:
/* 8037B5EC 0037724C  7C A4 FE 70 */	srawi r4, r5, 0x1f
/* 8037B5F0 00377250  7C A4 20 78 */	andc r4, r5, r4
lbl_8037B5F4:
/* 8037B5F4 00377254  7C 04 30 00 */	cmpw r4, r6
/* 8037B5F8 00377258  41 80 00 10 */	blt lbl_8037B608
/* 8037B5FC 0037725C  80 63 00 00 */	lwz r3, 0(r3)
lbl_8037B600:
/* 8037B600 00377260  7C 03 00 40 */	cmplw r3, r0
/* 8037B604 00377264  40 82 FF A8 */	bne lbl_8037B5AC
lbl_8037B608:
/* 8037B608 00377268  90 61 00 08 */	stw r3, 8(r1)
/* 8037B60C 0037726C  38 76 00 0C */	addi r3, r22, 0xc
/* 8037B610 00377270  38 81 00 08 */	addi r4, r1, 8
/* 8037B614 00377274  38 BB 00 C8 */	addi r5, r27, 0xc8
/* 8037B618 00377278  4B FE 76 31 */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8037B61C 0037727C  7E E3 BB 78 */	mr r3, r23
/* 8037B620 00377280  4B EF 44 05 */	bl OSUnlockMutex
/* 8037B624 00377284  7F C3 F3 78 */	mr r3, r30
/* 8037B628 00377288  4B EF 43 FD */	bl OSUnlockMutex
/* 8037B62C 0037728C  7F 63 DB 78 */	mr r3, r27
lbl_8037B630:
/* 8037B630 00377290  39 61 00 60 */	addi r11, r1, 0x60
/* 8037B634 00377294  4B E4 BB 2D */	bl _restgpr_22
/* 8037B638 00377298  80 01 00 64 */	lwz r0, 0x64(r1)
/* 8037B63C 0037729C  7C 08 03 A6 */	mtlr r0
/* 8037B640 003772A0  38 21 00 60 */	addi r1, r1, 0x60
/* 8037B644 003772A4  4E 80 00 20 */	blr

.global detail_AllocStrmSound__Q34nw4r3snd11SoundPlayerFiiPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerUlPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9StrmSound$1
detail_AllocStrmSound__Q34nw4r3snd11SoundPlayerFiiPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerUlPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9StrmSound$1:
/* 8037B648 003772A8  94 21 FF A0 */	stwu r1, -0x60(r1)
/* 8037B64C 003772AC  7C 08 02 A6 */	mflr r0
/* 8037B650 003772B0  90 01 00 64 */	stw r0, 0x64(r1)
/* 8037B654 003772B4  39 61 00 60 */	addi r11, r1, 0x60
/* 8037B658 003772B8  4B E4 BA BD */	bl _savegpr_22
/* 8037B65C 003772BC  3B C3 00 48 */	addi r30, r3, 0x48
/* 8037B660 003772C0  7C 76 1B 78 */	mr r22, r3
/* 8037B664 003772C4  7C 97 23 78 */	mr r23, r4
/* 8037B668 003772C8  7C BC 2B 78 */	mr r28, r5
/* 8037B66C 003772CC  7C D8 33 78 */	mr r24, r6
/* 8037B670 003772D0  7C F9 3B 78 */	mr r25, r7
/* 8037B674 003772D4  7D 1B 43 78 */	mr r27, r8
/* 8037B678 003772D8  7D 3A 4B 78 */	mr r26, r9
/* 8037B67C 003772DC  7F C3 F3 78 */	mr r3, r30
/* 8037B680 003772E0  4B EF 42 C9 */	bl OSLockMutex
/* 8037B684 003772E4  2C 1A 00 00 */	cmpwi r26, 0
/* 8037B688 003772E8  40 82 00 14 */	bne lbl_8037B69C
/* 8037B68C 003772EC  7F C3 F3 78 */	mr r3, r30
/* 8037B690 003772F0  4B EF 43 95 */	bl OSUnlockMutex
/* 8037B694 003772F4  38 60 00 00 */	li r3, 0
/* 8037B698 003772F8  48 00 03 5C */	b lbl_8037B9F4
lbl_8037B69C:
/* 8037B69C 003772FC  2C 18 00 00 */	cmpwi r24, 0
/* 8037B6A0 00377300  3B A0 00 00 */	li r29, 0
/* 8037B6A4 00377304  41 82 00 30 */	beq lbl_8037B6D4
/* 8037B6A8 00377308  80 78 00 00 */	lwz r3, 0(r24)
/* 8037B6AC 0037730C  7F 65 DB 78 */	mr r5, r27
/* 8037B6B0 00377310  38 81 00 18 */	addi r4, r1, 0x18
/* 8037B6B4 00377314  80 F8 00 0C */	lwz r7, 0xc(r24)
/* 8037B6B8 00377318  81 83 00 00 */	lwz r12, 0(r3)
/* 8037B6BC 0037731C  38 C0 00 00 */	li r6, 0
/* 8037B6C0 00377320  39 00 00 08 */	li r8, 8
/* 8037B6C4 00377324  81 8C 00 08 */	lwz r12, 8(r12)
/* 8037B6C8 00377328  7D 89 03 A6 */	mtctr r12
/* 8037B6CC 0037732C  4E 80 04 21 */	bctrl
/* 8037B6D0 00377330  83 A1 00 30 */	lwz r29, 0x30(r1)
lbl_8037B6D4:
/* 8037B6D4 00377334  7C 7C EA 14 */	add r3, r28, r29
/* 8037B6D8 00377338  2C 03 00 7F */	cmpwi r3, 0x7f
/* 8037B6DC 0037733C  40 81 00 0C */	ble lbl_8037B6E8
/* 8037B6E0 00377340  3B 80 00 7F */	li r28, 0x7f
/* 8037B6E4 00377344  48 00 00 0C */	b lbl_8037B6F0
lbl_8037B6E8:
/* 8037B6E8 00377348  7C 60 FE 70 */	srawi r0, r3, 0x1f
/* 8037B6EC 0037734C  7C 7C 00 78 */	andc r28, r3, r0
lbl_8037B6F0:
/* 8037B6F0 00377350  7E C3 B3 78 */	mr r3, r22
/* 8037B6F4 00377354  7F 84 E3 78 */	mr r4, r28
/* 8037B6F8 00377358  7F 25 CB 78 */	mr r5, r25
/* 8037B6FC 0037735C  48 00 07 7D */	bl CheckPlayableSoundCount__Q34nw4r3snd11SoundPlayerFiPQ44nw4r3snd6detail19ExternalSoundPlayer
/* 8037B700 00377360  2C 03 00 00 */	cmpwi r3, 0
/* 8037B704 00377364  40 82 00 14 */	bne lbl_8037B718
/* 8037B708 00377368  7F C3 F3 78 */	mr r3, r30
/* 8037B70C 0037736C  4B EF 43 19 */	bl OSUnlockMutex
/* 8037B710 00377370  38 60 00 00 */	li r3, 0
/* 8037B714 00377374  48 00 02 E0 */	b lbl_8037B9F4
lbl_8037B718:
/* 8037B718 00377378  3B FA 00 10 */	addi r31, r26, 0x10
/* 8037B71C 0037737C  7F E3 FB 78 */	mr r3, r31
/* 8037B720 00377380  4B EF 42 29 */	bl OSLockMutex
/* 8037B724 00377384  7F 43 D3 78 */	mr r3, r26
/* 8037B728 00377388  4B FF 64 31 */	bl AllocImpl__Q44nw4r3snd6detail8PoolImplFv
/* 8037B72C 0037738C  2C 03 00 00 */	cmpwi r3, 0
/* 8037B730 00377390  41 82 00 1C */	beq lbl_8037B74C
/* 8037B734 00377394  7C 7B 1B 78 */	mr r27, r3
/* 8037B738 00377398  41 82 00 B4 */	beq lbl_8037B7EC
/* 8037B73C 0037739C  7F 44 D3 78 */	mr r4, r26
/* 8037B740 003773A0  48 00 3E 91 */	bl __ct__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9StrmSound$1
/* 8037B744 003773A4  7C 7B 1B 78 */	mr r27, r3
/* 8037B748 003773A8  48 00 00 A4 */	b lbl_8037B7EC
lbl_8037B74C:
/* 8037B74C 003773AC  80 1A 00 04 */	lwz r0, 4(r26)
/* 8037B750 003773B0  2C 00 00 00 */	cmpwi r0, 0
/* 8037B754 003773B4  40 82 00 0C */	bne lbl_8037B760
/* 8037B758 003773B8  38 60 00 00 */	li r3, 0
/* 8037B75C 003773BC  48 00 00 0C */	b lbl_8037B768
lbl_8037B760:
/* 8037B760 003773C0  80 7A 00 08 */	lwz r3, 8(r26)
/* 8037B764 003773C4  38 63 FF 48 */	addi r3, r3, -184
lbl_8037B768:
/* 8037B768 003773C8  2C 03 00 00 */	cmpwi r3, 0
/* 8037B76C 003773CC  40 82 00 14 */	bne lbl_8037B780
/* 8037B770 003773D0  7F E3 FB 78 */	mr r3, r31
/* 8037B774 003773D4  4B EF 42 B1 */	bl OSUnlockMutex
/* 8037B778 003773D8  3B 60 00 00 */	li r27, 0
/* 8037B77C 003773DC  48 00 00 D0 */	b lbl_8037B84C
lbl_8037B780:
/* 8037B780 003773E0  88 83 00 74 */	lbz r4, 0x74(r3)
/* 8037B784 003773E4  80 03 00 40 */	lwz r0, 0x40(r3)
/* 8037B788 003773E8  7C 84 02 14 */	add r4, r4, r0
/* 8037B78C 003773EC  2C 04 00 7F */	cmpwi r4, 0x7f
/* 8037B790 003773F0  40 81 00 0C */	ble lbl_8037B79C
/* 8037B794 003773F4  38 00 00 7F */	li r0, 0x7f
/* 8037B798 003773F8  48 00 00 0C */	b lbl_8037B7A4
lbl_8037B79C:
/* 8037B79C 003773FC  7C 80 FE 70 */	srawi r0, r4, 0x1f
/* 8037B7A0 00377400  7C 80 00 78 */	andc r0, r4, r0
lbl_8037B7A4:
/* 8037B7A4 00377404  7C 1C 00 00 */	cmpw r28, r0
/* 8037B7A8 00377408  40 80 00 14 */	bge lbl_8037B7BC
/* 8037B7AC 0037740C  7F E3 FB 78 */	mr r3, r31
/* 8037B7B0 00377410  4B EF 42 75 */	bl OSUnlockMutex
/* 8037B7B4 00377414  3B 60 00 00 */	li r27, 0
/* 8037B7B8 00377418  48 00 00 94 */	b lbl_8037B84C
lbl_8037B7BC:
/* 8037B7BC 0037741C  81 83 00 00 */	lwz r12, 0(r3)
/* 8037B7C0 00377420  38 80 00 00 */	li r4, 0
/* 8037B7C4 00377424  81 8C 00 18 */	lwz r12, 0x18(r12)
/* 8037B7C8 00377428  7D 89 03 A6 */	mtctr r12
/* 8037B7CC 0037742C  4E 80 04 21 */	bctrl
/* 8037B7D0 00377430  7F 43 D3 78 */	mr r3, r26
/* 8037B7D4 00377434  4B FF 63 85 */	bl AllocImpl__Q44nw4r3snd6detail8PoolImplFv
/* 8037B7D8 00377438  2C 03 00 00 */	cmpwi r3, 0
/* 8037B7DC 0037743C  41 82 00 0C */	beq lbl_8037B7E8
/* 8037B7E0 00377440  7F 44 D3 78 */	mr r4, r26
/* 8037B7E4 00377444  48 00 3D ED */	bl __ct__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9StrmSound$1
lbl_8037B7E8:
/* 8037B7E8 00377448  7C 7B 1B 78 */	mr r27, r3
lbl_8037B7EC:
/* 8037B7EC 0037744C  80 7A 00 08 */	lwz r3, 8(r26)
/* 8037B7F0 00377450  38 1A 00 08 */	addi r0, r26, 8
/* 8037B7F4 00377454  48 00 00 34 */	b lbl_8037B828
lbl_8037B7F8:
/* 8037B7F8 00377458  88 A3 FF BC */	lbz r5, -0x44(r3)
/* 8037B7FC 0037745C  80 83 FF 88 */	lwz r4, -0x78(r3)
/* 8037B800 00377460  7C A5 22 14 */	add r5, r5, r4
/* 8037B804 00377464  2C 05 00 7F */	cmpwi r5, 0x7f
/* 8037B808 00377468  40 81 00 0C */	ble lbl_8037B814
/* 8037B80C 0037746C  38 80 00 7F */	li r4, 0x7f
/* 8037B810 00377470  48 00 00 0C */	b lbl_8037B81C
lbl_8037B814:
/* 8037B814 00377474  7C A4 FE 70 */	srawi r4, r5, 0x1f
/* 8037B818 00377478  7C A4 20 78 */	andc r4, r5, r4
lbl_8037B81C:
/* 8037B81C 0037747C  7C 1C 20 00 */	cmpw r28, r4
/* 8037B820 00377480  41 80 00 10 */	blt lbl_8037B830
/* 8037B824 00377484  80 63 00 00 */	lwz r3, 0(r3)
lbl_8037B828:
/* 8037B828 00377488  7C 03 00 40 */	cmplw r3, r0
/* 8037B82C 0037748C  40 82 FF CC */	bne lbl_8037B7F8
lbl_8037B830:
/* 8037B830 00377490  90 61 00 14 */	stw r3, 0x14(r1)
/* 8037B834 00377494  38 7A 00 04 */	addi r3, r26, 4
/* 8037B838 00377498  38 81 00 14 */	addi r4, r1, 0x14
/* 8037B83C 0037749C  38 BB 00 B8 */	addi r5, r27, 0xb8
/* 8037B840 003774A0  4B FE 74 09 */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8037B844 003774A4  7F E3 FB 78 */	mr r3, r31
/* 8037B848 003774A8  4B EF 41 DD */	bl OSUnlockMutex
lbl_8037B84C:
/* 8037B84C 003774AC  2C 1B 00 00 */	cmpwi r27, 0
/* 8037B850 003774B0  40 82 00 14 */	bne lbl_8037B864
/* 8037B854 003774B4  7F C3 F3 78 */	mr r3, r30
/* 8037B858 003774B8  4B EF 41 CD */	bl OSUnlockMutex
/* 8037B85C 003774BC  38 60 00 00 */	li r3, 0
/* 8037B860 003774C0  48 00 01 94 */	b lbl_8037B9F4
lbl_8037B864:
/* 8037B864 003774C4  3B 96 00 48 */	addi r28, r22, 0x48
/* 8037B868 003774C8  7F 83 E3 78 */	mr r3, r28
/* 8037B86C 003774CC  4B EF 40 DD */	bl OSLockMutex
/* 8037B870 003774D0  80 16 00 18 */	lwz r0, 0x18(r22)
/* 8037B874 003774D4  2C 00 00 00 */	cmpwi r0, 0
/* 8037B878 003774D8  40 82 00 10 */	bne lbl_8037B888
/* 8037B87C 003774DC  7F 83 E3 78 */	mr r3, r28
/* 8037B880 003774E0  4B EF 41 A5 */	bl OSUnlockMutex
/* 8037B884 003774E4  48 00 00 48 */	b lbl_8037B8CC
lbl_8037B888:
/* 8037B888 003774E8  80 B6 00 1C */	lwz r5, 0x1c(r22)
/* 8037B88C 003774EC  38 76 00 18 */	addi r3, r22, 0x18
/* 8037B890 003774F0  38 81 00 10 */	addi r4, r1, 0x10
/* 8037B894 003774F4  90 A1 00 10 */	stw r5, 0x10(r1)
/* 8037B898 003774F8  3B E5 FF D4 */	addi r31, r5, -44
/* 8037B89C 003774FC  4B FE 73 21 */	bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
/* 8037B8A0 00377500  93 7F 00 34 */	stw r27, 0x34(r31)
/* 8037B8A4 00377504  3B 5F 00 04 */	addi r26, r31, 4
/* 8037B8A8 00377508  7F 43 D3 78 */	mr r3, r26
/* 8037B8AC 0037750C  93 FB 00 04 */	stw r31, 4(r27)
/* 8037B8B0 00377510  4B EF 40 99 */	bl OSLockMutex
/* 8037B8B4 00377514  38 7F 00 1C */	addi r3, r31, 0x1c
/* 8037B8B8 00377518  4B FF 4B 69 */	bl Clear__Q44nw4r3snd6detail9FrameHeapFv
/* 8037B8BC 0037751C  7F 43 D3 78 */	mr r3, r26
/* 8037B8C0 00377520  4B EF 41 65 */	bl OSUnlockMutex
/* 8037B8C4 00377524  7F 83 E3 78 */	mr r3, r28
/* 8037B8C8 00377528  4B EF 41 5D */	bl OSUnlockMutex
lbl_8037B8CC:
/* 8037B8CC 0037752C  2C 18 00 00 */	cmpwi r24, 0
/* 8037B8D0 00377530  41 82 00 50 */	beq lbl_8037B920
/* 8037B8D4 00377534  41 82 00 4C */	beq lbl_8037B920
/* 8037B8D8 00377538  80 78 00 08 */	lwz r3, 8(r24)
/* 8037B8DC 0037753C  80 98 00 10 */	lwz r4, 0x10(r24)
/* 8037B8E0 00377540  81 83 00 00 */	lwz r12, 0(r3)
/* 8037B8E4 00377544  81 8C 00 08 */	lwz r12, 8(r12)
/* 8037B8E8 00377548  7D 89 03 A6 */	mtctr r12
/* 8037B8EC 0037754C  4E 80 04 21 */	bctrl
/* 8037B8F0 00377550  2C 03 00 00 */	cmpwi r3, 0
/* 8037B8F4 00377554  7C 7A 1B 78 */	mr r26, r3
/* 8037B8F8 00377558  41 82 00 28 */	beq lbl_8037B920
/* 8037B8FC 0037755C  80 98 00 0C */	lwz r4, 0xc(r24)
/* 8037B900 00377560  80 B8 00 10 */	lwz r5, 0x10(r24)
/* 8037B904 00377564  4B C8 86 FD */	bl memcpy
/* 8037B908 00377568  80 98 00 00 */	lwz r4, 0(r24)
/* 8037B90C 0037756C  7F 63 DB 78 */	mr r3, r27
/* 8037B910 00377570  80 B8 00 04 */	lwz r5, 4(r24)
/* 8037B914 00377574  7F 47 D3 78 */	mr r7, r26
/* 8037B918 00377578  80 D8 00 08 */	lwz r6, 8(r24)
/* 8037B91C 0037757C  4B FF 27 9D */	bl SetAmbientParamCallback__Q44nw4r3snd6detail10BasicSoundFPQ54nw4r3snd6detail10BasicSound26AmbientParamUpdateCallbackPQ54nw4r3snd6detail10BasicSound24AmbientArgUpdateCallbackPQ54nw4r3snd6detail10BasicSound27AmbientArgAllocaterCallbackPv
lbl_8037B920:
/* 8037B920 00377580  9A FB 00 74 */	stb r23, 0x74(r27)
/* 8037B924 00377584  38 16 00 04 */	addi r0, r22, 4
/* 8037B928 00377588  7E C3 B3 78 */	mr r3, r22
/* 8037B92C 0037758C  38 81 00 0C */	addi r4, r1, 0xc
/* 8037B930 00377590  93 BB 00 40 */	stw r29, 0x40(r27)
/* 8037B934 00377594  38 BB 00 C0 */	addi r5, r27, 0xc0
/* 8037B938 00377598  90 01 00 0C */	stw r0, 0xc(r1)
/* 8037B93C 0037759C  4B FE 73 0D */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8037B940 003775A0  2C 19 00 00 */	cmpwi r25, 0
/* 8037B944 003775A4  92 DB 00 10 */	stw r22, 0x10(r27)
/* 8037B948 003775A8  41 82 00 10 */	beq lbl_8037B958
/* 8037B94C 003775AC  7F 23 CB 78 */	mr r3, r25
/* 8037B950 003775B0  7F 64 DB 78 */	mr r4, r27
/* 8037B954 003775B4  4B FF 46 29 */	bl InsertSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
lbl_8037B958:
/* 8037B958 003775B8  3A F6 00 48 */	addi r23, r22, 0x48
/* 8037B95C 003775BC  7E E3 BB 78 */	mr r3, r23
/* 8037B960 003775C0  4B EF 3F E9 */	bl OSLockMutex
/* 8037B964 003775C4  80 76 00 10 */	lwz r3, 0x10(r22)
/* 8037B968 003775C8  38 16 00 10 */	addi r0, r22, 0x10
/* 8037B96C 003775CC  48 00 00 58 */	b lbl_8037B9C4
lbl_8037B970:
/* 8037B970 003775D0  88 A3 FF AC */	lbz r5, -0x54(r3)
/* 8037B974 003775D4  80 83 FF 78 */	lwz r4, -0x88(r3)
/* 8037B978 003775D8  7C A5 22 14 */	add r5, r5, r4
/* 8037B97C 003775DC  2C 05 00 7F */	cmpwi r5, 0x7f
/* 8037B980 003775E0  40 81 00 0C */	ble lbl_8037B98C
/* 8037B984 003775E4  38 C0 00 7F */	li r6, 0x7f
/* 8037B988 003775E8  48 00 00 0C */	b lbl_8037B994
lbl_8037B98C:
/* 8037B98C 003775EC  7C A4 FE 70 */	srawi r4, r5, 0x1f
/* 8037B990 003775F0  7C A6 20 78 */	andc r6, r5, r4
lbl_8037B994:
/* 8037B994 003775F4  88 BB 00 74 */	lbz r5, 0x74(r27)
/* 8037B998 003775F8  80 9B 00 40 */	lwz r4, 0x40(r27)
/* 8037B99C 003775FC  7C A5 22 14 */	add r5, r5, r4
/* 8037B9A0 00377600  2C 05 00 7F */	cmpwi r5, 0x7f
/* 8037B9A4 00377604  40 81 00 0C */	ble lbl_8037B9B0
/* 8037B9A8 00377608  38 80 00 7F */	li r4, 0x7f
/* 8037B9AC 0037760C  48 00 00 0C */	b lbl_8037B9B8
lbl_8037B9B0:
/* 8037B9B0 00377610  7C A4 FE 70 */	srawi r4, r5, 0x1f
/* 8037B9B4 00377614  7C A4 20 78 */	andc r4, r5, r4
lbl_8037B9B8:
/* 8037B9B8 00377618  7C 04 30 00 */	cmpw r4, r6
/* 8037B9BC 0037761C  41 80 00 10 */	blt lbl_8037B9CC
/* 8037B9C0 00377620  80 63 00 00 */	lwz r3, 0(r3)
lbl_8037B9C4:
/* 8037B9C4 00377624  7C 03 00 40 */	cmplw r3, r0
/* 8037B9C8 00377628  40 82 FF A8 */	bne lbl_8037B970
lbl_8037B9CC:
/* 8037B9CC 0037762C  90 61 00 08 */	stw r3, 8(r1)
/* 8037B9D0 00377630  38 76 00 0C */	addi r3, r22, 0xc
/* 8037B9D4 00377634  38 81 00 08 */	addi r4, r1, 8
/* 8037B9D8 00377638  38 BB 00 C8 */	addi r5, r27, 0xc8
/* 8037B9DC 0037763C  4B FE 72 6D */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8037B9E0 00377640  7E E3 BB 78 */	mr r3, r23
/* 8037B9E4 00377644  4B EF 40 41 */	bl OSUnlockMutex
/* 8037B9E8 00377648  7F C3 F3 78 */	mr r3, r30
/* 8037B9EC 0037764C  4B EF 40 39 */	bl OSUnlockMutex
/* 8037B9F0 00377650  7F 63 DB 78 */	mr r3, r27
lbl_8037B9F4:
/* 8037B9F4 00377654  39 61 00 60 */	addi r11, r1, 0x60
/* 8037B9F8 00377658  4B E4 B7 69 */	bl _restgpr_22
/* 8037B9FC 0037765C  80 01 00 64 */	lwz r0, 0x64(r1)
/* 8037BA00 00377660  7C 08 03 A6 */	mtlr r0
/* 8037BA04 00377664  38 21 00 60 */	addi r1, r1, 0x60
/* 8037BA08 00377668  4E 80 00 20 */	blr

.global detail_AllocWaveSound__Q34nw4r3snd11SoundPlayerFiiPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerUlPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9WaveSound$1
detail_AllocWaveSound__Q34nw4r3snd11SoundPlayerFiiPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerUlPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9WaveSound$1:
/* 8037BA0C 0037766C  94 21 FF A0 */	stwu r1, -0x60(r1)
/* 8037BA10 00377670  7C 08 02 A6 */	mflr r0
/* 8037BA14 00377674  90 01 00 64 */	stw r0, 0x64(r1)
/* 8037BA18 00377678  39 61 00 60 */	addi r11, r1, 0x60
/* 8037BA1C 0037767C  4B E4 B6 F9 */	bl _savegpr_22
/* 8037BA20 00377680  3B C3 00 48 */	addi r30, r3, 0x48
/* 8037BA24 00377684  7C 76 1B 78 */	mr r22, r3
/* 8037BA28 00377688  7C 97 23 78 */	mr r23, r4
/* 8037BA2C 0037768C  7C BC 2B 78 */	mr r28, r5
/* 8037BA30 00377690  7C D8 33 78 */	mr r24, r6
/* 8037BA34 00377694  7C F9 3B 78 */	mr r25, r7
/* 8037BA38 00377698  7D 1B 43 78 */	mr r27, r8
/* 8037BA3C 0037769C  7D 3A 4B 78 */	mr r26, r9
/* 8037BA40 003776A0  7F C3 F3 78 */	mr r3, r30
/* 8037BA44 003776A4  4B EF 3F 05 */	bl OSLockMutex
/* 8037BA48 003776A8  2C 1A 00 00 */	cmpwi r26, 0
/* 8037BA4C 003776AC  40 82 00 14 */	bne lbl_8037BA60
/* 8037BA50 003776B0  7F C3 F3 78 */	mr r3, r30
/* 8037BA54 003776B4  4B EF 3F D1 */	bl OSUnlockMutex
/* 8037BA58 003776B8  38 60 00 00 */	li r3, 0
/* 8037BA5C 003776BC  48 00 03 5C */	b lbl_8037BDB8
lbl_8037BA60:
/* 8037BA60 003776C0  2C 18 00 00 */	cmpwi r24, 0
/* 8037BA64 003776C4  3B A0 00 00 */	li r29, 0
/* 8037BA68 003776C8  41 82 00 30 */	beq lbl_8037BA98
/* 8037BA6C 003776CC  80 78 00 00 */	lwz r3, 0(r24)
/* 8037BA70 003776D0  7F 65 DB 78 */	mr r5, r27
/* 8037BA74 003776D4  38 81 00 18 */	addi r4, r1, 0x18
/* 8037BA78 003776D8  80 F8 00 0C */	lwz r7, 0xc(r24)
/* 8037BA7C 003776DC  81 83 00 00 */	lwz r12, 0(r3)
/* 8037BA80 003776E0  38 C0 00 00 */	li r6, 0
/* 8037BA84 003776E4  39 00 00 08 */	li r8, 8
/* 8037BA88 003776E8  81 8C 00 08 */	lwz r12, 8(r12)
/* 8037BA8C 003776EC  7D 89 03 A6 */	mtctr r12
/* 8037BA90 003776F0  4E 80 04 21 */	bctrl
/* 8037BA94 003776F4  83 A1 00 30 */	lwz r29, 0x30(r1)
lbl_8037BA98:
/* 8037BA98 003776F8  7C 7C EA 14 */	add r3, r28, r29
/* 8037BA9C 003776FC  2C 03 00 7F */	cmpwi r3, 0x7f
/* 8037BAA0 00377700  40 81 00 0C */	ble lbl_8037BAAC
/* 8037BAA4 00377704  3B 80 00 7F */	li r28, 0x7f
/* 8037BAA8 00377708  48 00 00 0C */	b lbl_8037BAB4
lbl_8037BAAC:
/* 8037BAAC 0037770C  7C 60 FE 70 */	srawi r0, r3, 0x1f
/* 8037BAB0 00377710  7C 7C 00 78 */	andc r28, r3, r0
lbl_8037BAB4:
/* 8037BAB4 00377714  7E C3 B3 78 */	mr r3, r22
/* 8037BAB8 00377718  7F 84 E3 78 */	mr r4, r28
/* 8037BABC 0037771C  7F 25 CB 78 */	mr r5, r25
/* 8037BAC0 00377720  48 00 03 B9 */	bl CheckPlayableSoundCount__Q34nw4r3snd11SoundPlayerFiPQ44nw4r3snd6detail19ExternalSoundPlayer
/* 8037BAC4 00377724  2C 03 00 00 */	cmpwi r3, 0
/* 8037BAC8 00377728  40 82 00 14 */	bne lbl_8037BADC
/* 8037BACC 0037772C  7F C3 F3 78 */	mr r3, r30
/* 8037BAD0 00377730  4B EF 3F 55 */	bl OSUnlockMutex
/* 8037BAD4 00377734  38 60 00 00 */	li r3, 0
/* 8037BAD8 00377738  48 00 02 E0 */	b lbl_8037BDB8
lbl_8037BADC:
/* 8037BADC 0037773C  3B FA 00 10 */	addi r31, r26, 0x10
/* 8037BAE0 00377740  7F E3 FB 78 */	mr r3, r31
/* 8037BAE4 00377744  4B EF 3E 65 */	bl OSLockMutex
/* 8037BAE8 00377748  7F 43 D3 78 */	mr r3, r26
/* 8037BAEC 0037774C  4B FF 60 6D */	bl AllocImpl__Q44nw4r3snd6detail8PoolImplFv
/* 8037BAF0 00377750  2C 03 00 00 */	cmpwi r3, 0
/* 8037BAF4 00377754  41 82 00 1C */	beq lbl_8037BB10
/* 8037BAF8 00377758  7C 7B 1B 78 */	mr r27, r3
/* 8037BAFC 0037775C  41 82 00 B4 */	beq lbl_8037BBB0
/* 8037BB00 00377760  7F 44 D3 78 */	mr r4, r26
/* 8037BB04 00377764  48 00 7B 49 */	bl __ct__Q44nw4r3snd6detail9WaveSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9WaveSound$1
/* 8037BB08 00377768  7C 7B 1B 78 */	mr r27, r3
/* 8037BB0C 0037776C  48 00 00 A4 */	b lbl_8037BBB0
lbl_8037BB10:
/* 8037BB10 00377770  80 1A 00 04 */	lwz r0, 4(r26)
/* 8037BB14 00377774  2C 00 00 00 */	cmpwi r0, 0
/* 8037BB18 00377778  40 82 00 0C */	bne lbl_8037BB24
/* 8037BB1C 0037777C  38 60 00 00 */	li r3, 0
/* 8037BB20 00377780  48 00 00 0C */	b lbl_8037BB2C
lbl_8037BB24:
/* 8037BB24 00377784  80 7A 00 08 */	lwz r3, 8(r26)
/* 8037BB28 00377788  38 63 FF 48 */	addi r3, r3, -184
lbl_8037BB2C:
/* 8037BB2C 0037778C  2C 03 00 00 */	cmpwi r3, 0
/* 8037BB30 00377790  40 82 00 14 */	bne lbl_8037BB44
/* 8037BB34 00377794  7F E3 FB 78 */	mr r3, r31
/* 8037BB38 00377798  4B EF 3E ED */	bl OSUnlockMutex
/* 8037BB3C 0037779C  3B 60 00 00 */	li r27, 0
/* 8037BB40 003777A0  48 00 00 D0 */	b lbl_8037BC10
lbl_8037BB44:
/* 8037BB44 003777A4  88 83 00 74 */	lbz r4, 0x74(r3)
/* 8037BB48 003777A8  80 03 00 40 */	lwz r0, 0x40(r3)
/* 8037BB4C 003777AC  7C 84 02 14 */	add r4, r4, r0
/* 8037BB50 003777B0  2C 04 00 7F */	cmpwi r4, 0x7f
/* 8037BB54 003777B4  40 81 00 0C */	ble lbl_8037BB60
/* 8037BB58 003777B8  38 00 00 7F */	li r0, 0x7f
/* 8037BB5C 003777BC  48 00 00 0C */	b lbl_8037BB68
lbl_8037BB60:
/* 8037BB60 003777C0  7C 80 FE 70 */	srawi r0, r4, 0x1f
/* 8037BB64 003777C4  7C 80 00 78 */	andc r0, r4, r0
lbl_8037BB68:
/* 8037BB68 003777C8  7C 1C 00 00 */	cmpw r28, r0
/* 8037BB6C 003777CC  40 80 00 14 */	bge lbl_8037BB80
/* 8037BB70 003777D0  7F E3 FB 78 */	mr r3, r31
/* 8037BB74 003777D4  4B EF 3E B1 */	bl OSUnlockMutex
/* 8037BB78 003777D8  3B 60 00 00 */	li r27, 0
/* 8037BB7C 003777DC  48 00 00 94 */	b lbl_8037BC10
lbl_8037BB80:
/* 8037BB80 003777E0  81 83 00 00 */	lwz r12, 0(r3)
/* 8037BB84 003777E4  38 80 00 00 */	li r4, 0
/* 8037BB88 003777E8  81 8C 00 18 */	lwz r12, 0x18(r12)
/* 8037BB8C 003777EC  7D 89 03 A6 */	mtctr r12
/* 8037BB90 003777F0  4E 80 04 21 */	bctrl
/* 8037BB94 003777F4  7F 43 D3 78 */	mr r3, r26
/* 8037BB98 003777F8  4B FF 5F C1 */	bl AllocImpl__Q44nw4r3snd6detail8PoolImplFv
/* 8037BB9C 003777FC  2C 03 00 00 */	cmpwi r3, 0
/* 8037BBA0 00377800  41 82 00 0C */	beq lbl_8037BBAC
/* 8037BBA4 00377804  7F 44 D3 78 */	mr r4, r26
/* 8037BBA8 00377808  48 00 7A A5 */	bl __ct__Q44nw4r3snd6detail9WaveSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9WaveSound$1
lbl_8037BBAC:
/* 8037BBAC 0037780C  7C 7B 1B 78 */	mr r27, r3
lbl_8037BBB0:
/* 8037BBB0 00377810  80 7A 00 08 */	lwz r3, 8(r26)
/* 8037BBB4 00377814  38 1A 00 08 */	addi r0, r26, 8
/* 8037BBB8 00377818  48 00 00 34 */	b lbl_8037BBEC
lbl_8037BBBC:
/* 8037BBBC 0037781C  88 A3 FF BC */	lbz r5, -0x44(r3)
/* 8037BBC0 00377820  80 83 FF 88 */	lwz r4, -0x78(r3)
/* 8037BBC4 00377824  7C A5 22 14 */	add r5, r5, r4
/* 8037BBC8 00377828  2C 05 00 7F */	cmpwi r5, 0x7f
/* 8037BBCC 0037782C  40 81 00 0C */	ble lbl_8037BBD8
/* 8037BBD0 00377830  38 80 00 7F */	li r4, 0x7f
/* 8037BBD4 00377834  48 00 00 0C */	b lbl_8037BBE0
lbl_8037BBD8:
/* 8037BBD8 00377838  7C A4 FE 70 */	srawi r4, r5, 0x1f
/* 8037BBDC 0037783C  7C A4 20 78 */	andc r4, r5, r4
lbl_8037BBE0:
/* 8037BBE0 00377840  7C 1C 20 00 */	cmpw r28, r4
/* 8037BBE4 00377844  41 80 00 10 */	blt lbl_8037BBF4
/* 8037BBE8 00377848  80 63 00 00 */	lwz r3, 0(r3)
lbl_8037BBEC:
/* 8037BBEC 0037784C  7C 03 00 40 */	cmplw r3, r0
/* 8037BBF0 00377850  40 82 FF CC */	bne lbl_8037BBBC
lbl_8037BBF4:
/* 8037BBF4 00377854  90 61 00 14 */	stw r3, 0x14(r1)
/* 8037BBF8 00377858  38 7A 00 04 */	addi r3, r26, 4
/* 8037BBFC 0037785C  38 81 00 14 */	addi r4, r1, 0x14
/* 8037BC00 00377860  38 BB 00 B8 */	addi r5, r27, 0xb8
/* 8037BC04 00377864  4B FE 70 45 */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8037BC08 00377868  7F E3 FB 78 */	mr r3, r31
/* 8037BC0C 0037786C  4B EF 3E 19 */	bl OSUnlockMutex
lbl_8037BC10:
/* 8037BC10 00377870  2C 1B 00 00 */	cmpwi r27, 0
/* 8037BC14 00377874  40 82 00 14 */	bne lbl_8037BC28
/* 8037BC18 00377878  7F C3 F3 78 */	mr r3, r30
/* 8037BC1C 0037787C  4B EF 3E 09 */	bl OSUnlockMutex
/* 8037BC20 00377880  38 60 00 00 */	li r3, 0
/* 8037BC24 00377884  48 00 01 94 */	b lbl_8037BDB8
lbl_8037BC28:
/* 8037BC28 00377888  3B 96 00 48 */	addi r28, r22, 0x48
/* 8037BC2C 0037788C  7F 83 E3 78 */	mr r3, r28
/* 8037BC30 00377890  4B EF 3D 19 */	bl OSLockMutex
/* 8037BC34 00377894  80 16 00 18 */	lwz r0, 0x18(r22)
/* 8037BC38 00377898  2C 00 00 00 */	cmpwi r0, 0
/* 8037BC3C 0037789C  40 82 00 10 */	bne lbl_8037BC4C
/* 8037BC40 003778A0  7F 83 E3 78 */	mr r3, r28
/* 8037BC44 003778A4  4B EF 3D E1 */	bl OSUnlockMutex
/* 8037BC48 003778A8  48 00 00 48 */	b lbl_8037BC90
lbl_8037BC4C:
/* 8037BC4C 003778AC  80 B6 00 1C */	lwz r5, 0x1c(r22)
/* 8037BC50 003778B0  38 76 00 18 */	addi r3, r22, 0x18
/* 8037BC54 003778B4  38 81 00 10 */	addi r4, r1, 0x10
/* 8037BC58 003778B8  90 A1 00 10 */	stw r5, 0x10(r1)
/* 8037BC5C 003778BC  3B E5 FF D4 */	addi r31, r5, -44
/* 8037BC60 003778C0  4B FE 6F 5D */	bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
/* 8037BC64 003778C4  93 7F 00 34 */	stw r27, 0x34(r31)
/* 8037BC68 003778C8  3B 5F 00 04 */	addi r26, r31, 4
/* 8037BC6C 003778CC  7F 43 D3 78 */	mr r3, r26
/* 8037BC70 003778D0  93 FB 00 04 */	stw r31, 4(r27)
/* 8037BC74 003778D4  4B EF 3C D5 */	bl OSLockMutex
/* 8037BC78 003778D8  38 7F 00 1C */	addi r3, r31, 0x1c
/* 8037BC7C 003778DC  4B FF 47 A5 */	bl Clear__Q44nw4r3snd6detail9FrameHeapFv
/* 8037BC80 003778E0  7F 43 D3 78 */	mr r3, r26
/* 8037BC84 003778E4  4B EF 3D A1 */	bl OSUnlockMutex
/* 8037BC88 003778E8  7F 83 E3 78 */	mr r3, r28
/* 8037BC8C 003778EC  4B EF 3D 99 */	bl OSUnlockMutex
lbl_8037BC90:
/* 8037BC90 003778F0  2C 18 00 00 */	cmpwi r24, 0
/* 8037BC94 003778F4  41 82 00 50 */	beq lbl_8037BCE4
/* 8037BC98 003778F8  41 82 00 4C */	beq lbl_8037BCE4
/* 8037BC9C 003778FC  80 78 00 08 */	lwz r3, 8(r24)
/* 8037BCA0 00377900  80 98 00 10 */	lwz r4, 0x10(r24)
/* 8037BCA4 00377904  81 83 00 00 */	lwz r12, 0(r3)
/* 8037BCA8 00377908  81 8C 00 08 */	lwz r12, 8(r12)
/* 8037BCAC 0037790C  7D 89 03 A6 */	mtctr r12
/* 8037BCB0 00377910  4E 80 04 21 */	bctrl
/* 8037BCB4 00377914  2C 03 00 00 */	cmpwi r3, 0
/* 8037BCB8 00377918  7C 7A 1B 78 */	mr r26, r3
/* 8037BCBC 0037791C  41 82 00 28 */	beq lbl_8037BCE4
/* 8037BCC0 00377920  80 98 00 0C */	lwz r4, 0xc(r24)
/* 8037BCC4 00377924  80 B8 00 10 */	lwz r5, 0x10(r24)
/* 8037BCC8 00377928  4B C8 83 39 */	bl memcpy
/* 8037BCCC 0037792C  80 98 00 00 */	lwz r4, 0(r24)
/* 8037BCD0 00377930  7F 63 DB 78 */	mr r3, r27
/* 8037BCD4 00377934  80 B8 00 04 */	lwz r5, 4(r24)
/* 8037BCD8 00377938  7F 47 D3 78 */	mr r7, r26
/* 8037BCDC 0037793C  80 D8 00 08 */	lwz r6, 8(r24)
/* 8037BCE0 00377940  4B FF 23 D9 */	bl SetAmbientParamCallback__Q44nw4r3snd6detail10BasicSoundFPQ54nw4r3snd6detail10BasicSound26AmbientParamUpdateCallbackPQ54nw4r3snd6detail10BasicSound24AmbientArgUpdateCallbackPQ54nw4r3snd6detail10BasicSound27AmbientArgAllocaterCallbackPv
lbl_8037BCE4:
/* 8037BCE4 00377944  9A FB 00 74 */	stb r23, 0x74(r27)
/* 8037BCE8 00377948  38 16 00 04 */	addi r0, r22, 4
/* 8037BCEC 0037794C  7E C3 B3 78 */	mr r3, r22
/* 8037BCF0 00377950  38 81 00 0C */	addi r4, r1, 0xc
/* 8037BCF4 00377954  93 BB 00 40 */	stw r29, 0x40(r27)
/* 8037BCF8 00377958  38 BB 00 C0 */	addi r5, r27, 0xc0
/* 8037BCFC 0037795C  90 01 00 0C */	stw r0, 0xc(r1)
/* 8037BD00 00377960  4B FE 6F 49 */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8037BD04 00377964  2C 19 00 00 */	cmpwi r25, 0
/* 8037BD08 00377968  92 DB 00 10 */	stw r22, 0x10(r27)
/* 8037BD0C 0037796C  41 82 00 10 */	beq lbl_8037BD1C
/* 8037BD10 00377970  7F 23 CB 78 */	mr r3, r25
/* 8037BD14 00377974  7F 64 DB 78 */	mr r4, r27
/* 8037BD18 00377978  4B FF 42 65 */	bl InsertSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
lbl_8037BD1C:
/* 8037BD1C 0037797C  3A F6 00 48 */	addi r23, r22, 0x48
/* 8037BD20 00377980  7E E3 BB 78 */	mr r3, r23
/* 8037BD24 00377984  4B EF 3C 25 */	bl OSLockMutex
/* 8037BD28 00377988  80 76 00 10 */	lwz r3, 0x10(r22)
/* 8037BD2C 0037798C  38 16 00 10 */	addi r0, r22, 0x10
/* 8037BD30 00377990  48 00 00 58 */	b lbl_8037BD88
lbl_8037BD34:
/* 8037BD34 00377994  88 A3 FF AC */	lbz r5, -0x54(r3)
/* 8037BD38 00377998  80 83 FF 78 */	lwz r4, -0x88(r3)
/* 8037BD3C 0037799C  7C A5 22 14 */	add r5, r5, r4
/* 8037BD40 003779A0  2C 05 00 7F */	cmpwi r5, 0x7f
/* 8037BD44 003779A4  40 81 00 0C */	ble lbl_8037BD50
/* 8037BD48 003779A8  38 C0 00 7F */	li r6, 0x7f
/* 8037BD4C 003779AC  48 00 00 0C */	b lbl_8037BD58
lbl_8037BD50:
/* 8037BD50 003779B0  7C A4 FE 70 */	srawi r4, r5, 0x1f
/* 8037BD54 003779B4  7C A6 20 78 */	andc r6, r5, r4
lbl_8037BD58:
/* 8037BD58 003779B8  88 BB 00 74 */	lbz r5, 0x74(r27)
/* 8037BD5C 003779BC  80 9B 00 40 */	lwz r4, 0x40(r27)
/* 8037BD60 003779C0  7C A5 22 14 */	add r5, r5, r4
/* 8037BD64 003779C4  2C 05 00 7F */	cmpwi r5, 0x7f
/* 8037BD68 003779C8  40 81 00 0C */	ble lbl_8037BD74
/* 8037BD6C 003779CC  38 80 00 7F */	li r4, 0x7f
/* 8037BD70 003779D0  48 00 00 0C */	b lbl_8037BD7C
lbl_8037BD74:
/* 8037BD74 003779D4  7C A4 FE 70 */	srawi r4, r5, 0x1f
/* 8037BD78 003779D8  7C A4 20 78 */	andc r4, r5, r4
lbl_8037BD7C:
/* 8037BD7C 003779DC  7C 04 30 00 */	cmpw r4, r6
/* 8037BD80 003779E0  41 80 00 10 */	blt lbl_8037BD90
/* 8037BD84 003779E4  80 63 00 00 */	lwz r3, 0(r3)
lbl_8037BD88:
/* 8037BD88 003779E8  7C 03 00 40 */	cmplw r3, r0
/* 8037BD8C 003779EC  40 82 FF A8 */	bne lbl_8037BD34
lbl_8037BD90:
/* 8037BD90 003779F0  90 61 00 08 */	stw r3, 8(r1)
/* 8037BD94 003779F4  38 76 00 0C */	addi r3, r22, 0xc
/* 8037BD98 003779F8  38 81 00 08 */	addi r4, r1, 8
/* 8037BD9C 003779FC  38 BB 00 C8 */	addi r5, r27, 0xc8
/* 8037BDA0 00377A00  4B FE 6E A9 */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8037BDA4 00377A04  7E E3 BB 78 */	mr r3, r23
/* 8037BDA8 00377A08  4B EF 3C 7D */	bl OSUnlockMutex
/* 8037BDAC 00377A0C  7F C3 F3 78 */	mr r3, r30
/* 8037BDB0 00377A10  4B EF 3C 75 */	bl OSUnlockMutex
/* 8037BDB4 00377A14  7F 63 DB 78 */	mr r3, r27
lbl_8037BDB8:
/* 8037BDB8 00377A18  39 61 00 60 */	addi r11, r1, 0x60
/* 8037BDBC 00377A1C  4B E4 B3 A5 */	bl _restgpr_22
/* 8037BDC0 00377A20  80 01 00 64 */	lwz r0, 0x64(r1)
/* 8037BDC4 00377A24  7C 08 03 A6 */	mtlr r0
/* 8037BDC8 00377A28  38 21 00 60 */	addi r1, r1, 0x60
/* 8037BDCC 00377A2C  4E 80 00 20 */	blr

.global SetPlayableSoundCount__Q34nw4r3snd11SoundPlayerFi
SetPlayableSoundCount__Q34nw4r3snd11SoundPlayerFi:
/* 8037BDD0 00377A30  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037BDD4 00377A34  7C 08 02 A6 */	mflr r0
/* 8037BDD8 00377A38  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037BDDC 00377A3C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8037BDE0 00377A40  3B E3 00 48 */	addi r31, r3, 0x48
/* 8037BDE4 00377A44  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8037BDE8 00377A48  7C 9E 23 78 */	mr r30, r4
/* 8037BDEC 00377A4C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8037BDF0 00377A50  7C 7D 1B 78 */	mr r29, r3
/* 8037BDF4 00377A54  7F E3 FB 78 */	mr r3, r31
/* 8037BDF8 00377A58  4B EF 3B 51 */	bl OSLockMutex
/* 8037BDFC 00377A5C  88 1D 00 2D */	lbz r0, 0x2d(r29)
/* 8037BE00 00377A60  B3 DD 00 24 */	sth r30, 0x24(r29)
/* 8037BE04 00377A64  2C 00 00 00 */	cmpwi r0, 0
/* 8037BE08 00377A68  41 82 00 34 */	beq lbl_8037BE3C
/* 8037BE0C 00377A6C  A0 7D 00 26 */	lhz r3, 0x26(r29)
/* 8037BE10 00377A70  57 C0 04 3E */	clrlwi r0, r30, 0x10
/* 8037BE14 00377A74  7C 00 18 40 */	cmplw r0, r3
/* 8037BE18 00377A78  40 81 00 08 */	ble lbl_8037BE20
/* 8037BE1C 00377A7C  7C 60 1B 78 */	mr r0, r3
lbl_8037BE20:
/* 8037BE20 00377A80  B0 1D 00 24 */	sth r0, 0x24(r29)
/* 8037BE24 00377A84  48 00 00 18 */	b lbl_8037BE3C
lbl_8037BE28:
/* 8037BE28 00377A88  80 7D 00 10 */	lwz r3, 0x10(r29)
/* 8037BE2C 00377A8C  85 83 FF 38 */	lwzu r12, -0xc8(r3)
/* 8037BE30 00377A90  81 8C 00 28 */	lwz r12, 0x28(r12)
/* 8037BE34 00377A94  7D 89 03 A6 */	mtctr r12
/* 8037BE38 00377A98  4E 80 04 21 */	bctrl
lbl_8037BE3C:
/* 8037BE3C 00377A9C  80 7D 00 00 */	lwz r3, 0(r29)
/* 8037BE40 00377AA0  A0 1D 00 24 */	lhz r0, 0x24(r29)
/* 8037BE44 00377AA4  7C 03 00 00 */	cmpw r3, r0
/* 8037BE48 00377AA8  41 81 FF E0 */	bgt lbl_8037BE28
/* 8037BE4C 00377AAC  7F E3 FB 78 */	mr r3, r31
/* 8037BE50 00377AB0  4B EF 3B D5 */	bl OSUnlockMutex
/* 8037BE54 00377AB4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037BE58 00377AB8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8037BE5C 00377ABC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8037BE60 00377AC0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8037BE64 00377AC4  7C 08 03 A6 */	mtlr r0
/* 8037BE68 00377AC8  38 21 00 20 */	addi r1, r1, 0x20
/* 8037BE6C 00377ACC  4E 80 00 20 */	blr

.global detail_SetPlayableSoundLimit__Q34nw4r3snd11SoundPlayerFi
detail_SetPlayableSoundLimit__Q34nw4r3snd11SoundPlayerFi:
/* 8037BE70 00377AD0  B0 83 00 26 */	sth r4, 0x26(r3)
/* 8037BE74 00377AD4  4E 80 00 20 */	blr

.global CheckPlayableSoundCount__Q34nw4r3snd11SoundPlayerFiPQ44nw4r3snd6detail19ExternalSoundPlayer
CheckPlayableSoundCount__Q34nw4r3snd11SoundPlayerFiPQ44nw4r3snd6detail19ExternalSoundPlayer:
/* 8037BE78 00377AD8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037BE7C 00377ADC  7C 08 02 A6 */	mflr r0
/* 8037BE80 00377AE0  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037BE84 00377AE4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8037BE88 00377AE8  3B E3 00 48 */	addi r31, r3, 0x48
/* 8037BE8C 00377AEC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8037BE90 00377AF0  7C BE 2B 78 */	mr r30, r5
/* 8037BE94 00377AF4  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8037BE98 00377AF8  7C 9D 23 78 */	mr r29, r4
/* 8037BE9C 00377AFC  93 81 00 10 */	stw r28, 0x10(r1)
/* 8037BEA0 00377B00  7C 7C 1B 78 */	mr r28, r3
/* 8037BEA4 00377B04  7F E3 FB 78 */	mr r3, r31
/* 8037BEA8 00377B08  4B EF 3A A1 */	bl OSLockMutex
/* 8037BEAC 00377B0C  A0 1C 00 24 */	lhz r0, 0x24(r28)
/* 8037BEB0 00377B10  2C 00 00 00 */	cmpwi r0, 0
/* 8037BEB4 00377B14  40 82 00 80 */	bne lbl_8037BF34
/* 8037BEB8 00377B18  7F E3 FB 78 */	mr r3, r31
/* 8037BEBC 00377B1C  4B EF 3B 69 */	bl OSUnlockMutex
/* 8037BEC0 00377B20  38 60 00 00 */	li r3, 0
/* 8037BEC4 00377B24  48 00 01 30 */	b lbl_8037BFF4
/* 8037BEC8 00377B28  48 00 00 6C */	b lbl_8037BF34
lbl_8037BECC:
/* 8037BECC 00377B2C  80 1C 00 10 */	lwz r0, 0x10(r28)
/* 8037BED0 00377B30  34 60 FF 38 */	addic. r3, r0, -200
/* 8037BED4 00377B34  40 82 00 14 */	bne lbl_8037BEE8
/* 8037BED8 00377B38  7F E3 FB 78 */	mr r3, r31
/* 8037BEDC 00377B3C  4B EF 3B 49 */	bl OSUnlockMutex
/* 8037BEE0 00377B40  38 60 00 00 */	li r3, 0
/* 8037BEE4 00377B44  48 00 01 10 */	b lbl_8037BFF4
lbl_8037BEE8:
/* 8037BEE8 00377B48  88 83 00 74 */	lbz r4, 0x74(r3)
/* 8037BEEC 00377B4C  80 03 00 40 */	lwz r0, 0x40(r3)
/* 8037BEF0 00377B50  7C 84 02 14 */	add r4, r4, r0
/* 8037BEF4 00377B54  2C 04 00 7F */	cmpwi r4, 0x7f
/* 8037BEF8 00377B58  40 81 00 0C */	ble lbl_8037BF04
/* 8037BEFC 00377B5C  38 00 00 7F */	li r0, 0x7f
/* 8037BF00 00377B60  48 00 00 0C */	b lbl_8037BF0C
lbl_8037BF04:
/* 8037BF04 00377B64  7C 80 FE 70 */	srawi r0, r4, 0x1f
/* 8037BF08 00377B68  7C 80 00 78 */	andc r0, r4, r0
lbl_8037BF0C:
/* 8037BF0C 00377B6C  7C 1D 00 00 */	cmpw r29, r0
/* 8037BF10 00377B70  40 80 00 14 */	bge lbl_8037BF24
/* 8037BF14 00377B74  7F E3 FB 78 */	mr r3, r31
/* 8037BF18 00377B78  4B EF 3B 0D */	bl OSUnlockMutex
/* 8037BF1C 00377B7C  38 60 00 00 */	li r3, 0
/* 8037BF20 00377B80  48 00 00 D4 */	b lbl_8037BFF4
lbl_8037BF24:
/* 8037BF24 00377B84  81 83 00 00 */	lwz r12, 0(r3)
/* 8037BF28 00377B88  81 8C 00 28 */	lwz r12, 0x28(r12)
/* 8037BF2C 00377B8C  7D 89 03 A6 */	mtctr r12
/* 8037BF30 00377B90  4E 80 04 21 */	bctrl
lbl_8037BF34:
/* 8037BF34 00377B94  80 7C 00 00 */	lwz r3, 0(r28)
/* 8037BF38 00377B98  A0 1C 00 24 */	lhz r0, 0x24(r28)
/* 8037BF3C 00377B9C  7C 03 00 00 */	cmpw r3, r0
/* 8037BF40 00377BA0  40 80 FF 8C */	bge lbl_8037BECC
/* 8037BF44 00377BA4  2C 1E 00 00 */	cmpwi r30, 0
/* 8037BF48 00377BA8  41 82 00 A0 */	beq lbl_8037BFE8
/* 8037BF4C 00377BAC  A0 1E 00 0C */	lhz r0, 0xc(r30)
/* 8037BF50 00377BB0  2C 00 00 00 */	cmpwi r0, 0
/* 8037BF54 00377BB4  40 82 00 84 */	bne lbl_8037BFD8
/* 8037BF58 00377BB8  7F E3 FB 78 */	mr r3, r31
/* 8037BF5C 00377BBC  4B EF 3A C9 */	bl OSUnlockMutex
/* 8037BF60 00377BC0  38 60 00 00 */	li r3, 0
/* 8037BF64 00377BC4  48 00 00 90 */	b lbl_8037BFF4
/* 8037BF68 00377BC8  48 00 00 70 */	b lbl_8037BFD8
lbl_8037BF6C:
/* 8037BF6C 00377BCC  7F C3 F3 78 */	mr r3, r30
/* 8037BF70 00377BD0  4B FF 40 91 */	bl GetLowestPrioritySound__Q44nw4r3snd6detail19ExternalSoundPlayerFv
/* 8037BF74 00377BD4  2C 03 00 00 */	cmpwi r3, 0
/* 8037BF78 00377BD8  40 82 00 14 */	bne lbl_8037BF8C
/* 8037BF7C 00377BDC  7F E3 FB 78 */	mr r3, r31
/* 8037BF80 00377BE0  4B EF 3A A5 */	bl OSUnlockMutex
/* 8037BF84 00377BE4  38 60 00 00 */	li r3, 0
/* 8037BF88 00377BE8  48 00 00 6C */	b lbl_8037BFF4
lbl_8037BF8C:
/* 8037BF8C 00377BEC  88 83 00 74 */	lbz r4, 0x74(r3)
/* 8037BF90 00377BF0  80 03 00 40 */	lwz r0, 0x40(r3)
/* 8037BF94 00377BF4  7C 84 02 14 */	add r4, r4, r0
/* 8037BF98 00377BF8  2C 04 00 7F */	cmpwi r4, 0x7f
/* 8037BF9C 00377BFC  40 81 00 0C */	ble lbl_8037BFA8
/* 8037BFA0 00377C00  38 00 00 7F */	li r0, 0x7f
/* 8037BFA4 00377C04  48 00 00 0C */	b lbl_8037BFB0
lbl_8037BFA8:
/* 8037BFA8 00377C08  7C 80 FE 70 */	srawi r0, r4, 0x1f
/* 8037BFAC 00377C0C  7C 80 00 78 */	andc r0, r4, r0
lbl_8037BFB0:
/* 8037BFB0 00377C10  7C 1D 00 00 */	cmpw r29, r0
/* 8037BFB4 00377C14  40 80 00 14 */	bge lbl_8037BFC8
/* 8037BFB8 00377C18  7F E3 FB 78 */	mr r3, r31
/* 8037BFBC 00377C1C  4B EF 3A 69 */	bl OSUnlockMutex
/* 8037BFC0 00377C20  38 60 00 00 */	li r3, 0
/* 8037BFC4 00377C24  48 00 00 30 */	b lbl_8037BFF4
lbl_8037BFC8:
/* 8037BFC8 00377C28  81 83 00 00 */	lwz r12, 0(r3)
/* 8037BFCC 00377C2C  81 8C 00 28 */	lwz r12, 0x28(r12)
/* 8037BFD0 00377C30  7D 89 03 A6 */	mtctr r12
/* 8037BFD4 00377C34  4E 80 04 21 */	bctrl
lbl_8037BFD8:
/* 8037BFD8 00377C38  80 7E 00 00 */	lwz r3, 0(r30)
/* 8037BFDC 00377C3C  A0 1E 00 0C */	lhz r0, 0xc(r30)
/* 8037BFE0 00377C40  7C 03 00 00 */	cmpw r3, r0
/* 8037BFE4 00377C44  40 80 FF 88 */	bge lbl_8037BF6C
lbl_8037BFE8:
/* 8037BFE8 00377C48  7F E3 FB 78 */	mr r3, r31
/* 8037BFEC 00377C4C  4B EF 3A 39 */	bl OSUnlockMutex
/* 8037BFF0 00377C50  38 60 00 01 */	li r3, 1
lbl_8037BFF4:
/* 8037BFF4 00377C54  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037BFF8 00377C58  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8037BFFC 00377C5C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8037C000 00377C60  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8037C004 00377C64  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8037C008 00377C68  7C 08 03 A6 */	mtlr r0
/* 8037C00C 00377C6C  38 21 00 20 */	addi r1, r1, 0x20
/* 8037C010 00377C70  4E 80 00 20 */	blr

.global detail_AppendPlayerHeap__Q34nw4r3snd11SoundPlayerFPQ44nw4r3snd6detail10PlayerHeap
detail_AppendPlayerHeap__Q34nw4r3snd11SoundPlayerFPQ44nw4r3snd6detail10PlayerHeap:
/* 8037C014 00377C74  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037C018 00377C78  7C 08 02 A6 */	mflr r0
/* 8037C01C 00377C7C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037C020 00377C80  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8037C024 00377C84  3B E3 00 48 */	addi r31, r3, 0x48
/* 8037C028 00377C88  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8037C02C 00377C8C  7C 9E 23 78 */	mr r30, r4
/* 8037C030 00377C90  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8037C034 00377C94  7C 7D 1B 78 */	mr r29, r3
/* 8037C038 00377C98  7F E3 FB 78 */	mr r3, r31
/* 8037C03C 00377C9C  4B EF 39 0D */	bl OSLockMutex
/* 8037C040 00377CA0  93 BE 00 38 */	stw r29, 0x38(r30)
/* 8037C044 00377CA4  38 1D 00 1C */	addi r0, r29, 0x1c
/* 8037C048 00377CA8  38 7D 00 18 */	addi r3, r29, 0x18
/* 8037C04C 00377CAC  38 81 00 08 */	addi r4, r1, 8
/* 8037C050 00377CB0  90 01 00 08 */	stw r0, 8(r1)
/* 8037C054 00377CB4  38 BE 00 2C */	addi r5, r30, 0x2c
/* 8037C058 00377CB8  4B FE 6B F1 */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 8037C05C 00377CBC  38 00 00 01 */	li r0, 1
/* 8037C060 00377CC0  7F E3 FB 78 */	mr r3, r31
/* 8037C064 00377CC4  98 1D 00 2D */	stb r0, 0x2d(r29)
/* 8037C068 00377CC8  4B EF 39 BD */	bl OSUnlockMutex
/* 8037C06C 00377CCC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037C070 00377CD0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8037C074 00377CD4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8037C078 00377CD8  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8037C07C 00377CDC  7C 08 03 A6 */	mtlr r0
/* 8037C080 00377CE0  38 21 00 20 */	addi r1, r1, 0x20
/* 8037C084 00377CE4  4E 80 00 20 */	blr

.global detail_FreePlayerHeap__Q34nw4r3snd11SoundPlayerFPQ44nw4r3snd6detail10BasicSound
detail_FreePlayerHeap__Q34nw4r3snd11SoundPlayerFPQ44nw4r3snd6detail10BasicSound:
/* 8037C088 00377CE8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037C08C 00377CEC  7C 08 02 A6 */	mflr r0
/* 8037C090 00377CF0  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037C094 00377CF4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8037C098 00377CF8  3B E3 00 48 */	addi r31, r3, 0x48
/* 8037C09C 00377CFC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8037C0A0 00377D00  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8037C0A4 00377D04  7C 9D 23 78 */	mr r29, r4
/* 8037C0A8 00377D08  93 81 00 10 */	stw r28, 0x10(r1)
/* 8037C0AC 00377D0C  7C 7C 1B 78 */	mr r28, r3
/* 8037C0B0 00377D10  7F E3 FB 78 */	mr r3, r31
/* 8037C0B4 00377D14  4B EF 38 95 */	bl OSLockMutex
/* 8037C0B8 00377D18  83 DD 00 04 */	lwz r30, 4(r29)
/* 8037C0BC 00377D1C  2C 1E 00 00 */	cmpwi r30, 0
/* 8037C0C0 00377D20  41 82 00 1C */	beq lbl_8037C0DC
/* 8037C0C4 00377D24  38 1C 00 1C */	addi r0, r28, 0x1c
/* 8037C0C8 00377D28  38 7C 00 18 */	addi r3, r28, 0x18
/* 8037C0CC 00377D2C  90 01 00 08 */	stw r0, 8(r1)
/* 8037C0D0 00377D30  38 81 00 08 */	addi r4, r1, 8
/* 8037C0D4 00377D34  38 BE 00 2C */	addi r5, r30, 0x2c
/* 8037C0D8 00377D38  4B FE 6B 71 */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
lbl_8037C0DC:
/* 8037C0DC 00377D3C  2C 1E 00 00 */	cmpwi r30, 0
/* 8037C0E0 00377D40  41 82 00 0C */	beq lbl_8037C0EC
/* 8037C0E4 00377D44  38 00 00 00 */	li r0, 0
/* 8037C0E8 00377D48  90 1E 00 34 */	stw r0, 0x34(r30)
lbl_8037C0EC:
/* 8037C0EC 00377D4C  38 00 00 00 */	li r0, 0
/* 8037C0F0 00377D50  7F E3 FB 78 */	mr r3, r31
/* 8037C0F4 00377D54  90 1D 00 04 */	stw r0, 4(r29)
/* 8037C0F8 00377D58  4B EF 39 2D */	bl OSUnlockMutex
/* 8037C0FC 00377D5C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037C100 00377D60  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8037C104 00377D64  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8037C108 00377D68  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8037C10C 00377D6C  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8037C110 00377D70  7C 08 03 A6 */	mtlr r0
/* 8037C114 00377D74  38 21 00 20 */	addi r1, r1, 0x20
/* 8037C118 00377D78  4E 80 00 20 */	blr