diff options
| -rw-r--r-- | asm/ctors.s | 2 | ||||
| -rw-r--r-- | asm/nw4r/snd/detail/snd_SeqSound.s | 12 | ||||
| -rw-r--r-- | asm/nw4r/snd/detail/snd_StrmPlayer.s | 22 | ||||
| -rw-r--r-- | asm/nw4r/snd/detail/snd_StrmSound.s | 276 | ||||
| -rw-r--r-- | asm/nw4r/snd/detail/snd_Task.s | 23 | ||||
| -rw-r--r-- | asm/nw4r/snd/detail/snd_TaskManager.s | 490 | ||||
| -rw-r--r-- | asm/nw4r/snd/detail/snd_TaskThread.s | 136 | ||||
| -rw-r--r-- | asm/nw4r/snd/snd_SoundArchivePlayer.s | 2 | ||||
| -rw-r--r-- | asm/nw4r/snd/snd_SoundPlayer.s | 4 | ||||
| -rw-r--r-- | asm/nw4r/snd/snd_SoundSystem.s | 8 | ||||
| -rw-r--r-- | asm/text_10_6.s | 877 | ||||
| -rw-r--r-- | obj_files.mk | 4 | 
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 | 
