summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/ctors.s2
-rw-r--r--asm/nw4r/snd/detail/snd_SeqSound.s12
-rw-r--r--asm/nw4r/snd/detail/snd_StrmPlayer.s22
-rw-r--r--asm/nw4r/snd/detail/snd_StrmSound.s276
-rw-r--r--asm/nw4r/snd/detail/snd_Task.s23
-rw-r--r--asm/nw4r/snd/detail/snd_TaskManager.s490
-rw-r--r--asm/nw4r/snd/detail/snd_TaskThread.s136
-rw-r--r--asm/nw4r/snd/snd_SoundArchivePlayer.s2
-rw-r--r--asm/nw4r/snd/snd_SoundPlayer.s4
-rw-r--r--asm/nw4r/snd/snd_SoundSystem.s8
-rw-r--r--asm/text_10_6.s877
-rw-r--r--obj_files.mk4
12 files changed, 954 insertions, 902 deletions
diff --git a/asm/ctors.s b/asm/ctors.s
index 591ef3c..042ed7d 100644
--- a/asm/ctors.s
+++ b/asm/ctors.s
@@ -68,7 +68,7 @@ lbl_803E1E60:
.4byte func_80262AE0, func_80262E70, func_80263C9C, func_802674AC
.4byte func_80268208, __sinit_$3ut_IOStream_cpp, __sinit_$3ut_FileStream_cpp, __sinit_$3ut_DvdFileStream_cpp
.4byte ut_DvdLockedFileStream_cpp, __sinit_$3ut_TextWriterBase_cpp, __sinit_$3snd_BasicSound_cpp, __sinit_$3snd_SeqSound_cpp
- .4byte __sinit_$3snd_SoundSystem_cpp, func_8037F8FC, func_80383998, func_80385E14
+ .4byte __sinit_$3snd_SoundSystem_cpp, __sinit_$3snd_StrmSound_cpp, func_80383998, func_80385E14
.4byte func_803872D0, func_80387EA8, func_8038A320, func_8038A3CC
.4byte func_8038F254, func_803D91F4, func_803D9EA0
diff --git a/asm/nw4r/snd/detail/snd_SeqSound.s b/asm/nw4r/snd/detail/snd_SeqSound.s
index a0ac1ac..187c31e 100644
--- a/asm/nw4r/snd/detail/snd_SeqSound.s
+++ b/asm/nw4r/snd/detail/snd_SeqSound.s
@@ -56,7 +56,7 @@ __dt__Q54nw4r3snd6detail8SeqSound11SeqLoadTaskFv:
/* 80374CE8 00370948 7C 7E 1B 78 */ mr r30, r3
/* 80374CEC 0037094C 41 82 00 1C */ beq lbl_80374D08
/* 80374CF0 00370950 38 80 00 00 */ li r4, 0
-/* 80374CF4 00370954 48 00 AC 4D */ bl func_8037F940
+/* 80374CF4 00370954 48 00 AC 4D */ bl __dt__Q44nw4r3snd6detail4TaskFv
/* 80374CF8 00370958 2C 1F 00 00 */ cmpwi r31, 0
/* 80374CFC 0037095C 40 81 00 0C */ ble lbl_80374D08
/* 80374D00 00370960 7F C3 F3 78 */ mr r3, r30
@@ -191,10 +191,10 @@ lbl_80374EB0:
/* 80374EC4 00370B24 93 FD 04 40 */ stw r31, 0x440(r29)
/* 80374EC8 00370B28 90 9D 04 44 */ stw r4, 0x444(r29)
/* 80374ECC 00370B2C 93 BD 04 48 */ stw r29, 0x448(r29)
-/* 80374ED0 00370B30 48 00 AA B1 */ bl func_8037F980
+/* 80374ED0 00370B30 48 00 AA B1 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv
/* 80374ED4 00370B34 38 9D 04 28 */ addi r4, r29, 0x428
/* 80374ED8 00370B38 38 A0 00 01 */ li r5, 1
-/* 80374EDC 00370B3C 48 00 AC 1D */ bl func_8037FAF8
+/* 80374EDC 00370B3C 48 00 AC 1D */ bl AppendTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4TaskQ54nw4r3snd6detail11TaskManager12TaskPriority
/* 80374EE0 00370B40 38 00 00 01 */ li r0, 1
lbl_80374EE4:
/* 80374EE4 00370B44 2C 00 00 00 */ cmpwi r0, 0
@@ -263,9 +263,9 @@ Shutdown__Q44nw4r3snd6detail8SeqSoundFv:
/* 80374FB8 00370C18 88 03 02 20 */ lbz r0, 0x220(r3)
/* 80374FBC 00370C1C 2C 00 00 00 */ cmpwi r0, 0
/* 80374FC0 00370C20 41 82 00 10 */ beq lbl_80374FD0
-/* 80374FC4 00370C24 48 00 A9 BD */ bl func_8037F980
+/* 80374FC4 00370C24 48 00 A9 BD */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv
/* 80374FC8 00370C28 38 9D 04 28 */ addi r4, r29, 0x428
-/* 80374FCC 00370C2C 48 00 AE 8D */ bl func_8037FE58
+/* 80374FCC 00370C2C 48 00 AE 8D */ bl CancelTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4Task
lbl_80374FD0:
/* 80374FD0 00370C30 80 7D 02 24 */ lwz r3, 0x224(r29)
/* 80374FD4 00370C34 2C 03 00 00 */ cmpwi r3, 0
@@ -327,7 +327,7 @@ __dt__Q44nw4r3snd6detail8SeqSoundFv:
/* 8037509C 00370CFC 34 63 04 28 */ addic. r3, r3, 0x428
/* 803750A0 00370D00 41 82 00 0C */ beq lbl_803750AC
/* 803750A4 00370D04 38 80 00 00 */ li r4, 0
-/* 803750A8 00370D08 48 00 A8 99 */ bl func_8037F940
+/* 803750A8 00370D08 48 00 A8 99 */ bl __dt__Q44nw4r3snd6detail4TaskFv
lbl_803750AC:
/* 803750AC 00370D0C 38 7E 00 D8 */ addi r3, r30, 0xd8
/* 803750B0 00370D10 38 80 FF FF */ li r4, -1
diff --git a/asm/nw4r/snd/detail/snd_StrmPlayer.s b/asm/nw4r/snd/detail/snd_StrmPlayer.s
index a9cecdf..e584f0d 100644
--- a/asm/nw4r/snd/detail/snd_StrmPlayer.s
+++ b/asm/nw4r/snd/detail/snd_StrmPlayer.s
@@ -83,7 +83,7 @@ __dt__Q54nw4r3snd6detail10StrmPlayer18StrmHeaderLoadTaskFv:
/* 8037D3D0 00379030 7C 7E 1B 78 */ mr r30, r3
/* 8037D3D4 00379034 41 82 00 1C */ beq lbl_8037D3F0
/* 8037D3D8 00379038 38 80 00 00 */ li r4, 0
-/* 8037D3DC 0037903C 48 00 25 65 */ bl func_8037F940
+/* 8037D3DC 0037903C 48 00 25 65 */ bl __dt__Q44nw4r3snd6detail4TaskFv
/* 8037D3E0 00379040 2C 1F 00 00 */ cmpwi r31, 0
/* 8037D3E4 00379044 40 81 00 0C */ ble lbl_8037D3F0
/* 8037D3E8 00379048 7F C3 F3 78 */ mr r3, r30
@@ -109,7 +109,7 @@ __dt__Q54nw4r3snd6detail10StrmPlayer16StrmDataLoadTaskFv:
/* 8037D428 00379088 7C 7E 1B 78 */ mr r30, r3
/* 8037D42C 0037908C 41 82 00 1C */ beq lbl_8037D448
/* 8037D430 00379090 38 80 00 00 */ li r4, 0
-/* 8037D434 00379094 48 00 25 0D */ bl func_8037F940
+/* 8037D434 00379094 48 00 25 0D */ bl __dt__Q44nw4r3snd6detail4TaskFv
/* 8037D438 00379098 2C 1F 00 00 */ cmpwi r31, 0
/* 8037D43C 0037909C 40 81 00 0C */ ble lbl_8037D448
/* 8037D440 003790A0 7F C3 F3 78 */ mr r3, r30
@@ -168,7 +168,7 @@ lbl_8037D4FC:
/* 8037D4FC 0037915C 34 7D 01 08 */ addic. r3, r29, 0x108
/* 8037D500 00379160 41 82 00 0C */ beq lbl_8037D50C
/* 8037D504 00379164 38 80 00 00 */ li r4, 0
-/* 8037D508 00379168 48 00 24 39 */ bl func_8037F940
+/* 8037D508 00379168 48 00 24 39 */ bl __dt__Q44nw4r3snd6detail4TaskFv
lbl_8037D50C:
/* 8037D50C 0037916C 2C 1E 00 00 */ cmpwi r30, 0
/* 8037D510 00379170 40 81 00 0C */ ble lbl_8037D51C
@@ -297,10 +297,10 @@ lbl_8037D6A8:
/* 8037D6C8 00379328 90 9A 01 1C */ stw r4, 0x11c(r26)
/* 8037D6CC 0037932C 90 7A 01 20 */ stw r3, 0x120(r26)
/* 8037D6D0 00379330 90 1A 01 24 */ stw r0, 0x124(r26)
-/* 8037D6D4 00379334 48 00 22 AD */ bl func_8037F980
+/* 8037D6D4 00379334 48 00 22 AD */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv
/* 8037D6D8 00379338 7F C4 F3 78 */ mr r4, r30
/* 8037D6DC 0037933C 38 A0 00 01 */ li r5, 1
-/* 8037D6E0 00379340 48 00 24 19 */ bl func_8037FAF8
+/* 8037D6E0 00379340 48 00 24 19 */ bl AppendTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4TaskQ54nw4r3snd6detail11TaskManager12TaskPriority
/* 8037D6E4 00379344 7F E3 FB 78 */ mr r3, r31
/* 8037D6E8 00379348 4B EF 23 3D */ bl func_8026FA24
/* 8037D6EC 0037934C 39 61 00 20 */ addi r11, r1, 0x20
@@ -536,9 +536,9 @@ Stop__Q44nw4r3snd6detail10StrmPlayerFv:
lbl_8037DA38:
/* 8037DA38 00379698 7F E3 FB 78 */ mr r3, r31
/* 8037DA3C 0037969C 4B EF 0D 49 */ bl OSRestoreInterrupts
-/* 8037DA40 003796A0 48 00 1F 41 */ bl func_8037F980
+/* 8037DA40 003796A0 48 00 1F 41 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv
/* 8037DA44 003796A4 38 9B 01 08 */ addi r4, r27, 0x108
-/* 8037DA48 003796A8 48 00 24 11 */ bl func_8037FE58
+/* 8037DA48 003796A8 48 00 24 11 */ bl CancelTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4Task
/* 8037DA4C 003796AC 4B EF 0D 11 */ bl OSDisableInterrupts
/* 8037DA50 003796B0 80 1B 01 28 */ lwz r0, 0x128(r27)
/* 8037DA54 003796B4 7C 7F 1B 78 */ mr r31, r3
@@ -548,9 +548,9 @@ lbl_8037DA38:
/* 8037DA64 003796C4 48 00 00 14 */ b lbl_8037DA78
lbl_8037DA68:
/* 8037DA68 003796C8 83 BE 00 04 */ lwz r29, 4(r30)
-/* 8037DA6C 003796CC 48 00 1F 15 */ bl func_8037F980
+/* 8037DA6C 003796CC 48 00 1F 15 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv
/* 8037DA70 003796D0 38 9D FF D4 */ addi r4, r29, -44
-/* 8037DA74 003796D4 48 00 23 E5 */ bl func_8037FE58
+/* 8037DA74 003796D4 48 00 23 E5 */ bl CancelTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4Task
lbl_8037DA78:
/* 8037DA78 003796D8 80 1B 01 28 */ lwz r0, 0x128(r27)
/* 8037DA7C 003796DC 2C 00 00 00 */ cmpwi r0, 0
@@ -2069,10 +2069,10 @@ lbl_8037EF60:
/* 8037EFB0 0037AC10 41 82 00 08 */ beq lbl_8037EFB8
/* 8037EFB4 0037AC14 3B E0 00 02 */ li r31, 2
lbl_8037EFB8:
-/* 8037EFB8 0037AC18 48 00 09 C9 */ bl func_8037F980
+/* 8037EFB8 0037AC18 48 00 09 C9 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv
/* 8037EFBC 0037AC1C 7F 84 E3 78 */ mr r4, r28
/* 8037EFC0 0037AC20 7F E5 FB 78 */ mr r5, r31
-/* 8037EFC4 0037AC24 48 00 0B 35 */ bl func_8037FAF8
+/* 8037EFC4 0037AC24 48 00 0B 35 */ bl AppendTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4TaskQ54nw4r3snd6detail11TaskManager12TaskPriority
/* 8037EFC8 0037AC28 80 7D 00 E8 */ lwz r3, 0xe8(r29)
/* 8037EFCC 0037AC2C 80 1D 00 FC */ lwz r0, 0xfc(r29)
/* 8037EFD0 0037AC30 38 63 00 01 */ addi r3, r3, 1
diff --git a/asm/nw4r/snd/detail/snd_StrmSound.s b/asm/nw4r/snd/detail/snd_StrmSound.s
new file mode 100644
index 0000000..0a591fd
--- /dev/null
+++ b/asm/nw4r/snd/detail/snd_StrmSound.s
@@ -0,0 +1,276 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __ct__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9StrmSound$1
+__ct__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9StrmSound$1:
+/* 8037F5D0 0037B230 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8037F5D4 0037B234 7C 08 02 A6 */ mflr r0
+/* 8037F5D8 0037B238 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8037F5DC 0037B23C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8037F5E0 0037B240 7C 9F 23 78 */ mr r31, r4
+/* 8037F5E4 0037B244 93 C1 00 08 */ stw r30, 8(r1)
+/* 8037F5E8 0037B248 7C 7E 1B 78 */ mr r30, r3
+/* 8037F5EC 0037B24C 4B FE D9 F9 */ bl __ct__Q44nw4r3snd6detail10BasicSoundFv
+/* 8037F5F0 0037B250 3C 80 80 45 */ lis r4, lbl_8044CF98@ha
+/* 8037F5F4 0037B254 38 7E 00 D8 */ addi r3, r30, 0xd8
+/* 8037F5F8 0037B258 38 84 CF 98 */ addi r4, r4, lbl_8044CF98@l
+/* 8037F5FC 0037B25C 90 9E 00 00 */ stw r4, 0(r30)
+/* 8037F600 0037B260 4B FF DC B1 */ bl __ct__Q44nw4r3snd6detail10StrmPlayerFv
+/* 8037F604 0037B264 38 00 00 00 */ li r0, 0
+/* 8037F608 0037B268 93 FE 09 3C */ stw r31, 0x93c(r30)
+/* 8037F60C 0037B26C 7F C3 F3 78 */ mr r3, r30
+/* 8037F610 0037B270 90 1E 09 38 */ stw r0, 0x938(r30)
+/* 8037F614 0037B274 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8037F618 0037B278 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8037F61C 0037B27C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8037F620 0037B280 7C 08 03 A6 */ mtlr r0
+/* 8037F624 0037B284 38 21 00 10 */ addi r1, r1, 0x10
+/* 8037F628 0037B288 4E 80 00 20 */ blr
+
+.global Prepare__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail14StrmBufferPoolQ54nw4r3snd6detail10StrmPlayer15StartOffsetTypeliPQ34nw4r2ut10FileStream
+Prepare__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail14StrmBufferPoolQ54nw4r3snd6detail10StrmPlayer15StartOffsetTypeliPQ34nw4r2ut10FileStream:
+/* 8037F62C 0037B28C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8037F630 0037B290 7C 08 02 A6 */ mflr r0
+/* 8037F634 0037B294 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8037F638 0037B298 39 61 00 20 */ addi r11, r1, 0x20
+/* 8037F63C 0037B29C 4B E4 7A E9 */ bl _savegpr_26
+/* 8037F640 0037B2A0 2C 04 00 00 */ cmpwi r4, 0
+/* 8037F644 0037B2A4 7C 7A 1B 78 */ mr r26, r3
+/* 8037F648 0037B2A8 7C 9B 23 78 */ mr r27, r4
+/* 8037F64C 0037B2AC 7C BC 2B 78 */ mr r28, r5
+/* 8037F650 0037B2B0 7C DD 33 78 */ mr r29, r6
+/* 8037F654 0037B2B4 7C FE 3B 78 */ mr r30, r7
+/* 8037F658 0037B2B8 7D 1F 43 78 */ mr r31, r8
+/* 8037F65C 0037B2BC 40 82 00 0C */ bne lbl_8037F668
+/* 8037F660 0037B2C0 38 60 00 00 */ li r3, 0
+/* 8037F664 0037B2C4 48 00 00 64 */ b lbl_8037F6C8
+lbl_8037F668:
+/* 8037F668 0037B2C8 81 83 00 00 */ lwz r12, 0(r3)
+/* 8037F66C 0037B2CC 81 8C 00 64 */ lwz r12, 0x64(r12)
+/* 8037F670 0037B2D0 7D 89 03 A6 */ mtctr r12
+/* 8037F674 0037B2D4 4E 80 04 21 */ bctrl
+/* 8037F678 0037B2D8 7F 64 DB 78 */ mr r4, r27
+/* 8037F67C 0037B2DC 38 7A 00 D8 */ addi r3, r26, 0xd8
+/* 8037F680 0037B2E0 4B FF DE BD */ bl Setup__Q44nw4r3snd6detail10StrmPlayerFPQ44nw4r3snd6detail14StrmBufferPool
+/* 8037F684 0037B2E4 2C 03 00 00 */ cmpwi r3, 0
+/* 8037F688 0037B2E8 40 82 00 0C */ bne lbl_8037F694
+/* 8037F68C 0037B2EC 38 60 00 00 */ li r3, 0
+/* 8037F690 0037B2F0 48 00 00 38 */ b lbl_8037F6C8
+lbl_8037F694:
+/* 8037F694 0037B2F4 7F E4 FB 78 */ mr r4, r31
+/* 8037F698 0037B2F8 7F C5 F3 78 */ mr r5, r30
+/* 8037F69C 0037B2FC 7F 86 E3 78 */ mr r6, r28
+/* 8037F6A0 0037B300 7F A7 EB 78 */ mr r7, r29
+/* 8037F6A4 0037B304 38 7A 00 D8 */ addi r3, r26, 0xd8
+/* 8037F6A8 0037B308 4B FF DF 95 */ bl Prepare__Q44nw4r3snd6detail10StrmPlayerFPQ34nw4r2ut10FileStreamiQ54nw4r3snd6detail10StrmPlayer15StartOffsetTypei
+/* 8037F6AC 0037B30C 2C 03 00 00 */ cmpwi r3, 0
+/* 8037F6B0 0037B310 40 82 00 14 */ bne lbl_8037F6C4
+/* 8037F6B4 0037B314 38 7A 00 D8 */ addi r3, r26, 0xd8
+/* 8037F6B8 0037B318 4B FF DF 1D */ bl Shutdown__Q44nw4r3snd6detail10StrmPlayerFv
+/* 8037F6BC 0037B31C 38 60 00 00 */ li r3, 0
+/* 8037F6C0 0037B320 48 00 00 08 */ b lbl_8037F6C8
+lbl_8037F6C4:
+/* 8037F6C4 0037B324 38 60 00 01 */ li r3, 1
+lbl_8037F6C8:
+/* 8037F6C8 0037B328 39 61 00 20 */ addi r11, r1, 0x20
+/* 8037F6CC 0037B32C 4B E4 7A A5 */ bl _restgpr_26
+/* 8037F6D0 0037B330 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8037F6D4 0037B334 7C 08 03 A6 */ mtlr r0
+/* 8037F6D8 0037B338 38 21 00 20 */ addi r1, r1, 0x20
+/* 8037F6DC 0037B33C 4E 80 00 20 */ blr
+
+.global Shutdown__Q44nw4r3snd6detail9StrmSoundFv
+Shutdown__Q44nw4r3snd6detail9StrmSoundFv:
+/* 8037F6E0 0037B340 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8037F6E4 0037B344 7C 08 02 A6 */ mflr r0
+/* 8037F6E8 0037B348 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8037F6EC 0037B34C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8037F6F0 0037B350 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8037F6F4 0037B354 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8037F6F8 0037B358 7C 7D 1B 78 */ mr r29, r3
+/* 8037F6FC 0037B35C 4B FE E5 81 */ bl Shutdown__Q44nw4r3snd6detail10BasicSoundFv
+/* 8037F700 0037B360 83 DD 09 3C */ lwz r30, 0x93c(r29)
+/* 8037F704 0037B364 3B FE 00 10 */ addi r31, r30, 0x10
+/* 8037F708 0037B368 7F E3 FB 78 */ mr r3, r31
+/* 8037F70C 0037B36C 4B EF 02 3D */ bl func_8026F948
+/* 8037F710 0037B370 80 1E 00 04 */ lwz r0, 4(r30)
+/* 8037F714 0037B374 2C 00 00 00 */ cmpwi r0, 0
+/* 8037F718 0037B378 40 82 00 10 */ bne lbl_8037F728
+/* 8037F71C 0037B37C 7F E3 FB 78 */ mr r3, r31
+/* 8037F720 0037B380 4B EF 03 05 */ bl func_8026FA24
+/* 8037F724 0037B384 48 00 00 3C */ b lbl_8037F760
+lbl_8037F728:
+/* 8037F728 0037B388 38 7E 00 04 */ addi r3, r30, 4
+/* 8037F72C 0037B38C 38 9D 00 B8 */ addi r4, r29, 0xb8
+/* 8037F730 0037B390 4B FE 35 45 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+/* 8037F734 0037B394 81 9D 00 00 */ lwz r12, 0(r29)
+/* 8037F738 0037B398 7F A3 EB 78 */ mr r3, r29
+/* 8037F73C 0037B39C 38 80 FF FF */ li r4, -1
+/* 8037F740 0037B3A0 81 8C 00 0C */ lwz r12, 0xc(r12)
+/* 8037F744 0037B3A4 7D 89 03 A6 */ mtctr r12
+/* 8037F748 0037B3A8 4E 80 04 21 */ bctrl
+/* 8037F74C 0037B3AC 7F C3 F3 78 */ mr r3, r30
+/* 8037F750 0037B3B0 7F A4 EB 78 */ mr r4, r29
+/* 8037F754 0037B3B4 4B FF 24 61 */ bl FreeImpl__Q44nw4r3snd6detail8PoolImplFPv
+/* 8037F758 0037B3B8 7F E3 FB 78 */ mr r3, r31
+/* 8037F75C 0037B3BC 4B EF 02 C9 */ bl func_8026FA24
+lbl_8037F760:
+/* 8037F760 0037B3C0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8037F764 0037B3C4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8037F768 0037B3C8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8037F76C 0037B3CC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8037F770 0037B3D0 7C 08 03 A6 */ mtlr r0
+/* 8037F774 0037B3D4 38 21 00 20 */ addi r1, r1, 0x20
+/* 8037F778 0037B3D8 4E 80 00 20 */ blr
+
+.global __dt__Q44nw4r3snd6detail9StrmSoundFv
+__dt__Q44nw4r3snd6detail9StrmSoundFv:
+/* 8037F77C 0037B3DC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8037F780 0037B3E0 7C 08 02 A6 */ mflr r0
+/* 8037F784 0037B3E4 2C 03 00 00 */ cmpwi r3, 0
+/* 8037F788 0037B3E8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8037F78C 0037B3EC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8037F790 0037B3F0 7C 9F 23 78 */ mr r31, r4
+/* 8037F794 0037B3F4 93 C1 00 08 */ stw r30, 8(r1)
+/* 8037F798 0037B3F8 7C 7E 1B 78 */ mr r30, r3
+/* 8037F79C 0037B3FC 41 82 00 20 */ beq lbl_8037F7BC
+/* 8037F7A0 0037B400 38 80 FF FF */ li r4, -1
+/* 8037F7A4 0037B404 38 63 00 D8 */ addi r3, r3, 0xd8
+/* 8037F7A8 0037B408 4B FF DC BD */ bl __dt__Q44nw4r3snd6detail10StrmPlayerFv
+/* 8037F7AC 0037B40C 2C 1F 00 00 */ cmpwi r31, 0
+/* 8037F7B0 0037B410 40 81 00 0C */ ble lbl_8037F7BC
+/* 8037F7B4 0037B414 7F C3 F3 78 */ mr r3, r30
+/* 8037F7B8 0037B418 4B E5 B3 01 */ bl func_801DAAB8
+lbl_8037F7BC:
+/* 8037F7BC 0037B41C 7F C3 F3 78 */ mr r3, r30
+/* 8037F7C0 0037B420 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8037F7C4 0037B424 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8037F7C8 0037B428 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8037F7CC 0037B42C 7C 08 03 A6 */ mtlr r0
+/* 8037F7D0 0037B430 38 21 00 10 */ addi r1, r1, 0x10
+/* 8037F7D4 0037B434 4E 80 00 20 */ blr
+
+.global SetPlayerPriority__Q44nw4r3snd6detail9StrmSoundFi
+SetPlayerPriority__Q44nw4r3snd6detail9StrmSoundFi:
+/* 8037F7D8 0037B438 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8037F7DC 0037B43C 7C 08 02 A6 */ mflr r0
+/* 8037F7E0 0037B440 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8037F7E4 0037B444 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8037F7E8 0037B448 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8037F7EC 0037B44C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8037F7F0 0037B450 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8037F7F4 0037B454 7C 7C 1B 78 */ mr r28, r3
+/* 8037F7F8 0037B458 4B FE E5 F5 */ bl SetPlayerPriority__Q44nw4r3snd6detail10BasicSoundFi
+/* 8037F7FC 0037B45C 88 7C 00 74 */ lbz r3, 0x74(r28)
+/* 8037F800 0037B460 80 1C 00 40 */ lwz r0, 0x40(r28)
+/* 8037F804 0037B464 7C 63 02 14 */ add r3, r3, r0
+/* 8037F808 0037B468 2C 03 00 7F */ cmpwi r3, 0x7f
+/* 8037F80C 0037B46C 40 81 00 0C */ ble lbl_8037F818
+/* 8037F810 0037B470 3B A0 00 7F */ li r29, 0x7f
+/* 8037F814 0037B474 48 00 00 0C */ b lbl_8037F820
+lbl_8037F818:
+/* 8037F818 0037B478 7C 60 FE 70 */ srawi r0, r3, 0x1f
+/* 8037F81C 0037B47C 7C 7D 00 78 */ andc r29, r3, r0
+lbl_8037F820:
+/* 8037F820 0037B480 83 DC 09 3C */ lwz r30, 0x93c(r28)
+/* 8037F824 0037B484 3B FE 00 10 */ addi r31, r30, 0x10
+/* 8037F828 0037B488 7F E3 FB 78 */ mr r3, r31
+/* 8037F82C 0037B48C 4B EF 01 1D */ bl func_8026F948
+/* 8037F830 0037B490 3B 9C 00 B8 */ addi r28, r28, 0xb8
+/* 8037F834 0037B494 38 7E 00 04 */ addi r3, r30, 4
+/* 8037F838 0037B498 7F 84 E3 78 */ mr r4, r28
+/* 8037F83C 0037B49C 4B FE 34 39 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+/* 8037F840 0037B4A0 80 7E 00 08 */ lwz r3, 8(r30)
+/* 8037F844 0037B4A4 38 1E 00 08 */ addi r0, r30, 8
+/* 8037F848 0037B4A8 48 00 00 34 */ b lbl_8037F87C
+lbl_8037F84C:
+/* 8037F84C 0037B4AC 88 A3 FF BC */ lbz r5, -0x44(r3)
+/* 8037F850 0037B4B0 80 83 FF 88 */ lwz r4, -0x78(r3)
+/* 8037F854 0037B4B4 7C A5 22 14 */ add r5, r5, r4
+/* 8037F858 0037B4B8 2C 05 00 7F */ cmpwi r5, 0x7f
+/* 8037F85C 0037B4BC 40 81 00 0C */ ble lbl_8037F868
+/* 8037F860 0037B4C0 38 80 00 7F */ li r4, 0x7f
+/* 8037F864 0037B4C4 48 00 00 0C */ b lbl_8037F870
+lbl_8037F868:
+/* 8037F868 0037B4C8 7C A4 FE 70 */ srawi r4, r5, 0x1f
+/* 8037F86C 0037B4CC 7C A4 20 78 */ andc r4, r5, r4
+lbl_8037F870:
+/* 8037F870 0037B4D0 7C 1D 20 00 */ cmpw r29, r4
+/* 8037F874 0037B4D4 41 80 00 10 */ blt lbl_8037F884
+/* 8037F878 0037B4D8 80 63 00 00 */ lwz r3, 0(r3)
+lbl_8037F87C:
+/* 8037F87C 0037B4DC 7C 03 00 40 */ cmplw r3, r0
+/* 8037F880 0037B4E0 40 82 FF CC */ bne lbl_8037F84C
+lbl_8037F884:
+/* 8037F884 0037B4E4 90 61 00 08 */ stw r3, 8(r1)
+/* 8037F888 0037B4E8 7F 85 E3 78 */ mr r5, r28
+/* 8037F88C 0037B4EC 38 7E 00 04 */ addi r3, r30, 4
+/* 8037F890 0037B4F0 38 81 00 08 */ addi r4, r1, 8
+/* 8037F894 0037B4F4 4B FE 33 B5 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
+/* 8037F898 0037B4F8 7F E3 FB 78 */ mr r3, r31
+/* 8037F89C 0037B4FC 4B EF 01 89 */ bl func_8026FA24
+/* 8037F8A0 0037B500 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8037F8A4 0037B504 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8037F8A8 0037B508 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8037F8AC 0037B50C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8037F8B0 0037B510 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8037F8B4 0037B514 7C 08 03 A6 */ mtlr r0
+/* 8037F8B8 0037B518 38 21 00 20 */ addi r1, r1, 0x20
+/* 8037F8BC 0037B51C 4E 80 00 20 */ blr
+
+.global IsAttachedTempSpecialHandle__Q44nw4r3snd6detail9StrmSoundFv
+IsAttachedTempSpecialHandle__Q44nw4r3snd6detail9StrmSoundFv:
+/* 8037F8C0 0037B520 80 63 09 38 */ lwz r3, 0x938(r3)
+/* 8037F8C4 0037B524 7C 03 00 D0 */ neg r0, r3
+/* 8037F8C8 0037B528 7C 00 1B 78 */ or r0, r0, r3
+/* 8037F8CC 0037B52C 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8037F8D0 0037B530 4E 80 00 20 */ blr
+
+.global DetachTempSpecialHandle__Q44nw4r3snd6detail9StrmSoundFv
+DetachTempSpecialHandle__Q44nw4r3snd6detail9StrmSoundFv:
+/* 8037F8D4 0037B534 80 63 09 38 */ lwz r3, 0x938(r3)
+/* 8037F8D8 0037B538 48 00 00 30 */ b lbl_8037F908
+
+.global GetBasicPlayer__Q44nw4r3snd6detail9StrmSoundFv
+GetBasicPlayer__Q44nw4r3snd6detail9StrmSoundFv:
+/* 8037F8DC 0037B53C 38 63 00 D8 */ addi r3, r3, 0xd8
+/* 8037F8E0 0037B540 4E 80 00 20 */ blr
+
+.global GetBasicPlayer__Q44nw4r3snd6detail9StrmSoundCFv
+GetBasicPlayer__Q44nw4r3snd6detail9StrmSoundCFv:
+/* 8037F8E4 0037B544 38 63 00 D8 */ addi r3, r3, 0xd8
+/* 8037F8E8 0037B548 4E 80 00 20 */ blr
+
+.global IsPrepared__Q44nw4r3snd6detail9StrmSoundCFv
+IsPrepared__Q44nw4r3snd6detail9StrmSoundCFv:
+/* 8037F8EC 0037B54C 88 63 01 93 */ lbz r3, 0x193(r3)
+/* 8037F8F0 0037B550 4E 80 00 20 */ blr
+
+.global GetRuntimeTypeInfo__Q44nw4r3snd6detail9StrmSoundCFv
+GetRuntimeTypeInfo__Q44nw4r3snd6detail9StrmSoundCFv:
+/* 8037F8F4 0037B554 38 6D B2 88 */ addi r3, r13, lbl_80640548-_SDA_BASE_
+/* 8037F8F8 0037B558 4E 80 00 20 */ blr
+
+.global __sinit_$3snd_StrmSound_cpp
+__sinit_$3snd_StrmSound_cpp:
+/* 8037F8FC 0037B55C 38 0D B1 F0 */ addi r0, r13, lbl_806404B0-_SDA_BASE_
+/* 8037F900 0037B560 90 0D B2 88 */ stw r0, lbl_80640548-_SDA_BASE_(r13)
+/* 8037F904 0037B564 4E 80 00 20 */ blr
+
+lbl_8037F908:
+/* 8037F908 0037B568 80 83 00 00 */ lwz r4, 0(r3)
+/* 8037F90C 0037B56C 2C 04 00 00 */ cmpwi r4, 0
+/* 8037F910 0037B570 41 82 00 18 */ beq lbl_8037F928
+/* 8037F914 0037B574 80 04 09 38 */ lwz r0, 0x938(r4)
+/* 8037F918 0037B578 7C 00 18 40 */ cmplw r0, r3
+/* 8037F91C 0037B57C 40 82 00 0C */ bne lbl_8037F928
+/* 8037F920 0037B580 38 00 00 00 */ li r0, 0
+/* 8037F924 0037B584 90 04 09 38 */ stw r0, 0x938(r4)
+lbl_8037F928:
+/* 8037F928 0037B588 80 03 00 00 */ lwz r0, 0(r3)
+/* 8037F92C 0037B58C 2C 00 00 00 */ cmpwi r0, 0
+/* 8037F930 0037B590 4D 82 00 20 */ beqlr
+/* 8037F934 0037B594 38 00 00 00 */ li r0, 0
+/* 8037F938 0037B598 90 03 00 00 */ stw r0, 0(r3)
+/* 8037F93C 0037B59C 4E 80 00 20 */ blr
diff --git a/asm/nw4r/snd/detail/snd_Task.s b/asm/nw4r/snd/detail/snd_Task.s
new file mode 100644
index 0000000..0bc501f
--- /dev/null
+++ b/asm/nw4r/snd/detail/snd_Task.s
@@ -0,0 +1,23 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __dt__Q44nw4r3snd6detail4TaskFv
+__dt__Q44nw4r3snd6detail4TaskFv:
+/* 8037F940 0037B5A0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8037F944 0037B5A4 7C 08 02 A6 */ mflr r0
+/* 8037F948 0037B5A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8037F94C 0037B5AC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8037F950 0037B5B0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8037F954 0037B5B4 7C 7F 1B 78 */ mr r31, r3
+/* 8037F958 0037B5B8 41 82 00 10 */ beq lbl_8037F968
+/* 8037F95C 0037B5BC 2C 04 00 00 */ cmpwi r4, 0
+/* 8037F960 0037B5C0 40 81 00 08 */ ble lbl_8037F968
+/* 8037F964 0037B5C4 4B E5 B1 55 */ bl func_801DAAB8
+lbl_8037F968:
+/* 8037F968 0037B5C8 7F E3 FB 78 */ mr r3, r31
+/* 8037F96C 0037B5CC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8037F970 0037B5D0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8037F974 0037B5D4 7C 08 03 A6 */ mtlr r0
+/* 8037F978 0037B5D8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8037F97C 0037B5DC 4E 80 00 20 */ blr
diff --git a/asm/nw4r/snd/detail/snd_TaskManager.s b/asm/nw4r/snd/detail/snd_TaskManager.s
new file mode 100644
index 0000000..f587379
--- /dev/null
+++ b/asm/nw4r/snd/detail/snd_TaskManager.s
@@ -0,0 +1,490 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global GetInstance__Q44nw4r3snd6detail11TaskManagerFv
+GetInstance__Q44nw4r3snd6detail11TaskManagerFv:
+/* 8037F980 0037B5E0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8037F984 0037B5E4 7C 08 02 A6 */ mflr r0
+/* 8037F988 0037B5E8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8037F98C 0037B5EC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8037F990 0037B5F0 88 0D B2 90 */ lbz r0, lbl_80640550-_SDA_BASE_(r13)
+/* 8037F994 0037B5F4 7C 00 07 75 */ extsb. r0, r0
+/* 8037F998 0037B5F8 40 82 00 68 */ bne lbl_8037FA00
+/* 8037F99C 0037B5FC 3F E0 80 64 */ lis r31, lbl_8063CDA4@ha
+/* 8037F9A0 0037B600 3C 80 80 38 */ lis r4, __ct__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv@ha
+/* 8037F9A4 0037B604 3B FF CD A4 */ addi r31, r31, lbl_8063CDA4@l
+/* 8037F9A8 0037B608 3C A0 80 38 */ lis r5, __dt__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv@ha
+/* 8037F9AC 0037B60C 7F E3 FB 78 */ mr r3, r31
+/* 8037F9B0 0037B610 38 84 FA D8 */ addi r4, r4, __ct__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv@l
+/* 8037F9B4 0037B614 38 A5 FA 80 */ addi r5, r5, __dt__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv@l
+/* 8037F9B8 0037B618 38 C0 00 0C */ li r6, 0xc
+/* 8037F9BC 0037B61C 38 E0 00 03 */ li r7, 3
+/* 8037F9C0 0037B620 4B E4 74 A9 */ bl __construct_array
+/* 8037F9C4 0037B624 38 00 00 00 */ li r0, 0
+/* 8037F9C8 0037B628 38 7F 00 2C */ addi r3, r31, 0x2c
+/* 8037F9CC 0037B62C 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 8037F9D0 0037B630 98 1F 00 28 */ stb r0, 0x28(r31)
+/* 8037F9D4 0037B634 4B EF 19 15 */ bl func_802712E8
+/* 8037F9D8 0037B638 38 7F 00 34 */ addi r3, r31, 0x34
+/* 8037F9DC 0037B63C 4B EF 19 0D */ bl func_802712E8
+/* 8037F9E0 0037B640 3C 80 80 38 */ lis r4, __dt__Q44nw4r3snd6detail11TaskManagerFv@ha
+/* 8037F9E4 0037B644 3C A0 80 64 */ lis r5, lbl_8063CD98@ha
+/* 8037F9E8 0037B648 7F E3 FB 78 */ mr r3, r31
+/* 8037F9EC 0037B64C 38 84 FA 1C */ addi r4, r4, __dt__Q44nw4r3snd6detail11TaskManagerFv@l
+/* 8037F9F0 0037B650 38 A5 CD 98 */ addi r5, r5, lbl_8063CD98@l
+/* 8037F9F4 0037B654 4B E4 72 55 */ bl __register_global_object_tmp
+/* 8037F9F8 0037B658 38 00 00 01 */ li r0, 1
+/* 8037F9FC 0037B65C 98 0D B2 90 */ stb r0, lbl_80640550-_SDA_BASE_(r13)
+lbl_8037FA00:
+/* 8037FA00 0037B660 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8037FA04 0037B664 3C 60 80 64 */ lis r3, lbl_8063CDA4@ha
+/* 8037FA08 0037B668 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8037FA0C 0037B66C 38 63 CD A4 */ addi r3, r3, lbl_8063CDA4@l
+/* 8037FA10 0037B670 7C 08 03 A6 */ mtlr r0
+/* 8037FA14 0037B674 38 21 00 10 */ addi r1, r1, 0x10
+/* 8037FA18 0037B678 4E 80 00 20 */ blr
+
+.global __dt__Q44nw4r3snd6detail11TaskManagerFv
+__dt__Q44nw4r3snd6detail11TaskManagerFv:
+/* 8037FA1C 0037B67C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8037FA20 0037B680 7C 08 02 A6 */ mflr r0
+/* 8037FA24 0037B684 2C 03 00 00 */ cmpwi r3, 0
+/* 8037FA28 0037B688 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8037FA2C 0037B68C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8037FA30 0037B690 7C 9F 23 78 */ mr r31, r4
+/* 8037FA34 0037B694 93 C1 00 08 */ stw r30, 8(r1)
+/* 8037FA38 0037B698 7C 7E 1B 78 */ mr r30, r3
+/* 8037FA3C 0037B69C 41 82 00 28 */ beq lbl_8037FA64
+/* 8037FA40 0037B6A0 3C 80 80 38 */ lis r4, __dt__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv@ha
+/* 8037FA44 0037B6A4 38 A0 00 0C */ li r5, 0xc
+/* 8037FA48 0037B6A8 38 84 FA 80 */ addi r4, r4, __dt__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv@l
+/* 8037FA4C 0037B6AC 38 C0 00 03 */ li r6, 3
+/* 8037FA50 0037B6B0 4B E4 75 11 */ bl __destroy_arr
+/* 8037FA54 0037B6B4 2C 1F 00 00 */ cmpwi r31, 0
+/* 8037FA58 0037B6B8 40 81 00 0C */ ble lbl_8037FA64
+/* 8037FA5C 0037B6BC 7F C3 F3 78 */ mr r3, r30
+/* 8037FA60 0037B6C0 4B E5 B0 59 */ bl func_801DAAB8
+lbl_8037FA64:
+/* 8037FA64 0037B6C4 7F C3 F3 78 */ mr r3, r30
+/* 8037FA68 0037B6C8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8037FA6C 0037B6CC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8037FA70 0037B6D0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8037FA74 0037B6D4 7C 08 03 A6 */ mtlr r0
+/* 8037FA78 0037B6D8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8037FA7C 0037B6DC 4E 80 00 20 */ blr
+
+.global __dt__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv
+__dt__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv:
+/* 8037FA80 0037B6E0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8037FA84 0037B6E4 7C 08 02 A6 */ mflr r0
+/* 8037FA88 0037B6E8 2C 03 00 00 */ cmpwi r3, 0
+/* 8037FA8C 0037B6EC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8037FA90 0037B6F0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8037FA94 0037B6F4 7C 9F 23 78 */ mr r31, r4
+/* 8037FA98 0037B6F8 93 C1 00 08 */ stw r30, 8(r1)
+/* 8037FA9C 0037B6FC 7C 7E 1B 78 */ mr r30, r3
+/* 8037FAA0 0037B700 41 82 00 1C */ beq lbl_8037FABC
+/* 8037FAA4 0037B704 38 80 00 00 */ li r4, 0
+/* 8037FAA8 0037B708 4B FE 30 91 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
+/* 8037FAAC 0037B70C 2C 1F 00 00 */ cmpwi r31, 0
+/* 8037FAB0 0037B710 40 81 00 0C */ ble lbl_8037FABC
+/* 8037FAB4 0037B714 7F C3 F3 78 */ mr r3, r30
+/* 8037FAB8 0037B718 4B E5 B0 01 */ bl func_801DAAB8
+lbl_8037FABC:
+/* 8037FABC 0037B71C 7F C3 F3 78 */ mr r3, r30
+/* 8037FAC0 0037B720 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8037FAC4 0037B724 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8037FAC8 0037B728 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8037FACC 0037B72C 7C 08 03 A6 */ mtlr r0
+/* 8037FAD0 0037B730 38 21 00 10 */ addi r1, r1, 0x10
+/* 8037FAD4 0037B734 4E 80 00 20 */ blr
+
+.global __ct__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv
+__ct__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv:
+/* 8037FAD8 0037B738 38 00 00 00 */ li r0, 0
+/* 8037FADC 0037B73C 38 83 00 04 */ addi r4, r3, 4
+/* 8037FAE0 0037B740 90 03 00 04 */ stw r0, 4(r3)
+/* 8037FAE4 0037B744 90 03 00 08 */ stw r0, 8(r3)
+/* 8037FAE8 0037B748 90 03 00 00 */ stw r0, 0(r3)
+/* 8037FAEC 0037B74C 90 83 00 04 */ stw r4, 4(r3)
+/* 8037FAF0 0037B750 90 83 00 08 */ stw r4, 8(r3)
+/* 8037FAF4 0037B754 4E 80 00 20 */ blr
+
+.global AppendTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4TaskQ54nw4r3snd6detail11TaskManager12TaskPriority
+AppendTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4TaskQ54nw4r3snd6detail11TaskManager12TaskPriority:
+/* 8037FAF8 0037B758 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8037FAFC 0037B75C 7C 08 02 A6 */ mflr r0
+/* 8037FB00 0037B760 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8037FB04 0037B764 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8037FB08 0037B768 7C BF 2B 78 */ mr r31, r5
+/* 8037FB0C 0037B76C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8037FB10 0037B770 7C 9E 23 78 */ mr r30, r4
+/* 8037FB14 0037B774 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8037FB18 0037B778 7C 7D 1B 78 */ mr r29, r3
+/* 8037FB1C 0037B77C 4B EE EC 41 */ bl OSDisableInterrupts
+/* 8037FB20 0037B780 1C 1F 00 0C */ mulli r0, r31, 0xc
+/* 8037FB24 0037B784 38 80 00 01 */ li r4, 1
+/* 8037FB28 0037B788 98 9E 00 0C */ stb r4, 0xc(r30)
+/* 8037FB2C 0037B78C 7C 7F 1B 78 */ mr r31, r3
+/* 8037FB30 0037B790 38 81 00 08 */ addi r4, r1, 8
+/* 8037FB34 0037B794 7C 7D 02 14 */ add r3, r29, r0
+/* 8037FB38 0037B798 38 03 00 04 */ addi r0, r3, 4
+/* 8037FB3C 0037B79C 38 BE 00 04 */ addi r5, r30, 4
+/* 8037FB40 0037B7A0 90 01 00 08 */ stw r0, 8(r1)
+/* 8037FB44 0037B7A4 4B FE 31 05 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
+/* 8037FB48 0037B7A8 38 7D 00 2C */ addi r3, r29, 0x2c
+/* 8037FB4C 0037B7AC 4B EF 29 15 */ bl func_80272460
+/* 8037FB50 0037B7B0 7F E3 FB 78 */ mr r3, r31
+/* 8037FB54 0037B7B4 4B EE EC 31 */ bl OSRestoreInterrupts
+/* 8037FB58 0037B7B8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8037FB5C 0037B7BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8037FB60 0037B7C0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8037FB64 0037B7C4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8037FB68 0037B7C8 7C 08 03 A6 */ mtlr r0
+/* 8037FB6C 0037B7CC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8037FB70 0037B7D0 4E 80 00 20 */ blr
+
+.global PopTask__Q44nw4r3snd6detail11TaskManagerFv
+PopTask__Q44nw4r3snd6detail11TaskManagerFv:
+/* 8037FB74 0037B7D4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8037FB78 0037B7D8 7C 08 02 A6 */ mflr r0
+/* 8037FB7C 0037B7DC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8037FB80 0037B7E0 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8037FB84 0037B7E4 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8037FB88 0037B7E8 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 8037FB8C 0037B7EC 93 81 00 20 */ stw r28, 0x20(r1)
+/* 8037FB90 0037B7F0 7C 7C 1B 78 */ mr r28, r3
+/* 8037FB94 0037B7F4 4B EE EB C9 */ bl OSDisableInterrupts
+/* 8037FB98 0037B7F8 7C 7F 1B 78 */ mr r31, r3
+/* 8037FB9C 0037B7FC 4B EE EB C1 */ bl OSDisableInterrupts
+/* 8037FBA0 0037B800 80 1C 00 18 */ lwz r0, 0x18(r28)
+/* 8037FBA4 0037B804 7C 7E 1B 78 */ mr r30, r3
+/* 8037FBA8 0037B808 2C 00 00 00 */ cmpwi r0, 0
+/* 8037FBAC 0037B80C 40 82 00 10 */ bne lbl_8037FBBC
+/* 8037FBB0 0037B810 4B EE EB D5 */ bl OSRestoreInterrupts
+/* 8037FBB4 0037B814 3B C0 00 00 */ li r30, 0
+/* 8037FBB8 0037B818 48 00 00 24 */ b lbl_8037FBDC
+lbl_8037FBBC:
+/* 8037FBBC 0037B81C 83 BC 00 1C */ lwz r29, 0x1c(r28)
+/* 8037FBC0 0037B820 38 7C 00 18 */ addi r3, r28, 0x18
+/* 8037FBC4 0037B824 38 81 00 10 */ addi r4, r1, 0x10
+/* 8037FBC8 0037B828 93 A1 00 10 */ stw r29, 0x10(r1)
+/* 8037FBCC 0037B82C 4B FE 2F F1 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
+/* 8037FBD0 0037B830 7F C3 F3 78 */ mr r3, r30
+/* 8037FBD4 0037B834 4B EE EB B1 */ bl OSRestoreInterrupts
+/* 8037FBD8 0037B838 3B DD FF FC */ addi r30, r29, -4
+lbl_8037FBDC:
+/* 8037FBDC 0037B83C 2C 1E 00 00 */ cmpwi r30, 0
+/* 8037FBE0 0037B840 41 82 00 14 */ beq lbl_8037FBF4
+/* 8037FBE4 0037B844 7F E3 FB 78 */ mr r3, r31
+/* 8037FBE8 0037B848 4B EE EB 9D */ bl OSRestoreInterrupts
+/* 8037FBEC 0037B84C 7F C3 F3 78 */ mr r3, r30
+/* 8037FBF0 0037B850 48 00 00 C0 */ b lbl_8037FCB0
+lbl_8037FBF4:
+/* 8037FBF4 0037B854 4B EE EB 69 */ bl OSDisableInterrupts
+/* 8037FBF8 0037B858 80 1C 00 0C */ lwz r0, 0xc(r28)
+/* 8037FBFC 0037B85C 7C 7E 1B 78 */ mr r30, r3
+/* 8037FC00 0037B860 2C 00 00 00 */ cmpwi r0, 0
+/* 8037FC04 0037B864 40 82 00 10 */ bne lbl_8037FC14
+/* 8037FC08 0037B868 4B EE EB 7D */ bl OSRestoreInterrupts
+/* 8037FC0C 0037B86C 3B C0 00 00 */ li r30, 0
+/* 8037FC10 0037B870 48 00 00 24 */ b lbl_8037FC34
+lbl_8037FC14:
+/* 8037FC14 0037B874 83 BC 00 10 */ lwz r29, 0x10(r28)
+/* 8037FC18 0037B878 38 7C 00 0C */ addi r3, r28, 0xc
+/* 8037FC1C 0037B87C 38 81 00 0C */ addi r4, r1, 0xc
+/* 8037FC20 0037B880 93 A1 00 0C */ stw r29, 0xc(r1)
+/* 8037FC24 0037B884 4B FE 2F 99 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
+/* 8037FC28 0037B888 7F C3 F3 78 */ mr r3, r30
+/* 8037FC2C 0037B88C 4B EE EB 59 */ bl OSRestoreInterrupts
+/* 8037FC30 0037B890 3B DD FF FC */ addi r30, r29, -4
+lbl_8037FC34:
+/* 8037FC34 0037B894 2C 1E 00 00 */ cmpwi r30, 0
+/* 8037FC38 0037B898 41 82 00 14 */ beq lbl_8037FC4C
+/* 8037FC3C 0037B89C 7F E3 FB 78 */ mr r3, r31
+/* 8037FC40 0037B8A0 4B EE EB 45 */ bl OSRestoreInterrupts
+/* 8037FC44 0037B8A4 7F C3 F3 78 */ mr r3, r30
+/* 8037FC48 0037B8A8 48 00 00 68 */ b lbl_8037FCB0
+lbl_8037FC4C:
+/* 8037FC4C 0037B8AC 4B EE EB 11 */ bl OSDisableInterrupts
+/* 8037FC50 0037B8B0 80 1C 00 00 */ lwz r0, 0(r28)
+/* 8037FC54 0037B8B4 7C 7E 1B 78 */ mr r30, r3
+/* 8037FC58 0037B8B8 2C 00 00 00 */ cmpwi r0, 0
+/* 8037FC5C 0037B8BC 40 82 00 10 */ bne lbl_8037FC6C
+/* 8037FC60 0037B8C0 4B EE EB 25 */ bl OSRestoreInterrupts
+/* 8037FC64 0037B8C4 3B C0 00 00 */ li r30, 0
+/* 8037FC68 0037B8C8 48 00 00 24 */ b lbl_8037FC8C
+lbl_8037FC6C:
+/* 8037FC6C 0037B8CC 83 BC 00 04 */ lwz r29, 4(r28)
+/* 8037FC70 0037B8D0 7F 83 E3 78 */ mr r3, r28
+/* 8037FC74 0037B8D4 38 81 00 08 */ addi r4, r1, 8
+/* 8037FC78 0037B8D8 93 A1 00 08 */ stw r29, 8(r1)
+/* 8037FC7C 0037B8DC 4B FE 2F 41 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
+/* 8037FC80 0037B8E0 7F C3 F3 78 */ mr r3, r30
+/* 8037FC84 0037B8E4 4B EE EB 01 */ bl OSRestoreInterrupts
+/* 8037FC88 0037B8E8 3B DD FF FC */ addi r30, r29, -4
+lbl_8037FC8C:
+/* 8037FC8C 0037B8EC 2C 1E 00 00 */ cmpwi r30, 0
+/* 8037FC90 0037B8F0 41 82 00 14 */ beq lbl_8037FCA4
+/* 8037FC94 0037B8F4 7F E3 FB 78 */ mr r3, r31
+/* 8037FC98 0037B8F8 4B EE EA ED */ bl OSRestoreInterrupts
+/* 8037FC9C 0037B8FC 7F C3 F3 78 */ mr r3, r30
+/* 8037FCA0 0037B900 48 00 00 10 */ b lbl_8037FCB0
+lbl_8037FCA4:
+/* 8037FCA4 0037B904 7F E3 FB 78 */ mr r3, r31
+/* 8037FCA8 0037B908 4B EE EA DD */ bl OSRestoreInterrupts
+/* 8037FCAC 0037B90C 38 60 00 00 */ li r3, 0
+lbl_8037FCB0:
+/* 8037FCB0 0037B910 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8037FCB4 0037B914 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8037FCB8 0037B918 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8037FCBC 0037B91C 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 8037FCC0 0037B920 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 8037FCC4 0037B924 7C 08 03 A6 */ mtlr r0
+/* 8037FCC8 0037B928 38 21 00 30 */ addi r1, r1, 0x30
+/* 8037FCCC 0037B92C 4E 80 00 20 */ blr
+
+.global GetNextTask__Q44nw4r3snd6detail11TaskManagerFv
+GetNextTask__Q44nw4r3snd6detail11TaskManagerFv:
+/* 8037FCD0 0037B930 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8037FCD4 0037B934 7C 08 02 A6 */ mflr r0
+/* 8037FCD8 0037B938 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8037FCDC 0037B93C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8037FCE0 0037B940 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8037FCE4 0037B944 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8037FCE8 0037B948 7C 7D 1B 78 */ mr r29, r3
+/* 8037FCEC 0037B94C 4B EE EA 71 */ bl OSDisableInterrupts
+/* 8037FCF0 0037B950 7C 7F 1B 78 */ mr r31, r3
+/* 8037FCF4 0037B954 4B EE EA 69 */ bl OSDisableInterrupts
+/* 8037FCF8 0037B958 80 1D 00 18 */ lwz r0, 0x18(r29)
+/* 8037FCFC 0037B95C 2C 00 00 00 */ cmpwi r0, 0
+/* 8037FD00 0037B960 40 82 00 10 */ bne lbl_8037FD10
+/* 8037FD04 0037B964 4B EE EA 81 */ bl OSRestoreInterrupts
+/* 8037FD08 0037B968 3B C0 00 00 */ li r30, 0
+/* 8037FD0C 0037B96C 48 00 00 10 */ b lbl_8037FD1C
+lbl_8037FD10:
+/* 8037FD10 0037B970 83 DD 00 1C */ lwz r30, 0x1c(r29)
+/* 8037FD14 0037B974 4B EE EA 71 */ bl OSRestoreInterrupts
+/* 8037FD18 0037B978 3B DE FF FC */ addi r30, r30, -4
+lbl_8037FD1C:
+/* 8037FD1C 0037B97C 2C 1E 00 00 */ cmpwi r30, 0
+/* 8037FD20 0037B980 41 82 00 14 */ beq lbl_8037FD34
+/* 8037FD24 0037B984 7F E3 FB 78 */ mr r3, r31
+/* 8037FD28 0037B988 4B EE EA 5D */ bl OSRestoreInterrupts
+/* 8037FD2C 0037B98C 7F C3 F3 78 */ mr r3, r30
+/* 8037FD30 0037B990 48 00 00 90 */ b lbl_8037FDC0
+lbl_8037FD34:
+/* 8037FD34 0037B994 4B EE EA 29 */ bl OSDisableInterrupts
+/* 8037FD38 0037B998 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 8037FD3C 0037B99C 2C 00 00 00 */ cmpwi r0, 0
+/* 8037FD40 0037B9A0 40 82 00 10 */ bne lbl_8037FD50
+/* 8037FD44 0037B9A4 4B EE EA 41 */ bl OSRestoreInterrupts
+/* 8037FD48 0037B9A8 3B C0 00 00 */ li r30, 0
+/* 8037FD4C 0037B9AC 48 00 00 10 */ b lbl_8037FD5C
+lbl_8037FD50:
+/* 8037FD50 0037B9B0 83 DD 00 10 */ lwz r30, 0x10(r29)
+/* 8037FD54 0037B9B4 4B EE EA 31 */ bl OSRestoreInterrupts
+/* 8037FD58 0037B9B8 3B DE FF FC */ addi r30, r30, -4
+lbl_8037FD5C:
+/* 8037FD5C 0037B9BC 2C 1E 00 00 */ cmpwi r30, 0
+/* 8037FD60 0037B9C0 41 82 00 14 */ beq lbl_8037FD74
+/* 8037FD64 0037B9C4 7F E3 FB 78 */ mr r3, r31
+/* 8037FD68 0037B9C8 4B EE EA 1D */ bl OSRestoreInterrupts
+/* 8037FD6C 0037B9CC 7F C3 F3 78 */ mr r3, r30
+/* 8037FD70 0037B9D0 48 00 00 50 */ b lbl_8037FDC0
+lbl_8037FD74:
+/* 8037FD74 0037B9D4 4B EE E9 E9 */ bl OSDisableInterrupts
+/* 8037FD78 0037B9D8 80 1D 00 00 */ lwz r0, 0(r29)
+/* 8037FD7C 0037B9DC 2C 00 00 00 */ cmpwi r0, 0
+/* 8037FD80 0037B9E0 40 82 00 10 */ bne lbl_8037FD90
+/* 8037FD84 0037B9E4 4B EE EA 01 */ bl OSRestoreInterrupts
+/* 8037FD88 0037B9E8 3B C0 00 00 */ li r30, 0
+/* 8037FD8C 0037B9EC 48 00 00 10 */ b lbl_8037FD9C
+lbl_8037FD90:
+/* 8037FD90 0037B9F0 83 DD 00 04 */ lwz r30, 4(r29)
+/* 8037FD94 0037B9F4 4B EE E9 F1 */ bl OSRestoreInterrupts
+/* 8037FD98 0037B9F8 3B DE FF FC */ addi r30, r30, -4
+lbl_8037FD9C:
+/* 8037FD9C 0037B9FC 2C 1E 00 00 */ cmpwi r30, 0
+/* 8037FDA0 0037BA00 41 82 00 14 */ beq lbl_8037FDB4
+/* 8037FDA4 0037BA04 7F E3 FB 78 */ mr r3, r31
+/* 8037FDA8 0037BA08 4B EE E9 DD */ bl OSRestoreInterrupts
+/* 8037FDAC 0037BA0C 7F C3 F3 78 */ mr r3, r30
+/* 8037FDB0 0037BA10 48 00 00 10 */ b lbl_8037FDC0
+lbl_8037FDB4:
+/* 8037FDB4 0037BA14 7F E3 FB 78 */ mr r3, r31
+/* 8037FDB8 0037BA18 4B EE E9 CD */ bl OSRestoreInterrupts
+/* 8037FDBC 0037BA1C 38 60 00 00 */ li r3, 0
+lbl_8037FDC0:
+/* 8037FDC0 0037BA20 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8037FDC4 0037BA24 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8037FDC8 0037BA28 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8037FDCC 0037BA2C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8037FDD0 0037BA30 7C 08 03 A6 */ mtlr r0
+/* 8037FDD4 0037BA34 38 21 00 20 */ addi r1, r1, 0x20
+/* 8037FDD8 0037BA38 4E 80 00 20 */ blr
+
+.global ExecuteTask__Q44nw4r3snd6detail11TaskManagerFv
+ExecuteTask__Q44nw4r3snd6detail11TaskManagerFv:
+/* 8037FDDC 0037BA3C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8037FDE0 0037BA40 7C 08 02 A6 */ mflr r0
+/* 8037FDE4 0037BA44 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8037FDE8 0037BA48 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8037FDEC 0037BA4C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8037FDF0 0037BA50 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8037FDF4 0037BA54 7C 7D 1B 78 */ mr r29, r3
+/* 8037FDF8 0037BA58 4B FF FD 7D */ bl PopTask__Q44nw4r3snd6detail11TaskManagerFv
+/* 8037FDFC 0037BA5C 2C 03 00 00 */ cmpwi r3, 0
+/* 8037FE00 0037BA60 7C 7E 1B 78 */ mr r30, r3
+/* 8037FE04 0037BA64 40 82 00 0C */ bne lbl_8037FE10
+/* 8037FE08 0037BA68 38 60 00 00 */ li r3, 0
+/* 8037FE0C 0037BA6C 48 00 00 30 */ b lbl_8037FE3C
+lbl_8037FE10:
+/* 8037FE10 0037BA70 90 7D 00 24 */ stw r3, 0x24(r29)
+/* 8037FE14 0037BA74 3B E0 00 00 */ li r31, 0
+/* 8037FE18 0037BA78 9B E3 00 0C */ stb r31, 0xc(r3)
+/* 8037FE1C 0037BA7C 81 83 00 00 */ lwz r12, 0(r3)
+/* 8037FE20 0037BA80 81 8C 00 0C */ lwz r12, 0xc(r12)
+/* 8037FE24 0037BA84 7D 89 03 A6 */ mtctr r12
+/* 8037FE28 0037BA88 4E 80 04 21 */ bctrl
+/* 8037FE2C 0037BA8C 93 FD 00 24 */ stw r31, 0x24(r29)
+/* 8037FE30 0037BA90 38 7D 00 34 */ addi r3, r29, 0x34
+/* 8037FE34 0037BA94 4B EF 26 2D */ bl func_80272460
+/* 8037FE38 0037BA98 7F C3 F3 78 */ mr r3, r30
+lbl_8037FE3C:
+/* 8037FE3C 0037BA9C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8037FE40 0037BAA0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8037FE44 0037BAA4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8037FE48 0037BAA8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8037FE4C 0037BAAC 7C 08 03 A6 */ mtlr r0
+/* 8037FE50 0037BAB0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8037FE54 0037BAB4 4E 80 00 20 */ blr
+
+.global CancelTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4Task
+CancelTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4Task:
+/* 8037FE58 0037BAB8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8037FE5C 0037BABC 7C 08 02 A6 */ mflr r0
+/* 8037FE60 0037BAC0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8037FE64 0037BAC4 39 61 00 30 */ addi r11, r1, 0x30
+/* 8037FE68 0037BAC8 4B E4 72 B9 */ bl _savegpr_25
+/* 8037FE6C 0037BACC 7C 79 1B 78 */ mr r25, r3
+/* 8037FE70 0037BAD0 7C 9A 23 78 */ mr r26, r4
+/* 8037FE74 0037BAD4 4B EE E8 E9 */ bl OSDisableInterrupts
+/* 8037FE78 0037BAD8 80 19 00 24 */ lwz r0, 0x24(r25)
+/* 8037FE7C 0037BADC 7C 7E 1B 78 */ mr r30, r3
+/* 8037FE80 0037BAE0 7C 1A 00 40 */ cmplw r26, r0
+/* 8037FE84 0037BAE4 40 82 00 34 */ bne lbl_8037FEB8
+/* 8037FE88 0037BAE8 81 9A 00 00 */ lwz r12, 0(r26)
+/* 8037FE8C 0037BAEC 7F 43 D3 78 */ mr r3, r26
+/* 8037FE90 0037BAF0 81 8C 00 14 */ lwz r12, 0x14(r12)
+/* 8037FE94 0037BAF4 7D 89 03 A6 */ mtctr r12
+/* 8037FE98 0037BAF8 4E 80 04 21 */ bctrl
+/* 8037FE9C 0037BAFC 48 00 00 0C */ b lbl_8037FEA8
+lbl_8037FEA0:
+/* 8037FEA0 0037BB00 38 79 00 34 */ addi r3, r25, 0x34
+/* 8037FEA4 0037BB04 4B EF 24 D1 */ bl func_80272374
+lbl_8037FEA8:
+/* 8037FEA8 0037BB08 80 19 00 24 */ lwz r0, 0x24(r25)
+/* 8037FEAC 0037BB0C 7C 1A 00 40 */ cmplw r26, r0
+/* 8037FEB0 0037BB10 41 82 FF F0 */ beq lbl_8037FEA0
+/* 8037FEB4 0037BB14 48 00 00 74 */ b lbl_8037FF28
+lbl_8037FEB8:
+/* 8037FEB8 0037BB18 3B 60 00 00 */ li r27, 0
+/* 8037FEBC 0037BB1C 3B E0 00 00 */ li r31, 0
+/* 8037FEC0 0037BB20 3B A0 00 00 */ li r29, 0
+lbl_8037FEC4:
+/* 8037FEC4 0037BB24 7C 79 FA 14 */ add r3, r25, r31
+/* 8037FEC8 0037BB28 80 83 00 04 */ lwz r4, 4(r3)
+/* 8037FECC 0037BB2C 38 03 00 04 */ addi r0, r3, 4
+/* 8037FED0 0037BB30 48 00 00 40 */ b lbl_8037FF10
+lbl_8037FED4:
+/* 8037FED4 0037BB34 7C 9C 23 78 */ mr r28, r4
+/* 8037FED8 0037BB38 80 84 00 00 */ lwz r4, 0(r4)
+/* 8037FEDC 0037BB3C 38 BC FF FC */ addi r5, r28, -4
+/* 8037FEE0 0037BB40 7C 05 D0 40 */ cmplw r5, r26
+/* 8037FEE4 0037BB44 40 82 00 2C */ bne lbl_8037FF10
+/* 8037FEE8 0037BB48 93 81 00 08 */ stw r28, 8(r1)
+/* 8037FEEC 0037BB4C 38 81 00 08 */ addi r4, r1, 8
+/* 8037FEF0 0037BB50 4B FE 2C CD */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
+/* 8037FEF4 0037BB54 9B BC 00 08 */ stb r29, 8(r28)
+/* 8037FEF8 0037BB58 38 7C FF FC */ addi r3, r28, -4
+/* 8037FEFC 0037BB5C 81 9C FF FC */ lwz r12, -4(r28)
+/* 8037FF00 0037BB60 81 8C 00 10 */ lwz r12, 0x10(r12)
+/* 8037FF04 0037BB64 7D 89 03 A6 */ mtctr r12
+/* 8037FF08 0037BB68 4E 80 04 21 */ bctrl
+/* 8037FF0C 0037BB6C 48 00 00 0C */ b lbl_8037FF18
+lbl_8037FF10:
+/* 8037FF10 0037BB70 7C 04 00 40 */ cmplw r4, r0
+/* 8037FF14 0037BB74 40 82 FF C0 */ bne lbl_8037FED4
+lbl_8037FF18:
+/* 8037FF18 0037BB78 3B 7B 00 01 */ addi r27, r27, 1
+/* 8037FF1C 0037BB7C 3B FF 00 0C */ addi r31, r31, 0xc
+/* 8037FF20 0037BB80 2C 1B 00 03 */ cmpwi r27, 3
+/* 8037FF24 0037BB84 41 80 FF A0 */ blt lbl_8037FEC4
+lbl_8037FF28:
+/* 8037FF28 0037BB88 7F C3 F3 78 */ mr r3, r30
+/* 8037FF2C 0037BB8C 4B EE E8 59 */ bl OSRestoreInterrupts
+/* 8037FF30 0037BB90 39 61 00 30 */ addi r11, r1, 0x30
+/* 8037FF34 0037BB94 4B E4 72 39 */ bl _restgpr_25
+/* 8037FF38 0037BB98 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8037FF3C 0037BB9C 7C 08 03 A6 */ mtlr r0
+/* 8037FF40 0037BBA0 38 21 00 30 */ addi r1, r1, 0x30
+/* 8037FF44 0037BBA4 4E 80 00 20 */ blr
+
+.global WaitTask__Q44nw4r3snd6detail11TaskManagerFv
+WaitTask__Q44nw4r3snd6detail11TaskManagerFv:
+/* 8037FF48 0037BBA8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8037FF4C 0037BBAC 7C 08 02 A6 */ mflr r0
+/* 8037FF50 0037BBB0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8037FF54 0037BBB4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8037FF58 0037BBB8 93 C1 00 08 */ stw r30, 8(r1)
+/* 8037FF5C 0037BBBC 7C 7E 1B 78 */ mr r30, r3
+/* 8037FF60 0037BBC0 4B EE E7 FD */ bl OSDisableInterrupts
+/* 8037FF64 0037BBC4 38 00 00 00 */ li r0, 0
+/* 8037FF68 0037BBC8 7C 7F 1B 78 */ mr r31, r3
+/* 8037FF6C 0037BBCC 98 1E 00 28 */ stb r0, 0x28(r30)
+/* 8037FF70 0037BBD0 48 00 00 0C */ b lbl_8037FF7C
+lbl_8037FF74:
+/* 8037FF74 0037BBD4 38 7E 00 2C */ addi r3, r30, 0x2c
+/* 8037FF78 0037BBD8 4B EF 23 FD */ bl func_80272374
+lbl_8037FF7C:
+/* 8037FF7C 0037BBDC 7F C3 F3 78 */ mr r3, r30
+/* 8037FF80 0037BBE0 4B FF FD 51 */ bl GetNextTask__Q44nw4r3snd6detail11TaskManagerFv
+/* 8037FF84 0037BBE4 2C 03 00 00 */ cmpwi r3, 0
+/* 8037FF88 0037BBE8 40 82 00 10 */ bne lbl_8037FF98
+/* 8037FF8C 0037BBEC 88 1E 00 28 */ lbz r0, 0x28(r30)
+/* 8037FF90 0037BBF0 2C 00 00 00 */ cmpwi r0, 0
+/* 8037FF94 0037BBF4 41 82 FF E0 */ beq lbl_8037FF74
+lbl_8037FF98:
+/* 8037FF98 0037BBF8 7F E3 FB 78 */ mr r3, r31
+/* 8037FF9C 0037BBFC 4B EE E7 E9 */ bl OSRestoreInterrupts
+/* 8037FFA0 0037BC00 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8037FFA4 0037BC04 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8037FFA8 0037BC08 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8037FFAC 0037BC0C 7C 08 03 A6 */ mtlr r0
+/* 8037FFB0 0037BC10 38 21 00 10 */ addi r1, r1, 0x10
+/* 8037FFB4 0037BC14 4E 80 00 20 */ blr
+
+.global CancelWaitTask__Q44nw4r3snd6detail11TaskManagerFv
+CancelWaitTask__Q44nw4r3snd6detail11TaskManagerFv:
+/* 8037FFB8 0037BC18 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8037FFBC 0037BC1C 7C 08 02 A6 */ mflr r0
+/* 8037FFC0 0037BC20 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8037FFC4 0037BC24 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8037FFC8 0037BC28 93 C1 00 08 */ stw r30, 8(r1)
+/* 8037FFCC 0037BC2C 7C 7E 1B 78 */ mr r30, r3
+/* 8037FFD0 0037BC30 4B EE E7 8D */ bl OSDisableInterrupts
+/* 8037FFD4 0037BC34 38 00 00 01 */ li r0, 1
+/* 8037FFD8 0037BC38 7C 7F 1B 78 */ mr r31, r3
+/* 8037FFDC 0037BC3C 98 1E 00 28 */ stb r0, 0x28(r30)
+/* 8037FFE0 0037BC40 38 7E 00 2C */ addi r3, r30, 0x2c
+/* 8037FFE4 0037BC44 4B EF 24 7D */ bl func_80272460
+/* 8037FFE8 0037BC48 7F E3 FB 78 */ mr r3, r31
+/* 8037FFEC 0037BC4C 4B EE E7 99 */ bl OSRestoreInterrupts
+/* 8037FFF0 0037BC50 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8037FFF4 0037BC54 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8037FFF8 0037BC58 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8037FFFC 0037BC5C 7C 08 03 A6 */ mtlr r0
+/* 80380000 0037BC60 38 21 00 10 */ addi r1, r1, 0x10
+/* 80380004 0037BC64 4E 80 00 20 */ blr
diff --git a/asm/nw4r/snd/detail/snd_TaskThread.s b/asm/nw4r/snd/detail/snd_TaskThread.s
new file mode 100644
index 0000000..6cb7d9a
--- /dev/null
+++ b/asm/nw4r/snd/detail/snd_TaskThread.s
@@ -0,0 +1,136 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __ct__Q44nw4r3snd6detail10TaskThreadFv
+__ct__Q44nw4r3snd6detail10TaskThreadFv:
+/* 80380008 0037BC68 38 00 00 00 */ li r0, 0
+/* 8038000C 0037BC6C 90 03 03 18 */ stw r0, 0x318(r3)
+/* 80380010 0037BC70 98 03 03 1C */ stb r0, 0x31c(r3)
+/* 80380014 0037BC74 98 03 03 1D */ stb r0, 0x31d(r3)
+/* 80380018 0037BC78 4E 80 00 20 */ blr
+
+.global __dt__Q44nw4r3snd6detail10TaskThreadFv
+__dt__Q44nw4r3snd6detail10TaskThreadFv:
+/* 8038001C 0037BC7C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80380020 0037BC80 7C 08 02 A6 */ mflr r0
+/* 80380024 0037BC84 2C 03 00 00 */ cmpwi r3, 0
+/* 80380028 0037BC88 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8038002C 0037BC8C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80380030 0037BC90 7C 9F 23 78 */ mr r31, r4
+/* 80380034 0037BC94 93 C1 00 08 */ stw r30, 8(r1)
+/* 80380038 0037BC98 7C 7E 1B 78 */ mr r30, r3
+/* 8038003C 0037BC9C 41 82 00 48 */ beq lbl_80380084
+/* 80380040 0037BCA0 88 03 03 1D */ lbz r0, 0x31d(r3)
+/* 80380044 0037BCA4 2C 00 00 00 */ cmpwi r0, 0
+/* 80380048 0037BCA8 41 82 00 2C */ beq lbl_80380074
+/* 8038004C 0037BCAC 41 82 00 28 */ beq lbl_80380074
+/* 80380050 0037BCB0 38 00 00 01 */ li r0, 1
+/* 80380054 0037BCB4 98 03 03 1C */ stb r0, 0x31c(r3)
+/* 80380058 0037BCB8 4B FF F9 29 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv
+/* 8038005C 0037BCBC 4B FF FF 5D */ bl CancelWaitTask__Q44nw4r3snd6detail11TaskManagerFv
+/* 80380060 0037BCC0 7F C3 F3 78 */ mr r3, r30
+/* 80380064 0037BCC4 38 80 00 00 */ li r4, 0
+/* 80380068 0037BCC8 4B EF 1D A1 */ bl func_80271E08
+/* 8038006C 0037BCCC 38 00 00 00 */ li r0, 0
+/* 80380070 0037BCD0 98 1E 03 1D */ stb r0, 0x31d(r30)
+lbl_80380074:
+/* 80380074 0037BCD4 2C 1F 00 00 */ cmpwi r31, 0
+/* 80380078 0037BCD8 40 81 00 0C */ ble lbl_80380084
+/* 8038007C 0037BCDC 7F C3 F3 78 */ mr r3, r30
+/* 80380080 0037BCE0 4B E5 AA 39 */ bl func_801DAAB8
+lbl_80380084:
+/* 80380084 0037BCE4 7F C3 F3 78 */ mr r3, r30
+/* 80380088 0037BCE8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8038008C 0037BCEC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80380090 0037BCF0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80380094 0037BCF4 7C 08 03 A6 */ mtlr r0
+/* 80380098 0037BCF8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8038009C 0037BCFC 4E 80 00 20 */ blr
+
+.global Create__Q44nw4r3snd6detail10TaskThreadFlPvUl
+Create__Q44nw4r3snd6detail10TaskThreadFlPvUl:
+/* 803800A0 0037BD00 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803800A4 0037BD04 7C 08 02 A6 */ mflr r0
+/* 803800A8 0037BD08 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803800AC 0037BD0C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 803800B0 0037BD10 7C DF 33 78 */ mr r31, r6
+/* 803800B4 0037BD14 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 803800B8 0037BD18 7C BE 2B 78 */ mr r30, r5
+/* 803800BC 0037BD1C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 803800C0 0037BD20 7C 9D 23 78 */ mr r29, r4
+/* 803800C4 0037BD24 93 81 00 10 */ stw r28, 0x10(r1)
+/* 803800C8 0037BD28 7C 7C 1B 78 */ mr r28, r3
+/* 803800CC 0037BD2C 88 03 03 1D */ lbz r0, 0x31d(r3)
+/* 803800D0 0037BD30 2C 00 00 00 */ cmpwi r0, 0
+/* 803800D4 0037BD34 41 82 00 2C */ beq lbl_80380100
+/* 803800D8 0037BD38 41 82 00 28 */ beq lbl_80380100
+/* 803800DC 0037BD3C 38 00 00 01 */ li r0, 1
+/* 803800E0 0037BD40 98 03 03 1C */ stb r0, 0x31c(r3)
+/* 803800E4 0037BD44 4B FF F8 9D */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv
+/* 803800E8 0037BD48 4B FF FE D1 */ bl CancelWaitTask__Q44nw4r3snd6detail11TaskManagerFv
+/* 803800EC 0037BD4C 7F 83 E3 78 */ mr r3, r28
+/* 803800F0 0037BD50 38 80 00 00 */ li r4, 0
+/* 803800F4 0037BD54 4B EF 1D 15 */ bl func_80271E08
+/* 803800F8 0037BD58 38 00 00 00 */ li r0, 0
+/* 803800FC 0037BD5C 98 1C 03 1D */ stb r0, 0x31d(r28)
+lbl_80380100:
+/* 80380100 0037BD60 3C 80 80 38 */ lis r4, ThreadFunc__Q44nw4r3snd6detail10TaskThreadFPv@ha
+/* 80380104 0037BD64 7F 83 E3 78 */ mr r3, r28
+/* 80380108 0037BD68 7F 85 E3 78 */ mr r5, r28
+/* 8038010C 0037BD6C 7F E7 FB 78 */ mr r7, r31
+/* 80380110 0037BD70 7F A8 EB 78 */ mr r8, r29
+/* 80380114 0037BD74 38 84 01 74 */ addi r4, r4, ThreadFunc__Q44nw4r3snd6detail10TaskThreadFPv@l
+/* 80380118 0037BD78 7C DE FA 14 */ add r6, r30, r31
+/* 8038011C 0037BD7C 39 20 00 00 */ li r9, 0
+/* 80380120 0037BD80 4B EF 17 C1 */ bl func_802718E0
+/* 80380124 0037BD84 2C 03 00 00 */ cmpwi r3, 0
+/* 80380128 0037BD88 40 82 00 0C */ bne lbl_80380134
+/* 8038012C 0037BD8C 38 60 00 00 */ li r3, 0
+/* 80380130 0037BD90 48 00 00 24 */ b lbl_80380154
+lbl_80380134:
+/* 80380134 0037BD94 38 80 00 00 */ li r4, 0
+/* 80380138 0037BD98 38 00 00 01 */ li r0, 1
+/* 8038013C 0037BD9C 93 DC 03 18 */ stw r30, 0x318(r28)
+/* 80380140 0037BDA0 7F 83 E3 78 */ mr r3, r28
+/* 80380144 0037BDA4 98 9C 03 1C */ stb r4, 0x31c(r28)
+/* 80380148 0037BDA8 98 1C 03 1D */ stb r0, 0x31d(r28)
+/* 8038014C 0037BDAC 4B EF 1D FD */ bl func_80271F48
+/* 80380150 0037BDB0 38 60 00 01 */ li r3, 1
+lbl_80380154:
+/* 80380154 0037BDB4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80380158 0037BDB8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8038015C 0037BDBC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80380160 0037BDC0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80380164 0037BDC4 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80380168 0037BDC8 7C 08 03 A6 */ mtlr r0
+/* 8038016C 0037BDCC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80380170 0037BDD0 4E 80 00 20 */ blr
+
+.global ThreadFunc__Q44nw4r3snd6detail10TaskThreadFPv
+ThreadFunc__Q44nw4r3snd6detail10TaskThreadFPv:
+/* 80380174 0037BDD4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80380178 0037BDD8 7C 08 02 A6 */ mflr r0
+/* 8038017C 0037BDDC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80380180 0037BDE0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80380184 0037BDE4 7C 7F 1B 78 */ mr r31, r3
+/* 80380188 0037BDE8 48 00 00 20 */ b lbl_803801A8
+lbl_8038018C:
+/* 8038018C 0037BDEC 4B FF F7 F5 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv
+/* 80380190 0037BDF0 4B FF FD B9 */ bl WaitTask__Q44nw4r3snd6detail11TaskManagerFv
+/* 80380194 0037BDF4 88 1F 03 1C */ lbz r0, 0x31c(r31)
+/* 80380198 0037BDF8 2C 00 00 00 */ cmpwi r0, 0
+/* 8038019C 0037BDFC 40 82 00 18 */ bne lbl_803801B4
+/* 803801A0 0037BE00 4B FF F7 E1 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv
+/* 803801A4 0037BE04 4B FF FC 39 */ bl ExecuteTask__Q44nw4r3snd6detail11TaskManagerFv
+lbl_803801A8:
+/* 803801A8 0037BE08 88 1F 03 1C */ lbz r0, 0x31c(r31)
+/* 803801AC 0037BE0C 2C 00 00 00 */ cmpwi r0, 0
+/* 803801B0 0037BE10 41 82 FF DC */ beq lbl_8038018C
+lbl_803801B4:
+/* 803801B4 0037BE14 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803801B8 0037BE18 38 60 00 00 */ li r3, 0
+/* 803801BC 0037BE1C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803801C0 0037BE20 7C 08 03 A6 */ mtlr r0
+/* 803801C4 0037BE24 38 21 00 10 */ addi r1, r1, 0x10
+/* 803801C8 0037BE28 4E 80 00 20 */ blr
diff --git a/asm/nw4r/snd/snd_SoundArchivePlayer.s b/asm/nw4r/snd/snd_SoundArchivePlayer.s
index 97283df..6266ba5 100644
--- a/asm/nw4r/snd/snd_SoundArchivePlayer.s
+++ b/asm/nw4r/snd/snd_SoundArchivePlayer.s
@@ -1802,7 +1802,7 @@ lbl_8037A238:
/* 8037A240 00375EA0 7F A6 EB 78 */ mr r6, r29
/* 8037A244 00375EA4 7F C7 F3 78 */ mr r7, r30
/* 8037A248 00375EA8 38 9A 00 BC */ addi r4, r26, 0xbc
-/* 8037A24C 00375EAC 48 00 53 E1 */ bl func_8037F62C
+/* 8037A24C 00375EAC 48 00 53 E1 */ bl Prepare__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail14StrmBufferPoolQ54nw4r3snd6detail10StrmPlayer15StartOffsetTypeliPQ34nw4r2ut10FileStream
/* 8037A250 00375EB0 2C 03 00 00 */ cmpwi r3, 0
/* 8037A254 00375EB4 40 82 00 0C */ bne lbl_8037A260
/* 8037A258 00375EB8 38 60 00 FF */ li r3, 0xff
diff --git a/asm/nw4r/snd/snd_SoundPlayer.s b/asm/nw4r/snd/snd_SoundPlayer.s
index fe09352..290b7e6 100644
--- a/asm/nw4r/snd/snd_SoundPlayer.s
+++ b/asm/nw4r/snd/snd_SoundPlayer.s
@@ -850,7 +850,7 @@ lbl_8037B718:
/* 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 func_8037F5D0
+/* 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:
@@ -898,7 +898,7 @@ lbl_8037B7BC:
/* 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 func_8037F5D0
+/* 8037B7E4 00377444 48 00 3D ED */ bl __ct__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9StrmSound$1
lbl_8037B7E8:
/* 8037B7E8 00377448 7C 7B 1B 78 */ mr r27, r3
lbl_8037B7EC:
diff --git a/asm/nw4r/snd/snd_SoundSystem.s b/asm/nw4r/snd/snd_SoundSystem.s
index fa5adbb..b7e76d0 100644
--- a/asm/nw4r/snd/snd_SoundSystem.s
+++ b/asm/nw4r/snd/snd_SoundSystem.s
@@ -127,7 +127,7 @@ lbl_8037C2B8:
/* 8037C358 00377FB8 80 DA 00 0C */ lwz r6, 0xc(r26)
/* 8037C35C 00377FBC 7F 65 DB 78 */ mr r5, r27
/* 8037C360 00377FC0 38 63 1D 10 */ addi r3, r3, lbl_80621D10@l
-/* 8037C364 00377FC4 48 00 3D 3D */ bl func_803800A0
+/* 8037C364 00377FC4 48 00 3D 3D */ bl Create__Q44nw4r3snd6detail10TaskThreadFlPvUl
/* 8037C368 00377FC8 48 00 00 E9 */ bl GetInstance__Q44nw4r3snd6detail11SoundThreadFv
/* 8037C36C 00377FCC 80 9A 00 00 */ lwz r4, 0(r26)
/* 8037C370 00377FD0 7F A5 EB 78 */ mr r5, r29
@@ -184,11 +184,11 @@ __sinit_$3snd_SoundSystem_cpp:
/* 8037C414 00378074 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8037C418 00378078 3F E0 80 62 */ lis r31, lbl_80621D10@ha
/* 8037C41C 0037807C 38 7F 1D 10 */ addi r3, r31, lbl_80621D10@l
-/* 8037C420 00378080 48 00 3B E9 */ bl func_80380008
-/* 8037C424 00378084 3C 80 80 38 */ lis r4, lbl_8038001C@ha
+/* 8037C420 00378080 48 00 3B E9 */ bl __ct__Q44nw4r3snd6detail10TaskThreadFv
+/* 8037C424 00378084 3C 80 80 38 */ lis r4, __dt__Q44nw4r3snd6detail10TaskThreadFv@ha
/* 8037C428 00378088 3C A0 80 62 */ lis r5, lbl_80621D00@ha
/* 8037C42C 0037808C 38 7F 1D 10 */ addi r3, r31, 0x1d10
-/* 8037C430 00378090 38 84 00 1C */ addi r4, r4, lbl_8038001C@l
+/* 8037C430 00378090 38 84 00 1C */ addi r4, r4, __dt__Q44nw4r3snd6detail10TaskThreadFv@l
/* 8037C434 00378094 38 A5 1D 00 */ addi r5, r5, lbl_80621D00@l
/* 8037C438 00378098 4B E4 A8 11 */ bl __register_global_object_tmp
/* 8037C43C 0037809C 80 01 00 14 */ lwz r0, 0x14(r1)
diff --git a/asm/text_10_6.s b/asm/text_10_6.s
index 5d9e9f8..8538a5c 100644
--- a/asm/text_10_6.s
+++ b/asm/text_10_6.s
@@ -2,883 +2,6 @@
.section .text, "ax" # 0x80006980 - 0x803E1E60
-.global func_8037F5D0
-func_8037F5D0:
-/* 8037F5D0 0037B230 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8037F5D4 0037B234 7C 08 02 A6 */ mflr r0
-/* 8037F5D8 0037B238 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8037F5DC 0037B23C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8037F5E0 0037B240 7C 9F 23 78 */ mr r31, r4
-/* 8037F5E4 0037B244 93 C1 00 08 */ stw r30, 8(r1)
-/* 8037F5E8 0037B248 7C 7E 1B 78 */ mr r30, r3
-/* 8037F5EC 0037B24C 4B FE D9 F9 */ bl __ct__Q44nw4r3snd6detail10BasicSoundFv
-/* 8037F5F0 0037B250 3C 80 80 45 */ lis r4, lbl_8044CF98@ha
-/* 8037F5F4 0037B254 38 7E 00 D8 */ addi r3, r30, 0xd8
-/* 8037F5F8 0037B258 38 84 CF 98 */ addi r4, r4, lbl_8044CF98@l
-/* 8037F5FC 0037B25C 90 9E 00 00 */ stw r4, 0(r30)
-/* 8037F600 0037B260 4B FF DC B1 */ bl __ct__Q44nw4r3snd6detail10StrmPlayerFv
-/* 8037F604 0037B264 38 00 00 00 */ li r0, 0
-/* 8037F608 0037B268 93 FE 09 3C */ stw r31, 0x93c(r30)
-/* 8037F60C 0037B26C 7F C3 F3 78 */ mr r3, r30
-/* 8037F610 0037B270 90 1E 09 38 */ stw r0, 0x938(r30)
-/* 8037F614 0037B274 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8037F618 0037B278 83 C1 00 08 */ lwz r30, 8(r1)
-/* 8037F61C 0037B27C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8037F620 0037B280 7C 08 03 A6 */ mtlr r0
-/* 8037F624 0037B284 38 21 00 10 */ addi r1, r1, 0x10
-/* 8037F628 0037B288 4E 80 00 20 */ blr
-
-.global func_8037F62C
-func_8037F62C:
-/* 8037F62C 0037B28C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8037F630 0037B290 7C 08 02 A6 */ mflr r0
-/* 8037F634 0037B294 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8037F638 0037B298 39 61 00 20 */ addi r11, r1, 0x20
-/* 8037F63C 0037B29C 4B E4 7A E9 */ bl _savegpr_26
-/* 8037F640 0037B2A0 2C 04 00 00 */ cmpwi r4, 0
-/* 8037F644 0037B2A4 7C 7A 1B 78 */ mr r26, r3
-/* 8037F648 0037B2A8 7C 9B 23 78 */ mr r27, r4
-/* 8037F64C 0037B2AC 7C BC 2B 78 */ mr r28, r5
-/* 8037F650 0037B2B0 7C DD 33 78 */ mr r29, r6
-/* 8037F654 0037B2B4 7C FE 3B 78 */ mr r30, r7
-/* 8037F658 0037B2B8 7D 1F 43 78 */ mr r31, r8
-/* 8037F65C 0037B2BC 40 82 00 0C */ bne lbl_8037F668
-/* 8037F660 0037B2C0 38 60 00 00 */ li r3, 0
-/* 8037F664 0037B2C4 48 00 00 64 */ b lbl_8037F6C8
-lbl_8037F668:
-/* 8037F668 0037B2C8 81 83 00 00 */ lwz r12, 0(r3)
-/* 8037F66C 0037B2CC 81 8C 00 64 */ lwz r12, 0x64(r12)
-/* 8037F670 0037B2D0 7D 89 03 A6 */ mtctr r12
-/* 8037F674 0037B2D4 4E 80 04 21 */ bctrl
-/* 8037F678 0037B2D8 7F 64 DB 78 */ mr r4, r27
-/* 8037F67C 0037B2DC 38 7A 00 D8 */ addi r3, r26, 0xd8
-/* 8037F680 0037B2E0 4B FF DE BD */ bl Setup__Q44nw4r3snd6detail10StrmPlayerFPQ44nw4r3snd6detail14StrmBufferPool
-/* 8037F684 0037B2E4 2C 03 00 00 */ cmpwi r3, 0
-/* 8037F688 0037B2E8 40 82 00 0C */ bne lbl_8037F694
-/* 8037F68C 0037B2EC 38 60 00 00 */ li r3, 0
-/* 8037F690 0037B2F0 48 00 00 38 */ b lbl_8037F6C8
-lbl_8037F694:
-/* 8037F694 0037B2F4 7F E4 FB 78 */ mr r4, r31
-/* 8037F698 0037B2F8 7F C5 F3 78 */ mr r5, r30
-/* 8037F69C 0037B2FC 7F 86 E3 78 */ mr r6, r28
-/* 8037F6A0 0037B300 7F A7 EB 78 */ mr r7, r29
-/* 8037F6A4 0037B304 38 7A 00 D8 */ addi r3, r26, 0xd8
-/* 8037F6A8 0037B308 4B FF DF 95 */ bl Prepare__Q44nw4r3snd6detail10StrmPlayerFPQ34nw4r2ut10FileStreamiQ54nw4r3snd6detail10StrmPlayer15StartOffsetTypei
-/* 8037F6AC 0037B30C 2C 03 00 00 */ cmpwi r3, 0
-/* 8037F6B0 0037B310 40 82 00 14 */ bne lbl_8037F6C4
-/* 8037F6B4 0037B314 38 7A 00 D8 */ addi r3, r26, 0xd8
-/* 8037F6B8 0037B318 4B FF DF 1D */ bl Shutdown__Q44nw4r3snd6detail10StrmPlayerFv
-/* 8037F6BC 0037B31C 38 60 00 00 */ li r3, 0
-/* 8037F6C0 0037B320 48 00 00 08 */ b lbl_8037F6C8
-lbl_8037F6C4:
-/* 8037F6C4 0037B324 38 60 00 01 */ li r3, 1
-lbl_8037F6C8:
-/* 8037F6C8 0037B328 39 61 00 20 */ addi r11, r1, 0x20
-/* 8037F6CC 0037B32C 4B E4 7A A5 */ bl _restgpr_26
-/* 8037F6D0 0037B330 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8037F6D4 0037B334 7C 08 03 A6 */ mtlr r0
-/* 8037F6D8 0037B338 38 21 00 20 */ addi r1, r1, 0x20
-/* 8037F6DC 0037B33C 4E 80 00 20 */ blr
-/* 8037F6E0 0037B340 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8037F6E4 0037B344 7C 08 02 A6 */ mflr r0
-/* 8037F6E8 0037B348 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8037F6EC 0037B34C 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 8037F6F0 0037B350 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 8037F6F4 0037B354 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 8037F6F8 0037B358 7C 7D 1B 78 */ mr r29, r3
-/* 8037F6FC 0037B35C 4B FE E5 81 */ bl Shutdown__Q44nw4r3snd6detail10BasicSoundFv
-/* 8037F700 0037B360 83 DD 09 3C */ lwz r30, 0x93c(r29)
-/* 8037F704 0037B364 3B FE 00 10 */ addi r31, r30, 0x10
-/* 8037F708 0037B368 7F E3 FB 78 */ mr r3, r31
-/* 8037F70C 0037B36C 4B EF 02 3D */ bl func_8026F948
-/* 8037F710 0037B370 80 1E 00 04 */ lwz r0, 4(r30)
-/* 8037F714 0037B374 2C 00 00 00 */ cmpwi r0, 0
-/* 8037F718 0037B378 40 82 00 10 */ bne lbl_8037F728
-/* 8037F71C 0037B37C 7F E3 FB 78 */ mr r3, r31
-/* 8037F720 0037B380 4B EF 03 05 */ bl func_8026FA24
-/* 8037F724 0037B384 48 00 00 3C */ b lbl_8037F760
-lbl_8037F728:
-/* 8037F728 0037B388 38 7E 00 04 */ addi r3, r30, 4
-/* 8037F72C 0037B38C 38 9D 00 B8 */ addi r4, r29, 0xb8
-/* 8037F730 0037B390 4B FE 35 45 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
-/* 8037F734 0037B394 81 9D 00 00 */ lwz r12, 0(r29)
-/* 8037F738 0037B398 7F A3 EB 78 */ mr r3, r29
-/* 8037F73C 0037B39C 38 80 FF FF */ li r4, -1
-/* 8037F740 0037B3A0 81 8C 00 0C */ lwz r12, 0xc(r12)
-/* 8037F744 0037B3A4 7D 89 03 A6 */ mtctr r12
-/* 8037F748 0037B3A8 4E 80 04 21 */ bctrl
-/* 8037F74C 0037B3AC 7F C3 F3 78 */ mr r3, r30
-/* 8037F750 0037B3B0 7F A4 EB 78 */ mr r4, r29
-/* 8037F754 0037B3B4 4B FF 24 61 */ bl FreeImpl__Q44nw4r3snd6detail8PoolImplFPv
-/* 8037F758 0037B3B8 7F E3 FB 78 */ mr r3, r31
-/* 8037F75C 0037B3BC 4B EF 02 C9 */ bl func_8026FA24
-lbl_8037F760:
-/* 8037F760 0037B3C0 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8037F764 0037B3C4 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 8037F768 0037B3C8 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 8037F76C 0037B3CC 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 8037F770 0037B3D0 7C 08 03 A6 */ mtlr r0
-/* 8037F774 0037B3D4 38 21 00 20 */ addi r1, r1, 0x20
-/* 8037F778 0037B3D8 4E 80 00 20 */ blr
-/* 8037F77C 0037B3DC 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8037F780 0037B3E0 7C 08 02 A6 */ mflr r0
-/* 8037F784 0037B3E4 2C 03 00 00 */ cmpwi r3, 0
-/* 8037F788 0037B3E8 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8037F78C 0037B3EC 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8037F790 0037B3F0 7C 9F 23 78 */ mr r31, r4
-/* 8037F794 0037B3F4 93 C1 00 08 */ stw r30, 8(r1)
-/* 8037F798 0037B3F8 7C 7E 1B 78 */ mr r30, r3
-/* 8037F79C 0037B3FC 41 82 00 20 */ beq lbl_8037F7BC
-/* 8037F7A0 0037B400 38 80 FF FF */ li r4, -1
-/* 8037F7A4 0037B404 38 63 00 D8 */ addi r3, r3, 0xd8
-/* 8037F7A8 0037B408 4B FF DC BD */ bl __dt__Q44nw4r3snd6detail10StrmPlayerFv
-/* 8037F7AC 0037B40C 2C 1F 00 00 */ cmpwi r31, 0
-/* 8037F7B0 0037B410 40 81 00 0C */ ble lbl_8037F7BC
-/* 8037F7B4 0037B414 7F C3 F3 78 */ mr r3, r30
-/* 8037F7B8 0037B418 4B E5 B3 01 */ bl func_801DAAB8
-lbl_8037F7BC:
-/* 8037F7BC 0037B41C 7F C3 F3 78 */ mr r3, r30
-/* 8037F7C0 0037B420 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8037F7C4 0037B424 83 C1 00 08 */ lwz r30, 8(r1)
-/* 8037F7C8 0037B428 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8037F7CC 0037B42C 7C 08 03 A6 */ mtlr r0
-/* 8037F7D0 0037B430 38 21 00 10 */ addi r1, r1, 0x10
-/* 8037F7D4 0037B434 4E 80 00 20 */ blr
-/* 8037F7D8 0037B438 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8037F7DC 0037B43C 7C 08 02 A6 */ mflr r0
-/* 8037F7E0 0037B440 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8037F7E4 0037B444 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 8037F7E8 0037B448 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 8037F7EC 0037B44C 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 8037F7F0 0037B450 93 81 00 10 */ stw r28, 0x10(r1)
-/* 8037F7F4 0037B454 7C 7C 1B 78 */ mr r28, r3
-/* 8037F7F8 0037B458 4B FE E5 F5 */ bl SetPlayerPriority__Q44nw4r3snd6detail10BasicSoundFi
-/* 8037F7FC 0037B45C 88 7C 00 74 */ lbz r3, 0x74(r28)
-/* 8037F800 0037B460 80 1C 00 40 */ lwz r0, 0x40(r28)
-/* 8037F804 0037B464 7C 63 02 14 */ add r3, r3, r0
-/* 8037F808 0037B468 2C 03 00 7F */ cmpwi r3, 0x7f
-/* 8037F80C 0037B46C 40 81 00 0C */ ble lbl_8037F818
-/* 8037F810 0037B470 3B A0 00 7F */ li r29, 0x7f
-/* 8037F814 0037B474 48 00 00 0C */ b lbl_8037F820
-lbl_8037F818:
-/* 8037F818 0037B478 7C 60 FE 70 */ srawi r0, r3, 0x1f
-/* 8037F81C 0037B47C 7C 7D 00 78 */ andc r29, r3, r0
-lbl_8037F820:
-/* 8037F820 0037B480 83 DC 09 3C */ lwz r30, 0x93c(r28)
-/* 8037F824 0037B484 3B FE 00 10 */ addi r31, r30, 0x10
-/* 8037F828 0037B488 7F E3 FB 78 */ mr r3, r31
-/* 8037F82C 0037B48C 4B EF 01 1D */ bl func_8026F948
-/* 8037F830 0037B490 3B 9C 00 B8 */ addi r28, r28, 0xb8
-/* 8037F834 0037B494 38 7E 00 04 */ addi r3, r30, 4
-/* 8037F838 0037B498 7F 84 E3 78 */ mr r4, r28
-/* 8037F83C 0037B49C 4B FE 34 39 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
-/* 8037F840 0037B4A0 80 7E 00 08 */ lwz r3, 8(r30)
-/* 8037F844 0037B4A4 38 1E 00 08 */ addi r0, r30, 8
-/* 8037F848 0037B4A8 48 00 00 34 */ b lbl_8037F87C
-lbl_8037F84C:
-/* 8037F84C 0037B4AC 88 A3 FF BC */ lbz r5, -0x44(r3)
-/* 8037F850 0037B4B0 80 83 FF 88 */ lwz r4, -0x78(r3)
-/* 8037F854 0037B4B4 7C A5 22 14 */ add r5, r5, r4
-/* 8037F858 0037B4B8 2C 05 00 7F */ cmpwi r5, 0x7f
-/* 8037F85C 0037B4BC 40 81 00 0C */ ble lbl_8037F868
-/* 8037F860 0037B4C0 38 80 00 7F */ li r4, 0x7f
-/* 8037F864 0037B4C4 48 00 00 0C */ b lbl_8037F870
-lbl_8037F868:
-/* 8037F868 0037B4C8 7C A4 FE 70 */ srawi r4, r5, 0x1f
-/* 8037F86C 0037B4CC 7C A4 20 78 */ andc r4, r5, r4
-lbl_8037F870:
-/* 8037F870 0037B4D0 7C 1D 20 00 */ cmpw r29, r4
-/* 8037F874 0037B4D4 41 80 00 10 */ blt lbl_8037F884
-/* 8037F878 0037B4D8 80 63 00 00 */ lwz r3, 0(r3)
-lbl_8037F87C:
-/* 8037F87C 0037B4DC 7C 03 00 40 */ cmplw r3, r0
-/* 8037F880 0037B4E0 40 82 FF CC */ bne lbl_8037F84C
-lbl_8037F884:
-/* 8037F884 0037B4E4 90 61 00 08 */ stw r3, 8(r1)
-/* 8037F888 0037B4E8 7F 85 E3 78 */ mr r5, r28
-/* 8037F88C 0037B4EC 38 7E 00 04 */ addi r3, r30, 4
-/* 8037F890 0037B4F0 38 81 00 08 */ addi r4, r1, 8
-/* 8037F894 0037B4F4 4B FE 33 B5 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
-/* 8037F898 0037B4F8 7F E3 FB 78 */ mr r3, r31
-/* 8037F89C 0037B4FC 4B EF 01 89 */ bl func_8026FA24
-/* 8037F8A0 0037B500 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8037F8A4 0037B504 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 8037F8A8 0037B508 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 8037F8AC 0037B50C 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 8037F8B0 0037B510 83 81 00 10 */ lwz r28, 0x10(r1)
-/* 8037F8B4 0037B514 7C 08 03 A6 */ mtlr r0
-/* 8037F8B8 0037B518 38 21 00 20 */ addi r1, r1, 0x20
-/* 8037F8BC 0037B51C 4E 80 00 20 */ blr
-/* 8037F8C0 0037B520 80 63 09 38 */ lwz r3, 0x938(r3)
-/* 8037F8C4 0037B524 7C 03 00 D0 */ neg r0, r3
-/* 8037F8C8 0037B528 7C 00 1B 78 */ or r0, r0, r3
-/* 8037F8CC 0037B52C 54 03 0F FE */ srwi r3, r0, 0x1f
-/* 8037F8D0 0037B530 4E 80 00 20 */ blr
-/* 8037F8D4 0037B534 80 63 09 38 */ lwz r3, 0x938(r3)
-/* 8037F8D8 0037B538 48 00 00 30 */ b lbl_8037F908
-/* 8037F8DC 0037B53C 38 63 00 D8 */ addi r3, r3, 0xd8
-/* 8037F8E0 0037B540 4E 80 00 20 */ blr
-/* 8037F8E4 0037B544 38 63 00 D8 */ addi r3, r3, 0xd8
-/* 8037F8E8 0037B548 4E 80 00 20 */ blr
-/* 8037F8EC 0037B54C 88 63 01 93 */ lbz r3, 0x193(r3)
-/* 8037F8F0 0037B550 4E 80 00 20 */ blr
-/* 8037F8F4 0037B554 38 6D B2 88 */ addi r3, r13, lbl_80640548-_SDA_BASE_
-/* 8037F8F8 0037B558 4E 80 00 20 */ blr
-
-.global func_8037F8FC
-func_8037F8FC:
-/* 8037F8FC 0037B55C 38 0D B1 F0 */ addi r0, r13, lbl_806404B0-_SDA_BASE_
-/* 8037F900 0037B560 90 0D B2 88 */ stw r0, lbl_80640548-_SDA_BASE_(r13)
-/* 8037F904 0037B564 4E 80 00 20 */ blr
-lbl_8037F908:
-/* 8037F908 0037B568 80 83 00 00 */ lwz r4, 0(r3)
-/* 8037F90C 0037B56C 2C 04 00 00 */ cmpwi r4, 0
-/* 8037F910 0037B570 41 82 00 18 */ beq lbl_8037F928
-/* 8037F914 0037B574 80 04 09 38 */ lwz r0, 0x938(r4)
-/* 8037F918 0037B578 7C 00 18 40 */ cmplw r0, r3
-/* 8037F91C 0037B57C 40 82 00 0C */ bne lbl_8037F928
-/* 8037F920 0037B580 38 00 00 00 */ li r0, 0
-/* 8037F924 0037B584 90 04 09 38 */ stw r0, 0x938(r4)
-lbl_8037F928:
-/* 8037F928 0037B588 80 03 00 00 */ lwz r0, 0(r3)
-/* 8037F92C 0037B58C 2C 00 00 00 */ cmpwi r0, 0
-/* 8037F930 0037B590 4D 82 00 20 */ beqlr
-/* 8037F934 0037B594 38 00 00 00 */ li r0, 0
-/* 8037F938 0037B598 90 03 00 00 */ stw r0, 0(r3)
-/* 8037F93C 0037B59C 4E 80 00 20 */ blr
-
-.global func_8037F940
-func_8037F940:
-/* 8037F940 0037B5A0 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8037F944 0037B5A4 7C 08 02 A6 */ mflr r0
-/* 8037F948 0037B5A8 2C 03 00 00 */ cmpwi r3, 0
-/* 8037F94C 0037B5AC 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8037F950 0037B5B0 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8037F954 0037B5B4 7C 7F 1B 78 */ mr r31, r3
-/* 8037F958 0037B5B8 41 82 00 10 */ beq lbl_8037F968
-/* 8037F95C 0037B5BC 2C 04 00 00 */ cmpwi r4, 0
-/* 8037F960 0037B5C0 40 81 00 08 */ ble lbl_8037F968
-/* 8037F964 0037B5C4 4B E5 B1 55 */ bl func_801DAAB8
-lbl_8037F968:
-/* 8037F968 0037B5C8 7F E3 FB 78 */ mr r3, r31
-/* 8037F96C 0037B5CC 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8037F970 0037B5D0 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8037F974 0037B5D4 7C 08 03 A6 */ mtlr r0
-/* 8037F978 0037B5D8 38 21 00 10 */ addi r1, r1, 0x10
-/* 8037F97C 0037B5DC 4E 80 00 20 */ blr
-
-.global func_8037F980
-func_8037F980:
-/* 8037F980 0037B5E0 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8037F984 0037B5E4 7C 08 02 A6 */ mflr r0
-/* 8037F988 0037B5E8 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8037F98C 0037B5EC 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8037F990 0037B5F0 88 0D B2 90 */ lbz r0, lbl_80640550-_SDA_BASE_(r13)
-/* 8037F994 0037B5F4 7C 00 07 75 */ extsb. r0, r0
-/* 8037F998 0037B5F8 40 82 00 68 */ bne lbl_8037FA00
-/* 8037F99C 0037B5FC 3F E0 80 64 */ lis r31, lbl_8063CDA4@ha
-/* 8037F9A0 0037B600 3C 80 80 38 */ lis r4, lbl_8037FAD8@ha
-/* 8037F9A4 0037B604 3B FF CD A4 */ addi r31, r31, lbl_8063CDA4@l
-/* 8037F9A8 0037B608 3C A0 80 38 */ lis r5, lbl_8037FA80@ha
-/* 8037F9AC 0037B60C 7F E3 FB 78 */ mr r3, r31
-/* 8037F9B0 0037B610 38 84 FA D8 */ addi r4, r4, lbl_8037FAD8@l
-/* 8037F9B4 0037B614 38 A5 FA 80 */ addi r5, r5, lbl_8037FA80@l
-/* 8037F9B8 0037B618 38 C0 00 0C */ li r6, 0xc
-/* 8037F9BC 0037B61C 38 E0 00 03 */ li r7, 3
-/* 8037F9C0 0037B620 4B E4 74 A9 */ bl __construct_array
-/* 8037F9C4 0037B624 38 00 00 00 */ li r0, 0
-/* 8037F9C8 0037B628 38 7F 00 2C */ addi r3, r31, 0x2c
-/* 8037F9CC 0037B62C 90 1F 00 24 */ stw r0, 0x24(r31)
-/* 8037F9D0 0037B630 98 1F 00 28 */ stb r0, 0x28(r31)
-/* 8037F9D4 0037B634 4B EF 19 15 */ bl func_802712E8
-/* 8037F9D8 0037B638 38 7F 00 34 */ addi r3, r31, 0x34
-/* 8037F9DC 0037B63C 4B EF 19 0D */ bl func_802712E8
-/* 8037F9E0 0037B640 3C 80 80 38 */ lis r4, lbl_8037FA1C@ha
-/* 8037F9E4 0037B644 3C A0 80 64 */ lis r5, lbl_8063CD98@ha
-/* 8037F9E8 0037B648 7F E3 FB 78 */ mr r3, r31
-/* 8037F9EC 0037B64C 38 84 FA 1C */ addi r4, r4, lbl_8037FA1C@l
-/* 8037F9F0 0037B650 38 A5 CD 98 */ addi r5, r5, lbl_8063CD98@l
-/* 8037F9F4 0037B654 4B E4 72 55 */ bl __register_global_object_tmp
-/* 8037F9F8 0037B658 38 00 00 01 */ li r0, 1
-/* 8037F9FC 0037B65C 98 0D B2 90 */ stb r0, lbl_80640550-_SDA_BASE_(r13)
-lbl_8037FA00:
-/* 8037FA00 0037B660 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8037FA04 0037B664 3C 60 80 64 */ lis r3, lbl_8063CDA4@ha
-/* 8037FA08 0037B668 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8037FA0C 0037B66C 38 63 CD A4 */ addi r3, r3, lbl_8063CDA4@l
-/* 8037FA10 0037B670 7C 08 03 A6 */ mtlr r0
-/* 8037FA14 0037B674 38 21 00 10 */ addi r1, r1, 0x10
-/* 8037FA18 0037B678 4E 80 00 20 */ blr
-lbl_8037FA1C:
-/* 8037FA1C 0037B67C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8037FA20 0037B680 7C 08 02 A6 */ mflr r0
-/* 8037FA24 0037B684 2C 03 00 00 */ cmpwi r3, 0
-/* 8037FA28 0037B688 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8037FA2C 0037B68C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8037FA30 0037B690 7C 9F 23 78 */ mr r31, r4
-/* 8037FA34 0037B694 93 C1 00 08 */ stw r30, 8(r1)
-/* 8037FA38 0037B698 7C 7E 1B 78 */ mr r30, r3
-/* 8037FA3C 0037B69C 41 82 00 28 */ beq lbl_8037FA64
-/* 8037FA40 0037B6A0 3C 80 80 38 */ lis r4, lbl_8037FA80@ha
-/* 8037FA44 0037B6A4 38 A0 00 0C */ li r5, 0xc
-/* 8037FA48 0037B6A8 38 84 FA 80 */ addi r4, r4, lbl_8037FA80@l
-/* 8037FA4C 0037B6AC 38 C0 00 03 */ li r6, 3
-/* 8037FA50 0037B6B0 4B E4 75 11 */ bl __destroy_arr
-/* 8037FA54 0037B6B4 2C 1F 00 00 */ cmpwi r31, 0
-/* 8037FA58 0037B6B8 40 81 00 0C */ ble lbl_8037FA64
-/* 8037FA5C 0037B6BC 7F C3 F3 78 */ mr r3, r30
-/* 8037FA60 0037B6C0 4B E5 B0 59 */ bl func_801DAAB8
-lbl_8037FA64:
-/* 8037FA64 0037B6C4 7F C3 F3 78 */ mr r3, r30
-/* 8037FA68 0037B6C8 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8037FA6C 0037B6CC 83 C1 00 08 */ lwz r30, 8(r1)
-/* 8037FA70 0037B6D0 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8037FA74 0037B6D4 7C 08 03 A6 */ mtlr r0
-/* 8037FA78 0037B6D8 38 21 00 10 */ addi r1, r1, 0x10
-/* 8037FA7C 0037B6DC 4E 80 00 20 */ blr
-lbl_8037FA80:
-/* 8037FA80 0037B6E0 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8037FA84 0037B6E4 7C 08 02 A6 */ mflr r0
-/* 8037FA88 0037B6E8 2C 03 00 00 */ cmpwi r3, 0
-/* 8037FA8C 0037B6EC 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8037FA90 0037B6F0 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8037FA94 0037B6F4 7C 9F 23 78 */ mr r31, r4
-/* 8037FA98 0037B6F8 93 C1 00 08 */ stw r30, 8(r1)
-/* 8037FA9C 0037B6FC 7C 7E 1B 78 */ mr r30, r3
-/* 8037FAA0 0037B700 41 82 00 1C */ beq lbl_8037FABC
-/* 8037FAA4 0037B704 38 80 00 00 */ li r4, 0
-/* 8037FAA8 0037B708 4B FE 30 91 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
-/* 8037FAAC 0037B70C 2C 1F 00 00 */ cmpwi r31, 0
-/* 8037FAB0 0037B710 40 81 00 0C */ ble lbl_8037FABC
-/* 8037FAB4 0037B714 7F C3 F3 78 */ mr r3, r30
-/* 8037FAB8 0037B718 4B E5 B0 01 */ bl func_801DAAB8
-lbl_8037FABC:
-/* 8037FABC 0037B71C 7F C3 F3 78 */ mr r3, r30
-/* 8037FAC0 0037B720 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8037FAC4 0037B724 83 C1 00 08 */ lwz r30, 8(r1)
-/* 8037FAC8 0037B728 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8037FACC 0037B72C 7C 08 03 A6 */ mtlr r0
-/* 8037FAD0 0037B730 38 21 00 10 */ addi r1, r1, 0x10
-/* 8037FAD4 0037B734 4E 80 00 20 */ blr
-lbl_8037FAD8:
-/* 8037FAD8 0037B738 38 00 00 00 */ li r0, 0
-/* 8037FADC 0037B73C 38 83 00 04 */ addi r4, r3, 4
-/* 8037FAE0 0037B740 90 03 00 04 */ stw r0, 4(r3)
-/* 8037FAE4 0037B744 90 03 00 08 */ stw r0, 8(r3)
-/* 8037FAE8 0037B748 90 03 00 00 */ stw r0, 0(r3)
-/* 8037FAEC 0037B74C 90 83 00 04 */ stw r4, 4(r3)
-/* 8037FAF0 0037B750 90 83 00 08 */ stw r4, 8(r3)
-/* 8037FAF4 0037B754 4E 80 00 20 */ blr
-
-.global func_8037FAF8
-func_8037FAF8:
-/* 8037FAF8 0037B758 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8037FAFC 0037B75C 7C 08 02 A6 */ mflr r0
-/* 8037FB00 0037B760 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8037FB04 0037B764 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 8037FB08 0037B768 7C BF 2B 78 */ mr r31, r5
-/* 8037FB0C 0037B76C 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 8037FB10 0037B770 7C 9E 23 78 */ mr r30, r4
-/* 8037FB14 0037B774 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 8037FB18 0037B778 7C 7D 1B 78 */ mr r29, r3
-/* 8037FB1C 0037B77C 4B EE EC 41 */ bl OSDisableInterrupts
-/* 8037FB20 0037B780 1C 1F 00 0C */ mulli r0, r31, 0xc
-/* 8037FB24 0037B784 38 80 00 01 */ li r4, 1
-/* 8037FB28 0037B788 98 9E 00 0C */ stb r4, 0xc(r30)
-/* 8037FB2C 0037B78C 7C 7F 1B 78 */ mr r31, r3
-/* 8037FB30 0037B790 38 81 00 08 */ addi r4, r1, 8
-/* 8037FB34 0037B794 7C 7D 02 14 */ add r3, r29, r0
-/* 8037FB38 0037B798 38 03 00 04 */ addi r0, r3, 4
-/* 8037FB3C 0037B79C 38 BE 00 04 */ addi r5, r30, 4
-/* 8037FB40 0037B7A0 90 01 00 08 */ stw r0, 8(r1)
-/* 8037FB44 0037B7A4 4B FE 31 05 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
-/* 8037FB48 0037B7A8 38 7D 00 2C */ addi r3, r29, 0x2c
-/* 8037FB4C 0037B7AC 4B EF 29 15 */ bl func_80272460
-/* 8037FB50 0037B7B0 7F E3 FB 78 */ mr r3, r31
-/* 8037FB54 0037B7B4 4B EE EC 31 */ bl OSRestoreInterrupts
-/* 8037FB58 0037B7B8 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8037FB5C 0037B7BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 8037FB60 0037B7C0 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 8037FB64 0037B7C4 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 8037FB68 0037B7C8 7C 08 03 A6 */ mtlr r0
-/* 8037FB6C 0037B7CC 38 21 00 20 */ addi r1, r1, 0x20
-/* 8037FB70 0037B7D0 4E 80 00 20 */ blr
-
-.global func_8037FB74
-func_8037FB74:
-/* 8037FB74 0037B7D4 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 8037FB78 0037B7D8 7C 08 02 A6 */ mflr r0
-/* 8037FB7C 0037B7DC 90 01 00 34 */ stw r0, 0x34(r1)
-/* 8037FB80 0037B7E0 93 E1 00 2C */ stw r31, 0x2c(r1)
-/* 8037FB84 0037B7E4 93 C1 00 28 */ stw r30, 0x28(r1)
-/* 8037FB88 0037B7E8 93 A1 00 24 */ stw r29, 0x24(r1)
-/* 8037FB8C 0037B7EC 93 81 00 20 */ stw r28, 0x20(r1)
-/* 8037FB90 0037B7F0 7C 7C 1B 78 */ mr r28, r3
-/* 8037FB94 0037B7F4 4B EE EB C9 */ bl OSDisableInterrupts
-/* 8037FB98 0037B7F8 7C 7F 1B 78 */ mr r31, r3
-/* 8037FB9C 0037B7FC 4B EE EB C1 */ bl OSDisableInterrupts
-/* 8037FBA0 0037B800 80 1C 00 18 */ lwz r0, 0x18(r28)
-/* 8037FBA4 0037B804 7C 7E 1B 78 */ mr r30, r3
-/* 8037FBA8 0037B808 2C 00 00 00 */ cmpwi r0, 0
-/* 8037FBAC 0037B80C 40 82 00 10 */ bne lbl_8037FBBC
-/* 8037FBB0 0037B810 4B EE EB D5 */ bl OSRestoreInterrupts
-/* 8037FBB4 0037B814 3B C0 00 00 */ li r30, 0
-/* 8037FBB8 0037B818 48 00 00 24 */ b lbl_8037FBDC
-lbl_8037FBBC:
-/* 8037FBBC 0037B81C 83 BC 00 1C */ lwz r29, 0x1c(r28)
-/* 8037FBC0 0037B820 38 7C 00 18 */ addi r3, r28, 0x18
-/* 8037FBC4 0037B824 38 81 00 10 */ addi r4, r1, 0x10
-/* 8037FBC8 0037B828 93 A1 00 10 */ stw r29, 0x10(r1)
-/* 8037FBCC 0037B82C 4B FE 2F F1 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
-/* 8037FBD0 0037B830 7F C3 F3 78 */ mr r3, r30
-/* 8037FBD4 0037B834 4B EE EB B1 */ bl OSRestoreInterrupts
-/* 8037FBD8 0037B838 3B DD FF FC */ addi r30, r29, -4
-lbl_8037FBDC:
-/* 8037FBDC 0037B83C 2C 1E 00 00 */ cmpwi r30, 0
-/* 8037FBE0 0037B840 41 82 00 14 */ beq lbl_8037FBF4
-/* 8037FBE4 0037B844 7F E3 FB 78 */ mr r3, r31
-/* 8037FBE8 0037B848 4B EE EB 9D */ bl OSRestoreInterrupts
-/* 8037FBEC 0037B84C 7F C3 F3 78 */ mr r3, r30
-/* 8037FBF0 0037B850 48 00 00 C0 */ b lbl_8037FCB0
-lbl_8037FBF4:
-/* 8037FBF4 0037B854 4B EE EB 69 */ bl OSDisableInterrupts
-/* 8037FBF8 0037B858 80 1C 00 0C */ lwz r0, 0xc(r28)
-/* 8037FBFC 0037B85C 7C 7E 1B 78 */ mr r30, r3
-/* 8037FC00 0037B860 2C 00 00 00 */ cmpwi r0, 0
-/* 8037FC04 0037B864 40 82 00 10 */ bne lbl_8037FC14
-/* 8037FC08 0037B868 4B EE EB 7D */ bl OSRestoreInterrupts
-/* 8037FC0C 0037B86C 3B C0 00 00 */ li r30, 0
-/* 8037FC10 0037B870 48 00 00 24 */ b lbl_8037FC34
-lbl_8037FC14:
-/* 8037FC14 0037B874 83 BC 00 10 */ lwz r29, 0x10(r28)
-/* 8037FC18 0037B878 38 7C 00 0C */ addi r3, r28, 0xc
-/* 8037FC1C 0037B87C 38 81 00 0C */ addi r4, r1, 0xc
-/* 8037FC20 0037B880 93 A1 00 0C */ stw r29, 0xc(r1)
-/* 8037FC24 0037B884 4B FE 2F 99 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
-/* 8037FC28 0037B888 7F C3 F3 78 */ mr r3, r30
-/* 8037FC2C 0037B88C 4B EE EB 59 */ bl OSRestoreInterrupts
-/* 8037FC30 0037B890 3B DD FF FC */ addi r30, r29, -4
-lbl_8037FC34:
-/* 8037FC34 0037B894 2C 1E 00 00 */ cmpwi r30, 0
-/* 8037FC38 0037B898 41 82 00 14 */ beq lbl_8037FC4C
-/* 8037FC3C 0037B89C 7F E3 FB 78 */ mr r3, r31
-/* 8037FC40 0037B8A0 4B EE EB 45 */ bl OSRestoreInterrupts
-/* 8037FC44 0037B8A4 7F C3 F3 78 */ mr r3, r30
-/* 8037FC48 0037B8A8 48 00 00 68 */ b lbl_8037FCB0
-lbl_8037FC4C:
-/* 8037FC4C 0037B8AC 4B EE EB 11 */ bl OSDisableInterrupts
-/* 8037FC50 0037B8B0 80 1C 00 00 */ lwz r0, 0(r28)
-/* 8037FC54 0037B8B4 7C 7E 1B 78 */ mr r30, r3
-/* 8037FC58 0037B8B8 2C 00 00 00 */ cmpwi r0, 0
-/* 8037FC5C 0037B8BC 40 82 00 10 */ bne lbl_8037FC6C
-/* 8037FC60 0037B8C0 4B EE EB 25 */ bl OSRestoreInterrupts
-/* 8037FC64 0037B8C4 3B C0 00 00 */ li r30, 0
-/* 8037FC68 0037B8C8 48 00 00 24 */ b lbl_8037FC8C
-lbl_8037FC6C:
-/* 8037FC6C 0037B8CC 83 BC 00 04 */ lwz r29, 4(r28)
-/* 8037FC70 0037B8D0 7F 83 E3 78 */ mr r3, r28
-/* 8037FC74 0037B8D4 38 81 00 08 */ addi r4, r1, 8
-/* 8037FC78 0037B8D8 93 A1 00 08 */ stw r29, 8(r1)
-/* 8037FC7C 0037B8DC 4B FE 2F 41 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
-/* 8037FC80 0037B8E0 7F C3 F3 78 */ mr r3, r30
-/* 8037FC84 0037B8E4 4B EE EB 01 */ bl OSRestoreInterrupts
-/* 8037FC88 0037B8E8 3B DD FF FC */ addi r30, r29, -4
-lbl_8037FC8C:
-/* 8037FC8C 0037B8EC 2C 1E 00 00 */ cmpwi r30, 0
-/* 8037FC90 0037B8F0 41 82 00 14 */ beq lbl_8037FCA4
-/* 8037FC94 0037B8F4 7F E3 FB 78 */ mr r3, r31
-/* 8037FC98 0037B8F8 4B EE EA ED */ bl OSRestoreInterrupts
-/* 8037FC9C 0037B8FC 7F C3 F3 78 */ mr r3, r30
-/* 8037FCA0 0037B900 48 00 00 10 */ b lbl_8037FCB0
-lbl_8037FCA4:
-/* 8037FCA4 0037B904 7F E3 FB 78 */ mr r3, r31
-/* 8037FCA8 0037B908 4B EE EA DD */ bl OSRestoreInterrupts
-/* 8037FCAC 0037B90C 38 60 00 00 */ li r3, 0
-lbl_8037FCB0:
-/* 8037FCB0 0037B910 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 8037FCB4 0037B914 83 E1 00 2C */ lwz r31, 0x2c(r1)
-/* 8037FCB8 0037B918 83 C1 00 28 */ lwz r30, 0x28(r1)
-/* 8037FCBC 0037B91C 83 A1 00 24 */ lwz r29, 0x24(r1)
-/* 8037FCC0 0037B920 83 81 00 20 */ lwz r28, 0x20(r1)
-/* 8037FCC4 0037B924 7C 08 03 A6 */ mtlr r0
-/* 8037FCC8 0037B928 38 21 00 30 */ addi r1, r1, 0x30
-/* 8037FCCC 0037B92C 4E 80 00 20 */ blr
-
-.global func_8037FCD0
-func_8037FCD0:
-/* 8037FCD0 0037B930 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8037FCD4 0037B934 7C 08 02 A6 */ mflr r0
-/* 8037FCD8 0037B938 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8037FCDC 0037B93C 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 8037FCE0 0037B940 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 8037FCE4 0037B944 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 8037FCE8 0037B948 7C 7D 1B 78 */ mr r29, r3
-/* 8037FCEC 0037B94C 4B EE EA 71 */ bl OSDisableInterrupts
-/* 8037FCF0 0037B950 7C 7F 1B 78 */ mr r31, r3
-/* 8037FCF4 0037B954 4B EE EA 69 */ bl OSDisableInterrupts
-/* 8037FCF8 0037B958 80 1D 00 18 */ lwz r0, 0x18(r29)
-/* 8037FCFC 0037B95C 2C 00 00 00 */ cmpwi r0, 0
-/* 8037FD00 0037B960 40 82 00 10 */ bne lbl_8037FD10
-/* 8037FD04 0037B964 4B EE EA 81 */ bl OSRestoreInterrupts
-/* 8037FD08 0037B968 3B C0 00 00 */ li r30, 0
-/* 8037FD0C 0037B96C 48 00 00 10 */ b lbl_8037FD1C
-lbl_8037FD10:
-/* 8037FD10 0037B970 83 DD 00 1C */ lwz r30, 0x1c(r29)
-/* 8037FD14 0037B974 4B EE EA 71 */ bl OSRestoreInterrupts
-/* 8037FD18 0037B978 3B DE FF FC */ addi r30, r30, -4
-lbl_8037FD1C:
-/* 8037FD1C 0037B97C 2C 1E 00 00 */ cmpwi r30, 0
-/* 8037FD20 0037B980 41 82 00 14 */ beq lbl_8037FD34
-/* 8037FD24 0037B984 7F E3 FB 78 */ mr r3, r31
-/* 8037FD28 0037B988 4B EE EA 5D */ bl OSRestoreInterrupts
-/* 8037FD2C 0037B98C 7F C3 F3 78 */ mr r3, r30
-/* 8037FD30 0037B990 48 00 00 90 */ b lbl_8037FDC0
-lbl_8037FD34:
-/* 8037FD34 0037B994 4B EE EA 29 */ bl OSDisableInterrupts
-/* 8037FD38 0037B998 80 1D 00 0C */ lwz r0, 0xc(r29)
-/* 8037FD3C 0037B99C 2C 00 00 00 */ cmpwi r0, 0
-/* 8037FD40 0037B9A0 40 82 00 10 */ bne lbl_8037FD50
-/* 8037FD44 0037B9A4 4B EE EA 41 */ bl OSRestoreInterrupts
-/* 8037FD48 0037B9A8 3B C0 00 00 */ li r30, 0
-/* 8037FD4C 0037B9AC 48 00 00 10 */ b lbl_8037FD5C
-lbl_8037FD50:
-/* 8037FD50 0037B9B0 83 DD 00 10 */ lwz r30, 0x10(r29)
-/* 8037FD54 0037B9B4 4B EE EA 31 */ bl OSRestoreInterrupts
-/* 8037FD58 0037B9B8 3B DE FF FC */ addi r30, r30, -4
-lbl_8037FD5C:
-/* 8037FD5C 0037B9BC 2C 1E 00 00 */ cmpwi r30, 0
-/* 8037FD60 0037B9C0 41 82 00 14 */ beq lbl_8037FD74
-/* 8037FD64 0037B9C4 7F E3 FB 78 */ mr r3, r31
-/* 8037FD68 0037B9C8 4B EE EA 1D */ bl OSRestoreInterrupts
-/* 8037FD6C 0037B9CC 7F C3 F3 78 */ mr r3, r30
-/* 8037FD70 0037B9D0 48 00 00 50 */ b lbl_8037FDC0
-lbl_8037FD74:
-/* 8037FD74 0037B9D4 4B EE E9 E9 */ bl OSDisableInterrupts
-/* 8037FD78 0037B9D8 80 1D 00 00 */ lwz r0, 0(r29)
-/* 8037FD7C 0037B9DC 2C 00 00 00 */ cmpwi r0, 0
-/* 8037FD80 0037B9E0 40 82 00 10 */ bne lbl_8037FD90
-/* 8037FD84 0037B9E4 4B EE EA 01 */ bl OSRestoreInterrupts
-/* 8037FD88 0037B9E8 3B C0 00 00 */ li r30, 0
-/* 8037FD8C 0037B9EC 48 00 00 10 */ b lbl_8037FD9C
-lbl_8037FD90:
-/* 8037FD90 0037B9F0 83 DD 00 04 */ lwz r30, 4(r29)
-/* 8037FD94 0037B9F4 4B EE E9 F1 */ bl OSRestoreInterrupts
-/* 8037FD98 0037B9F8 3B DE FF FC */ addi r30, r30, -4
-lbl_8037FD9C:
-/* 8037FD9C 0037B9FC 2C 1E 00 00 */ cmpwi r30, 0
-/* 8037FDA0 0037BA00 41 82 00 14 */ beq lbl_8037FDB4
-/* 8037FDA4 0037BA04 7F E3 FB 78 */ mr r3, r31
-/* 8037FDA8 0037BA08 4B EE E9 DD */ bl OSRestoreInterrupts
-/* 8037FDAC 0037BA0C 7F C3 F3 78 */ mr r3, r30
-/* 8037FDB0 0037BA10 48 00 00 10 */ b lbl_8037FDC0
-lbl_8037FDB4:
-/* 8037FDB4 0037BA14 7F E3 FB 78 */ mr r3, r31
-/* 8037FDB8 0037BA18 4B EE E9 CD */ bl OSRestoreInterrupts
-/* 8037FDBC 0037BA1C 38 60 00 00 */ li r3, 0
-lbl_8037FDC0:
-/* 8037FDC0 0037BA20 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8037FDC4 0037BA24 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 8037FDC8 0037BA28 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 8037FDCC 0037BA2C 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 8037FDD0 0037BA30 7C 08 03 A6 */ mtlr r0
-/* 8037FDD4 0037BA34 38 21 00 20 */ addi r1, r1, 0x20
-/* 8037FDD8 0037BA38 4E 80 00 20 */ blr
-
-.global func_8037FDDC
-func_8037FDDC:
-/* 8037FDDC 0037BA3C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8037FDE0 0037BA40 7C 08 02 A6 */ mflr r0
-/* 8037FDE4 0037BA44 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8037FDE8 0037BA48 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 8037FDEC 0037BA4C 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 8037FDF0 0037BA50 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 8037FDF4 0037BA54 7C 7D 1B 78 */ mr r29, r3
-/* 8037FDF8 0037BA58 4B FF FD 7D */ bl func_8037FB74
-/* 8037FDFC 0037BA5C 2C 03 00 00 */ cmpwi r3, 0
-/* 8037FE00 0037BA60 7C 7E 1B 78 */ mr r30, r3
-/* 8037FE04 0037BA64 40 82 00 0C */ bne lbl_8037FE10
-/* 8037FE08 0037BA68 38 60 00 00 */ li r3, 0
-/* 8037FE0C 0037BA6C 48 00 00 30 */ b lbl_8037FE3C
-lbl_8037FE10:
-/* 8037FE10 0037BA70 90 7D 00 24 */ stw r3, 0x24(r29)
-/* 8037FE14 0037BA74 3B E0 00 00 */ li r31, 0
-/* 8037FE18 0037BA78 9B E3 00 0C */ stb r31, 0xc(r3)
-/* 8037FE1C 0037BA7C 81 83 00 00 */ lwz r12, 0(r3)
-/* 8037FE20 0037BA80 81 8C 00 0C */ lwz r12, 0xc(r12)
-/* 8037FE24 0037BA84 7D 89 03 A6 */ mtctr r12
-/* 8037FE28 0037BA88 4E 80 04 21 */ bctrl
-/* 8037FE2C 0037BA8C 93 FD 00 24 */ stw r31, 0x24(r29)
-/* 8037FE30 0037BA90 38 7D 00 34 */ addi r3, r29, 0x34
-/* 8037FE34 0037BA94 4B EF 26 2D */ bl func_80272460
-/* 8037FE38 0037BA98 7F C3 F3 78 */ mr r3, r30
-lbl_8037FE3C:
-/* 8037FE3C 0037BA9C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8037FE40 0037BAA0 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 8037FE44 0037BAA4 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 8037FE48 0037BAA8 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 8037FE4C 0037BAAC 7C 08 03 A6 */ mtlr r0
-/* 8037FE50 0037BAB0 38 21 00 20 */ addi r1, r1, 0x20
-/* 8037FE54 0037BAB4 4E 80 00 20 */ blr
-
-.global func_8037FE58
-func_8037FE58:
-/* 8037FE58 0037BAB8 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 8037FE5C 0037BABC 7C 08 02 A6 */ mflr r0
-/* 8037FE60 0037BAC0 90 01 00 34 */ stw r0, 0x34(r1)
-/* 8037FE64 0037BAC4 39 61 00 30 */ addi r11, r1, 0x30
-/* 8037FE68 0037BAC8 4B E4 72 B9 */ bl _savegpr_25
-/* 8037FE6C 0037BACC 7C 79 1B 78 */ mr r25, r3
-/* 8037FE70 0037BAD0 7C 9A 23 78 */ mr r26, r4
-/* 8037FE74 0037BAD4 4B EE E8 E9 */ bl OSDisableInterrupts
-/* 8037FE78 0037BAD8 80 19 00 24 */ lwz r0, 0x24(r25)
-/* 8037FE7C 0037BADC 7C 7E 1B 78 */ mr r30, r3
-/* 8037FE80 0037BAE0 7C 1A 00 40 */ cmplw r26, r0
-/* 8037FE84 0037BAE4 40 82 00 34 */ bne lbl_8037FEB8
-/* 8037FE88 0037BAE8 81 9A 00 00 */ lwz r12, 0(r26)
-/* 8037FE8C 0037BAEC 7F 43 D3 78 */ mr r3, r26
-/* 8037FE90 0037BAF0 81 8C 00 14 */ lwz r12, 0x14(r12)
-/* 8037FE94 0037BAF4 7D 89 03 A6 */ mtctr r12
-/* 8037FE98 0037BAF8 4E 80 04 21 */ bctrl
-/* 8037FE9C 0037BAFC 48 00 00 0C */ b lbl_8037FEA8
-lbl_8037FEA0:
-/* 8037FEA0 0037BB00 38 79 00 34 */ addi r3, r25, 0x34
-/* 8037FEA4 0037BB04 4B EF 24 D1 */ bl func_80272374
-lbl_8037FEA8:
-/* 8037FEA8 0037BB08 80 19 00 24 */ lwz r0, 0x24(r25)
-/* 8037FEAC 0037BB0C 7C 1A 00 40 */ cmplw r26, r0
-/* 8037FEB0 0037BB10 41 82 FF F0 */ beq lbl_8037FEA0
-/* 8037FEB4 0037BB14 48 00 00 74 */ b lbl_8037FF28
-lbl_8037FEB8:
-/* 8037FEB8 0037BB18 3B 60 00 00 */ li r27, 0
-/* 8037FEBC 0037BB1C 3B E0 00 00 */ li r31, 0
-/* 8037FEC0 0037BB20 3B A0 00 00 */ li r29, 0
-lbl_8037FEC4:
-/* 8037FEC4 0037BB24 7C 79 FA 14 */ add r3, r25, r31
-/* 8037FEC8 0037BB28 80 83 00 04 */ lwz r4, 4(r3)
-/* 8037FECC 0037BB2C 38 03 00 04 */ addi r0, r3, 4
-/* 8037FED0 0037BB30 48 00 00 40 */ b lbl_8037FF10
-lbl_8037FED4:
-/* 8037FED4 0037BB34 7C 9C 23 78 */ mr r28, r4
-/* 8037FED8 0037BB38 80 84 00 00 */ lwz r4, 0(r4)
-/* 8037FEDC 0037BB3C 38 BC FF FC */ addi r5, r28, -4
-/* 8037FEE0 0037BB40 7C 05 D0 40 */ cmplw r5, r26
-/* 8037FEE4 0037BB44 40 82 00 2C */ bne lbl_8037FF10
-/* 8037FEE8 0037BB48 93 81 00 08 */ stw r28, 8(r1)
-/* 8037FEEC 0037BB4C 38 81 00 08 */ addi r4, r1, 8
-/* 8037FEF0 0037BB50 4B FE 2C CD */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
-/* 8037FEF4 0037BB54 9B BC 00 08 */ stb r29, 8(r28)
-/* 8037FEF8 0037BB58 38 7C FF FC */ addi r3, r28, -4
-/* 8037FEFC 0037BB5C 81 9C FF FC */ lwz r12, -4(r28)
-/* 8037FF00 0037BB60 81 8C 00 10 */ lwz r12, 0x10(r12)
-/* 8037FF04 0037BB64 7D 89 03 A6 */ mtctr r12
-/* 8037FF08 0037BB68 4E 80 04 21 */ bctrl
-/* 8037FF0C 0037BB6C 48 00 00 0C */ b lbl_8037FF18
-lbl_8037FF10:
-/* 8037FF10 0037BB70 7C 04 00 40 */ cmplw r4, r0
-/* 8037FF14 0037BB74 40 82 FF C0 */ bne lbl_8037FED4
-lbl_8037FF18:
-/* 8037FF18 0037BB78 3B 7B 00 01 */ addi r27, r27, 1
-/* 8037FF1C 0037BB7C 3B FF 00 0C */ addi r31, r31, 0xc
-/* 8037FF20 0037BB80 2C 1B 00 03 */ cmpwi r27, 3
-/* 8037FF24 0037BB84 41 80 FF A0 */ blt lbl_8037FEC4
-lbl_8037FF28:
-/* 8037FF28 0037BB88 7F C3 F3 78 */ mr r3, r30
-/* 8037FF2C 0037BB8C 4B EE E8 59 */ bl OSRestoreInterrupts
-/* 8037FF30 0037BB90 39 61 00 30 */ addi r11, r1, 0x30
-/* 8037FF34 0037BB94 4B E4 72 39 */ bl _restgpr_25
-/* 8037FF38 0037BB98 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 8037FF3C 0037BB9C 7C 08 03 A6 */ mtlr r0
-/* 8037FF40 0037BBA0 38 21 00 30 */ addi r1, r1, 0x30
-/* 8037FF44 0037BBA4 4E 80 00 20 */ blr
-
-.global func_8037FF48
-func_8037FF48:
-/* 8037FF48 0037BBA8 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8037FF4C 0037BBAC 7C 08 02 A6 */ mflr r0
-/* 8037FF50 0037BBB0 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8037FF54 0037BBB4 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8037FF58 0037BBB8 93 C1 00 08 */ stw r30, 8(r1)
-/* 8037FF5C 0037BBBC 7C 7E 1B 78 */ mr r30, r3
-/* 8037FF60 0037BBC0 4B EE E7 FD */ bl OSDisableInterrupts
-/* 8037FF64 0037BBC4 38 00 00 00 */ li r0, 0
-/* 8037FF68 0037BBC8 7C 7F 1B 78 */ mr r31, r3
-/* 8037FF6C 0037BBCC 98 1E 00 28 */ stb r0, 0x28(r30)
-/* 8037FF70 0037BBD0 48 00 00 0C */ b lbl_8037FF7C
-lbl_8037FF74:
-/* 8037FF74 0037BBD4 38 7E 00 2C */ addi r3, r30, 0x2c
-/* 8037FF78 0037BBD8 4B EF 23 FD */ bl func_80272374
-lbl_8037FF7C:
-/* 8037FF7C 0037BBDC 7F C3 F3 78 */ mr r3, r30
-/* 8037FF80 0037BBE0 4B FF FD 51 */ bl func_8037FCD0
-/* 8037FF84 0037BBE4 2C 03 00 00 */ cmpwi r3, 0
-/* 8037FF88 0037BBE8 40 82 00 10 */ bne lbl_8037FF98
-/* 8037FF8C 0037BBEC 88 1E 00 28 */ lbz r0, 0x28(r30)
-/* 8037FF90 0037BBF0 2C 00 00 00 */ cmpwi r0, 0
-/* 8037FF94 0037BBF4 41 82 FF E0 */ beq lbl_8037FF74
-lbl_8037FF98:
-/* 8037FF98 0037BBF8 7F E3 FB 78 */ mr r3, r31
-/* 8037FF9C 0037BBFC 4B EE E7 E9 */ bl OSRestoreInterrupts
-/* 8037FFA0 0037BC00 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8037FFA4 0037BC04 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8037FFA8 0037BC08 83 C1 00 08 */ lwz r30, 8(r1)
-/* 8037FFAC 0037BC0C 7C 08 03 A6 */ mtlr r0
-/* 8037FFB0 0037BC10 38 21 00 10 */ addi r1, r1, 0x10
-/* 8037FFB4 0037BC14 4E 80 00 20 */ blr
-
-.global func_8037FFB8
-func_8037FFB8:
-/* 8037FFB8 0037BC18 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8037FFBC 0037BC1C 7C 08 02 A6 */ mflr r0
-/* 8037FFC0 0037BC20 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8037FFC4 0037BC24 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8037FFC8 0037BC28 93 C1 00 08 */ stw r30, 8(r1)
-/* 8037FFCC 0037BC2C 7C 7E 1B 78 */ mr r30, r3
-/* 8037FFD0 0037BC30 4B EE E7 8D */ bl OSDisableInterrupts
-/* 8037FFD4 0037BC34 38 00 00 01 */ li r0, 1
-/* 8037FFD8 0037BC38 7C 7F 1B 78 */ mr r31, r3
-/* 8037FFDC 0037BC3C 98 1E 00 28 */ stb r0, 0x28(r30)
-/* 8037FFE0 0037BC40 38 7E 00 2C */ addi r3, r30, 0x2c
-/* 8037FFE4 0037BC44 4B EF 24 7D */ bl func_80272460
-/* 8037FFE8 0037BC48 7F E3 FB 78 */ mr r3, r31
-/* 8037FFEC 0037BC4C 4B EE E7 99 */ bl OSRestoreInterrupts
-/* 8037FFF0 0037BC50 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8037FFF4 0037BC54 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8037FFF8 0037BC58 83 C1 00 08 */ lwz r30, 8(r1)
-/* 8037FFFC 0037BC5C 7C 08 03 A6 */ mtlr r0
-/* 80380000 0037BC60 38 21 00 10 */ addi r1, r1, 0x10
-/* 80380004 0037BC64 4E 80 00 20 */ blr
-
-.global func_80380008
-func_80380008:
-/* 80380008 0037BC68 38 00 00 00 */ li r0, 0
-/* 8038000C 0037BC6C 90 03 03 18 */ stw r0, 0x318(r3)
-/* 80380010 0037BC70 98 03 03 1C */ stb r0, 0x31c(r3)
-/* 80380014 0037BC74 98 03 03 1D */ stb r0, 0x31d(r3)
-/* 80380018 0037BC78 4E 80 00 20 */ blr
-
-.global lbl_8038001C
-lbl_8038001C:
-/* 8038001C 0037BC7C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80380020 0037BC80 7C 08 02 A6 */ mflr r0
-/* 80380024 0037BC84 2C 03 00 00 */ cmpwi r3, 0
-/* 80380028 0037BC88 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8038002C 0037BC8C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80380030 0037BC90 7C 9F 23 78 */ mr r31, r4
-/* 80380034 0037BC94 93 C1 00 08 */ stw r30, 8(r1)
-/* 80380038 0037BC98 7C 7E 1B 78 */ mr r30, r3
-/* 8038003C 0037BC9C 41 82 00 48 */ beq lbl_80380084
-/* 80380040 0037BCA0 88 03 03 1D */ lbz r0, 0x31d(r3)
-/* 80380044 0037BCA4 2C 00 00 00 */ cmpwi r0, 0
-/* 80380048 0037BCA8 41 82 00 2C */ beq lbl_80380074
-/* 8038004C 0037BCAC 41 82 00 28 */ beq lbl_80380074
-/* 80380050 0037BCB0 38 00 00 01 */ li r0, 1
-/* 80380054 0037BCB4 98 03 03 1C */ stb r0, 0x31c(r3)
-/* 80380058 0037BCB8 4B FF F9 29 */ bl func_8037F980
-/* 8038005C 0037BCBC 4B FF FF 5D */ bl func_8037FFB8
-/* 80380060 0037BCC0 7F C3 F3 78 */ mr r3, r30
-/* 80380064 0037BCC4 38 80 00 00 */ li r4, 0
-/* 80380068 0037BCC8 4B EF 1D A1 */ bl func_80271E08
-/* 8038006C 0037BCCC 38 00 00 00 */ li r0, 0
-/* 80380070 0037BCD0 98 1E 03 1D */ stb r0, 0x31d(r30)
-lbl_80380074:
-/* 80380074 0037BCD4 2C 1F 00 00 */ cmpwi r31, 0
-/* 80380078 0037BCD8 40 81 00 0C */ ble lbl_80380084
-/* 8038007C 0037BCDC 7F C3 F3 78 */ mr r3, r30
-/* 80380080 0037BCE0 4B E5 AA 39 */ bl func_801DAAB8
-lbl_80380084:
-/* 80380084 0037BCE4 7F C3 F3 78 */ mr r3, r30
-/* 80380088 0037BCE8 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8038008C 0037BCEC 83 C1 00 08 */ lwz r30, 8(r1)
-/* 80380090 0037BCF0 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80380094 0037BCF4 7C 08 03 A6 */ mtlr r0
-/* 80380098 0037BCF8 38 21 00 10 */ addi r1, r1, 0x10
-/* 8038009C 0037BCFC 4E 80 00 20 */ blr
-
-.global func_803800A0
-func_803800A0:
-/* 803800A0 0037BD00 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 803800A4 0037BD04 7C 08 02 A6 */ mflr r0
-/* 803800A8 0037BD08 90 01 00 24 */ stw r0, 0x24(r1)
-/* 803800AC 0037BD0C 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 803800B0 0037BD10 7C DF 33 78 */ mr r31, r6
-/* 803800B4 0037BD14 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 803800B8 0037BD18 7C BE 2B 78 */ mr r30, r5
-/* 803800BC 0037BD1C 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 803800C0 0037BD20 7C 9D 23 78 */ mr r29, r4
-/* 803800C4 0037BD24 93 81 00 10 */ stw r28, 0x10(r1)
-/* 803800C8 0037BD28 7C 7C 1B 78 */ mr r28, r3
-/* 803800CC 0037BD2C 88 03 03 1D */ lbz r0, 0x31d(r3)
-/* 803800D0 0037BD30 2C 00 00 00 */ cmpwi r0, 0
-/* 803800D4 0037BD34 41 82 00 2C */ beq lbl_80380100
-/* 803800D8 0037BD38 41 82 00 28 */ beq lbl_80380100
-/* 803800DC 0037BD3C 38 00 00 01 */ li r0, 1
-/* 803800E0 0037BD40 98 03 03 1C */ stb r0, 0x31c(r3)
-/* 803800E4 0037BD44 4B FF F8 9D */ bl func_8037F980
-/* 803800E8 0037BD48 4B FF FE D1 */ bl func_8037FFB8
-/* 803800EC 0037BD4C 7F 83 E3 78 */ mr r3, r28
-/* 803800F0 0037BD50 38 80 00 00 */ li r4, 0
-/* 803800F4 0037BD54 4B EF 1D 15 */ bl func_80271E08
-/* 803800F8 0037BD58 38 00 00 00 */ li r0, 0
-/* 803800FC 0037BD5C 98 1C 03 1D */ stb r0, 0x31d(r28)
-lbl_80380100:
-/* 80380100 0037BD60 3C 80 80 38 */ lis r4, lbl_80380174@ha
-/* 80380104 0037BD64 7F 83 E3 78 */ mr r3, r28
-/* 80380108 0037BD68 7F 85 E3 78 */ mr r5, r28
-/* 8038010C 0037BD6C 7F E7 FB 78 */ mr r7, r31
-/* 80380110 0037BD70 7F A8 EB 78 */ mr r8, r29
-/* 80380114 0037BD74 38 84 01 74 */ addi r4, r4, lbl_80380174@l
-/* 80380118 0037BD78 7C DE FA 14 */ add r6, r30, r31
-/* 8038011C 0037BD7C 39 20 00 00 */ li r9, 0
-/* 80380120 0037BD80 4B EF 17 C1 */ bl func_802718E0
-/* 80380124 0037BD84 2C 03 00 00 */ cmpwi r3, 0
-/* 80380128 0037BD88 40 82 00 0C */ bne lbl_80380134
-/* 8038012C 0037BD8C 38 60 00 00 */ li r3, 0
-/* 80380130 0037BD90 48 00 00 24 */ b lbl_80380154
-lbl_80380134:
-/* 80380134 0037BD94 38 80 00 00 */ li r4, 0
-/* 80380138 0037BD98 38 00 00 01 */ li r0, 1
-/* 8038013C 0037BD9C 93 DC 03 18 */ stw r30, 0x318(r28)
-/* 80380140 0037BDA0 7F 83 E3 78 */ mr r3, r28
-/* 80380144 0037BDA4 98 9C 03 1C */ stb r4, 0x31c(r28)
-/* 80380148 0037BDA8 98 1C 03 1D */ stb r0, 0x31d(r28)
-/* 8038014C 0037BDAC 4B EF 1D FD */ bl func_80271F48
-/* 80380150 0037BDB0 38 60 00 01 */ li r3, 1
-lbl_80380154:
-/* 80380154 0037BDB4 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80380158 0037BDB8 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 8038015C 0037BDBC 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 80380160 0037BDC0 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 80380164 0037BDC4 83 81 00 10 */ lwz r28, 0x10(r1)
-/* 80380168 0037BDC8 7C 08 03 A6 */ mtlr r0
-/* 8038016C 0037BDCC 38 21 00 20 */ addi r1, r1, 0x20
-/* 80380170 0037BDD0 4E 80 00 20 */ blr
-lbl_80380174:
-/* 80380174 0037BDD4 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80380178 0037BDD8 7C 08 02 A6 */ mflr r0
-/* 8038017C 0037BDDC 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80380180 0037BDE0 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80380184 0037BDE4 7C 7F 1B 78 */ mr r31, r3
-/* 80380188 0037BDE8 48 00 00 20 */ b lbl_803801A8
-lbl_8038018C:
-/* 8038018C 0037BDEC 4B FF F7 F5 */ bl func_8037F980
-/* 80380190 0037BDF0 4B FF FD B9 */ bl func_8037FF48
-/* 80380194 0037BDF4 88 1F 03 1C */ lbz r0, 0x31c(r31)
-/* 80380198 0037BDF8 2C 00 00 00 */ cmpwi r0, 0
-/* 8038019C 0037BDFC 40 82 00 18 */ bne lbl_803801B4
-/* 803801A0 0037BE00 4B FF F7 E1 */ bl func_8037F980
-/* 803801A4 0037BE04 4B FF FC 39 */ bl func_8037FDDC
-lbl_803801A8:
-/* 803801A8 0037BE08 88 1F 03 1C */ lbz r0, 0x31c(r31)
-/* 803801AC 0037BE0C 2C 00 00 00 */ cmpwi r0, 0
-/* 803801B0 0037BE10 41 82 FF DC */ beq lbl_8038018C
-lbl_803801B4:
-/* 803801B4 0037BE14 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 803801B8 0037BE18 38 60 00 00 */ li r3, 0
-/* 803801BC 0037BE1C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 803801C0 0037BE20 7C 08 03 A6 */ mtlr r0
-/* 803801C4 0037BE24 38 21 00 10 */ addi r1, r1, 0x10
-/* 803801C8 0037BE28 4E 80 00 20 */ blr
-
.global func_803801CC
func_803801CC:
/* 803801CC 0037BE2C 3C 80 80 45 */ lis r4, lbl_8044D02C@ha
diff --git a/obj_files.mk b/obj_files.mk
index 1bd123e..201a0da 100644
--- a/obj_files.mk
+++ b/obj_files.mk
@@ -152,6 +152,10 @@ TEXT_O_FILES := \
$(BUILD_DIR)/asm/nw4r/snd/detail/snd_StrmChannel.o \
$(BUILD_DIR)/asm/nw4r/snd/detail/snd_StrmFile.o \
$(BUILD_DIR)/asm/nw4r/snd/detail/snd_StrmPlayer.o \
+ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_StrmSound.o \
+ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_Task.o \
+ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_TaskManager.o \
+ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_TaskThread.o \
$(BUILD_DIR)/asm/text_10_6.o \
$(BUILD_DIR)/asm/text_11.o