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
|