diff options
-rw-r--r-- | asm/NW4R/snd_Bank.s | 8 | ||||
-rw-r--r-- | asm/NW4R/snd_BasicSound.s | 2 | ||||
-rw-r--r-- | asm/NW4R/snd_Channel.s | 12 | ||||
-rw-r--r-- | asm/NW4R/snd_DvdSoundArchive.s | 447 | ||||
-rw-r--r-- | asm/NW4R/snd_EnvGenerator.s | 256 | ||||
-rw-r--r-- | asm/NW4R/snd_ExternalSoundPlayer.s | 73 | ||||
-rw-r--r-- | asm/NW4R/snd_FrameHeap.s | 446 | ||||
-rw-r--r-- | asm/text_10_4.s | 1215 | ||||
-rw-r--r-- | asm/text_11.s | 8 | ||||
-rw-r--r-- | asm/text_7.s | 6 | ||||
-rw-r--r-- | obj_files.mk | 4 |
11 files changed, 1263 insertions, 1214 deletions
diff --git a/asm/NW4R/snd_Bank.s b/asm/NW4R/snd_Bank.s index 198270f..cef7f7d 100644 --- a/asm/NW4R/snd_Bank.s +++ b/asm/NW4R/snd_Bank.s @@ -112,16 +112,16 @@ lbl_8036C978: /* 8036C9CC 0036862C C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8036C9D0 00368630 D0 03 00 B4 */ stfs f0, 0xb4(r3)
/* 8036C9D4 00368634 88 81 00 0C */ lbz r4, 0xc(r1)
-/* 8036C9D8 00368638 48 00 34 45 */ bl func_8036FE1C
+/* 8036C9D8 00368638 48 00 34 45 */ bl SetAttack__Q44nw4r3snd6detail12EnvGeneratorFi
/* 8036C9DC 0036863C 88 81 00 0D */ lbz r4, 0xd(r1)
/* 8036C9E0 00368640 7F E3 FB 78 */ mr r3, r31
-/* 8036C9E4 00368644 48 00 34 51 */ bl func_8036FE34
+/* 8036C9E4 00368644 48 00 34 51 */ bl SetDecay__Q44nw4r3snd6detail12EnvGeneratorFi
/* 8036C9E8 00368648 88 81 00 0E */ lbz r4, 0xe(r1)
/* 8036C9EC 0036864C 7F E3 FB 78 */ mr r3, r31
-/* 8036C9F0 00368650 48 00 34 E5 */ bl func_8036FED4
+/* 8036C9F0 00368650 48 00 34 E5 */ bl SetSustain__Q44nw4r3snd6detail12EnvGeneratorFi
/* 8036C9F4 00368654 88 81 00 0F */ lbz r4, 0xf(r1)
/* 8036C9F8 00368658 7F E3 FB 78 */ mr r3, r31
-/* 8036C9FC 0036865C 48 00 34 E1 */ bl func_8036FEDC
+/* 8036C9FC 0036865C 48 00 34 E1 */ bl SetRelease__Q44nw4r3snd6detail12EnvGeneratorFi
/* 8036CA00 00368660 88 A1 00 11 */ lbz r5, 0x11(r1)
/* 8036CA04 00368664 7F E3 FB 78 */ mr r3, r31
/* 8036CA08 00368668 80 1E 00 10 */ lwz r0, 0x10(r30)
diff --git a/asm/NW4R/snd_BasicSound.s b/asm/NW4R/snd_BasicSound.s index 45cbd4f..874a22d 100644 --- a/asm/NW4R/snd_BasicSound.s +++ b/asm/NW4R/snd_BasicSound.s @@ -965,7 +965,7 @@ lbl_8036DD70: /* 8036DD8C 003699EC 2C 03 00 00 */ cmpwi r3, 0
/* 8036DD90 003699F0 41 82 00 0C */ beq lbl_8036DD9C
/* 8036DD94 003699F4 7F C4 F3 78 */ mr r4, r30
-/* 8036DD98 003699F8 48 00 22 31 */ bl func_8036FFC8
+/* 8036DD98 003699F8 48 00 22 31 */ bl RemoveSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
lbl_8036DD9C:
/* 8036DD9C 003699FC 80 7E 00 20 */ lwz r3, 0x20(r30)
/* 8036DDA0 00369A00 2C 03 00 00 */ cmpwi r3, 0
diff --git a/asm/NW4R/snd_Channel.s b/asm/NW4R/snd_Channel.s index 5726f81..0f9fab0 100644 --- a/asm/NW4R/snd_Channel.s +++ b/asm/NW4R/snd_Channel.s @@ -219,7 +219,7 @@ InitParam__Q44nw4r3snd6detail7ChannelFPFPQ44nw4r3snd6detail7ChannelQ54nw4r3snd6d /* 8036E490 0036A0F0 D0 03 00 9C */ stfs f0, 0x9c(r3)
/* 8036E494 0036A0F4 93 E3 00 A4 */ stw r31, 0xa4(r3)
/* 8036E498 0036A0F8 93 E3 00 A0 */ stw r31, 0xa0(r3)
-/* 8036E49C 0036A0FC 48 00 17 DD */ bl func_8036FC78
+/* 8036E49C 0036A0FC 48 00 17 DD */ bl Init__Q44nw4r3snd6detail12EnvGeneratorFf
/* 8036E4A0 0036A100 38 7E 00 18 */ addi r3, r30, 0x18
/* 8036E4A4 0036A104 48 00 37 59 */ bl func_80371BFC
/* 8036E4A8 0036A108 9B FE 00 30 */ stb r31, 0x30(r30)
@@ -317,7 +317,7 @@ lbl_8036E5E4: /* 8036E5FC 0036A25C C3 A2 A5 C4 */ lfs f29, lbl_80642BC4-_SDA2_BASE_(r2)
/* 8036E600 0036A260 EC 01 00 24 */ fdivs f0, f1, f0
/* 8036E604 0036A264 EF DE 00 32 */ fmuls f30, f30, f0
-/* 8036E608 0036A268 48 00 16 C5 */ bl func_8036FCCC
+/* 8036E608 0036A268 48 00 16 C5 */ bl GetValue__Q44nw4r3snd6detail12EnvGeneratorCFv
/* 8036E60C 0036A26C 48 01 4B 2D */ bl func_80383138
/* 8036E610 0036A270 88 1E 00 30 */ lbz r0, 0x30(r30)
/* 8036E614 0036A274 EF BD 00 72 */ fmuls f29, f29, f1
@@ -621,14 +621,14 @@ lbl_8036EA78: /* 8036EA80 0036A6E0 48 00 31 B5 */ bl func_80371C34
/* 8036EA84 0036A6E4 7F C3 F3 78 */ mr r3, r30
/* 8036EA88 0036A6E8 38 80 00 03 */ li r4, 3
-/* 8036EA8C 0036A6EC 48 00 12 6D */ bl func_8036FCF8
+/* 8036EA8C 0036A6EC 48 00 12 6D */ bl Update__Q44nw4r3snd6detail12EnvGeneratorFi
lbl_8036EA90:
/* 8036EA90 0036A6F0 38 7E 00 18 */ addi r3, r30, 0x18
/* 8036EA94 0036A6F4 48 00 32 3D */ bl func_80371CD0
/* 8036EA98 0036A6F8 FE E0 08 90 */ fmr f23, f1
/* 8036EA9C 0036A6FC C2 82 A5 C4 */ lfs f20, lbl_80642BC4-_SDA2_BASE_(r2)
/* 8036EAA0 0036A700 7F C3 F3 78 */ mr r3, r30
-/* 8036EAA4 0036A704 48 00 12 29 */ bl func_8036FCCC
+/* 8036EAA4 0036A704 48 00 12 29 */ bl GetValue__Q44nw4r3snd6detail12EnvGeneratorCFv
/* 8036EAA8 0036A708 48 01 46 91 */ bl func_80383138
/* 8036EAAC 0036A70C 88 1E 00 30 */ lbz r0, 0x30(r30)
/* 8036EAB0 0036A710 EE 94 00 72 */ fmuls f20, f20, f1
@@ -760,7 +760,7 @@ Start__Q44nw4r3snd6detail7ChannelFRCQ44nw4r3snd6detail8WaveDataiUl: /* 8036EC8C 0036A8EC 48 00 2F 95 */ bl func_80371C20
/* 8036EC90 0036A8F0 C0 22 A5 E8 */ lfs f1, lbl_80642BE8-_SDA2_BASE_(r2)
/* 8036EC94 0036A8F4 7F A3 EB 78 */ mr r3, r29
-/* 8036EC98 0036A8F8 48 00 10 1D */ bl func_8036FCB4
+/* 8036EC98 0036A8F8 48 00 10 1D */ bl Reset__Q44nw4r3snd6detail12EnvGeneratorFf
/* 8036EC9C 0036A8FC 38 00 00 00 */ li r0, 0
/* 8036ECA0 0036A900 80 7D 00 DC */ lwz r3, 0xdc(r29)
/* 8036ECA4 0036A904 90 1D 00 A0 */ stw r0, 0xa0(r29)
@@ -1062,7 +1062,7 @@ lbl_8036F090: /* 8036F0BC 0036AD1C 48 00 00 4C */ b lbl_8036F108
lbl_8036F0C0:
/* 8036F0C0 0036AD20 41 82 00 48 */ beq lbl_8036F108
-/* 8036F0C4 0036AD24 48 00 0B 75 */ bl func_8036FC38
+/* 8036F0C4 0036AD24 48 00 0B 75 */ bl __ct__Q44nw4r3snd6detail12EnvGeneratorFv
/* 8036F0C8 0036AD28 38 7A 00 18 */ addi r3, r26, 0x18
/* 8036F0CC 0036AD2C 48 00 2B 31 */ bl func_80371BFC
/* 8036F0D0 0036AD30 38 00 00 00 */ li r0, 0
diff --git a/asm/NW4R/snd_DvdSoundArchive.s b/asm/NW4R/snd_DvdSoundArchive.s new file mode 100644 index 0000000..d3d425f --- /dev/null +++ b/asm/NW4R/snd_DvdSoundArchive.s @@ -0,0 +1,447 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global func_8036F688
+func_8036F688:
+/* 8036F688 0036B2E8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8036F68C 0036B2EC 7C 08 02 A6 */ mflr r0
+/* 8036F690 0036B2F0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8036F694 0036B2F4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8036F698 0036B2F8 7C 7F 1B 78 */ mr r31, r3
+/* 8036F69C 0036B2FC 48 00 78 F1 */ bl func_80376F8C
+/* 8036F6A0 0036B300 3C 80 80 45 */ lis r4, lbl_8044CA08@ha
+/* 8036F6A4 0036B304 38 7F 01 08 */ addi r3, r31, 0x108
+/* 8036F6A8 0036B308 38 84 CA 08 */ addi r4, r4, lbl_8044CA08@l
+/* 8036F6AC 0036B30C 90 9F 00 00 */ stw r4, 0(r31)
+/* 8036F6B0 0036B310 48 00 7E CD */ bl GLXMemoryInfo___ct
+/* 8036F6B4 0036B314 38 00 00 00 */ li r0, 0
+/* 8036F6B8 0036B318 7F E3 FB 78 */ mr r3, r31
+/* 8036F6BC 0036B31C 98 1F 01 88 */ stb r0, 0x188(r31)
+/* 8036F6C0 0036B320 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8036F6C4 0036B324 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8036F6C8 0036B328 7C 08 03 A6 */ mtlr r0
+/* 8036F6CC 0036B32C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8036F6D0 0036B330 4E 80 00 20 */ blr
+
+.global func_8036F6D4
+func_8036F6D4:
+/* 8036F6D4 0036B334 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8036F6D8 0036B338 7C 08 02 A6 */ mflr r0
+/* 8036F6DC 0036B33C 2C 03 00 00 */ cmpwi r3, 0
+/* 8036F6E0 0036B340 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8036F6E4 0036B344 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8036F6E8 0036B348 7C 9F 23 78 */ mr r31, r4
+/* 8036F6EC 0036B34C 93 C1 00 08 */ stw r30, 8(r1)
+/* 8036F6F0 0036B350 7C 7E 1B 78 */ mr r30, r3
+/* 8036F6F4 0036B354 41 82 00 44 */ beq lbl_8036F738
+/* 8036F6F8 0036B358 3C 80 80 45 */ lis r4, lbl_8044CA08@ha
+/* 8036F6FC 0036B35C 38 84 CA 08 */ addi r4, r4, lbl_8044CA08@l
+/* 8036F700 0036B360 90 83 00 00 */ stw r4, 0(r3)
+/* 8036F704 0036B364 38 63 01 4C */ addi r3, r3, 0x14c
+/* 8036F708 0036B368 4B F1 85 D1 */ bl func_80287CD8
+/* 8036F70C 0036B36C 38 00 00 00 */ li r0, 0
+/* 8036F710 0036B370 7F C3 F3 78 */ mr r3, r30
+/* 8036F714 0036B374 98 1E 01 88 */ stb r0, 0x188(r30)
+/* 8036F718 0036B378 48 00 78 F5 */ bl func_8037700C
+/* 8036F71C 0036B37C 7F C3 F3 78 */ mr r3, r30
+/* 8036F720 0036B380 38 80 00 00 */ li r4, 0
+/* 8036F724 0036B384 48 00 78 8D */ bl func_80376FB0
+/* 8036F728 0036B388 2C 1F 00 00 */ cmpwi r31, 0
+/* 8036F72C 0036B38C 40 81 00 0C */ ble lbl_8036F738
+/* 8036F730 0036B390 7F C3 F3 78 */ mr r3, r30
+/* 8036F734 0036B394 4B E6 B3 85 */ bl func_801DAAB8
+lbl_8036F738:
+/* 8036F738 0036B398 7F C3 F3 78 */ mr r3, r30
+/* 8036F73C 0036B39C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8036F740 0036B3A0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8036F744 0036B3A4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8036F748 0036B3A8 7C 08 03 A6 */ mtlr r0
+/* 8036F74C 0036B3AC 38 21 00 10 */ addi r1, r1, 0x10
+/* 8036F750 0036B3B0 4E 80 00 20 */ blr
+
+.global func_8036F754
+func_8036F754:
+/* 8036F754 0036B3B4 94 21 FE 80 */ stwu r1, -0x180(r1)
+/* 8036F758 0036B3B8 7C 08 02 A6 */ mflr r0
+/* 8036F75C 0036B3BC 90 01 01 84 */ stw r0, 0x184(r1)
+/* 8036F760 0036B3C0 93 E1 01 7C */ stw r31, 0x17c(r1)
+/* 8036F764 0036B3C4 93 C1 01 78 */ stw r30, 0x178(r1)
+/* 8036F768 0036B3C8 93 A1 01 74 */ stw r29, 0x174(r1)
+/* 8036F76C 0036B3CC 7C 9D 23 78 */ mr r29, r4
+/* 8036F770 0036B3D0 93 81 01 70 */ stw r28, 0x170(r1)
+/* 8036F774 0036B3D4 7C 7C 1B 78 */ mr r28, r3
+/* 8036F778 0036B3D8 7F A3 EB 78 */ mr r3, r29
+/* 8036F77C 0036B3DC 4B F1 7F 41 */ bl func_802876BC
+/* 8036F780 0036B3E0 2C 03 00 00 */ cmpwi r3, 0
+/* 8036F784 0036B3E4 40 80 00 0C */ bge lbl_8036F790
+/* 8036F788 0036B3E8 38 60 00 00 */ li r3, 0
+/* 8036F78C 0036B3EC 48 00 01 08 */ b lbl_8036F894
+lbl_8036F790:
+/* 8036F790 0036B3F0 38 9C 01 4C */ addi r4, r28, 0x14c
+/* 8036F794 0036B3F4 4B F1 82 31 */ bl func_802879C4
+/* 8036F798 0036B3F8 2C 03 00 00 */ cmpwi r3, 0
+/* 8036F79C 0036B3FC 40 82 00 0C */ bne lbl_8036F7A8
+/* 8036F7A0 0036B400 38 00 00 00 */ li r0, 0
+/* 8036F7A4 0036B404 48 00 00 74 */ b lbl_8036F818
+lbl_8036F7A8:
+/* 8036F7A8 0036B408 38 60 00 01 */ li r3, 1
+/* 8036F7AC 0036B40C 98 7C 01 88 */ stb r3, 0x188(r28)
+/* 8036F7B0 0036B410 88 0D B2 08 */ lbz r0, lbl_806404C8-_SDA_BASE_(r13)
+/* 8036F7B4 0036B414 7C 00 07 75 */ extsb. r0, r0
+/* 8036F7B8 0036B418 40 82 00 10 */ bne lbl_8036F7C8
+/* 8036F7BC 0036B41C 38 00 00 40 */ li r0, 0x40
+/* 8036F7C0 0036B420 98 6D B2 08 */ stb r3, lbl_806404C8-_SDA_BASE_(r13)
+/* 8036F7C4 0036B424 90 02 AA 40 */ stw r0, lbl_80643040-_SDA2_BASE_(r2)
+lbl_8036F7C8:
+/* 8036F7C8 0036B428 38 01 00 27 */ addi r0, r1, 0x27
+/* 8036F7CC 0036B42C 83 C2 AA 40 */ lwz r30, lbl_80643040-_SDA2_BASE_(r2)
+/* 8036F7D0 0036B430 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a
+/* 8036F7D4 0036B434 38 7C 01 4C */ addi r3, r28, 0x14c
+/* 8036F7D8 0036B438 7F E4 FB 78 */ mr r4, r31
+/* 8036F7DC 0036B43C 7F C5 F3 78 */ mr r5, r30
+/* 8036F7E0 0036B440 38 C0 00 00 */ li r6, 0
+/* 8036F7E4 0036B444 38 E0 00 02 */ li r7, 2
+/* 8036F7E8 0036B448 4B F1 87 BD */ bl func_80287FA4
+/* 8036F7EC 0036B44C 7C 03 F0 40 */ cmplw r3, r30
+/* 8036F7F0 0036B450 41 82 00 0C */ beq lbl_8036F7FC
+/* 8036F7F4 0036B454 38 00 00 00 */ li r0, 0
+/* 8036F7F8 0036B458 48 00 00 20 */ b lbl_8036F818
+lbl_8036F7FC:
+/* 8036F7FC 0036B45C 7F E4 FB 78 */ mr r4, r31
+/* 8036F800 0036B460 38 7C 01 08 */ addi r3, r28, 0x108
+/* 8036F804 0036B464 48 00 7D 9D */ bl func_803775A0
+/* 8036F808 0036B468 7F 83 E3 78 */ mr r3, r28
+/* 8036F80C 0036B46C 38 9C 01 08 */ addi r4, r28, 0x108
+/* 8036F810 0036B470 48 00 77 F5 */ bl func_80377004
+/* 8036F814 0036B474 38 00 00 01 */ li r0, 1
+lbl_8036F818:
+/* 8036F818 0036B478 2C 00 00 00 */ cmpwi r0, 0
+/* 8036F81C 0036B47C 40 82 00 0C */ bne lbl_8036F828
+/* 8036F820 0036B480 38 60 00 00 */ li r3, 0
+/* 8036F824 0036B484 48 00 00 70 */ b lbl_8036F894
+lbl_8036F828:
+/* 8036F828 0036B488 7F A3 EB 78 */ mr r3, r29
+/* 8036F82C 0036B48C 4B E5 73 39 */ bl strlen
+/* 8036F830 0036B490 37 C3 FF FF */ addic. r30, r3, -1
+/* 8036F834 0036B494 38 1E 00 01 */ addi r0, r30, 1
+/* 8036F838 0036B498 7C 7D F2 14 */ add r3, r29, r30
+/* 8036F83C 0036B49C 7C 09 03 A6 */ mtctr r0
+/* 8036F840 0036B4A0 41 80 00 50 */ blt lbl_8036F890
+lbl_8036F844:
+/* 8036F844 0036B4A4 88 03 00 00 */ lbz r0, 0(r3)
+/* 8036F848 0036B4A8 7C 00 07 74 */ extsb r0, r0
+/* 8036F84C 0036B4AC 2C 00 00 2F */ cmpwi r0, 0x2f
+/* 8036F850 0036B4B0 41 82 00 0C */ beq lbl_8036F85C
+/* 8036F854 0036B4B4 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 8036F858 0036B4B8 40 82 00 2C */ bne lbl_8036F884
+lbl_8036F85C:
+/* 8036F85C 0036B4BC 7F A4 EB 78 */ mr r4, r29
+/* 8036F860 0036B4C0 7F C5 F3 78 */ mr r5, r30
+/* 8036F864 0036B4C4 38 61 00 70 */ addi r3, r1, 0x70
+/* 8036F868 0036B4C8 4B E5 EB 29 */ bl func_801CE390
+/* 8036F86C 0036B4CC 38 81 00 70 */ addi r4, r1, 0x70
+/* 8036F870 0036B4D0 38 00 00 00 */ li r0, 0
+/* 8036F874 0036B4D4 7C 04 F1 AE */ stbx r0, r4, r30
+/* 8036F878 0036B4D8 7F 83 E3 78 */ mr r3, r28
+/* 8036F87C 0036B4DC 48 00 7C 85 */ bl func_80377500
+/* 8036F880 0036B4E0 48 00 00 10 */ b lbl_8036F890
+lbl_8036F884:
+/* 8036F884 0036B4E4 3B DE FF FF */ addi r30, r30, -1
+/* 8036F888 0036B4E8 38 63 FF FF */ addi r3, r3, -1
+/* 8036F88C 0036B4EC 42 00 FF B8 */ bdnz lbl_8036F844
+lbl_8036F890:
+/* 8036F890 0036B4F0 38 60 00 01 */ li r3, 1
+lbl_8036F894:
+/* 8036F894 0036B4F4 80 01 01 84 */ lwz r0, 0x184(r1)
+/* 8036F898 0036B4F8 83 E1 01 7C */ lwz r31, 0x17c(r1)
+/* 8036F89C 0036B4FC 83 C1 01 78 */ lwz r30, 0x178(r1)
+/* 8036F8A0 0036B500 83 A1 01 74 */ lwz r29, 0x174(r1)
+/* 8036F8A4 0036B504 83 81 01 70 */ lwz r28, 0x170(r1)
+/* 8036F8A8 0036B508 7C 08 03 A6 */ mtlr r0
+/* 8036F8AC 0036B50C 38 21 01 80 */ addi r1, r1, 0x180
+/* 8036F8B0 0036B510 4E 80 00 20 */ blr
+
+.global func_8036F8B4
+func_8036F8B4:
+/* 8036F8B4 0036B514 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8036F8B8 0036B518 7C 08 02 A6 */ mflr r0
+/* 8036F8BC 0036B51C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8036F8C0 0036B520 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8036F8C4 0036B524 7C 7F 1B 78 */ mr r31, r3
+/* 8036F8C8 0036B528 38 63 01 4C */ addi r3, r3, 0x14c
+/* 8036F8CC 0036B52C 4B F1 84 0D */ bl func_80287CD8
+/* 8036F8D0 0036B530 38 00 00 00 */ li r0, 0
+/* 8036F8D4 0036B534 7F E3 FB 78 */ mr r3, r31
+/* 8036F8D8 0036B538 98 1F 01 88 */ stb r0, 0x188(r31)
+/* 8036F8DC 0036B53C 48 00 77 31 */ bl func_8037700C
+/* 8036F8E0 0036B540 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8036F8E4 0036B544 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8036F8E8 0036B548 7C 08 03 A6 */ mtlr r0
+/* 8036F8EC 0036B54C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8036F8F0 0036B550 4E 80 00 20 */ blr
+
+.global func_8036F8F4
+func_8036F8F4:
+/* 8036F8F4 0036B554 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8036F8F8 0036B558 7C 08 02 A6 */ mflr r0
+/* 8036F8FC 0036B55C 7C 68 1B 78 */ mr r8, r3
+/* 8036F900 0036B560 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8036F904 0036B564 88 03 01 88 */ lbz r0, 0x188(r3)
+/* 8036F908 0036B568 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8036F90C 0036B56C 7C FF 3B 78 */ mr r31, r7
+/* 8036F910 0036B570 2C 00 00 00 */ cmpwi r0, 0
+/* 8036F914 0036B574 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8036F918 0036B578 7C DE 33 78 */ mr r30, r6
+/* 8036F91C 0036B57C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8036F920 0036B580 7C 9D 23 78 */ mr r29, r4
+/* 8036F924 0036B584 40 82 00 0C */ bne lbl_8036F930
+/* 8036F928 0036B588 38 60 00 00 */ li r3, 0
+/* 8036F92C 0036B58C 48 00 00 64 */ b lbl_8036F990
+lbl_8036F930:
+/* 8036F930 0036B590 28 05 00 78 */ cmplwi r5, 0x78
+/* 8036F934 0036B594 40 80 00 0C */ bge lbl_8036F940
+/* 8036F938 0036B598 38 60 00 00 */ li r3, 0
+/* 8036F93C 0036B59C 48 00 00 54 */ b lbl_8036F990
+lbl_8036F940:
+/* 8036F940 0036B5A0 2C 04 00 00 */ cmpwi r4, 0
+/* 8036F944 0036B5A4 41 82 00 48 */ beq lbl_8036F98C
+/* 8036F948 0036B5A8 7F A3 EB 78 */ mr r3, r29
+/* 8036F94C 0036B5AC 38 88 01 4C */ addi r4, r8, 0x14c
+/* 8036F950 0036B5B0 38 A0 00 00 */ li r5, 0
+/* 8036F954 0036B5B4 4B FF 43 51 */ bl __ct__Q34nw4r2ut19DvdLockedFileStreamFPC11DVDFileInfob
+/* 8036F958 0036B5B8 3C 60 80 45 */ lis r3, lbl_8044C9A0@ha
+/* 8036F95C 0036B5BC 2C 1F 00 00 */ cmpwi r31, 0
+/* 8036F960 0036B5C0 38 63 C9 A0 */ addi r3, r3, lbl_8044C9A0@l
+/* 8036F964 0036B5C4 93 DD 00 70 */ stw r30, 0x70(r29)
+/* 8036F968 0036B5C8 90 7D 00 00 */ stw r3, 0(r29)
+/* 8036F96C 0036B5CC 93 FD 00 74 */ stw r31, 0x74(r29)
+/* 8036F970 0036B5D0 40 82 00 0C */ bne lbl_8036F97C
+/* 8036F974 0036B5D4 80 1D 00 14 */ lwz r0, 0x14(r29)
+/* 8036F978 0036B5D8 90 1D 00 74 */ stw r0, 0x74(r29)
+lbl_8036F97C:
+/* 8036F97C 0036B5DC 80 9D 00 70 */ lwz r4, 0x70(r29)
+/* 8036F980 0036B5E0 7F A3 EB 78 */ mr r3, r29
+/* 8036F984 0036B5E4 38 A0 00 00 */ li r5, 0
+/* 8036F988 0036B5E8 4B FF 41 D1 */ bl Seek__Q34nw4r2ut13DvdFileStreamFlUl
+lbl_8036F98C:
+/* 8036F98C 0036B5EC 7F A3 EB 78 */ mr r3, r29
+lbl_8036F990:
+/* 8036F990 0036B5F0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8036F994 0036B5F4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8036F998 0036B5F8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8036F99C 0036B5FC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8036F9A0 0036B600 7C 08 03 A6 */ mtlr r0
+/* 8036F9A4 0036B604 38 21 00 20 */ addi r1, r1, 0x20
+/* 8036F9A8 0036B608 4E 80 00 20 */ blr
+
+.global func_8036F9AC
+func_8036F9AC:
+/* 8036F9AC 0036B60C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8036F9B0 0036B610 7C 08 02 A6 */ mflr r0
+/* 8036F9B4 0036B614 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8036F9B8 0036B618 88 03 01 88 */ lbz r0, 0x188(r3)
+/* 8036F9BC 0036B61C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8036F9C0 0036B620 7D 1F 43 78 */ mr r31, r8
+/* 8036F9C4 0036B624 2C 00 00 00 */ cmpwi r0, 0
+/* 8036F9C8 0036B628 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8036F9CC 0036B62C 7C FE 3B 78 */ mr r30, r7
+/* 8036F9D0 0036B630 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8036F9D4 0036B634 7C 9D 23 78 */ mr r29, r4
+/* 8036F9D8 0036B638 40 82 00 0C */ bne lbl_8036F9E4
+/* 8036F9DC 0036B63C 38 60 00 00 */ li r3, 0
+/* 8036F9E0 0036B640 48 00 00 78 */ b lbl_8036FA58
+lbl_8036F9E4:
+/* 8036F9E4 0036B644 28 05 00 78 */ cmplwi r5, 0x78
+/* 8036F9E8 0036B648 40 80 00 0C */ bge lbl_8036F9F4
+/* 8036F9EC 0036B64C 38 60 00 00 */ li r3, 0
+/* 8036F9F0 0036B650 48 00 00 68 */ b lbl_8036FA58
+lbl_8036F9F4:
+/* 8036F9F4 0036B654 7C C3 33 78 */ mr r3, r6
+/* 8036F9F8 0036B658 4B F1 7C C5 */ bl func_802876BC
+/* 8036F9FC 0036B65C 2C 03 00 00 */ cmpwi r3, 0
+/* 8036FA00 0036B660 7C 64 1B 78 */ mr r4, r3
+/* 8036FA04 0036B664 40 80 00 0C */ bge lbl_8036FA10
+/* 8036FA08 0036B668 38 60 00 00 */ li r3, 0
+/* 8036FA0C 0036B66C 48 00 00 4C */ b lbl_8036FA58
+lbl_8036FA10:
+/* 8036FA10 0036B670 2C 1D 00 00 */ cmpwi r29, 0
+/* 8036FA14 0036B674 41 82 00 40 */ beq lbl_8036FA54
+/* 8036FA18 0036B678 7F A3 EB 78 */ mr r3, r29
+/* 8036FA1C 0036B67C 4B FF 42 15 */ bl __ct__Q34nw4r2ut19DvdLockedFileStreamFl
+/* 8036FA20 0036B680 3C 60 80 45 */ lis r3, lbl_8044C9A0@ha
+/* 8036FA24 0036B684 2C 1F 00 00 */ cmpwi r31, 0
+/* 8036FA28 0036B688 38 63 C9 A0 */ addi r3, r3, lbl_8044C9A0@l
+/* 8036FA2C 0036B68C 93 DD 00 70 */ stw r30, 0x70(r29)
+/* 8036FA30 0036B690 90 7D 00 00 */ stw r3, 0(r29)
+/* 8036FA34 0036B694 93 FD 00 74 */ stw r31, 0x74(r29)
+/* 8036FA38 0036B698 40 82 00 0C */ bne lbl_8036FA44
+/* 8036FA3C 0036B69C 80 1D 00 14 */ lwz r0, 0x14(r29)
+/* 8036FA40 0036B6A0 90 1D 00 74 */ stw r0, 0x74(r29)
+lbl_8036FA44:
+/* 8036FA44 0036B6A4 80 9D 00 70 */ lwz r4, 0x70(r29)
+/* 8036FA48 0036B6A8 7F A3 EB 78 */ mr r3, r29
+/* 8036FA4C 0036B6AC 38 A0 00 00 */ li r5, 0
+/* 8036FA50 0036B6B0 4B FF 41 09 */ bl Seek__Q34nw4r2ut13DvdFileStreamFlUl
+lbl_8036FA54:
+/* 8036FA54 0036B6B4 7F A3 EB 78 */ mr r3, r29
+lbl_8036FA58:
+/* 8036FA58 0036B6B8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8036FA5C 0036B6BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8036FA60 0036B6C0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8036FA64 0036B6C4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8036FA68 0036B6C8 7C 08 03 A6 */ mtlr r0
+/* 8036FA6C 0036B6CC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8036FA70 0036B6D0 4E 80 00 20 */ blr
+
+.global func_8036FA74
+func_8036FA74:
+/* 8036FA74 0036B6D4 38 60 00 78 */ li r3, 0x78
+/* 8036FA78 0036B6D8 4E 80 00 20 */ blr
+
+.global func_8036FA7C
+func_8036FA7C:
+/* 8036FA7C 0036B6DC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8036FA80 0036B6E0 7C 08 02 A6 */ mflr r0
+/* 8036FA84 0036B6E4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8036FA88 0036B6E8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8036FA8C 0036B6EC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8036FA90 0036B6F0 7C 9E 23 78 */ mr r30, r4
+/* 8036FA94 0036B6F4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8036FA98 0036B6F8 7C 7D 1B 78 */ mr r29, r3
+/* 8036FA9C 0036B6FC 83 E3 01 24 */ lwz r31, 0x124(r3)
+/* 8036FAA0 0036B700 80 C3 01 20 */ lwz r6, 0x120(r3)
+/* 8036FAA4 0036B704 7C 05 F8 40 */ cmplw r5, r31
+/* 8036FAA8 0036B708 40 80 00 0C */ bge lbl_8036FAB4
+/* 8036FAAC 0036B70C 38 60 00 00 */ li r3, 0
+/* 8036FAB0 0036B710 48 00 00 38 */ b lbl_8036FAE8
+lbl_8036FAB4:
+/* 8036FAB4 0036B714 7F E5 FB 78 */ mr r5, r31
+/* 8036FAB8 0036B718 38 E0 00 02 */ li r7, 2
+/* 8036FABC 0036B71C 38 63 01 4C */ addi r3, r3, 0x14c
+/* 8036FAC0 0036B720 4B F1 84 E5 */ bl func_80287FA4
+/* 8036FAC4 0036B724 7C 03 F8 40 */ cmplw r3, r31
+/* 8036FAC8 0036B728 41 82 00 0C */ beq lbl_8036FAD4
+/* 8036FACC 0036B72C 38 60 00 00 */ li r3, 0
+/* 8036FAD0 0036B730 48 00 00 18 */ b lbl_8036FAE8
+lbl_8036FAD4:
+/* 8036FAD4 0036B734 7F C4 F3 78 */ mr r4, r30
+/* 8036FAD8 0036B738 7F E5 FB 78 */ mr r5, r31
+/* 8036FADC 0036B73C 38 7D 01 08 */ addi r3, r29, 0x108
+/* 8036FAE0 0036B740 48 00 7B 71 */ bl func_80377650
+/* 8036FAE4 0036B744 38 60 00 01 */ li r3, 1
+lbl_8036FAE8:
+/* 8036FAE8 0036B748 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8036FAEC 0036B74C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8036FAF0 0036B750 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8036FAF4 0036B754 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8036FAF8 0036B758 7C 08 03 A6 */ mtlr r0
+/* 8036FAFC 0036B75C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8036FB00 0036B760 4E 80 00 20 */ blr
+
+.global func_8036FB04
+func_8036FB04:
+/* 8036FB04 0036B764 81 03 00 18 */ lwz r8, 0x18(r3)
+/* 8036FB08 0036B768 80 E3 00 70 */ lwz r7, 0x70(r3)
+/* 8036FB0C 0036B76C 80 C3 00 74 */ lwz r6, 0x74(r3)
+/* 8036FB10 0036B770 7C 08 2A 14 */ add r0, r8, r5
+/* 8036FB14 0036B774 7C C7 32 14 */ add r6, r7, r6
+/* 8036FB18 0036B778 7C 00 30 40 */ cmplw r0, r6
+/* 8036FB1C 0036B77C 40 81 00 10 */ ble lbl_8036FB2C
+/* 8036FB20 0036B780 7C A8 30 50 */ subf r5, r8, r6
+/* 8036FB24 0036B784 38 05 00 1F */ addi r0, r5, 0x1f
+/* 8036FB28 0036B788 54 05 00 34 */ rlwinm r5, r0, 0, 0, 0x1a
+lbl_8036FB2C:
+/* 8036FB2C 0036B78C 4B FF 42 44 */ b Read__Q34nw4r2ut19DvdLockedFileStreamFPvUl
+
+.global func_8036FB30
+func_8036FB30:
+/* 8036FB30 0036B790 2C 05 00 01 */ cmpwi r5, 1
+/* 8036FB34 0036B794 41 82 00 2C */ beq lbl_8036FB60
+/* 8036FB38 0036B798 40 80 00 10 */ bge lbl_8036FB48
+/* 8036FB3C 0036B79C 2C 05 00 00 */ cmpwi r5, 0
+/* 8036FB40 0036B7A0 40 80 00 14 */ bge lbl_8036FB54
+/* 8036FB44 0036B7A4 4E 80 00 20 */ blr
+lbl_8036FB48:
+/* 8036FB48 0036B7A8 2C 05 00 03 */ cmpwi r5, 3
+/* 8036FB4C 0036B7AC 4C 80 00 20 */ bgelr
+/* 8036FB50 0036B7B0 48 00 00 1C */ b lbl_8036FB6C
+lbl_8036FB54:
+/* 8036FB54 0036B7B4 80 03 00 70 */ lwz r0, 0x70(r3)
+/* 8036FB58 0036B7B8 7C 84 02 14 */ add r4, r4, r0
+/* 8036FB5C 0036B7BC 48 00 00 28 */ b lbl_8036FB84
+lbl_8036FB60:
+/* 8036FB60 0036B7C0 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8036FB64 0036B7C4 7C 84 02 14 */ add r4, r4, r0
+/* 8036FB68 0036B7C8 48 00 00 1C */ b lbl_8036FB84
+lbl_8036FB6C:
+/* 8036FB6C 0036B7CC 80 A3 00 70 */ lwz r5, 0x70(r3)
+/* 8036FB70 0036B7D0 80 03 00 74 */ lwz r0, 0x74(r3)
+/* 8036FB74 0036B7D4 7C 05 02 14 */ add r0, r5, r0
+/* 8036FB78 0036B7D8 7C 84 00 50 */ subf r4, r4, r0
+/* 8036FB7C 0036B7DC 48 00 00 08 */ b lbl_8036FB84
+/* 8036FB80 0036B7E0 4E 80 00 20 */ blr
+lbl_8036FB84:
+/* 8036FB84 0036B7E4 80 A3 00 70 */ lwz r5, 0x70(r3)
+/* 8036FB88 0036B7E8 7C 04 28 00 */ cmpw r4, r5
+/* 8036FB8C 0036B7EC 40 80 00 0C */ bge lbl_8036FB98
+/* 8036FB90 0036B7F0 7C A4 2B 78 */ mr r4, r5
+/* 8036FB94 0036B7F4 48 00 00 18 */ b lbl_8036FBAC
+lbl_8036FB98:
+/* 8036FB98 0036B7F8 80 03 00 74 */ lwz r0, 0x74(r3)
+/* 8036FB9C 0036B7FC 7C 05 02 14 */ add r0, r5, r0
+/* 8036FBA0 0036B800 7C 04 00 00 */ cmpw r4, r0
+/* 8036FBA4 0036B804 40 81 00 08 */ ble lbl_8036FBAC
+/* 8036FBA8 0036B808 7C 04 03 78 */ mr r4, r0
+lbl_8036FBAC:
+/* 8036FBAC 0036B80C 38 A0 00 00 */ li r5, 0
+/* 8036FBB0 0036B810 4B FF 3F A8 */ b Seek__Q34nw4r2ut13DvdFileStreamFlUl
+/* 8036FBB4 0036B814 4E 80 00 20 */ blr
+
+.global func_8036FBB8
+func_8036FBB8:
+/* 8036FBB8 0036B818 80 63 00 74 */ lwz r3, 0x74(r3)
+/* 8036FBBC 0036B81C 4E 80 00 20 */ blr
+
+.global func_8036FBC0
+func_8036FBC0:
+/* 8036FBC0 0036B820 80 83 00 70 */ lwz r4, 0x70(r3)
+/* 8036FBC4 0036B824 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8036FBC8 0036B828 7C 64 00 50 */ subf r3, r4, r0
+/* 8036FBCC 0036B82C 4E 80 00 20 */ blr
+
+.global func_8036FBD0
+func_8036FBD0:
+/* 8036FBD0 0036B830 38 60 00 00 */ li r3, 0
+/* 8036FBD4 0036B834 4E 80 00 20 */ blr
+
+.global func_8036FBD8
+func_8036FBD8:
+/* 8036FBD8 0036B838 38 60 00 00 */ li r3, 0
+/* 8036FBDC 0036B83C 4E 80 00 20 */ blr
+
+.global func_8036FBE0
+func_8036FBE0:
+/* 8036FBE0 0036B840 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8036FBE4 0036B844 7C 08 02 A6 */ mflr r0
+/* 8036FBE8 0036B848 2C 03 00 00 */ cmpwi r3, 0
+/* 8036FBEC 0036B84C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8036FBF0 0036B850 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8036FBF4 0036B854 7C 9F 23 78 */ mr r31, r4
+/* 8036FBF8 0036B858 93 C1 00 08 */ stw r30, 8(r1)
+/* 8036FBFC 0036B85C 7C 7E 1B 78 */ mr r30, r3
+/* 8036FC00 0036B860 41 82 00 1C */ beq lbl_8036FC1C
+/* 8036FC04 0036B864 38 80 00 00 */ li r4, 0
+/* 8036FC08 0036B868 4B FF 41 11 */ bl __dt__Q34nw4r2ut19DvdLockedFileStreamFv
+/* 8036FC0C 0036B86C 2C 1F 00 00 */ cmpwi r31, 0
+/* 8036FC10 0036B870 40 81 00 0C */ ble lbl_8036FC1C
+/* 8036FC14 0036B874 7F C3 F3 78 */ mr r3, r30
+/* 8036FC18 0036B878 4B E6 AE A1 */ bl func_801DAAB8
+lbl_8036FC1C:
+/* 8036FC1C 0036B87C 7F C3 F3 78 */ mr r3, r30
+/* 8036FC20 0036B880 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8036FC24 0036B884 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8036FC28 0036B888 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8036FC2C 0036B88C 7C 08 03 A6 */ mtlr r0
+/* 8036FC30 0036B890 38 21 00 10 */ addi r1, r1, 0x10
+/* 8036FC34 0036B894 4E 80 00 20 */ blr
diff --git a/asm/NW4R/snd_EnvGenerator.s b/asm/NW4R/snd_EnvGenerator.s new file mode 100644 index 0000000..51fef8b --- /dev/null +++ b/asm/NW4R/snd_EnvGenerator.s @@ -0,0 +1,256 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __ct__Q44nw4r3snd6detail12EnvGeneratorFv
+__ct__Q44nw4r3snd6detail12EnvGeneratorFv:
+/* 8036FC38 0036B898 C0 22 A5 E8 */ lfs f1, lbl_80642BE8-_SDA2_BASE_(r2)
+/* 8036FC3C 0036B89C 3C A0 80 40 */ lis r5, lbl_80402690@ha
+/* 8036FC40 0036B8A0 C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
+/* 8036FC44 0036B8A4 38 80 00 7F */ li r4, 0x7f
+/* 8036FC48 0036B8A8 38 A5 26 90 */ addi r5, r5, lbl_80402690@l
+/* 8036FC4C 0036B8AC C0 42 A5 EC */ lfs f2, lbl_80642BEC-_SDA2_BASE_(r2)
+/* 8036FC50 0036B8B0 EC 00 00 72 */ fmuls f0, f0, f1
+/* 8036FC54 0036B8B4 C0 25 01 FC */ lfs f1, 0x1fc(r5)
+/* 8036FC58 0036B8B8 38 00 00 00 */ li r0, 0
+/* 8036FC5C 0036B8BC D0 43 00 08 */ stfs f2, 8(r3)
+/* 8036FC60 0036B8C0 D0 23 00 10 */ stfs f1, 0x10(r3)
+/* 8036FC64 0036B8C4 98 83 00 14 */ stb r4, 0x14(r3)
+/* 8036FC68 0036B8C8 D0 43 00 0C */ stfs f2, 0xc(r3)
+/* 8036FC6C 0036B8CC D0 03 00 04 */ stfs f0, 4(r3)
+/* 8036FC70 0036B8D0 90 03 00 00 */ stw r0, 0(r3)
+/* 8036FC74 0036B8D4 4E 80 00 20 */ blr
+
+.global Init__Q44nw4r3snd6detail12EnvGeneratorFf
+Init__Q44nw4r3snd6detail12EnvGeneratorFf:
+/* 8036FC78 0036B8D8 C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
+/* 8036FC7C 0036B8DC 3C 80 80 40 */ lis r4, lbl_80402690@ha
+/* 8036FC80 0036B8E0 C0 42 A5 EC */ lfs f2, lbl_80642BEC-_SDA2_BASE_(r2)
+/* 8036FC84 0036B8E4 38 00 00 00 */ li r0, 0
+/* 8036FC88 0036B8E8 EC 00 00 72 */ fmuls f0, f0, f1
+/* 8036FC8C 0036B8EC 38 84 26 90 */ addi r4, r4, lbl_80402690@l
+/* 8036FC90 0036B8F0 C0 24 01 FC */ lfs f1, 0x1fc(r4)
+/* 8036FC94 0036B8F4 38 80 00 7F */ li r4, 0x7f
+/* 8036FC98 0036B8F8 D0 43 00 08 */ stfs f2, 8(r3)
+/* 8036FC9C 0036B8FC D0 23 00 10 */ stfs f1, 0x10(r3)
+/* 8036FCA0 0036B900 98 83 00 14 */ stb r4, 0x14(r3)
+/* 8036FCA4 0036B904 D0 43 00 0C */ stfs f2, 0xc(r3)
+/* 8036FCA8 0036B908 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8036FCAC 0036B90C 90 03 00 00 */ stw r0, 0(r3)
+/* 8036FCB0 0036B910 4E 80 00 20 */ blr
+
+.global Reset__Q44nw4r3snd6detail12EnvGeneratorFf
+Reset__Q44nw4r3snd6detail12EnvGeneratorFf:
+/* 8036FCB4 0036B914 C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
+/* 8036FCB8 0036B918 38 00 00 00 */ li r0, 0
+/* 8036FCBC 0036B91C 90 03 00 00 */ stw r0, 0(r3)
+/* 8036FCC0 0036B920 EC 00 00 72 */ fmuls f0, f0, f1
+/* 8036FCC4 0036B924 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8036FCC8 0036B928 4E 80 00 20 */ blr
+
+.global GetValue__Q44nw4r3snd6detail12EnvGeneratorCFv
+GetValue__Q44nw4r3snd6detail12EnvGeneratorCFv:
+/* 8036FCCC 0036B92C 80 03 00 00 */ lwz r0, 0(r3)
+/* 8036FCD0 0036B930 2C 00 00 00 */ cmpwi r0, 0
+/* 8036FCD4 0036B934 40 82 00 14 */ bne lbl_8036FCE8
+/* 8036FCD8 0036B938 C0 22 A5 F4 */ lfs f1, lbl_80642BF4-_SDA2_BASE_(r2)
+/* 8036FCDC 0036B93C C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 8036FCE0 0036B940 FC 01 00 00 */ fcmpu cr0, f1, f0
+/* 8036FCE4 0036B944 4D 82 00 20 */ beqlr
+lbl_8036FCE8:
+/* 8036FCE8 0036B948 C0 23 00 04 */ lfs f1, 4(r3)
+/* 8036FCEC 0036B94C C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
+/* 8036FCF0 0036B950 EC 21 00 24 */ fdivs f1, f1, f0
+/* 8036FCF4 0036B954 4E 80 00 20 */ blr
+
+.global Update__Q44nw4r3snd6detail12EnvGeneratorFi
+Update__Q44nw4r3snd6detail12EnvGeneratorFi:
+/* 8036FCF8 0036B958 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8036FCFC 0036B95C 80 03 00 00 */ lwz r0, 0(r3)
+/* 8036FD00 0036B960 2C 00 00 02 */ cmpwi r0, 2
+/* 8036FD04 0036B964 41 82 01 10 */ beq lbl_8036FE14
+/* 8036FD08 0036B968 40 80 00 14 */ bge lbl_8036FD1C
+/* 8036FD0C 0036B96C 2C 00 00 00 */ cmpwi r0, 0
+/* 8036FD10 0036B970 41 82 00 18 */ beq lbl_8036FD28
+/* 8036FD14 0036B974 40 80 00 60 */ bge lbl_8036FD74
+/* 8036FD18 0036B978 48 00 00 FC */ b lbl_8036FE14
+lbl_8036FD1C:
+/* 8036FD1C 0036B97C 2C 00 00 04 */ cmpwi r0, 4
+/* 8036FD20 0036B980 40 80 00 F4 */ bge lbl_8036FE14
+/* 8036FD24 0036B984 48 00 00 C0 */ b lbl_8036FDE4
+lbl_8036FD28:
+/* 8036FD28 0036B988 C0 02 A5 F4 */ lfs f0, lbl_80642BF4-_SDA2_BASE_(r2)
+/* 8036FD2C 0036B98C 38 00 00 01 */ li r0, 1
+/* 8036FD30 0036B990 C0 22 A5 F8 */ lfs f1, lbl_80642BF8-_SDA2_BASE_(r2)
+/* 8036FD34 0036B994 7C 89 03 A6 */ mtctr r4
+/* 8036FD38 0036B998 2C 04 00 00 */ cmpwi r4, 0
+/* 8036FD3C 0036B99C 40 81 00 2C */ ble lbl_8036FD68
+lbl_8036FD40:
+/* 8036FD40 0036B9A0 C0 63 00 04 */ lfs f3, 4(r3)
+/* 8036FD44 0036B9A4 38 84 FF FF */ addi r4, r4, -1
+/* 8036FD48 0036B9A8 C0 43 00 10 */ lfs f2, 0x10(r3)
+/* 8036FD4C 0036B9AC EC 43 00 B2 */ fmuls f2, f3, f2
+/* 8036FD50 0036B9B0 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 8036FD54 0036B9B4 D0 43 00 04 */ stfs f2, 4(r3)
+/* 8036FD58 0036B9B8 40 81 00 0C */ ble lbl_8036FD64
+/* 8036FD5C 0036B9BC D0 03 00 04 */ stfs f0, 4(r3)
+/* 8036FD60 0036B9C0 90 03 00 00 */ stw r0, 0(r3)
+lbl_8036FD64:
+/* 8036FD64 0036B9C4 42 00 FF DC */ bdnz lbl_8036FD40
+lbl_8036FD68:
+/* 8036FD68 0036B9C8 80 03 00 00 */ lwz r0, 0(r3)
+/* 8036FD6C 0036B9CC 2C 00 00 01 */ cmpwi r0, 1
+/* 8036FD70 0036B9D0 40 82 00 A4 */ bne lbl_8036FE14
+lbl_8036FD74:
+/* 8036FD74 0036B9D4 3C A0 43 30 */ lis r5, 0x4330
+/* 8036FD78 0036B9D8 6C 80 80 00 */ xoris r0, r4, 0x8000
+/* 8036FD7C 0036B9DC 88 C3 00 14 */ lbz r6, 0x14(r3)
+/* 8036FD80 0036B9E0 3C 80 80 40 */ lis r4, lbl_80402590@ha
+/* 8036FD84 0036B9E4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8036FD88 0036B9E8 38 84 25 90 */ addi r4, r4, lbl_80402590@l
+/* 8036FD8C 0036B9EC 54 C0 08 3C */ slwi r0, r6, 1
+/* 8036FD90 0036B9F0 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
+/* 8036FD94 0036B9F4 90 A1 00 10 */ stw r5, 0x10(r1)
+/* 8036FD98 0036B9F8 7C 04 02 AE */ lhax r0, r4, r0
+/* 8036FD9C 0036B9FC C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 8036FDA0 0036BA00 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 8036FDA4 0036BA04 C0 23 00 08 */ lfs f1, 8(r3)
+/* 8036FDA8 0036BA08 EC 40 18 28 */ fsubs f2, f0, f3
+/* 8036FDAC 0036BA0C 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8036FDB0 0036BA10 C0 03 00 04 */ lfs f0, 4(r3)
+/* 8036FDB4 0036BA14 90 A1 00 08 */ stw r5, 8(r1)
+/* 8036FDB8 0036BA18 EC 21 00 B2 */ fmuls f1, f1, f2
+/* 8036FDBC 0036BA1C C8 41 00 08 */ lfd f2, 8(r1)
+/* 8036FDC0 0036BA20 EC 00 08 28 */ fsubs f0, f0, f1
+/* 8036FDC4 0036BA24 EC 22 18 28 */ fsubs f1, f2, f3
+/* 8036FDC8 0036BA28 D0 03 00 04 */ stfs f0, 4(r3)
+/* 8036FDCC 0036BA2C FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 8036FDD0 0036BA30 41 81 00 44 */ bgt lbl_8036FE14
+/* 8036FDD4 0036BA34 38 00 00 02 */ li r0, 2
+/* 8036FDD8 0036BA38 D0 23 00 04 */ stfs f1, 4(r3)
+/* 8036FDDC 0036BA3C 90 03 00 00 */ stw r0, 0(r3)
+/* 8036FDE0 0036BA40 48 00 00 34 */ b lbl_8036FE14
+lbl_8036FDE4:
+/* 8036FDE4 0036BA44 6C 84 80 00 */ xoris r4, r4, 0x8000
+/* 8036FDE8 0036BA48 3C 00 43 30 */ lis r0, 0x4330
+/* 8036FDEC 0036BA4C 90 81 00 14 */ stw r4, 0x14(r1)
+/* 8036FDF0 0036BA50 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
+/* 8036FDF4 0036BA54 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8036FDF8 0036BA58 C0 23 00 0C */ lfs f1, 0xc(r3)
+/* 8036FDFC 0036BA5C C8 41 00 10 */ lfd f2, 0x10(r1)
+/* 8036FE00 0036BA60 C0 03 00 04 */ lfs f0, 4(r3)
+/* 8036FE04 0036BA64 EC 42 18 28 */ fsubs f2, f2, f3
+/* 8036FE08 0036BA68 EC 21 00 B2 */ fmuls f1, f1, f2
+/* 8036FE0C 0036BA6C EC 00 08 28 */ fsubs f0, f0, f1
+/* 8036FE10 0036BA70 D0 03 00 04 */ stfs f0, 4(r3)
+lbl_8036FE14:
+/* 8036FE14 0036BA74 38 21 00 20 */ addi r1, r1, 0x20
+/* 8036FE18 0036BA78 4E 80 00 20 */ blr
+
+.global SetAttack__Q44nw4r3snd6detail12EnvGeneratorFi
+SetAttack__Q44nw4r3snd6detail12EnvGeneratorFi:
+/* 8036FE1C 0036BA7C 3C A0 80 40 */ lis r5, lbl_80402690@ha
+/* 8036FE20 0036BA80 54 80 10 3A */ slwi r0, r4, 2
+/* 8036FE24 0036BA84 38 A5 26 90 */ addi r5, r5, lbl_80402690@l
+/* 8036FE28 0036BA88 7C 05 04 2E */ lfsx f0, r5, r0
+/* 8036FE2C 0036BA8C D0 03 00 10 */ stfs f0, 0x10(r3)
+/* 8036FE30 0036BA90 4E 80 00 20 */ blr
+
+.global SetDecay__Q44nw4r3snd6detail12EnvGeneratorFi
+SetDecay__Q44nw4r3snd6detail12EnvGeneratorFi:
+/* 8036FE34 0036BA94 2C 04 00 7F */ cmpwi r4, 0x7f
+/* 8036FE38 0036BA98 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8036FE3C 0036BA9C 40 82 00 0C */ bne lbl_8036FE48
+/* 8036FE40 0036BAA0 C0 02 A5 EC */ lfs f0, lbl_80642BEC-_SDA2_BASE_(r2)
+/* 8036FE44 0036BAA4 48 00 00 84 */ b lbl_8036FEC8
+lbl_8036FE48:
+/* 8036FE48 0036BAA8 2C 04 00 7E */ cmpwi r4, 0x7e
+/* 8036FE4C 0036BAAC 40 82 00 0C */ bne lbl_8036FE58
+/* 8036FE50 0036BAB0 C0 02 A6 08 */ lfs f0, lbl_80642C08-_SDA2_BASE_(r2)
+/* 8036FE54 0036BAB4 48 00 00 74 */ b lbl_8036FEC8
+lbl_8036FE58:
+/* 8036FE58 0036BAB8 2C 04 00 32 */ cmpwi r4, 0x32
+/* 8036FE5C 0036BABC 40 80 00 3C */ bge lbl_8036FE98
+/* 8036FE60 0036BAC0 54 84 08 3C */ slwi r4, r4, 1
+/* 8036FE64 0036BAC4 3C 00 43 30 */ lis r0, 0x4330
+/* 8036FE68 0036BAC8 38 84 00 01 */ addi r4, r4, 1
+/* 8036FE6C 0036BACC 90 01 00 08 */ stw r0, 8(r1)
+/* 8036FE70 0036BAD0 6C 80 80 00 */ xoris r0, r4, 0x8000
+/* 8036FE74 0036BAD4 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
+/* 8036FE78 0036BAD8 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8036FE7C 0036BADC C0 22 A6 0C */ lfs f1, lbl_80642C0C-_SDA2_BASE_(r2)
+/* 8036FE80 0036BAE0 C8 41 00 08 */ lfd f2, 8(r1)
+/* 8036FE84 0036BAE4 C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
+/* 8036FE88 0036BAE8 EC 42 18 28 */ fsubs f2, f2, f3
+/* 8036FE8C 0036BAEC EC 22 00 72 */ fmuls f1, f2, f1
+/* 8036FE90 0036BAF0 EC 01 00 24 */ fdivs f0, f1, f0
+/* 8036FE94 0036BAF4 48 00 00 34 */ b lbl_8036FEC8
+lbl_8036FE98:
+/* 8036FE98 0036BAF8 20 84 00 7E */ subfic r4, r4, 0x7e
+/* 8036FE9C 0036BAFC 3C 00 43 30 */ lis r0, 0x4330
+/* 8036FEA0 0036BB00 6C 84 80 00 */ xoris r4, r4, 0x8000
+/* 8036FEA4 0036BB04 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8036FEA8 0036BB08 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
+/* 8036FEAC 0036BB0C 90 81 00 14 */ stw r4, 0x14(r1)
+/* 8036FEB0 0036BB10 C0 22 A6 14 */ lfs f1, lbl_80642C14-_SDA2_BASE_(r2)
+/* 8036FEB4 0036BB14 C8 41 00 10 */ lfd f2, 0x10(r1)
+/* 8036FEB8 0036BB18 C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
+/* 8036FEBC 0036BB1C EC 42 18 28 */ fsubs f2, f2, f3
+/* 8036FEC0 0036BB20 EC 21 10 24 */ fdivs f1, f1, f2
+/* 8036FEC4 0036BB24 EC 01 00 24 */ fdivs f0, f1, f0
+lbl_8036FEC8:
+/* 8036FEC8 0036BB28 D0 03 00 08 */ stfs f0, 8(r3)
+/* 8036FECC 0036BB2C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8036FED0 0036BB30 4E 80 00 20 */ blr
+
+.global SetSustain__Q44nw4r3snd6detail12EnvGeneratorFi
+SetSustain__Q44nw4r3snd6detail12EnvGeneratorFi:
+/* 8036FED4 0036BB34 98 83 00 14 */ stb r4, 0x14(r3)
+/* 8036FED8 0036BB38 4E 80 00 20 */ blr
+
+.global SetRelease__Q44nw4r3snd6detail12EnvGeneratorFi
+SetRelease__Q44nw4r3snd6detail12EnvGeneratorFi:
+/* 8036FEDC 0036BB3C 2C 04 00 7F */ cmpwi r4, 0x7f
+/* 8036FEE0 0036BB40 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8036FEE4 0036BB44 40 82 00 0C */ bne lbl_8036FEF0
+/* 8036FEE8 0036BB48 C0 02 A5 EC */ lfs f0, lbl_80642BEC-_SDA2_BASE_(r2)
+/* 8036FEEC 0036BB4C 48 00 00 84 */ b lbl_8036FF70
+lbl_8036FEF0:
+/* 8036FEF0 0036BB50 2C 04 00 7E */ cmpwi r4, 0x7e
+/* 8036FEF4 0036BB54 40 82 00 0C */ bne lbl_8036FF00
+/* 8036FEF8 0036BB58 C0 02 A6 08 */ lfs f0, lbl_80642C08-_SDA2_BASE_(r2)
+/* 8036FEFC 0036BB5C 48 00 00 74 */ b lbl_8036FF70
+lbl_8036FF00:
+/* 8036FF00 0036BB60 2C 04 00 32 */ cmpwi r4, 0x32
+/* 8036FF04 0036BB64 40 80 00 3C */ bge lbl_8036FF40
+/* 8036FF08 0036BB68 54 84 08 3C */ slwi r4, r4, 1
+/* 8036FF0C 0036BB6C 3C 00 43 30 */ lis r0, 0x4330
+/* 8036FF10 0036BB70 38 84 00 01 */ addi r4, r4, 1
+/* 8036FF14 0036BB74 90 01 00 08 */ stw r0, 8(r1)
+/* 8036FF18 0036BB78 6C 80 80 00 */ xoris r0, r4, 0x8000
+/* 8036FF1C 0036BB7C C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
+/* 8036FF20 0036BB80 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8036FF24 0036BB84 C0 22 A6 0C */ lfs f1, lbl_80642C0C-_SDA2_BASE_(r2)
+/* 8036FF28 0036BB88 C8 41 00 08 */ lfd f2, 8(r1)
+/* 8036FF2C 0036BB8C C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
+/* 8036FF30 0036BB90 EC 42 18 28 */ fsubs f2, f2, f3
+/* 8036FF34 0036BB94 EC 22 00 72 */ fmuls f1, f2, f1
+/* 8036FF38 0036BB98 EC 01 00 24 */ fdivs f0, f1, f0
+/* 8036FF3C 0036BB9C 48 00 00 34 */ b lbl_8036FF70
+lbl_8036FF40:
+/* 8036FF40 0036BBA0 20 84 00 7E */ subfic r4, r4, 0x7e
+/* 8036FF44 0036BBA4 3C 00 43 30 */ lis r0, 0x4330
+/* 8036FF48 0036BBA8 6C 84 80 00 */ xoris r4, r4, 0x8000
+/* 8036FF4C 0036BBAC 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8036FF50 0036BBB0 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
+/* 8036FF54 0036BBB4 90 81 00 14 */ stw r4, 0x14(r1)
+/* 8036FF58 0036BBB8 C0 22 A6 14 */ lfs f1, lbl_80642C14-_SDA2_BASE_(r2)
+/* 8036FF5C 0036BBBC C8 41 00 10 */ lfd f2, 0x10(r1)
+/* 8036FF60 0036BBC0 C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
+/* 8036FF64 0036BBC4 EC 42 18 28 */ fsubs f2, f2, f3
+/* 8036FF68 0036BBC8 EC 21 10 24 */ fdivs f1, f1, f2
+/* 8036FF6C 0036BBCC EC 01 00 24 */ fdivs f0, f1, f0
+lbl_8036FF70:
+/* 8036FF70 0036BBD0 D0 03 00 0C */ stfs f0, 0xc(r3)
+/* 8036FF74 0036BBD4 38 21 00 20 */ addi r1, r1, 0x20
+/* 8036FF78 0036BBD8 4E 80 00 20 */ blr
diff --git a/asm/NW4R/snd_ExternalSoundPlayer.s b/asm/NW4R/snd_ExternalSoundPlayer.s new file mode 100644 index 0000000..3c13396 --- /dev/null +++ b/asm/NW4R/snd_ExternalSoundPlayer.s @@ -0,0 +1,73 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global InsertSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
+InsertSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound:
+/* 8036FF7C 0036BBDC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8036FF80 0036BBE0 7C 08 02 A6 */ mflr r0
+/* 8036FF84 0036BBE4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8036FF88 0036BBE8 38 03 00 04 */ addi r0, r3, 4
+/* 8036FF8C 0036BBEC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8036FF90 0036BBF0 7C 9F 23 78 */ mr r31, r4
+/* 8036FF94 0036BBF4 38 81 00 08 */ addi r4, r1, 8
+/* 8036FF98 0036BBF8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8036FF9C 0036BBFC 7C 7E 1B 78 */ mr r30, r3
+/* 8036FFA0 0036BC00 38 BF 00 D0 */ addi r5, r31, 0xd0
+/* 8036FFA4 0036BC04 90 01 00 08 */ stw r0, 8(r1)
+/* 8036FFA8 0036BC08 4B FF 2C A1 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
+/* 8036FFAC 0036BC0C 93 DF 00 14 */ stw r30, 0x14(r31)
+/* 8036FFB0 0036BC10 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8036FFB4 0036BC14 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8036FFB8 0036BC18 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8036FFBC 0036BC1C 7C 08 03 A6 */ mtlr r0
+/* 8036FFC0 0036BC20 38 21 00 20 */ addi r1, r1, 0x20
+/* 8036FFC4 0036BC24 4E 80 00 20 */ blr
+
+.global RemoveSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
+RemoveSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound:
+/* 8036FFC8 0036BC28 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8036FFCC 0036BC2C 7C 08 02 A6 */ mflr r0
+/* 8036FFD0 0036BC30 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8036FFD4 0036BC34 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8036FFD8 0036BC38 7C 9F 23 78 */ mr r31, r4
+/* 8036FFDC 0036BC3C 38 84 00 D0 */ addi r4, r4, 0xd0
+/* 8036FFE0 0036BC40 4B FF 2C 95 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+/* 8036FFE4 0036BC44 38 00 00 00 */ li r0, 0
+/* 8036FFE8 0036BC48 90 1F 00 14 */ stw r0, 0x14(r31)
+/* 8036FFEC 0036BC4C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8036FFF0 0036BC50 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8036FFF4 0036BC54 7C 08 03 A6 */ mtlr r0
+/* 8036FFF8 0036BC58 38 21 00 10 */ addi r1, r1, 0x10
+/* 8036FFFC 0036BC5C 4E 80 00 20 */ blr
+
+.global GetLowestPrioritySound__Q44nw4r3snd6detail19ExternalSoundPlayerFv
+GetLowestPrioritySound__Q44nw4r3snd6detail19ExternalSoundPlayerFv:
+/* 80370000 0036BC60 80 83 00 04 */ lwz r4, 4(r3)
+/* 80370004 0036BC64 38 03 00 04 */ addi r0, r3, 4
+/* 80370008 0036BC68 39 00 00 80 */ li r8, 0x80
+/* 8037000C 0036BC6C 38 60 00 00 */ li r3, 0
+/* 80370010 0036BC70 48 00 00 40 */ b lbl_80370050
+lbl_80370014:
+/* 80370014 0036BC74 88 C4 FF A4 */ lbz r6, -0x5c(r4)
+/* 80370018 0036BC78 38 E4 FF 30 */ addi r7, r4, -208
+/* 8037001C 0036BC7C 80 A4 FF 70 */ lwz r5, -0x90(r4)
+/* 80370020 0036BC80 7C C6 2A 14 */ add r6, r6, r5
+/* 80370024 0036BC84 2C 06 00 7F */ cmpwi r6, 0x7f
+/* 80370028 0036BC88 40 81 00 0C */ ble lbl_80370034
+/* 8037002C 0036BC8C 38 A0 00 7F */ li r5, 0x7f
+/* 80370030 0036BC90 48 00 00 0C */ b lbl_8037003C
+lbl_80370034:
+/* 80370034 0036BC94 7C C5 FE 70 */ srawi r5, r6, 0x1f
+/* 80370038 0036BC98 7C C5 28 78 */ andc r5, r6, r5
+lbl_8037003C:
+/* 8037003C 0036BC9C 7C 08 28 00 */ cmpw r8, r5
+/* 80370040 0036BCA0 40 81 00 0C */ ble lbl_8037004C
+/* 80370044 0036BCA4 7C E3 3B 78 */ mr r3, r7
+/* 80370048 0036BCA8 7C A8 2B 78 */ mr r8, r5
+lbl_8037004C:
+/* 8037004C 0036BCAC 80 84 00 00 */ lwz r4, 0(r4)
+lbl_80370050:
+/* 80370050 0036BCB0 7C 04 00 40 */ cmplw r4, r0
+/* 80370054 0036BCB4 40 82 FF C0 */ bne lbl_80370014
+/* 80370058 0036BCB8 4E 80 00 20 */ blr
diff --git a/asm/NW4R/snd_FrameHeap.s b/asm/NW4R/snd_FrameHeap.s new file mode 100644 index 0000000..9a0512b --- /dev/null +++ b/asm/NW4R/snd_FrameHeap.s @@ -0,0 +1,446 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __ct__Q44nw4r3snd6detail9FrameHeapFv
+__ct__Q44nw4r3snd6detail9FrameHeapFv:
+/* 8037005C 0036BCBC 38 00 00 00 */ li r0, 0
+/* 80370060 0036BCC0 38 83 00 08 */ addi r4, r3, 8
+/* 80370064 0036BCC4 90 03 00 08 */ stw r0, 8(r3)
+/* 80370068 0036BCC8 90 03 00 0C */ stw r0, 0xc(r3)
+/* 8037006C 0036BCCC 90 03 00 00 */ stw r0, 0(r3)
+/* 80370070 0036BCD0 90 03 00 04 */ stw r0, 4(r3)
+/* 80370074 0036BCD4 90 83 00 08 */ stw r4, 8(r3)
+/* 80370078 0036BCD8 90 83 00 0C */ stw r4, 0xc(r3)
+/* 8037007C 0036BCDC 4E 80 00 20 */ blr
+
+.global __dt__Q44nw4r3snd6detail9FrameHeapFv
+__dt__Q44nw4r3snd6detail9FrameHeapFv:
+/* 80370080 0036BCE0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80370084 0036BCE4 7C 08 02 A6 */ mflr r0
+/* 80370088 0036BCE8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8037008C 0036BCEC 39 61 00 20 */ addi r11, r1, 0x20
+/* 80370090 0036BCF0 4B E5 70 99 */ bl _savegpr_27
+/* 80370094 0036BCF4 2C 03 00 00 */ cmpwi r3, 0
+/* 80370098 0036BCF8 7C 7B 1B 78 */ mr r27, r3
+/* 8037009C 0036BCFC 7C 9C 23 78 */ mr r28, r4
+/* 803700A0 0036BD00 41 82 00 D8 */ beq lbl_80370178
+/* 803700A4 0036BD04 80 03 00 00 */ lwz r0, 0(r3)
+/* 803700A8 0036BD08 2C 00 00 00 */ cmpwi r0, 0
+/* 803700AC 0036BD0C 41 82 00 AC */ beq lbl_80370158
+/* 803700B0 0036BD10 41 82 00 A8 */ beq lbl_80370158
+/* 803700B4 0036BD14 80 03 00 04 */ lwz r0, 4(r3)
+/* 803700B8 0036BD18 2C 00 00 00 */ cmpwi r0, 0
+/* 803700BC 0036BD1C 41 82 00 80 */ beq lbl_8037013C
+/* 803700C0 0036BD20 3B E3 00 08 */ addi r31, r3, 8
+/* 803700C4 0036BD24 48 00 00 6C */ b lbl_80370130
+lbl_803700C8:
+/* 803700C8 0036BD28 83 BF 00 04 */ lwz r29, 4(r31)
+/* 803700CC 0036BD2C 2C 1D 00 00 */ cmpwi r29, 0
+/* 803700D0 0036BD30 41 82 00 54 */ beq lbl_80370124
+/* 803700D4 0036BD34 3B DD 00 0C */ addi r30, r29, 0xc
+/* 803700D8 0036BD38 48 00 00 30 */ b lbl_80370108
+lbl_803700DC:
+/* 803700DC 0036BD3C 83 DE 00 04 */ lwz r30, 4(r30)
+/* 803700E0 0036BD40 2C 1E 00 00 */ cmpwi r30, 0
+/* 803700E4 0036BD44 41 82 00 24 */ beq lbl_80370108
+/* 803700E8 0036BD48 81 9E 00 0C */ lwz r12, 0xc(r30)
+/* 803700EC 0036BD4C 2C 0C 00 00 */ cmpwi r12, 0
+/* 803700F0 0036BD50 41 82 00 18 */ beq lbl_80370108
+/* 803700F4 0036BD54 38 7E 00 20 */ addi r3, r30, 0x20
+/* 803700F8 0036BD58 80 9E 00 08 */ lwz r4, 8(r30)
+/* 803700FC 0036BD5C 80 BE 00 10 */ lwz r5, 0x10(r30)
+/* 80370100 0036BD60 7D 89 03 A6 */ mtctr r12
+/* 80370104 0036BD64 4E 80 04 21 */ bctrl
+lbl_80370108:
+/* 80370108 0036BD68 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 8037010C 0036BD6C 7C 1E 00 40 */ cmplw r30, r0
+/* 80370110 0036BD70 40 82 FF CC */ bne lbl_803700DC
+/* 80370114 0036BD74 34 7D 00 08 */ addic. r3, r29, 8
+/* 80370118 0036BD78 41 82 00 0C */ beq lbl_80370124
+/* 8037011C 0036BD7C 38 80 00 00 */ li r4, 0
+/* 80370120 0036BD80 4B FF 2A 19 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
+lbl_80370124:
+/* 80370124 0036BD84 7F A4 EB 78 */ mr r4, r29
+/* 80370128 0036BD88 38 7B 00 04 */ addi r3, r27, 4
+/* 8037012C 0036BD8C 4B FF 2B 49 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+lbl_80370130:
+/* 80370130 0036BD90 80 1B 00 04 */ lwz r0, 4(r27)
+/* 80370134 0036BD94 2C 00 00 00 */ cmpwi r0, 0
+/* 80370138 0036BD98 40 82 FF 90 */ bne lbl_803700C8
+lbl_8037013C:
+/* 8037013C 0036BD9C 80 7B 00 00 */ lwz r3, 0(r27)
+/* 80370140 0036BDA0 38 80 00 03 */ li r4, 3
+/* 80370144 0036BDA4 4B F2 74 9D */ bl func_802975E0
+/* 80370148 0036BDA8 80 7B 00 00 */ lwz r3, 0(r27)
+/* 8037014C 0036BDAC 4B F2 73 45 */ bl func_80297490
+/* 80370150 0036BDB0 38 00 00 00 */ li r0, 0
+/* 80370154 0036BDB4 90 1B 00 00 */ stw r0, 0(r27)
+lbl_80370158:
+/* 80370158 0036BDB8 34 7B 00 04 */ addic. r3, r27, 4
+/* 8037015C 0036BDBC 41 82 00 0C */ beq lbl_80370168
+/* 80370160 0036BDC0 38 80 00 00 */ li r4, 0
+/* 80370164 0036BDC4 4B FF 29 D5 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
+lbl_80370168:
+/* 80370168 0036BDC8 2C 1C 00 00 */ cmpwi r28, 0
+/* 8037016C 0036BDCC 40 81 00 0C */ ble lbl_80370178
+/* 80370170 0036BDD0 7F 63 DB 78 */ mr r3, r27
+/* 80370174 0036BDD4 4B E6 A9 45 */ bl func_801DAAB8
+lbl_80370178:
+/* 80370178 0036BDD8 39 61 00 20 */ addi r11, r1, 0x20
+/* 8037017C 0036BDDC 7F 63 DB 78 */ mr r3, r27
+/* 80370180 0036BDE0 4B E5 6F F5 */ bl _restgpr_27
+/* 80370184 0036BDE4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80370188 0036BDE8 7C 08 03 A6 */ mtlr r0
+/* 8037018C 0036BDEC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80370190 0036BDF0 4E 80 00 20 */ blr
+
+.global Create__Q44nw4r3snd6detail9FrameHeapFPvUl
+Create__Q44nw4r3snd6detail9FrameHeapFPvUl:
+/* 80370194 0036BDF4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80370198 0036BDF8 7C 08 02 A6 */ mflr r0
+/* 8037019C 0036BDFC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803701A0 0036BE00 39 61 00 30 */ addi r11, r1, 0x30
+/* 803701A4 0036BE04 4B E5 6F 81 */ bl _savegpr_26
+/* 803701A8 0036BE08 80 03 00 00 */ lwz r0, 0(r3)
+/* 803701AC 0036BE0C 7C 7A 1B 78 */ mr r26, r3
+/* 803701B0 0036BE10 7C 9B 23 78 */ mr r27, r4
+/* 803701B4 0036BE14 7C BC 2B 78 */ mr r28, r5
+/* 803701B8 0036BE18 2C 00 00 00 */ cmpwi r0, 0
+/* 803701BC 0036BE1C 41 82 00 AC */ beq lbl_80370268
+/* 803701C0 0036BE20 41 82 00 A8 */ beq lbl_80370268
+/* 803701C4 0036BE24 80 03 00 04 */ lwz r0, 4(r3)
+/* 803701C8 0036BE28 2C 00 00 00 */ cmpwi r0, 0
+/* 803701CC 0036BE2C 41 82 00 80 */ beq lbl_8037024C
+/* 803701D0 0036BE30 3B E3 00 08 */ addi r31, r3, 8
+/* 803701D4 0036BE34 48 00 00 6C */ b lbl_80370240
+lbl_803701D8:
+/* 803701D8 0036BE38 83 BF 00 04 */ lwz r29, 4(r31)
+/* 803701DC 0036BE3C 2C 1D 00 00 */ cmpwi r29, 0
+/* 803701E0 0036BE40 41 82 00 54 */ beq lbl_80370234
+/* 803701E4 0036BE44 3B DD 00 0C */ addi r30, r29, 0xc
+/* 803701E8 0036BE48 48 00 00 30 */ b lbl_80370218
+lbl_803701EC:
+/* 803701EC 0036BE4C 83 DE 00 04 */ lwz r30, 4(r30)
+/* 803701F0 0036BE50 2C 1E 00 00 */ cmpwi r30, 0
+/* 803701F4 0036BE54 41 82 00 24 */ beq lbl_80370218
+/* 803701F8 0036BE58 81 9E 00 0C */ lwz r12, 0xc(r30)
+/* 803701FC 0036BE5C 2C 0C 00 00 */ cmpwi r12, 0
+/* 80370200 0036BE60 41 82 00 18 */ beq lbl_80370218
+/* 80370204 0036BE64 38 7E 00 20 */ addi r3, r30, 0x20
+/* 80370208 0036BE68 80 9E 00 08 */ lwz r4, 8(r30)
+/* 8037020C 0036BE6C 80 BE 00 10 */ lwz r5, 0x10(r30)
+/* 80370210 0036BE70 7D 89 03 A6 */ mtctr r12
+/* 80370214 0036BE74 4E 80 04 21 */ bctrl
+lbl_80370218:
+/* 80370218 0036BE78 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 8037021C 0036BE7C 7C 1E 00 40 */ cmplw r30, r0
+/* 80370220 0036BE80 40 82 FF CC */ bne lbl_803701EC
+/* 80370224 0036BE84 34 7D 00 08 */ addic. r3, r29, 8
+/* 80370228 0036BE88 41 82 00 0C */ beq lbl_80370234
+/* 8037022C 0036BE8C 38 80 00 00 */ li r4, 0
+/* 80370230 0036BE90 4B FF 29 09 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
+lbl_80370234:
+/* 80370234 0036BE94 7F A4 EB 78 */ mr r4, r29
+/* 80370238 0036BE98 38 7A 00 04 */ addi r3, r26, 4
+/* 8037023C 0036BE9C 4B FF 2A 39 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+lbl_80370240:
+/* 80370240 0036BEA0 80 1A 00 04 */ lwz r0, 4(r26)
+/* 80370244 0036BEA4 2C 00 00 00 */ cmpwi r0, 0
+/* 80370248 0036BEA8 40 82 FF 90 */ bne lbl_803701D8
+lbl_8037024C:
+/* 8037024C 0036BEAC 80 7A 00 00 */ lwz r3, 0(r26)
+/* 80370250 0036BEB0 38 80 00 03 */ li r4, 3
+/* 80370254 0036BEB4 4B F2 73 8D */ bl func_802975E0
+/* 80370258 0036BEB8 80 7A 00 00 */ lwz r3, 0(r26)
+/* 8037025C 0036BEBC 4B F2 72 35 */ bl func_80297490
+/* 80370260 0036BEC0 38 00 00 00 */ li r0, 0
+/* 80370264 0036BEC4 90 1A 00 00 */ stw r0, 0(r26)
+lbl_80370268:
+/* 80370268 0036BEC8 38 1B 00 03 */ addi r0, r27, 3
+/* 8037026C 0036BECC 7C 9B E2 14 */ add r4, r27, r28
+/* 80370270 0036BED0 54 03 00 3A */ rlwinm r3, r0, 0, 0, 0x1d
+/* 80370274 0036BED4 7C 03 20 40 */ cmplw r3, r4
+/* 80370278 0036BED8 40 81 00 0C */ ble lbl_80370284
+/* 8037027C 0036BEDC 38 60 00 00 */ li r3, 0
+/* 80370280 0036BEE0 48 00 00 98 */ b lbl_80370318
+lbl_80370284:
+/* 80370284 0036BEE4 7C 83 20 50 */ subf r4, r3, r4
+/* 80370288 0036BEE8 38 A0 00 00 */ li r5, 0
+/* 8037028C 0036BEEC 4B F2 71 81 */ bl func_8029740C
+/* 80370290 0036BEF0 2C 03 00 00 */ cmpwi r3, 0
+/* 80370294 0036BEF4 90 7A 00 00 */ stw r3, 0(r26)
+/* 80370298 0036BEF8 40 82 00 0C */ bne lbl_803702A4
+/* 8037029C 0036BEFC 38 60 00 00 */ li r3, 0
+/* 803702A0 0036BF00 48 00 00 78 */ b lbl_80370318
+lbl_803702A4:
+/* 803702A4 0036BF04 38 80 00 14 */ li r4, 0x14
+/* 803702A8 0036BF08 38 A0 00 04 */ li r5, 4
+/* 803702AC 0036BF0C 4B F2 72 15 */ bl func_802974C0
+/* 803702B0 0036BF10 2C 03 00 00 */ cmpwi r3, 0
+/* 803702B4 0036BF14 40 82 00 0C */ bne lbl_803702C0
+/* 803702B8 0036BF18 38 00 00 00 */ li r0, 0
+/* 803702BC 0036BF1C 48 00 00 48 */ b lbl_80370304
+lbl_803702C0:
+/* 803702C0 0036BF20 7C 65 1B 78 */ mr r5, r3
+/* 803702C4 0036BF24 41 82 00 28 */ beq lbl_803702EC
+/* 803702C8 0036BF28 38 00 00 00 */ li r0, 0
+/* 803702CC 0036BF2C 38 83 00 0C */ addi r4, r3, 0xc
+/* 803702D0 0036BF30 90 03 00 00 */ stw r0, 0(r3)
+/* 803702D4 0036BF34 90 03 00 04 */ stw r0, 4(r3)
+/* 803702D8 0036BF38 90 03 00 0C */ stw r0, 0xc(r3)
+/* 803702DC 0036BF3C 90 03 00 10 */ stw r0, 0x10(r3)
+/* 803702E0 0036BF40 90 03 00 08 */ stw r0, 8(r3)
+/* 803702E4 0036BF44 90 83 00 0C */ stw r4, 0xc(r3)
+/* 803702E8 0036BF48 90 83 00 10 */ stw r4, 0x10(r3)
+lbl_803702EC:
+/* 803702EC 0036BF4C 38 1A 00 08 */ addi r0, r26, 8
+/* 803702F0 0036BF50 38 7A 00 04 */ addi r3, r26, 4
+/* 803702F4 0036BF54 90 01 00 08 */ stw r0, 8(r1)
+/* 803702F8 0036BF58 38 81 00 08 */ addi r4, r1, 8
+/* 803702FC 0036BF5C 4B FF 29 4D */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
+/* 80370300 0036BF60 38 00 00 01 */ li r0, 1
+lbl_80370304:
+/* 80370304 0036BF64 2C 00 00 00 */ cmpwi r0, 0
+/* 80370308 0036BF68 40 82 00 0C */ bne lbl_80370314
+/* 8037030C 0036BF6C 38 60 00 00 */ li r3, 0
+/* 80370310 0036BF70 48 00 00 08 */ b lbl_80370318
+lbl_80370314:
+/* 80370314 0036BF74 38 60 00 01 */ li r3, 1
+lbl_80370318:
+/* 80370318 0036BF78 39 61 00 30 */ addi r11, r1, 0x30
+/* 8037031C 0036BF7C 4B E5 6E 55 */ bl func_801C7170
+/* 80370320 0036BF80 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80370324 0036BF84 7C 08 03 A6 */ mtlr r0
+/* 80370328 0036BF88 38 21 00 30 */ addi r1, r1, 0x30
+/* 8037032C 0036BF8C 4E 80 00 20 */ blr
+
+.global Destroy__Q44nw4r3snd6detail9FrameHeapFv
+Destroy__Q44nw4r3snd6detail9FrameHeapFv:
+/* 80370330 0036BF90 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80370334 0036BF94 7C 08 02 A6 */ mflr r0
+/* 80370338 0036BF98 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8037033C 0036BF9C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80370340 0036BFA0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80370344 0036BFA4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80370348 0036BFA8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8037034C 0036BFAC 7C 7C 1B 78 */ mr r28, r3
+/* 80370350 0036BFB0 80 03 00 00 */ lwz r0, 0(r3)
+/* 80370354 0036BFB4 2C 00 00 00 */ cmpwi r0, 0
+/* 80370358 0036BFB8 41 82 00 A8 */ beq lbl_80370400
+/* 8037035C 0036BFBC 80 03 00 04 */ lwz r0, 4(r3)
+/* 80370360 0036BFC0 2C 00 00 00 */ cmpwi r0, 0
+/* 80370364 0036BFC4 41 82 00 80 */ beq lbl_803703E4
+/* 80370368 0036BFC8 3B E3 00 08 */ addi r31, r3, 8
+/* 8037036C 0036BFCC 48 00 00 6C */ b lbl_803703D8
+lbl_80370370:
+/* 80370370 0036BFD0 83 BF 00 04 */ lwz r29, 4(r31)
+/* 80370374 0036BFD4 2C 1D 00 00 */ cmpwi r29, 0
+/* 80370378 0036BFD8 41 82 00 54 */ beq lbl_803703CC
+/* 8037037C 0036BFDC 3B DD 00 0C */ addi r30, r29, 0xc
+/* 80370380 0036BFE0 48 00 00 30 */ b lbl_803703B0
+lbl_80370384:
+/* 80370384 0036BFE4 83 DE 00 04 */ lwz r30, 4(r30)
+/* 80370388 0036BFE8 2C 1E 00 00 */ cmpwi r30, 0
+/* 8037038C 0036BFEC 41 82 00 24 */ beq lbl_803703B0
+/* 80370390 0036BFF0 81 9E 00 0C */ lwz r12, 0xc(r30)
+/* 80370394 0036BFF4 2C 0C 00 00 */ cmpwi r12, 0
+/* 80370398 0036BFF8 41 82 00 18 */ beq lbl_803703B0
+/* 8037039C 0036BFFC 38 7E 00 20 */ addi r3, r30, 0x20
+/* 803703A0 0036C000 80 9E 00 08 */ lwz r4, 8(r30)
+/* 803703A4 0036C004 80 BE 00 10 */ lwz r5, 0x10(r30)
+/* 803703A8 0036C008 7D 89 03 A6 */ mtctr r12
+/* 803703AC 0036C00C 4E 80 04 21 */ bctrl
+lbl_803703B0:
+/* 803703B0 0036C010 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 803703B4 0036C014 7C 1E 00 40 */ cmplw r30, r0
+/* 803703B8 0036C018 40 82 FF CC */ bne lbl_80370384
+/* 803703BC 0036C01C 34 7D 00 08 */ addic. r3, r29, 8
+/* 803703C0 0036C020 41 82 00 0C */ beq lbl_803703CC
+/* 803703C4 0036C024 38 80 00 00 */ li r4, 0
+/* 803703C8 0036C028 4B FF 27 71 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
+lbl_803703CC:
+/* 803703CC 0036C02C 7F A4 EB 78 */ mr r4, r29
+/* 803703D0 0036C030 38 7C 00 04 */ addi r3, r28, 4
+/* 803703D4 0036C034 4B FF 28 A1 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+lbl_803703D8:
+/* 803703D8 0036C038 80 1C 00 04 */ lwz r0, 4(r28)
+/* 803703DC 0036C03C 2C 00 00 00 */ cmpwi r0, 0
+/* 803703E0 0036C040 40 82 FF 90 */ bne lbl_80370370
+lbl_803703E4:
+/* 803703E4 0036C044 80 7C 00 00 */ lwz r3, 0(r28)
+/* 803703E8 0036C048 38 80 00 03 */ li r4, 3
+/* 803703EC 0036C04C 4B F2 71 F5 */ bl func_802975E0
+/* 803703F0 0036C050 80 7C 00 00 */ lwz r3, 0(r28)
+/* 803703F4 0036C054 4B F2 70 9D */ bl func_80297490
+/* 803703F8 0036C058 38 00 00 00 */ li r0, 0
+/* 803703FC 0036C05C 90 1C 00 00 */ stw r0, 0(r28)
+lbl_80370400:
+/* 80370400 0036C060 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80370404 0036C064 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80370408 0036C068 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8037040C 0036C06C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80370410 0036C070 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80370414 0036C074 7C 08 03 A6 */ mtlr r0
+/* 80370418 0036C078 38 21 00 20 */ addi r1, r1, 0x20
+/* 8037041C 0036C07C 4E 80 00 20 */ blr
+
+.global Clear__Q44nw4r3snd6detail9FrameHeapFv
+Clear__Q44nw4r3snd6detail9FrameHeapFv:
+/* 80370420 0036C080 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80370424 0036C084 7C 08 02 A6 */ mflr r0
+/* 80370428 0036C088 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8037042C 0036C08C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80370430 0036C090 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80370434 0036C094 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80370438 0036C098 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8037043C 0036C09C 7C 7C 1B 78 */ mr r28, r3
+/* 80370440 0036C0A0 80 03 00 04 */ lwz r0, 4(r3)
+/* 80370444 0036C0A4 2C 00 00 00 */ cmpwi r0, 0
+/* 80370448 0036C0A8 41 82 00 80 */ beq lbl_803704C8
+/* 8037044C 0036C0AC 3B E3 00 08 */ addi r31, r3, 8
+/* 80370450 0036C0B0 48 00 00 6C */ b lbl_803704BC
+lbl_80370454:
+/* 80370454 0036C0B4 83 BF 00 04 */ lwz r29, 4(r31)
+/* 80370458 0036C0B8 2C 1D 00 00 */ cmpwi r29, 0
+/* 8037045C 0036C0BC 41 82 00 54 */ beq lbl_803704B0
+/* 80370460 0036C0C0 3B DD 00 0C */ addi r30, r29, 0xc
+/* 80370464 0036C0C4 48 00 00 30 */ b lbl_80370494
+lbl_80370468:
+/* 80370468 0036C0C8 83 DE 00 04 */ lwz r30, 4(r30)
+/* 8037046C 0036C0CC 2C 1E 00 00 */ cmpwi r30, 0
+/* 80370470 0036C0D0 41 82 00 24 */ beq lbl_80370494
+/* 80370474 0036C0D4 81 9E 00 0C */ lwz r12, 0xc(r30)
+/* 80370478 0036C0D8 2C 0C 00 00 */ cmpwi r12, 0
+/* 8037047C 0036C0DC 41 82 00 18 */ beq lbl_80370494
+/* 80370480 0036C0E0 38 7E 00 20 */ addi r3, r30, 0x20
+/* 80370484 0036C0E4 80 9E 00 08 */ lwz r4, 8(r30)
+/* 80370488 0036C0E8 80 BE 00 10 */ lwz r5, 0x10(r30)
+/* 8037048C 0036C0EC 7D 89 03 A6 */ mtctr r12
+/* 80370490 0036C0F0 4E 80 04 21 */ bctrl
+lbl_80370494:
+/* 80370494 0036C0F4 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 80370498 0036C0F8 7C 1E 00 40 */ cmplw r30, r0
+/* 8037049C 0036C0FC 40 82 FF CC */ bne lbl_80370468
+/* 803704A0 0036C100 34 7D 00 08 */ addic. r3, r29, 8
+/* 803704A4 0036C104 41 82 00 0C */ beq lbl_803704B0
+/* 803704A8 0036C108 38 80 00 00 */ li r4, 0
+/* 803704AC 0036C10C 4B FF 26 8D */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
+lbl_803704B0:
+/* 803704B0 0036C110 7F A4 EB 78 */ mr r4, r29
+/* 803704B4 0036C114 38 7C 00 04 */ addi r3, r28, 4
+/* 803704B8 0036C118 4B FF 27 BD */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+lbl_803704BC:
+/* 803704BC 0036C11C 80 1C 00 04 */ lwz r0, 4(r28)
+/* 803704C0 0036C120 2C 00 00 00 */ cmpwi r0, 0
+/* 803704C4 0036C124 40 82 FF 90 */ bne lbl_80370454
+lbl_803704C8:
+/* 803704C8 0036C128 80 7C 00 00 */ lwz r3, 0(r28)
+/* 803704CC 0036C12C 38 80 00 03 */ li r4, 3
+/* 803704D0 0036C130 4B F2 71 11 */ bl func_802975E0
+/* 803704D4 0036C134 80 7C 00 00 */ lwz r3, 0(r28)
+/* 803704D8 0036C138 38 80 00 14 */ li r4, 0x14
+/* 803704DC 0036C13C 38 A0 00 04 */ li r5, 4
+/* 803704E0 0036C140 4B F2 6F E1 */ bl func_802974C0
+/* 803704E4 0036C144 2C 03 00 00 */ cmpwi r3, 0
+/* 803704E8 0036C148 41 82 00 44 */ beq lbl_8037052C
+/* 803704EC 0036C14C 7C 65 1B 78 */ mr r5, r3
+/* 803704F0 0036C150 41 82 00 28 */ beq lbl_80370518
+/* 803704F4 0036C154 38 00 00 00 */ li r0, 0
+/* 803704F8 0036C158 38 83 00 0C */ addi r4, r3, 0xc
+/* 803704FC 0036C15C 90 03 00 00 */ stw r0, 0(r3)
+/* 80370500 0036C160 90 03 00 04 */ stw r0, 4(r3)
+/* 80370504 0036C164 90 03 00 0C */ stw r0, 0xc(r3)
+/* 80370508 0036C168 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8037050C 0036C16C 90 03 00 08 */ stw r0, 8(r3)
+/* 80370510 0036C170 90 83 00 0C */ stw r4, 0xc(r3)
+/* 80370514 0036C174 90 83 00 10 */ stw r4, 0x10(r3)
+lbl_80370518:
+/* 80370518 0036C178 38 1C 00 08 */ addi r0, r28, 8
+/* 8037051C 0036C17C 38 7C 00 04 */ addi r3, r28, 4
+/* 80370520 0036C180 90 01 00 08 */ stw r0, 8(r1)
+/* 80370524 0036C184 38 81 00 08 */ addi r4, r1, 8
+/* 80370528 0036C188 4B FF 27 21 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
+lbl_8037052C:
+/* 8037052C 0036C18C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80370530 0036C190 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80370534 0036C194 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80370538 0036C198 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8037053C 0036C19C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80370540 0036C1A0 7C 08 03 A6 */ mtlr r0
+/* 80370544 0036C1A4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80370548 0036C1A8 4E 80 00 20 */ blr
+
+.global Alloc__Q44nw4r3snd6detail9FrameHeapFUlPFPvUlPv_vPv
+Alloc__Q44nw4r3snd6detail9FrameHeapFUlPFPvUlPv_vPv:
+/* 8037054C 0036C1AC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80370550 0036C1B0 7C 08 02 A6 */ mflr r0
+/* 80370554 0036C1B4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80370558 0036C1B8 39 61 00 30 */ addi r11, r1, 0x30
+/* 8037055C 0036C1BC 4B E5 6B CD */ bl _savegpr_27
+/* 80370560 0036C1C0 38 04 00 1F */ addi r0, r4, 0x1f
+/* 80370564 0036C1C4 7C 7B 1B 78 */ mr r27, r3
+/* 80370568 0036C1C8 54 07 00 34 */ rlwinm r7, r0, 0, 0, 0x1a
+/* 8037056C 0036C1CC 80 63 00 00 */ lwz r3, 0(r3)
+/* 80370570 0036C1D0 7C 9C 23 78 */ mr r28, r4
+/* 80370574 0036C1D4 7C BD 2B 78 */ mr r29, r5
+/* 80370578 0036C1D8 7C DE 33 78 */ mr r30, r6
+/* 8037057C 0036C1DC 38 87 00 20 */ addi r4, r7, 0x20
+/* 80370580 0036C1E0 38 A0 00 20 */ li r5, 0x20
+/* 80370584 0036C1E4 4B F2 6F 3D */ bl func_802974C0
+/* 80370588 0036C1E8 2C 03 00 00 */ cmpwi r3, 0
+/* 8037058C 0036C1EC 7C 7F 1B 78 */ mr r31, r3
+/* 80370590 0036C1F0 40 82 00 0C */ bne lbl_8037059C
+/* 80370594 0036C1F4 38 60 00 00 */ li r3, 0
+/* 80370598 0036C1F8 48 00 00 40 */ b lbl_803705D8
+lbl_8037059C:
+/* 8037059C 0036C1FC 41 82 00 1C */ beq lbl_803705B8
+/* 803705A0 0036C200 38 00 00 00 */ li r0, 0
+/* 803705A4 0036C204 90 03 00 00 */ stw r0, 0(r3)
+/* 803705A8 0036C208 90 03 00 04 */ stw r0, 4(r3)
+/* 803705AC 0036C20C 93 83 00 08 */ stw r28, 8(r3)
+/* 803705B0 0036C210 93 A3 00 0C */ stw r29, 0xc(r3)
+/* 803705B4 0036C214 93 C3 00 10 */ stw r30, 0x10(r3)
+lbl_803705B8:
+/* 803705B8 0036C218 80 7B 00 0C */ lwz r3, 0xc(r27)
+/* 803705BC 0036C21C 7F E5 FB 78 */ mr r5, r31
+/* 803705C0 0036C220 38 81 00 08 */ addi r4, r1, 8
+/* 803705C4 0036C224 38 03 00 0C */ addi r0, r3, 0xc
+/* 803705C8 0036C228 38 63 00 08 */ addi r3, r3, 8
+/* 803705CC 0036C22C 90 01 00 08 */ stw r0, 8(r1)
+/* 803705D0 0036C230 4B FF 26 79 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
+/* 803705D4 0036C234 38 7F 00 20 */ addi r3, r31, 0x20
+lbl_803705D8:
+/* 803705D8 0036C238 39 61 00 30 */ addi r11, r1, 0x30
+/* 803705DC 0036C23C 4B E5 6B 99 */ bl _restgpr_27
+/* 803705E0 0036C240 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 803705E4 0036C244 7C 08 03 A6 */ mtlr r0
+/* 803705E8 0036C248 38 21 00 30 */ addi r1, r1, 0x30
+/* 803705EC 0036C24C 4E 80 00 20 */ blr
+
+/* note: unknown for now */
+.global func_803705F0
+func_803705F0:
+/* 803705F0 0036C250 80 63 00 00 */ lwz r3, 0(r3)
+/* 803705F4 0036C254 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 803705F8 0036C258 7C 63 00 50 */ subf r3, r3, r0
+/* 803705FC 0036C25C 4E 80 00 20 */ blr
+
+.global GetFreeSize__Q44nw4r3snd6detail9FrameHeapCFv
+GetFreeSize__Q44nw4r3snd6detail9FrameHeapCFv:
+/* 80370600 0036C260 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80370604 0036C264 7C 08 02 A6 */ mflr r0
+/* 80370608 0036C268 80 63 00 00 */ lwz r3, 0(r3)
+/* 8037060C 0036C26C 38 80 00 20 */ li r4, 0x20
+/* 80370610 0036C270 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80370614 0036C274 4B F2 70 6D */ bl func_80297680
+/* 80370618 0036C278 38 80 00 20 */ li r4, 0x20
+/* 8037061C 0036C27C 38 03 FF E0 */ addi r0, r3, -32
+/* 80370620 0036C280 7C 64 18 10 */ subfc r3, r4, r3
+/* 80370624 0036C284 7C 63 19 10 */ subfe r3, r3, r3
+/* 80370628 0036C288 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a
+/* 8037062C 0036C28C 7C 03 18 78 */ andc r3, r0, r3
+/* 80370630 0036C290 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80370634 0036C294 7C 08 03 A6 */ mtlr r0
+/* 80370638 0036C298 38 21 00 10 */ addi r1, r1, 0x10
+/* 8037063C 0036C29C 4E 80 00 20 */ blr
diff --git a/asm/text_10_4.s b/asm/text_10_4.s index 2fe0d9f..6a65a03 100644 --- a/asm/text_10_4.s +++ b/asm/text_10_4.s @@ -2,1183 +2,6 @@ .section .text, "ax" # 0x80006980 - 0x803E1E60
-.global func_8036F688
-func_8036F688:
-/* 8036F688 0036B2E8 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8036F68C 0036B2EC 7C 08 02 A6 */ mflr r0
-/* 8036F690 0036B2F0 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8036F694 0036B2F4 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8036F698 0036B2F8 7C 7F 1B 78 */ mr r31, r3
-/* 8036F69C 0036B2FC 48 00 78 F1 */ bl func_80376F8C
-/* 8036F6A0 0036B300 3C 80 80 45 */ lis r4, lbl_8044CA08@ha
-/* 8036F6A4 0036B304 38 7F 01 08 */ addi r3, r31, 0x108
-/* 8036F6A8 0036B308 38 84 CA 08 */ addi r4, r4, lbl_8044CA08@l
-/* 8036F6AC 0036B30C 90 9F 00 00 */ stw r4, 0(r31)
-/* 8036F6B0 0036B310 48 00 7E CD */ bl GLXMemoryInfo___ct
-/* 8036F6B4 0036B314 38 00 00 00 */ li r0, 0
-/* 8036F6B8 0036B318 7F E3 FB 78 */ mr r3, r31
-/* 8036F6BC 0036B31C 98 1F 01 88 */ stb r0, 0x188(r31)
-/* 8036F6C0 0036B320 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8036F6C4 0036B324 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8036F6C8 0036B328 7C 08 03 A6 */ mtlr r0
-/* 8036F6CC 0036B32C 38 21 00 10 */ addi r1, r1, 0x10
-/* 8036F6D0 0036B330 4E 80 00 20 */ blr
-
-.global func_8036F6D4
-func_8036F6D4:
-/* 8036F6D4 0036B334 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8036F6D8 0036B338 7C 08 02 A6 */ mflr r0
-/* 8036F6DC 0036B33C 2C 03 00 00 */ cmpwi r3, 0
-/* 8036F6E0 0036B340 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8036F6E4 0036B344 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8036F6E8 0036B348 7C 9F 23 78 */ mr r31, r4
-/* 8036F6EC 0036B34C 93 C1 00 08 */ stw r30, 8(r1)
-/* 8036F6F0 0036B350 7C 7E 1B 78 */ mr r30, r3
-/* 8036F6F4 0036B354 41 82 00 44 */ beq lbl_8036F738
-/* 8036F6F8 0036B358 3C 80 80 45 */ lis r4, lbl_8044CA08@ha
-/* 8036F6FC 0036B35C 38 84 CA 08 */ addi r4, r4, lbl_8044CA08@l
-/* 8036F700 0036B360 90 83 00 00 */ stw r4, 0(r3)
-/* 8036F704 0036B364 38 63 01 4C */ addi r3, r3, 0x14c
-/* 8036F708 0036B368 4B F1 85 D1 */ bl func_80287CD8
-/* 8036F70C 0036B36C 38 00 00 00 */ li r0, 0
-/* 8036F710 0036B370 7F C3 F3 78 */ mr r3, r30
-/* 8036F714 0036B374 98 1E 01 88 */ stb r0, 0x188(r30)
-/* 8036F718 0036B378 48 00 78 F5 */ bl func_8037700C
-/* 8036F71C 0036B37C 7F C3 F3 78 */ mr r3, r30
-/* 8036F720 0036B380 38 80 00 00 */ li r4, 0
-/* 8036F724 0036B384 48 00 78 8D */ bl func_80376FB0
-/* 8036F728 0036B388 2C 1F 00 00 */ cmpwi r31, 0
-/* 8036F72C 0036B38C 40 81 00 0C */ ble lbl_8036F738
-/* 8036F730 0036B390 7F C3 F3 78 */ mr r3, r30
-/* 8036F734 0036B394 4B E6 B3 85 */ bl func_801DAAB8
-lbl_8036F738:
-/* 8036F738 0036B398 7F C3 F3 78 */ mr r3, r30
-/* 8036F73C 0036B39C 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8036F740 0036B3A0 83 C1 00 08 */ lwz r30, 8(r1)
-/* 8036F744 0036B3A4 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8036F748 0036B3A8 7C 08 03 A6 */ mtlr r0
-/* 8036F74C 0036B3AC 38 21 00 10 */ addi r1, r1, 0x10
-/* 8036F750 0036B3B0 4E 80 00 20 */ blr
-
-.global func_8036F754
-func_8036F754:
-/* 8036F754 0036B3B4 94 21 FE 80 */ stwu r1, -0x180(r1)
-/* 8036F758 0036B3B8 7C 08 02 A6 */ mflr r0
-/* 8036F75C 0036B3BC 90 01 01 84 */ stw r0, 0x184(r1)
-/* 8036F760 0036B3C0 93 E1 01 7C */ stw r31, 0x17c(r1)
-/* 8036F764 0036B3C4 93 C1 01 78 */ stw r30, 0x178(r1)
-/* 8036F768 0036B3C8 93 A1 01 74 */ stw r29, 0x174(r1)
-/* 8036F76C 0036B3CC 7C 9D 23 78 */ mr r29, r4
-/* 8036F770 0036B3D0 93 81 01 70 */ stw r28, 0x170(r1)
-/* 8036F774 0036B3D4 7C 7C 1B 78 */ mr r28, r3
-/* 8036F778 0036B3D8 7F A3 EB 78 */ mr r3, r29
-/* 8036F77C 0036B3DC 4B F1 7F 41 */ bl func_802876BC
-/* 8036F780 0036B3E0 2C 03 00 00 */ cmpwi r3, 0
-/* 8036F784 0036B3E4 40 80 00 0C */ bge lbl_8036F790
-/* 8036F788 0036B3E8 38 60 00 00 */ li r3, 0
-/* 8036F78C 0036B3EC 48 00 01 08 */ b lbl_8036F894
-lbl_8036F790:
-/* 8036F790 0036B3F0 38 9C 01 4C */ addi r4, r28, 0x14c
-/* 8036F794 0036B3F4 4B F1 82 31 */ bl func_802879C4
-/* 8036F798 0036B3F8 2C 03 00 00 */ cmpwi r3, 0
-/* 8036F79C 0036B3FC 40 82 00 0C */ bne lbl_8036F7A8
-/* 8036F7A0 0036B400 38 00 00 00 */ li r0, 0
-/* 8036F7A4 0036B404 48 00 00 74 */ b lbl_8036F818
-lbl_8036F7A8:
-/* 8036F7A8 0036B408 38 60 00 01 */ li r3, 1
-/* 8036F7AC 0036B40C 98 7C 01 88 */ stb r3, 0x188(r28)
-/* 8036F7B0 0036B410 88 0D B2 08 */ lbz r0, lbl_806404C8-_SDA_BASE_(r13)
-/* 8036F7B4 0036B414 7C 00 07 75 */ extsb. r0, r0
-/* 8036F7B8 0036B418 40 82 00 10 */ bne lbl_8036F7C8
-/* 8036F7BC 0036B41C 38 00 00 40 */ li r0, 0x40
-/* 8036F7C0 0036B420 98 6D B2 08 */ stb r3, lbl_806404C8-_SDA_BASE_(r13)
-/* 8036F7C4 0036B424 90 02 AA 40 */ stw r0, lbl_80643040-_SDA2_BASE_(r2)
-lbl_8036F7C8:
-/* 8036F7C8 0036B428 38 01 00 27 */ addi r0, r1, 0x27
-/* 8036F7CC 0036B42C 83 C2 AA 40 */ lwz r30, lbl_80643040-_SDA2_BASE_(r2)
-/* 8036F7D0 0036B430 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a
-/* 8036F7D4 0036B434 38 7C 01 4C */ addi r3, r28, 0x14c
-/* 8036F7D8 0036B438 7F E4 FB 78 */ mr r4, r31
-/* 8036F7DC 0036B43C 7F C5 F3 78 */ mr r5, r30
-/* 8036F7E0 0036B440 38 C0 00 00 */ li r6, 0
-/* 8036F7E4 0036B444 38 E0 00 02 */ li r7, 2
-/* 8036F7E8 0036B448 4B F1 87 BD */ bl func_80287FA4
-/* 8036F7EC 0036B44C 7C 03 F0 40 */ cmplw r3, r30
-/* 8036F7F0 0036B450 41 82 00 0C */ beq lbl_8036F7FC
-/* 8036F7F4 0036B454 38 00 00 00 */ li r0, 0
-/* 8036F7F8 0036B458 48 00 00 20 */ b lbl_8036F818
-lbl_8036F7FC:
-/* 8036F7FC 0036B45C 7F E4 FB 78 */ mr r4, r31
-/* 8036F800 0036B460 38 7C 01 08 */ addi r3, r28, 0x108
-/* 8036F804 0036B464 48 00 7D 9D */ bl func_803775A0
-/* 8036F808 0036B468 7F 83 E3 78 */ mr r3, r28
-/* 8036F80C 0036B46C 38 9C 01 08 */ addi r4, r28, 0x108
-/* 8036F810 0036B470 48 00 77 F5 */ bl func_80377004
-/* 8036F814 0036B474 38 00 00 01 */ li r0, 1
-lbl_8036F818:
-/* 8036F818 0036B478 2C 00 00 00 */ cmpwi r0, 0
-/* 8036F81C 0036B47C 40 82 00 0C */ bne lbl_8036F828
-/* 8036F820 0036B480 38 60 00 00 */ li r3, 0
-/* 8036F824 0036B484 48 00 00 70 */ b lbl_8036F894
-lbl_8036F828:
-/* 8036F828 0036B488 7F A3 EB 78 */ mr r3, r29
-/* 8036F82C 0036B48C 4B E5 73 39 */ bl strlen
-/* 8036F830 0036B490 37 C3 FF FF */ addic. r30, r3, -1
-/* 8036F834 0036B494 38 1E 00 01 */ addi r0, r30, 1
-/* 8036F838 0036B498 7C 7D F2 14 */ add r3, r29, r30
-/* 8036F83C 0036B49C 7C 09 03 A6 */ mtctr r0
-/* 8036F840 0036B4A0 41 80 00 50 */ blt lbl_8036F890
-lbl_8036F844:
-/* 8036F844 0036B4A4 88 03 00 00 */ lbz r0, 0(r3)
-/* 8036F848 0036B4A8 7C 00 07 74 */ extsb r0, r0
-/* 8036F84C 0036B4AC 2C 00 00 2F */ cmpwi r0, 0x2f
-/* 8036F850 0036B4B0 41 82 00 0C */ beq lbl_8036F85C
-/* 8036F854 0036B4B4 2C 00 00 5C */ cmpwi r0, 0x5c
-/* 8036F858 0036B4B8 40 82 00 2C */ bne lbl_8036F884
-lbl_8036F85C:
-/* 8036F85C 0036B4BC 7F A4 EB 78 */ mr r4, r29
-/* 8036F860 0036B4C0 7F C5 F3 78 */ mr r5, r30
-/* 8036F864 0036B4C4 38 61 00 70 */ addi r3, r1, 0x70
-/* 8036F868 0036B4C8 4B E5 EB 29 */ bl func_801CE390
-/* 8036F86C 0036B4CC 38 81 00 70 */ addi r4, r1, 0x70
-/* 8036F870 0036B4D0 38 00 00 00 */ li r0, 0
-/* 8036F874 0036B4D4 7C 04 F1 AE */ stbx r0, r4, r30
-/* 8036F878 0036B4D8 7F 83 E3 78 */ mr r3, r28
-/* 8036F87C 0036B4DC 48 00 7C 85 */ bl func_80377500
-/* 8036F880 0036B4E0 48 00 00 10 */ b lbl_8036F890
-lbl_8036F884:
-/* 8036F884 0036B4E4 3B DE FF FF */ addi r30, r30, -1
-/* 8036F888 0036B4E8 38 63 FF FF */ addi r3, r3, -1
-/* 8036F88C 0036B4EC 42 00 FF B8 */ bdnz lbl_8036F844
-lbl_8036F890:
-/* 8036F890 0036B4F0 38 60 00 01 */ li r3, 1
-lbl_8036F894:
-/* 8036F894 0036B4F4 80 01 01 84 */ lwz r0, 0x184(r1)
-/* 8036F898 0036B4F8 83 E1 01 7C */ lwz r31, 0x17c(r1)
-/* 8036F89C 0036B4FC 83 C1 01 78 */ lwz r30, 0x178(r1)
-/* 8036F8A0 0036B500 83 A1 01 74 */ lwz r29, 0x174(r1)
-/* 8036F8A4 0036B504 83 81 01 70 */ lwz r28, 0x170(r1)
-/* 8036F8A8 0036B508 7C 08 03 A6 */ mtlr r0
-/* 8036F8AC 0036B50C 38 21 01 80 */ addi r1, r1, 0x180
-/* 8036F8B0 0036B510 4E 80 00 20 */ blr
-
-.global func_8036F8B4
-func_8036F8B4:
-/* 8036F8B4 0036B514 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8036F8B8 0036B518 7C 08 02 A6 */ mflr r0
-/* 8036F8BC 0036B51C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8036F8C0 0036B520 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8036F8C4 0036B524 7C 7F 1B 78 */ mr r31, r3
-/* 8036F8C8 0036B528 38 63 01 4C */ addi r3, r3, 0x14c
-/* 8036F8CC 0036B52C 4B F1 84 0D */ bl func_80287CD8
-/* 8036F8D0 0036B530 38 00 00 00 */ li r0, 0
-/* 8036F8D4 0036B534 7F E3 FB 78 */ mr r3, r31
-/* 8036F8D8 0036B538 98 1F 01 88 */ stb r0, 0x188(r31)
-/* 8036F8DC 0036B53C 48 00 77 31 */ bl func_8037700C
-/* 8036F8E0 0036B540 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8036F8E4 0036B544 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8036F8E8 0036B548 7C 08 03 A6 */ mtlr r0
-/* 8036F8EC 0036B54C 38 21 00 10 */ addi r1, r1, 0x10
-/* 8036F8F0 0036B550 4E 80 00 20 */ blr
-/* 8036F8F4 0036B554 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8036F8F8 0036B558 7C 08 02 A6 */ mflr r0
-/* 8036F8FC 0036B55C 7C 68 1B 78 */ mr r8, r3
-/* 8036F900 0036B560 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8036F904 0036B564 88 03 01 88 */ lbz r0, 0x188(r3)
-/* 8036F908 0036B568 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 8036F90C 0036B56C 7C FF 3B 78 */ mr r31, r7
-/* 8036F910 0036B570 2C 00 00 00 */ cmpwi r0, 0
-/* 8036F914 0036B574 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 8036F918 0036B578 7C DE 33 78 */ mr r30, r6
-/* 8036F91C 0036B57C 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 8036F920 0036B580 7C 9D 23 78 */ mr r29, r4
-/* 8036F924 0036B584 40 82 00 0C */ bne lbl_8036F930
-/* 8036F928 0036B588 38 60 00 00 */ li r3, 0
-/* 8036F92C 0036B58C 48 00 00 64 */ b lbl_8036F990
-lbl_8036F930:
-/* 8036F930 0036B590 28 05 00 78 */ cmplwi r5, 0x78
-/* 8036F934 0036B594 40 80 00 0C */ bge lbl_8036F940
-/* 8036F938 0036B598 38 60 00 00 */ li r3, 0
-/* 8036F93C 0036B59C 48 00 00 54 */ b lbl_8036F990
-lbl_8036F940:
-/* 8036F940 0036B5A0 2C 04 00 00 */ cmpwi r4, 0
-/* 8036F944 0036B5A4 41 82 00 48 */ beq lbl_8036F98C
-/* 8036F948 0036B5A8 7F A3 EB 78 */ mr r3, r29
-/* 8036F94C 0036B5AC 38 88 01 4C */ addi r4, r8, 0x14c
-/* 8036F950 0036B5B0 38 A0 00 00 */ li r5, 0
-/* 8036F954 0036B5B4 4B FF 43 51 */ bl __ct__Q34nw4r2ut19DvdLockedFileStreamFPC11DVDFileInfob
-/* 8036F958 0036B5B8 3C 60 80 45 */ lis r3, lbl_8044C9A0@ha
-/* 8036F95C 0036B5BC 2C 1F 00 00 */ cmpwi r31, 0
-/* 8036F960 0036B5C0 38 63 C9 A0 */ addi r3, r3, lbl_8044C9A0@l
-/* 8036F964 0036B5C4 93 DD 00 70 */ stw r30, 0x70(r29)
-/* 8036F968 0036B5C8 90 7D 00 00 */ stw r3, 0(r29)
-/* 8036F96C 0036B5CC 93 FD 00 74 */ stw r31, 0x74(r29)
-/* 8036F970 0036B5D0 40 82 00 0C */ bne lbl_8036F97C
-/* 8036F974 0036B5D4 80 1D 00 14 */ lwz r0, 0x14(r29)
-/* 8036F978 0036B5D8 90 1D 00 74 */ stw r0, 0x74(r29)
-lbl_8036F97C:
-/* 8036F97C 0036B5DC 80 9D 00 70 */ lwz r4, 0x70(r29)
-/* 8036F980 0036B5E0 7F A3 EB 78 */ mr r3, r29
-/* 8036F984 0036B5E4 38 A0 00 00 */ li r5, 0
-/* 8036F988 0036B5E8 4B FF 41 D1 */ bl Seek__Q34nw4r2ut13DvdFileStreamFlUl
-lbl_8036F98C:
-/* 8036F98C 0036B5EC 7F A3 EB 78 */ mr r3, r29
-lbl_8036F990:
-/* 8036F990 0036B5F0 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8036F994 0036B5F4 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 8036F998 0036B5F8 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 8036F99C 0036B5FC 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 8036F9A0 0036B600 7C 08 03 A6 */ mtlr r0
-/* 8036F9A4 0036B604 38 21 00 20 */ addi r1, r1, 0x20
-/* 8036F9A8 0036B608 4E 80 00 20 */ blr
-/* 8036F9AC 0036B60C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8036F9B0 0036B610 7C 08 02 A6 */ mflr r0
-/* 8036F9B4 0036B614 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8036F9B8 0036B618 88 03 01 88 */ lbz r0, 0x188(r3)
-/* 8036F9BC 0036B61C 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 8036F9C0 0036B620 7D 1F 43 78 */ mr r31, r8
-/* 8036F9C4 0036B624 2C 00 00 00 */ cmpwi r0, 0
-/* 8036F9C8 0036B628 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 8036F9CC 0036B62C 7C FE 3B 78 */ mr r30, r7
-/* 8036F9D0 0036B630 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 8036F9D4 0036B634 7C 9D 23 78 */ mr r29, r4
-/* 8036F9D8 0036B638 40 82 00 0C */ bne lbl_8036F9E4
-/* 8036F9DC 0036B63C 38 60 00 00 */ li r3, 0
-/* 8036F9E0 0036B640 48 00 00 78 */ b lbl_8036FA58
-lbl_8036F9E4:
-/* 8036F9E4 0036B644 28 05 00 78 */ cmplwi r5, 0x78
-/* 8036F9E8 0036B648 40 80 00 0C */ bge lbl_8036F9F4
-/* 8036F9EC 0036B64C 38 60 00 00 */ li r3, 0
-/* 8036F9F0 0036B650 48 00 00 68 */ b lbl_8036FA58
-lbl_8036F9F4:
-/* 8036F9F4 0036B654 7C C3 33 78 */ mr r3, r6
-/* 8036F9F8 0036B658 4B F1 7C C5 */ bl func_802876BC
-/* 8036F9FC 0036B65C 2C 03 00 00 */ cmpwi r3, 0
-/* 8036FA00 0036B660 7C 64 1B 78 */ mr r4, r3
-/* 8036FA04 0036B664 40 80 00 0C */ bge lbl_8036FA10
-/* 8036FA08 0036B668 38 60 00 00 */ li r3, 0
-/* 8036FA0C 0036B66C 48 00 00 4C */ b lbl_8036FA58
-lbl_8036FA10:
-/* 8036FA10 0036B670 2C 1D 00 00 */ cmpwi r29, 0
-/* 8036FA14 0036B674 41 82 00 40 */ beq lbl_8036FA54
-/* 8036FA18 0036B678 7F A3 EB 78 */ mr r3, r29
-/* 8036FA1C 0036B67C 4B FF 42 15 */ bl __ct__Q34nw4r2ut19DvdLockedFileStreamFl
-/* 8036FA20 0036B680 3C 60 80 45 */ lis r3, lbl_8044C9A0@ha
-/* 8036FA24 0036B684 2C 1F 00 00 */ cmpwi r31, 0
-/* 8036FA28 0036B688 38 63 C9 A0 */ addi r3, r3, lbl_8044C9A0@l
-/* 8036FA2C 0036B68C 93 DD 00 70 */ stw r30, 0x70(r29)
-/* 8036FA30 0036B690 90 7D 00 00 */ stw r3, 0(r29)
-/* 8036FA34 0036B694 93 FD 00 74 */ stw r31, 0x74(r29)
-/* 8036FA38 0036B698 40 82 00 0C */ bne lbl_8036FA44
-/* 8036FA3C 0036B69C 80 1D 00 14 */ lwz r0, 0x14(r29)
-/* 8036FA40 0036B6A0 90 1D 00 74 */ stw r0, 0x74(r29)
-lbl_8036FA44:
-/* 8036FA44 0036B6A4 80 9D 00 70 */ lwz r4, 0x70(r29)
-/* 8036FA48 0036B6A8 7F A3 EB 78 */ mr r3, r29
-/* 8036FA4C 0036B6AC 38 A0 00 00 */ li r5, 0
-/* 8036FA50 0036B6B0 4B FF 41 09 */ bl Seek__Q34nw4r2ut13DvdFileStreamFlUl
-lbl_8036FA54:
-/* 8036FA54 0036B6B4 7F A3 EB 78 */ mr r3, r29
-lbl_8036FA58:
-/* 8036FA58 0036B6B8 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8036FA5C 0036B6BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 8036FA60 0036B6C0 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 8036FA64 0036B6C4 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 8036FA68 0036B6C8 7C 08 03 A6 */ mtlr r0
-/* 8036FA6C 0036B6CC 38 21 00 20 */ addi r1, r1, 0x20
-/* 8036FA70 0036B6D0 4E 80 00 20 */ blr
-/* 8036FA74 0036B6D4 38 60 00 78 */ li r3, 0x78
-/* 8036FA78 0036B6D8 4E 80 00 20 */ blr
-
-.global func_8036FA7C
-func_8036FA7C:
-/* 8036FA7C 0036B6DC 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8036FA80 0036B6E0 7C 08 02 A6 */ mflr r0
-/* 8036FA84 0036B6E4 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8036FA88 0036B6E8 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 8036FA8C 0036B6EC 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 8036FA90 0036B6F0 7C 9E 23 78 */ mr r30, r4
-/* 8036FA94 0036B6F4 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 8036FA98 0036B6F8 7C 7D 1B 78 */ mr r29, r3
-/* 8036FA9C 0036B6FC 83 E3 01 24 */ lwz r31, 0x124(r3)
-/* 8036FAA0 0036B700 80 C3 01 20 */ lwz r6, 0x120(r3)
-/* 8036FAA4 0036B704 7C 05 F8 40 */ cmplw r5, r31
-/* 8036FAA8 0036B708 40 80 00 0C */ bge lbl_8036FAB4
-/* 8036FAAC 0036B70C 38 60 00 00 */ li r3, 0
-/* 8036FAB0 0036B710 48 00 00 38 */ b lbl_8036FAE8
-lbl_8036FAB4:
-/* 8036FAB4 0036B714 7F E5 FB 78 */ mr r5, r31
-/* 8036FAB8 0036B718 38 E0 00 02 */ li r7, 2
-/* 8036FABC 0036B71C 38 63 01 4C */ addi r3, r3, 0x14c
-/* 8036FAC0 0036B720 4B F1 84 E5 */ bl func_80287FA4
-/* 8036FAC4 0036B724 7C 03 F8 40 */ cmplw r3, r31
-/* 8036FAC8 0036B728 41 82 00 0C */ beq lbl_8036FAD4
-/* 8036FACC 0036B72C 38 60 00 00 */ li r3, 0
-/* 8036FAD0 0036B730 48 00 00 18 */ b lbl_8036FAE8
-lbl_8036FAD4:
-/* 8036FAD4 0036B734 7F C4 F3 78 */ mr r4, r30
-/* 8036FAD8 0036B738 7F E5 FB 78 */ mr r5, r31
-/* 8036FADC 0036B73C 38 7D 01 08 */ addi r3, r29, 0x108
-/* 8036FAE0 0036B740 48 00 7B 71 */ bl func_80377650
-/* 8036FAE4 0036B744 38 60 00 01 */ li r3, 1
-lbl_8036FAE8:
-/* 8036FAE8 0036B748 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8036FAEC 0036B74C 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 8036FAF0 0036B750 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 8036FAF4 0036B754 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 8036FAF8 0036B758 7C 08 03 A6 */ mtlr r0
-/* 8036FAFC 0036B75C 38 21 00 20 */ addi r1, r1, 0x20
-/* 8036FB00 0036B760 4E 80 00 20 */ blr
-/* 8036FB04 0036B764 81 03 00 18 */ lwz r8, 0x18(r3)
-/* 8036FB08 0036B768 80 E3 00 70 */ lwz r7, 0x70(r3)
-/* 8036FB0C 0036B76C 80 C3 00 74 */ lwz r6, 0x74(r3)
-/* 8036FB10 0036B770 7C 08 2A 14 */ add r0, r8, r5
-/* 8036FB14 0036B774 7C C7 32 14 */ add r6, r7, r6
-/* 8036FB18 0036B778 7C 00 30 40 */ cmplw r0, r6
-/* 8036FB1C 0036B77C 40 81 00 10 */ ble lbl_8036FB2C
-/* 8036FB20 0036B780 7C A8 30 50 */ subf r5, r8, r6
-/* 8036FB24 0036B784 38 05 00 1F */ addi r0, r5, 0x1f
-/* 8036FB28 0036B788 54 05 00 34 */ rlwinm r5, r0, 0, 0, 0x1a
-lbl_8036FB2C:
-/* 8036FB2C 0036B78C 4B FF 42 44 */ b Read__Q34nw4r2ut19DvdLockedFileStreamFPvUl
-/* 8036FB30 0036B790 2C 05 00 01 */ cmpwi r5, 1
-/* 8036FB34 0036B794 41 82 00 2C */ beq lbl_8036FB60
-/* 8036FB38 0036B798 40 80 00 10 */ bge lbl_8036FB48
-/* 8036FB3C 0036B79C 2C 05 00 00 */ cmpwi r5, 0
-/* 8036FB40 0036B7A0 40 80 00 14 */ bge lbl_8036FB54
-/* 8036FB44 0036B7A4 4E 80 00 20 */ blr
-lbl_8036FB48:
-/* 8036FB48 0036B7A8 2C 05 00 03 */ cmpwi r5, 3
-/* 8036FB4C 0036B7AC 4C 80 00 20 */ bgelr
-/* 8036FB50 0036B7B0 48 00 00 1C */ b lbl_8036FB6C
-lbl_8036FB54:
-/* 8036FB54 0036B7B4 80 03 00 70 */ lwz r0, 0x70(r3)
-/* 8036FB58 0036B7B8 7C 84 02 14 */ add r4, r4, r0
-/* 8036FB5C 0036B7BC 48 00 00 28 */ b lbl_8036FB84
-lbl_8036FB60:
-/* 8036FB60 0036B7C0 80 03 00 18 */ lwz r0, 0x18(r3)
-/* 8036FB64 0036B7C4 7C 84 02 14 */ add r4, r4, r0
-/* 8036FB68 0036B7C8 48 00 00 1C */ b lbl_8036FB84
-lbl_8036FB6C:
-/* 8036FB6C 0036B7CC 80 A3 00 70 */ lwz r5, 0x70(r3)
-/* 8036FB70 0036B7D0 80 03 00 74 */ lwz r0, 0x74(r3)
-/* 8036FB74 0036B7D4 7C 05 02 14 */ add r0, r5, r0
-/* 8036FB78 0036B7D8 7C 84 00 50 */ subf r4, r4, r0
-/* 8036FB7C 0036B7DC 48 00 00 08 */ b lbl_8036FB84
-/* 8036FB80 0036B7E0 4E 80 00 20 */ blr
-lbl_8036FB84:
-/* 8036FB84 0036B7E4 80 A3 00 70 */ lwz r5, 0x70(r3)
-/* 8036FB88 0036B7E8 7C 04 28 00 */ cmpw r4, r5
-/* 8036FB8C 0036B7EC 40 80 00 0C */ bge lbl_8036FB98
-/* 8036FB90 0036B7F0 7C A4 2B 78 */ mr r4, r5
-/* 8036FB94 0036B7F4 48 00 00 18 */ b lbl_8036FBAC
-lbl_8036FB98:
-/* 8036FB98 0036B7F8 80 03 00 74 */ lwz r0, 0x74(r3)
-/* 8036FB9C 0036B7FC 7C 05 02 14 */ add r0, r5, r0
-/* 8036FBA0 0036B800 7C 04 00 00 */ cmpw r4, r0
-/* 8036FBA4 0036B804 40 81 00 08 */ ble lbl_8036FBAC
-/* 8036FBA8 0036B808 7C 04 03 78 */ mr r4, r0
-lbl_8036FBAC:
-/* 8036FBAC 0036B80C 38 A0 00 00 */ li r5, 0
-/* 8036FBB0 0036B810 4B FF 3F A8 */ b Seek__Q34nw4r2ut13DvdFileStreamFlUl
-/* 8036FBB4 0036B814 4E 80 00 20 */ blr
-/* 8036FBB8 0036B818 80 63 00 74 */ lwz r3, 0x74(r3)
-/* 8036FBBC 0036B81C 4E 80 00 20 */ blr
-/* 8036FBC0 0036B820 80 83 00 70 */ lwz r4, 0x70(r3)
-/* 8036FBC4 0036B824 80 03 00 18 */ lwz r0, 0x18(r3)
-/* 8036FBC8 0036B828 7C 64 00 50 */ subf r3, r4, r0
-/* 8036FBCC 0036B82C 4E 80 00 20 */ blr
-/* 8036FBD0 0036B830 38 60 00 00 */ li r3, 0
-/* 8036FBD4 0036B834 4E 80 00 20 */ blr
-/* 8036FBD8 0036B838 38 60 00 00 */ li r3, 0
-/* 8036FBDC 0036B83C 4E 80 00 20 */ blr
-/* 8036FBE0 0036B840 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8036FBE4 0036B844 7C 08 02 A6 */ mflr r0
-/* 8036FBE8 0036B848 2C 03 00 00 */ cmpwi r3, 0
-/* 8036FBEC 0036B84C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8036FBF0 0036B850 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8036FBF4 0036B854 7C 9F 23 78 */ mr r31, r4
-/* 8036FBF8 0036B858 93 C1 00 08 */ stw r30, 8(r1)
-/* 8036FBFC 0036B85C 7C 7E 1B 78 */ mr r30, r3
-/* 8036FC00 0036B860 41 82 00 1C */ beq lbl_8036FC1C
-/* 8036FC04 0036B864 38 80 00 00 */ li r4, 0
-/* 8036FC08 0036B868 4B FF 41 11 */ bl __dt__Q34nw4r2ut19DvdLockedFileStreamFv
-/* 8036FC0C 0036B86C 2C 1F 00 00 */ cmpwi r31, 0
-/* 8036FC10 0036B870 40 81 00 0C */ ble lbl_8036FC1C
-/* 8036FC14 0036B874 7F C3 F3 78 */ mr r3, r30
-/* 8036FC18 0036B878 4B E6 AE A1 */ bl func_801DAAB8
-lbl_8036FC1C:
-/* 8036FC1C 0036B87C 7F C3 F3 78 */ mr r3, r30
-/* 8036FC20 0036B880 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8036FC24 0036B884 83 C1 00 08 */ lwz r30, 8(r1)
-/* 8036FC28 0036B888 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8036FC2C 0036B88C 7C 08 03 A6 */ mtlr r0
-/* 8036FC30 0036B890 38 21 00 10 */ addi r1, r1, 0x10
-/* 8036FC34 0036B894 4E 80 00 20 */ blr
-
-.global func_8036FC38
-func_8036FC38:
-/* 8036FC38 0036B898 C0 22 A5 E8 */ lfs f1, lbl_80642BE8-_SDA2_BASE_(r2)
-/* 8036FC3C 0036B89C 3C A0 80 40 */ lis r5, lbl_80402690@ha
-/* 8036FC40 0036B8A0 C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
-/* 8036FC44 0036B8A4 38 80 00 7F */ li r4, 0x7f
-/* 8036FC48 0036B8A8 38 A5 26 90 */ addi r5, r5, lbl_80402690@l
-/* 8036FC4C 0036B8AC C0 42 A5 EC */ lfs f2, lbl_80642BEC-_SDA2_BASE_(r2)
-/* 8036FC50 0036B8B0 EC 00 00 72 */ fmuls f0, f0, f1
-/* 8036FC54 0036B8B4 C0 25 01 FC */ lfs f1, 0x1fc(r5)
-/* 8036FC58 0036B8B8 38 00 00 00 */ li r0, 0
-/* 8036FC5C 0036B8BC D0 43 00 08 */ stfs f2, 8(r3)
-/* 8036FC60 0036B8C0 D0 23 00 10 */ stfs f1, 0x10(r3)
-/* 8036FC64 0036B8C4 98 83 00 14 */ stb r4, 0x14(r3)
-/* 8036FC68 0036B8C8 D0 43 00 0C */ stfs f2, 0xc(r3)
-/* 8036FC6C 0036B8CC D0 03 00 04 */ stfs f0, 4(r3)
-/* 8036FC70 0036B8D0 90 03 00 00 */ stw r0, 0(r3)
-/* 8036FC74 0036B8D4 4E 80 00 20 */ blr
-
-.global func_8036FC78
-func_8036FC78:
-/* 8036FC78 0036B8D8 C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
-/* 8036FC7C 0036B8DC 3C 80 80 40 */ lis r4, lbl_80402690@ha
-/* 8036FC80 0036B8E0 C0 42 A5 EC */ lfs f2, lbl_80642BEC-_SDA2_BASE_(r2)
-/* 8036FC84 0036B8E4 38 00 00 00 */ li r0, 0
-/* 8036FC88 0036B8E8 EC 00 00 72 */ fmuls f0, f0, f1
-/* 8036FC8C 0036B8EC 38 84 26 90 */ addi r4, r4, lbl_80402690@l
-/* 8036FC90 0036B8F0 C0 24 01 FC */ lfs f1, 0x1fc(r4)
-/* 8036FC94 0036B8F4 38 80 00 7F */ li r4, 0x7f
-/* 8036FC98 0036B8F8 D0 43 00 08 */ stfs f2, 8(r3)
-/* 8036FC9C 0036B8FC D0 23 00 10 */ stfs f1, 0x10(r3)
-/* 8036FCA0 0036B900 98 83 00 14 */ stb r4, 0x14(r3)
-/* 8036FCA4 0036B904 D0 43 00 0C */ stfs f2, 0xc(r3)
-/* 8036FCA8 0036B908 D0 03 00 04 */ stfs f0, 4(r3)
-/* 8036FCAC 0036B90C 90 03 00 00 */ stw r0, 0(r3)
-/* 8036FCB0 0036B910 4E 80 00 20 */ blr
-
-.global func_8036FCB4
-func_8036FCB4:
-/* 8036FCB4 0036B914 C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
-/* 8036FCB8 0036B918 38 00 00 00 */ li r0, 0
-/* 8036FCBC 0036B91C 90 03 00 00 */ stw r0, 0(r3)
-/* 8036FCC0 0036B920 EC 00 00 72 */ fmuls f0, f0, f1
-/* 8036FCC4 0036B924 D0 03 00 04 */ stfs f0, 4(r3)
-/* 8036FCC8 0036B928 4E 80 00 20 */ blr
-
-.global func_8036FCCC
-func_8036FCCC:
-/* 8036FCCC 0036B92C 80 03 00 00 */ lwz r0, 0(r3)
-/* 8036FCD0 0036B930 2C 00 00 00 */ cmpwi r0, 0
-/* 8036FCD4 0036B934 40 82 00 14 */ bne lbl_8036FCE8
-/* 8036FCD8 0036B938 C0 22 A5 F4 */ lfs f1, lbl_80642BF4-_SDA2_BASE_(r2)
-/* 8036FCDC 0036B93C C0 03 00 10 */ lfs f0, 0x10(r3)
-/* 8036FCE0 0036B940 FC 01 00 00 */ fcmpu cr0, f1, f0
-/* 8036FCE4 0036B944 4D 82 00 20 */ beqlr
-lbl_8036FCE8:
-/* 8036FCE8 0036B948 C0 23 00 04 */ lfs f1, 4(r3)
-/* 8036FCEC 0036B94C C0 02 A5 F0 */ lfs f0, lbl_80642BF0-_SDA2_BASE_(r2)
-/* 8036FCF0 0036B950 EC 21 00 24 */ fdivs f1, f1, f0
-/* 8036FCF4 0036B954 4E 80 00 20 */ blr
-
-.global func_8036FCF8
-func_8036FCF8:
-/* 8036FCF8 0036B958 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8036FCFC 0036B95C 80 03 00 00 */ lwz r0, 0(r3)
-/* 8036FD00 0036B960 2C 00 00 02 */ cmpwi r0, 2
-/* 8036FD04 0036B964 41 82 01 10 */ beq lbl_8036FE14
-/* 8036FD08 0036B968 40 80 00 14 */ bge lbl_8036FD1C
-/* 8036FD0C 0036B96C 2C 00 00 00 */ cmpwi r0, 0
-/* 8036FD10 0036B970 41 82 00 18 */ beq lbl_8036FD28
-/* 8036FD14 0036B974 40 80 00 60 */ bge lbl_8036FD74
-/* 8036FD18 0036B978 48 00 00 FC */ b lbl_8036FE14
-lbl_8036FD1C:
-/* 8036FD1C 0036B97C 2C 00 00 04 */ cmpwi r0, 4
-/* 8036FD20 0036B980 40 80 00 F4 */ bge lbl_8036FE14
-/* 8036FD24 0036B984 48 00 00 C0 */ b lbl_8036FDE4
-lbl_8036FD28:
-/* 8036FD28 0036B988 C0 02 A5 F4 */ lfs f0, lbl_80642BF4-_SDA2_BASE_(r2)
-/* 8036FD2C 0036B98C 38 00 00 01 */ li r0, 1
-/* 8036FD30 0036B990 C0 22 A5 F8 */ lfs f1, lbl_80642BF8-_SDA2_BASE_(r2)
-/* 8036FD34 0036B994 7C 89 03 A6 */ mtctr r4
-/* 8036FD38 0036B998 2C 04 00 00 */ cmpwi r4, 0
-/* 8036FD3C 0036B99C 40 81 00 2C */ ble lbl_8036FD68
-lbl_8036FD40:
-/* 8036FD40 0036B9A0 C0 63 00 04 */ lfs f3, 4(r3)
-/* 8036FD44 0036B9A4 38 84 FF FF */ addi r4, r4, -1
-/* 8036FD48 0036B9A8 C0 43 00 10 */ lfs f2, 0x10(r3)
-/* 8036FD4C 0036B9AC EC 43 00 B2 */ fmuls f2, f3, f2
-/* 8036FD50 0036B9B0 FC 02 08 40 */ fcmpo cr0, f2, f1
-/* 8036FD54 0036B9B4 D0 43 00 04 */ stfs f2, 4(r3)
-/* 8036FD58 0036B9B8 40 81 00 0C */ ble lbl_8036FD64
-/* 8036FD5C 0036B9BC D0 03 00 04 */ stfs f0, 4(r3)
-/* 8036FD60 0036B9C0 90 03 00 00 */ stw r0, 0(r3)
-lbl_8036FD64:
-/* 8036FD64 0036B9C4 42 00 FF DC */ bdnz lbl_8036FD40
-lbl_8036FD68:
-/* 8036FD68 0036B9C8 80 03 00 00 */ lwz r0, 0(r3)
-/* 8036FD6C 0036B9CC 2C 00 00 01 */ cmpwi r0, 1
-/* 8036FD70 0036B9D0 40 82 00 A4 */ bne lbl_8036FE14
-lbl_8036FD74:
-/* 8036FD74 0036B9D4 3C A0 43 30 */ lis r5, 0x4330
-/* 8036FD78 0036B9D8 6C 80 80 00 */ xoris r0, r4, 0x8000
-/* 8036FD7C 0036B9DC 88 C3 00 14 */ lbz r6, 0x14(r3)
-/* 8036FD80 0036B9E0 3C 80 80 40 */ lis r4, lbl_80402590@ha
-/* 8036FD84 0036B9E4 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8036FD88 0036B9E8 38 84 25 90 */ addi r4, r4, lbl_80402590@l
-/* 8036FD8C 0036B9EC 54 C0 08 3C */ slwi r0, r6, 1
-/* 8036FD90 0036B9F0 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
-/* 8036FD94 0036B9F4 90 A1 00 10 */ stw r5, 0x10(r1)
-/* 8036FD98 0036B9F8 7C 04 02 AE */ lhax r0, r4, r0
-/* 8036FD9C 0036B9FC C8 01 00 10 */ lfd f0, 0x10(r1)
-/* 8036FDA0 0036BA00 6C 00 80 00 */ xoris r0, r0, 0x8000
-/* 8036FDA4 0036BA04 C0 23 00 08 */ lfs f1, 8(r3)
-/* 8036FDA8 0036BA08 EC 40 18 28 */ fsubs f2, f0, f3
-/* 8036FDAC 0036BA0C 90 01 00 0C */ stw r0, 0xc(r1)
-/* 8036FDB0 0036BA10 C0 03 00 04 */ lfs f0, 4(r3)
-/* 8036FDB4 0036BA14 90 A1 00 08 */ stw r5, 8(r1)
-/* 8036FDB8 0036BA18 EC 21 00 B2 */ fmuls f1, f1, f2
-/* 8036FDBC 0036BA1C C8 41 00 08 */ lfd f2, 8(r1)
-/* 8036FDC0 0036BA20 EC 00 08 28 */ fsubs f0, f0, f1
-/* 8036FDC4 0036BA24 EC 22 18 28 */ fsubs f1, f2, f3
-/* 8036FDC8 0036BA28 D0 03 00 04 */ stfs f0, 4(r3)
-/* 8036FDCC 0036BA2C FC 00 08 40 */ fcmpo cr0, f0, f1
-/* 8036FDD0 0036BA30 41 81 00 44 */ bgt lbl_8036FE14
-/* 8036FDD4 0036BA34 38 00 00 02 */ li r0, 2
-/* 8036FDD8 0036BA38 D0 23 00 04 */ stfs f1, 4(r3)
-/* 8036FDDC 0036BA3C 90 03 00 00 */ stw r0, 0(r3)
-/* 8036FDE0 0036BA40 48 00 00 34 */ b lbl_8036FE14
-lbl_8036FDE4:
-/* 8036FDE4 0036BA44 6C 84 80 00 */ xoris r4, r4, 0x8000
-/* 8036FDE8 0036BA48 3C 00 43 30 */ lis r0, 0x4330
-/* 8036FDEC 0036BA4C 90 81 00 14 */ stw r4, 0x14(r1)
-/* 8036FDF0 0036BA50 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
-/* 8036FDF4 0036BA54 90 01 00 10 */ stw r0, 0x10(r1)
-/* 8036FDF8 0036BA58 C0 23 00 0C */ lfs f1, 0xc(r3)
-/* 8036FDFC 0036BA5C C8 41 00 10 */ lfd f2, 0x10(r1)
-/* 8036FE00 0036BA60 C0 03 00 04 */ lfs f0, 4(r3)
-/* 8036FE04 0036BA64 EC 42 18 28 */ fsubs f2, f2, f3
-/* 8036FE08 0036BA68 EC 21 00 B2 */ fmuls f1, f1, f2
-/* 8036FE0C 0036BA6C EC 00 08 28 */ fsubs f0, f0, f1
-/* 8036FE10 0036BA70 D0 03 00 04 */ stfs f0, 4(r3)
-lbl_8036FE14:
-/* 8036FE14 0036BA74 38 21 00 20 */ addi r1, r1, 0x20
-/* 8036FE18 0036BA78 4E 80 00 20 */ blr
-
-.global func_8036FE1C
-func_8036FE1C:
-/* 8036FE1C 0036BA7C 3C A0 80 40 */ lis r5, lbl_80402690@ha
-/* 8036FE20 0036BA80 54 80 10 3A */ slwi r0, r4, 2
-/* 8036FE24 0036BA84 38 A5 26 90 */ addi r5, r5, lbl_80402690@l
-/* 8036FE28 0036BA88 7C 05 04 2E */ lfsx f0, r5, r0
-/* 8036FE2C 0036BA8C D0 03 00 10 */ stfs f0, 0x10(r3)
-/* 8036FE30 0036BA90 4E 80 00 20 */ blr
-
-.global func_8036FE34
-func_8036FE34:
-/* 8036FE34 0036BA94 2C 04 00 7F */ cmpwi r4, 0x7f
-/* 8036FE38 0036BA98 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8036FE3C 0036BA9C 40 82 00 0C */ bne lbl_8036FE48
-/* 8036FE40 0036BAA0 C0 02 A5 EC */ lfs f0, lbl_80642BEC-_SDA2_BASE_(r2)
-/* 8036FE44 0036BAA4 48 00 00 84 */ b lbl_8036FEC8
-lbl_8036FE48:
-/* 8036FE48 0036BAA8 2C 04 00 7E */ cmpwi r4, 0x7e
-/* 8036FE4C 0036BAAC 40 82 00 0C */ bne lbl_8036FE58
-/* 8036FE50 0036BAB0 C0 02 A6 08 */ lfs f0, lbl_80642C08-_SDA2_BASE_(r2)
-/* 8036FE54 0036BAB4 48 00 00 74 */ b lbl_8036FEC8
-lbl_8036FE58:
-/* 8036FE58 0036BAB8 2C 04 00 32 */ cmpwi r4, 0x32
-/* 8036FE5C 0036BABC 40 80 00 3C */ bge lbl_8036FE98
-/* 8036FE60 0036BAC0 54 84 08 3C */ slwi r4, r4, 1
-/* 8036FE64 0036BAC4 3C 00 43 30 */ lis r0, 0x4330
-/* 8036FE68 0036BAC8 38 84 00 01 */ addi r4, r4, 1
-/* 8036FE6C 0036BACC 90 01 00 08 */ stw r0, 8(r1)
-/* 8036FE70 0036BAD0 6C 80 80 00 */ xoris r0, r4, 0x8000
-/* 8036FE74 0036BAD4 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
-/* 8036FE78 0036BAD8 90 01 00 0C */ stw r0, 0xc(r1)
-/* 8036FE7C 0036BADC C0 22 A6 0C */ lfs f1, lbl_80642C0C-_SDA2_BASE_(r2)
-/* 8036FE80 0036BAE0 C8 41 00 08 */ lfd f2, 8(r1)
-/* 8036FE84 0036BAE4 C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
-/* 8036FE88 0036BAE8 EC 42 18 28 */ fsubs f2, f2, f3
-/* 8036FE8C 0036BAEC EC 22 00 72 */ fmuls f1, f2, f1
-/* 8036FE90 0036BAF0 EC 01 00 24 */ fdivs f0, f1, f0
-/* 8036FE94 0036BAF4 48 00 00 34 */ b lbl_8036FEC8
-lbl_8036FE98:
-/* 8036FE98 0036BAF8 20 84 00 7E */ subfic r4, r4, 0x7e
-/* 8036FE9C 0036BAFC 3C 00 43 30 */ lis r0, 0x4330
-/* 8036FEA0 0036BB00 6C 84 80 00 */ xoris r4, r4, 0x8000
-/* 8036FEA4 0036BB04 90 01 00 10 */ stw r0, 0x10(r1)
-/* 8036FEA8 0036BB08 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
-/* 8036FEAC 0036BB0C 90 81 00 14 */ stw r4, 0x14(r1)
-/* 8036FEB0 0036BB10 C0 22 A6 14 */ lfs f1, lbl_80642C14-_SDA2_BASE_(r2)
-/* 8036FEB4 0036BB14 C8 41 00 10 */ lfd f2, 0x10(r1)
-/* 8036FEB8 0036BB18 C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
-/* 8036FEBC 0036BB1C EC 42 18 28 */ fsubs f2, f2, f3
-/* 8036FEC0 0036BB20 EC 21 10 24 */ fdivs f1, f1, f2
-/* 8036FEC4 0036BB24 EC 01 00 24 */ fdivs f0, f1, f0
-lbl_8036FEC8:
-/* 8036FEC8 0036BB28 D0 03 00 08 */ stfs f0, 8(r3)
-/* 8036FECC 0036BB2C 38 21 00 20 */ addi r1, r1, 0x20
-/* 8036FED0 0036BB30 4E 80 00 20 */ blr
-
-.global func_8036FED4
-func_8036FED4:
-/* 8036FED4 0036BB34 98 83 00 14 */ stb r4, 0x14(r3)
-/* 8036FED8 0036BB38 4E 80 00 20 */ blr
-
-.global func_8036FEDC
-func_8036FEDC:
-/* 8036FEDC 0036BB3C 2C 04 00 7F */ cmpwi r4, 0x7f
-/* 8036FEE0 0036BB40 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8036FEE4 0036BB44 40 82 00 0C */ bne lbl_8036FEF0
-/* 8036FEE8 0036BB48 C0 02 A5 EC */ lfs f0, lbl_80642BEC-_SDA2_BASE_(r2)
-/* 8036FEEC 0036BB4C 48 00 00 84 */ b lbl_8036FF70
-lbl_8036FEF0:
-/* 8036FEF0 0036BB50 2C 04 00 7E */ cmpwi r4, 0x7e
-/* 8036FEF4 0036BB54 40 82 00 0C */ bne lbl_8036FF00
-/* 8036FEF8 0036BB58 C0 02 A6 08 */ lfs f0, lbl_80642C08-_SDA2_BASE_(r2)
-/* 8036FEFC 0036BB5C 48 00 00 74 */ b lbl_8036FF70
-lbl_8036FF00:
-/* 8036FF00 0036BB60 2C 04 00 32 */ cmpwi r4, 0x32
-/* 8036FF04 0036BB64 40 80 00 3C */ bge lbl_8036FF40
-/* 8036FF08 0036BB68 54 84 08 3C */ slwi r4, r4, 1
-/* 8036FF0C 0036BB6C 3C 00 43 30 */ lis r0, 0x4330
-/* 8036FF10 0036BB70 38 84 00 01 */ addi r4, r4, 1
-/* 8036FF14 0036BB74 90 01 00 08 */ stw r0, 8(r1)
-/* 8036FF18 0036BB78 6C 80 80 00 */ xoris r0, r4, 0x8000
-/* 8036FF1C 0036BB7C C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
-/* 8036FF20 0036BB80 90 01 00 0C */ stw r0, 0xc(r1)
-/* 8036FF24 0036BB84 C0 22 A6 0C */ lfs f1, lbl_80642C0C-_SDA2_BASE_(r2)
-/* 8036FF28 0036BB88 C8 41 00 08 */ lfd f2, 8(r1)
-/* 8036FF2C 0036BB8C C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
-/* 8036FF30 0036BB90 EC 42 18 28 */ fsubs f2, f2, f3
-/* 8036FF34 0036BB94 EC 22 00 72 */ fmuls f1, f2, f1
-/* 8036FF38 0036BB98 EC 01 00 24 */ fdivs f0, f1, f0
-/* 8036FF3C 0036BB9C 48 00 00 34 */ b lbl_8036FF70
-lbl_8036FF40:
-/* 8036FF40 0036BBA0 20 84 00 7E */ subfic r4, r4, 0x7e
-/* 8036FF44 0036BBA4 3C 00 43 30 */ lis r0, 0x4330
-/* 8036FF48 0036BBA8 6C 84 80 00 */ xoris r4, r4, 0x8000
-/* 8036FF4C 0036BBAC 90 01 00 10 */ stw r0, 0x10(r1)
-/* 8036FF50 0036BBB0 C8 62 A6 00 */ lfd f3, lbl_80642C00-_SDA2_BASE_(r2)
-/* 8036FF54 0036BBB4 90 81 00 14 */ stw r4, 0x14(r1)
-/* 8036FF58 0036BBB8 C0 22 A6 14 */ lfs f1, lbl_80642C14-_SDA2_BASE_(r2)
-/* 8036FF5C 0036BBBC C8 41 00 10 */ lfd f2, 0x10(r1)
-/* 8036FF60 0036BBC0 C0 02 A6 10 */ lfs f0, lbl_80642C10-_SDA2_BASE_(r2)
-/* 8036FF64 0036BBC4 EC 42 18 28 */ fsubs f2, f2, f3
-/* 8036FF68 0036BBC8 EC 21 10 24 */ fdivs f1, f1, f2
-/* 8036FF6C 0036BBCC EC 01 00 24 */ fdivs f0, f1, f0
-lbl_8036FF70:
-/* 8036FF70 0036BBD0 D0 03 00 0C */ stfs f0, 0xc(r3)
-/* 8036FF74 0036BBD4 38 21 00 20 */ addi r1, r1, 0x20
-/* 8036FF78 0036BBD8 4E 80 00 20 */ blr
-
-.global func_8036FF7C
-func_8036FF7C:
-/* 8036FF7C 0036BBDC 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8036FF80 0036BBE0 7C 08 02 A6 */ mflr r0
-/* 8036FF84 0036BBE4 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8036FF88 0036BBE8 38 03 00 04 */ addi r0, r3, 4
-/* 8036FF8C 0036BBEC 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 8036FF90 0036BBF0 7C 9F 23 78 */ mr r31, r4
-/* 8036FF94 0036BBF4 38 81 00 08 */ addi r4, r1, 8
-/* 8036FF98 0036BBF8 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 8036FF9C 0036BBFC 7C 7E 1B 78 */ mr r30, r3
-/* 8036FFA0 0036BC00 38 BF 00 D0 */ addi r5, r31, 0xd0
-/* 8036FFA4 0036BC04 90 01 00 08 */ stw r0, 8(r1)
-/* 8036FFA8 0036BC08 4B FF 2C A1 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
-/* 8036FFAC 0036BC0C 93 DF 00 14 */ stw r30, 0x14(r31)
-/* 8036FFB0 0036BC10 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 8036FFB4 0036BC14 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 8036FFB8 0036BC18 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8036FFBC 0036BC1C 7C 08 03 A6 */ mtlr r0
-/* 8036FFC0 0036BC20 38 21 00 20 */ addi r1, r1, 0x20
-/* 8036FFC4 0036BC24 4E 80 00 20 */ blr
-
-.global func_8036FFC8
-func_8036FFC8:
-/* 8036FFC8 0036BC28 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8036FFCC 0036BC2C 7C 08 02 A6 */ mflr r0
-/* 8036FFD0 0036BC30 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8036FFD4 0036BC34 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8036FFD8 0036BC38 7C 9F 23 78 */ mr r31, r4
-/* 8036FFDC 0036BC3C 38 84 00 D0 */ addi r4, r4, 0xd0
-/* 8036FFE0 0036BC40 4B FF 2C 95 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
-/* 8036FFE4 0036BC44 38 00 00 00 */ li r0, 0
-/* 8036FFE8 0036BC48 90 1F 00 14 */ stw r0, 0x14(r31)
-/* 8036FFEC 0036BC4C 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8036FFF0 0036BC50 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8036FFF4 0036BC54 7C 08 03 A6 */ mtlr r0
-/* 8036FFF8 0036BC58 38 21 00 10 */ addi r1, r1, 0x10
-/* 8036FFFC 0036BC5C 4E 80 00 20 */ blr
-
-.global func_80370000
-func_80370000:
-/* 80370000 0036BC60 80 83 00 04 */ lwz r4, 4(r3)
-/* 80370004 0036BC64 38 03 00 04 */ addi r0, r3, 4
-/* 80370008 0036BC68 39 00 00 80 */ li r8, 0x80
-/* 8037000C 0036BC6C 38 60 00 00 */ li r3, 0
-/* 80370010 0036BC70 48 00 00 40 */ b lbl_80370050
-lbl_80370014:
-/* 80370014 0036BC74 88 C4 FF A4 */ lbz r6, -0x5c(r4)
-/* 80370018 0036BC78 38 E4 FF 30 */ addi r7, r4, -208
-/* 8037001C 0036BC7C 80 A4 FF 70 */ lwz r5, -0x90(r4)
-/* 80370020 0036BC80 7C C6 2A 14 */ add r6, r6, r5
-/* 80370024 0036BC84 2C 06 00 7F */ cmpwi r6, 0x7f
-/* 80370028 0036BC88 40 81 00 0C */ ble lbl_80370034
-/* 8037002C 0036BC8C 38 A0 00 7F */ li r5, 0x7f
-/* 80370030 0036BC90 48 00 00 0C */ b lbl_8037003C
-lbl_80370034:
-/* 80370034 0036BC94 7C C5 FE 70 */ srawi r5, r6, 0x1f
-/* 80370038 0036BC98 7C C5 28 78 */ andc r5, r6, r5
-lbl_8037003C:
-/* 8037003C 0036BC9C 7C 08 28 00 */ cmpw r8, r5
-/* 80370040 0036BCA0 40 81 00 0C */ ble lbl_8037004C
-/* 80370044 0036BCA4 7C E3 3B 78 */ mr r3, r7
-/* 80370048 0036BCA8 7C A8 2B 78 */ mr r8, r5
-lbl_8037004C:
-/* 8037004C 0036BCAC 80 84 00 00 */ lwz r4, 0(r4)
-lbl_80370050:
-/* 80370050 0036BCB0 7C 04 00 40 */ cmplw r4, r0
-/* 80370054 0036BCB4 40 82 FF C0 */ bne lbl_80370014
-/* 80370058 0036BCB8 4E 80 00 20 */ blr
-
-.global func_8037005C
-func_8037005C:
-/* 8037005C 0036BCBC 38 00 00 00 */ li r0, 0
-/* 80370060 0036BCC0 38 83 00 08 */ addi r4, r3, 8
-/* 80370064 0036BCC4 90 03 00 08 */ stw r0, 8(r3)
-/* 80370068 0036BCC8 90 03 00 0C */ stw r0, 0xc(r3)
-/* 8037006C 0036BCCC 90 03 00 00 */ stw r0, 0(r3)
-/* 80370070 0036BCD0 90 03 00 04 */ stw r0, 4(r3)
-/* 80370074 0036BCD4 90 83 00 08 */ stw r4, 8(r3)
-/* 80370078 0036BCD8 90 83 00 0C */ stw r4, 0xc(r3)
-/* 8037007C 0036BCDC 4E 80 00 20 */ blr
-
-.global func_80370080
-func_80370080:
-/* 80370080 0036BCE0 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80370084 0036BCE4 7C 08 02 A6 */ mflr r0
-/* 80370088 0036BCE8 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8037008C 0036BCEC 39 61 00 20 */ addi r11, r1, 0x20
-/* 80370090 0036BCF0 4B E5 70 99 */ bl _savegpr_27
-/* 80370094 0036BCF4 2C 03 00 00 */ cmpwi r3, 0
-/* 80370098 0036BCF8 7C 7B 1B 78 */ mr r27, r3
-/* 8037009C 0036BCFC 7C 9C 23 78 */ mr r28, r4
-/* 803700A0 0036BD00 41 82 00 D8 */ beq lbl_80370178
-/* 803700A4 0036BD04 80 03 00 00 */ lwz r0, 0(r3)
-/* 803700A8 0036BD08 2C 00 00 00 */ cmpwi r0, 0
-/* 803700AC 0036BD0C 41 82 00 AC */ beq lbl_80370158
-/* 803700B0 0036BD10 41 82 00 A8 */ beq lbl_80370158
-/* 803700B4 0036BD14 80 03 00 04 */ lwz r0, 4(r3)
-/* 803700B8 0036BD18 2C 00 00 00 */ cmpwi r0, 0
-/* 803700BC 0036BD1C 41 82 00 80 */ beq lbl_8037013C
-/* 803700C0 0036BD20 3B E3 00 08 */ addi r31, r3, 8
-/* 803700C4 0036BD24 48 00 00 6C */ b lbl_80370130
-lbl_803700C8:
-/* 803700C8 0036BD28 83 BF 00 04 */ lwz r29, 4(r31)
-/* 803700CC 0036BD2C 2C 1D 00 00 */ cmpwi r29, 0
-/* 803700D0 0036BD30 41 82 00 54 */ beq lbl_80370124
-/* 803700D4 0036BD34 3B DD 00 0C */ addi r30, r29, 0xc
-/* 803700D8 0036BD38 48 00 00 30 */ b lbl_80370108
-lbl_803700DC:
-/* 803700DC 0036BD3C 83 DE 00 04 */ lwz r30, 4(r30)
-/* 803700E0 0036BD40 2C 1E 00 00 */ cmpwi r30, 0
-/* 803700E4 0036BD44 41 82 00 24 */ beq lbl_80370108
-/* 803700E8 0036BD48 81 9E 00 0C */ lwz r12, 0xc(r30)
-/* 803700EC 0036BD4C 2C 0C 00 00 */ cmpwi r12, 0
-/* 803700F0 0036BD50 41 82 00 18 */ beq lbl_80370108
-/* 803700F4 0036BD54 38 7E 00 20 */ addi r3, r30, 0x20
-/* 803700F8 0036BD58 80 9E 00 08 */ lwz r4, 8(r30)
-/* 803700FC 0036BD5C 80 BE 00 10 */ lwz r5, 0x10(r30)
-/* 80370100 0036BD60 7D 89 03 A6 */ mtctr r12
-/* 80370104 0036BD64 4E 80 04 21 */ bctrl
-lbl_80370108:
-/* 80370108 0036BD68 80 1D 00 0C */ lwz r0, 0xc(r29)
-/* 8037010C 0036BD6C 7C 1E 00 40 */ cmplw r30, r0
-/* 80370110 0036BD70 40 82 FF CC */ bne lbl_803700DC
-/* 80370114 0036BD74 34 7D 00 08 */ addic. r3, r29, 8
-/* 80370118 0036BD78 41 82 00 0C */ beq lbl_80370124
-/* 8037011C 0036BD7C 38 80 00 00 */ li r4, 0
-/* 80370120 0036BD80 4B FF 2A 19 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
-lbl_80370124:
-/* 80370124 0036BD84 7F A4 EB 78 */ mr r4, r29
-/* 80370128 0036BD88 38 7B 00 04 */ addi r3, r27, 4
-/* 8037012C 0036BD8C 4B FF 2B 49 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
-lbl_80370130:
-/* 80370130 0036BD90 80 1B 00 04 */ lwz r0, 4(r27)
-/* 80370134 0036BD94 2C 00 00 00 */ cmpwi r0, 0
-/* 80370138 0036BD98 40 82 FF 90 */ bne lbl_803700C8
-lbl_8037013C:
-/* 8037013C 0036BD9C 80 7B 00 00 */ lwz r3, 0(r27)
-/* 80370140 0036BDA0 38 80 00 03 */ li r4, 3
-/* 80370144 0036BDA4 4B F2 74 9D */ bl func_802975E0
-/* 80370148 0036BDA8 80 7B 00 00 */ lwz r3, 0(r27)
-/* 8037014C 0036BDAC 4B F2 73 45 */ bl func_80297490
-/* 80370150 0036BDB0 38 00 00 00 */ li r0, 0
-/* 80370154 0036BDB4 90 1B 00 00 */ stw r0, 0(r27)
-lbl_80370158:
-/* 80370158 0036BDB8 34 7B 00 04 */ addic. r3, r27, 4
-/* 8037015C 0036BDBC 41 82 00 0C */ beq lbl_80370168
-/* 80370160 0036BDC0 38 80 00 00 */ li r4, 0
-/* 80370164 0036BDC4 4B FF 29 D5 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
-lbl_80370168:
-/* 80370168 0036BDC8 2C 1C 00 00 */ cmpwi r28, 0
-/* 8037016C 0036BDCC 40 81 00 0C */ ble lbl_80370178
-/* 80370170 0036BDD0 7F 63 DB 78 */ mr r3, r27
-/* 80370174 0036BDD4 4B E6 A9 45 */ bl func_801DAAB8
-lbl_80370178:
-/* 80370178 0036BDD8 39 61 00 20 */ addi r11, r1, 0x20
-/* 8037017C 0036BDDC 7F 63 DB 78 */ mr r3, r27
-/* 80370180 0036BDE0 4B E5 6F F5 */ bl _restgpr_27
-/* 80370184 0036BDE4 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80370188 0036BDE8 7C 08 03 A6 */ mtlr r0
-/* 8037018C 0036BDEC 38 21 00 20 */ addi r1, r1, 0x20
-/* 80370190 0036BDF0 4E 80 00 20 */ blr
-lbl_80370194:
-/* 80370194 0036BDF4 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 80370198 0036BDF8 7C 08 02 A6 */ mflr r0
-/* 8037019C 0036BDFC 90 01 00 34 */ stw r0, 0x34(r1)
-/* 803701A0 0036BE00 39 61 00 30 */ addi r11, r1, 0x30
-/* 803701A4 0036BE04 4B E5 6F 81 */ bl _savegpr_26
-/* 803701A8 0036BE08 80 03 00 00 */ lwz r0, 0(r3)
-/* 803701AC 0036BE0C 7C 7A 1B 78 */ mr r26, r3
-/* 803701B0 0036BE10 7C 9B 23 78 */ mr r27, r4
-/* 803701B4 0036BE14 7C BC 2B 78 */ mr r28, r5
-/* 803701B8 0036BE18 2C 00 00 00 */ cmpwi r0, 0
-/* 803701BC 0036BE1C 41 82 00 AC */ beq lbl_80370268
-/* 803701C0 0036BE20 41 82 00 A8 */ beq lbl_80370268
-/* 803701C4 0036BE24 80 03 00 04 */ lwz r0, 4(r3)
-/* 803701C8 0036BE28 2C 00 00 00 */ cmpwi r0, 0
-/* 803701CC 0036BE2C 41 82 00 80 */ beq lbl_8037024C
-/* 803701D0 0036BE30 3B E3 00 08 */ addi r31, r3, 8
-/* 803701D4 0036BE34 48 00 00 6C */ b lbl_80370240
-lbl_803701D8:
-/* 803701D8 0036BE38 83 BF 00 04 */ lwz r29, 4(r31)
-/* 803701DC 0036BE3C 2C 1D 00 00 */ cmpwi r29, 0
-/* 803701E0 0036BE40 41 82 00 54 */ beq lbl_80370234
-/* 803701E4 0036BE44 3B DD 00 0C */ addi r30, r29, 0xc
-/* 803701E8 0036BE48 48 00 00 30 */ b lbl_80370218
-lbl_803701EC:
-/* 803701EC 0036BE4C 83 DE 00 04 */ lwz r30, 4(r30)
-/* 803701F0 0036BE50 2C 1E 00 00 */ cmpwi r30, 0
-/* 803701F4 0036BE54 41 82 00 24 */ beq lbl_80370218
-/* 803701F8 0036BE58 81 9E 00 0C */ lwz r12, 0xc(r30)
-/* 803701FC 0036BE5C 2C 0C 00 00 */ cmpwi r12, 0
-/* 80370200 0036BE60 41 82 00 18 */ beq lbl_80370218
-/* 80370204 0036BE64 38 7E 00 20 */ addi r3, r30, 0x20
-/* 80370208 0036BE68 80 9E 00 08 */ lwz r4, 8(r30)
-/* 8037020C 0036BE6C 80 BE 00 10 */ lwz r5, 0x10(r30)
-/* 80370210 0036BE70 7D 89 03 A6 */ mtctr r12
-/* 80370214 0036BE74 4E 80 04 21 */ bctrl
-lbl_80370218:
-/* 80370218 0036BE78 80 1D 00 0C */ lwz r0, 0xc(r29)
-/* 8037021C 0036BE7C 7C 1E 00 40 */ cmplw r30, r0
-/* 80370220 0036BE80 40 82 FF CC */ bne lbl_803701EC
-/* 80370224 0036BE84 34 7D 00 08 */ addic. r3, r29, 8
-/* 80370228 0036BE88 41 82 00 0C */ beq lbl_80370234
-/* 8037022C 0036BE8C 38 80 00 00 */ li r4, 0
-/* 80370230 0036BE90 4B FF 29 09 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
-lbl_80370234:
-/* 80370234 0036BE94 7F A4 EB 78 */ mr r4, r29
-/* 80370238 0036BE98 38 7A 00 04 */ addi r3, r26, 4
-/* 8037023C 0036BE9C 4B FF 2A 39 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
-lbl_80370240:
-/* 80370240 0036BEA0 80 1A 00 04 */ lwz r0, 4(r26)
-/* 80370244 0036BEA4 2C 00 00 00 */ cmpwi r0, 0
-/* 80370248 0036BEA8 40 82 FF 90 */ bne lbl_803701D8
-lbl_8037024C:
-/* 8037024C 0036BEAC 80 7A 00 00 */ lwz r3, 0(r26)
-/* 80370250 0036BEB0 38 80 00 03 */ li r4, 3
-/* 80370254 0036BEB4 4B F2 73 8D */ bl func_802975E0
-/* 80370258 0036BEB8 80 7A 00 00 */ lwz r3, 0(r26)
-/* 8037025C 0036BEBC 4B F2 72 35 */ bl func_80297490
-/* 80370260 0036BEC0 38 00 00 00 */ li r0, 0
-/* 80370264 0036BEC4 90 1A 00 00 */ stw r0, 0(r26)
-lbl_80370268:
-/* 80370268 0036BEC8 38 1B 00 03 */ addi r0, r27, 3
-/* 8037026C 0036BECC 7C 9B E2 14 */ add r4, r27, r28
-/* 80370270 0036BED0 54 03 00 3A */ rlwinm r3, r0, 0, 0, 0x1d
-/* 80370274 0036BED4 7C 03 20 40 */ cmplw r3, r4
-/* 80370278 0036BED8 40 81 00 0C */ ble lbl_80370284
-/* 8037027C 0036BEDC 38 60 00 00 */ li r3, 0
-/* 80370280 0036BEE0 48 00 00 98 */ b lbl_80370318
-lbl_80370284:
-/* 80370284 0036BEE4 7C 83 20 50 */ subf r4, r3, r4
-/* 80370288 0036BEE8 38 A0 00 00 */ li r5, 0
-/* 8037028C 0036BEEC 4B F2 71 81 */ bl func_8029740C
-/* 80370290 0036BEF0 2C 03 00 00 */ cmpwi r3, 0
-/* 80370294 0036BEF4 90 7A 00 00 */ stw r3, 0(r26)
-/* 80370298 0036BEF8 40 82 00 0C */ bne lbl_803702A4
-/* 8037029C 0036BEFC 38 60 00 00 */ li r3, 0
-/* 803702A0 0036BF00 48 00 00 78 */ b lbl_80370318
-lbl_803702A4:
-/* 803702A4 0036BF04 38 80 00 14 */ li r4, 0x14
-/* 803702A8 0036BF08 38 A0 00 04 */ li r5, 4
-/* 803702AC 0036BF0C 4B F2 72 15 */ bl func_802974C0
-/* 803702B0 0036BF10 2C 03 00 00 */ cmpwi r3, 0
-/* 803702B4 0036BF14 40 82 00 0C */ bne lbl_803702C0
-/* 803702B8 0036BF18 38 00 00 00 */ li r0, 0
-/* 803702BC 0036BF1C 48 00 00 48 */ b lbl_80370304
-lbl_803702C0:
-/* 803702C0 0036BF20 7C 65 1B 78 */ mr r5, r3
-/* 803702C4 0036BF24 41 82 00 28 */ beq lbl_803702EC
-/* 803702C8 0036BF28 38 00 00 00 */ li r0, 0
-/* 803702CC 0036BF2C 38 83 00 0C */ addi r4, r3, 0xc
-/* 803702D0 0036BF30 90 03 00 00 */ stw r0, 0(r3)
-/* 803702D4 0036BF34 90 03 00 04 */ stw r0, 4(r3)
-/* 803702D8 0036BF38 90 03 00 0C */ stw r0, 0xc(r3)
-/* 803702DC 0036BF3C 90 03 00 10 */ stw r0, 0x10(r3)
-/* 803702E0 0036BF40 90 03 00 08 */ stw r0, 8(r3)
-/* 803702E4 0036BF44 90 83 00 0C */ stw r4, 0xc(r3)
-/* 803702E8 0036BF48 90 83 00 10 */ stw r4, 0x10(r3)
-lbl_803702EC:
-/* 803702EC 0036BF4C 38 1A 00 08 */ addi r0, r26, 8
-/* 803702F0 0036BF50 38 7A 00 04 */ addi r3, r26, 4
-/* 803702F4 0036BF54 90 01 00 08 */ stw r0, 8(r1)
-/* 803702F8 0036BF58 38 81 00 08 */ addi r4, r1, 8
-/* 803702FC 0036BF5C 4B FF 29 4D */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
-/* 80370300 0036BF60 38 00 00 01 */ li r0, 1
-lbl_80370304:
-/* 80370304 0036BF64 2C 00 00 00 */ cmpwi r0, 0
-/* 80370308 0036BF68 40 82 00 0C */ bne lbl_80370314
-/* 8037030C 0036BF6C 38 60 00 00 */ li r3, 0
-/* 80370310 0036BF70 48 00 00 08 */ b lbl_80370318
-lbl_80370314:
-/* 80370314 0036BF74 38 60 00 01 */ li r3, 1
-lbl_80370318:
-/* 80370318 0036BF78 39 61 00 30 */ addi r11, r1, 0x30
-/* 8037031C 0036BF7C 4B E5 6E 55 */ bl func_801C7170
-/* 80370320 0036BF80 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 80370324 0036BF84 7C 08 03 A6 */ mtlr r0
-/* 80370328 0036BF88 38 21 00 30 */ addi r1, r1, 0x30
-/* 8037032C 0036BF8C 4E 80 00 20 */ blr
-
-.global func_80370330
-func_80370330:
-/* 80370330 0036BF90 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80370334 0036BF94 7C 08 02 A6 */ mflr r0
-/* 80370338 0036BF98 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8037033C 0036BF9C 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 80370340 0036BFA0 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 80370344 0036BFA4 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 80370348 0036BFA8 93 81 00 10 */ stw r28, 0x10(r1)
-/* 8037034C 0036BFAC 7C 7C 1B 78 */ mr r28, r3
-/* 80370350 0036BFB0 80 03 00 00 */ lwz r0, 0(r3)
-/* 80370354 0036BFB4 2C 00 00 00 */ cmpwi r0, 0
-/* 80370358 0036BFB8 41 82 00 A8 */ beq lbl_80370400
-/* 8037035C 0036BFBC 80 03 00 04 */ lwz r0, 4(r3)
-/* 80370360 0036BFC0 2C 00 00 00 */ cmpwi r0, 0
-/* 80370364 0036BFC4 41 82 00 80 */ beq lbl_803703E4
-/* 80370368 0036BFC8 3B E3 00 08 */ addi r31, r3, 8
-/* 8037036C 0036BFCC 48 00 00 6C */ b lbl_803703D8
-lbl_80370370:
-/* 80370370 0036BFD0 83 BF 00 04 */ lwz r29, 4(r31)
-/* 80370374 0036BFD4 2C 1D 00 00 */ cmpwi r29, 0
-/* 80370378 0036BFD8 41 82 00 54 */ beq lbl_803703CC
-/* 8037037C 0036BFDC 3B DD 00 0C */ addi r30, r29, 0xc
-/* 80370380 0036BFE0 48 00 00 30 */ b lbl_803703B0
-lbl_80370384:
-/* 80370384 0036BFE4 83 DE 00 04 */ lwz r30, 4(r30)
-/* 80370388 0036BFE8 2C 1E 00 00 */ cmpwi r30, 0
-/* 8037038C 0036BFEC 41 82 00 24 */ beq lbl_803703B0
-/* 80370390 0036BFF0 81 9E 00 0C */ lwz r12, 0xc(r30)
-/* 80370394 0036BFF4 2C 0C 00 00 */ cmpwi r12, 0
-/* 80370398 0036BFF8 41 82 00 18 */ beq lbl_803703B0
-/* 8037039C 0036BFFC 38 7E 00 20 */ addi r3, r30, 0x20
-/* 803703A0 0036C000 80 9E 00 08 */ lwz r4, 8(r30)
-/* 803703A4 0036C004 80 BE 00 10 */ lwz r5, 0x10(r30)
-/* 803703A8 0036C008 7D 89 03 A6 */ mtctr r12
-/* 803703AC 0036C00C 4E 80 04 21 */ bctrl
-lbl_803703B0:
-/* 803703B0 0036C010 80 1D 00 0C */ lwz r0, 0xc(r29)
-/* 803703B4 0036C014 7C 1E 00 40 */ cmplw r30, r0
-/* 803703B8 0036C018 40 82 FF CC */ bne lbl_80370384
-/* 803703BC 0036C01C 34 7D 00 08 */ addic. r3, r29, 8
-/* 803703C0 0036C020 41 82 00 0C */ beq lbl_803703CC
-/* 803703C4 0036C024 38 80 00 00 */ li r4, 0
-/* 803703C8 0036C028 4B FF 27 71 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
-lbl_803703CC:
-/* 803703CC 0036C02C 7F A4 EB 78 */ mr r4, r29
-/* 803703D0 0036C030 38 7C 00 04 */ addi r3, r28, 4
-/* 803703D4 0036C034 4B FF 28 A1 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
-lbl_803703D8:
-/* 803703D8 0036C038 80 1C 00 04 */ lwz r0, 4(r28)
-/* 803703DC 0036C03C 2C 00 00 00 */ cmpwi r0, 0
-/* 803703E0 0036C040 40 82 FF 90 */ bne lbl_80370370
-lbl_803703E4:
-/* 803703E4 0036C044 80 7C 00 00 */ lwz r3, 0(r28)
-/* 803703E8 0036C048 38 80 00 03 */ li r4, 3
-/* 803703EC 0036C04C 4B F2 71 F5 */ bl func_802975E0
-/* 803703F0 0036C050 80 7C 00 00 */ lwz r3, 0(r28)
-/* 803703F4 0036C054 4B F2 70 9D */ bl func_80297490
-/* 803703F8 0036C058 38 00 00 00 */ li r0, 0
-/* 803703FC 0036C05C 90 1C 00 00 */ stw r0, 0(r28)
-lbl_80370400:
-/* 80370400 0036C060 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80370404 0036C064 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 80370408 0036C068 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 8037040C 0036C06C 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 80370410 0036C070 83 81 00 10 */ lwz r28, 0x10(r1)
-/* 80370414 0036C074 7C 08 03 A6 */ mtlr r0
-/* 80370418 0036C078 38 21 00 20 */ addi r1, r1, 0x20
-/* 8037041C 0036C07C 4E 80 00 20 */ blr
-
-.global func_80370420
-func_80370420:
-/* 80370420 0036C080 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80370424 0036C084 7C 08 02 A6 */ mflr r0
-/* 80370428 0036C088 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8037042C 0036C08C 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 80370430 0036C090 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 80370434 0036C094 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 80370438 0036C098 93 81 00 10 */ stw r28, 0x10(r1)
-/* 8037043C 0036C09C 7C 7C 1B 78 */ mr r28, r3
-/* 80370440 0036C0A0 80 03 00 04 */ lwz r0, 4(r3)
-/* 80370444 0036C0A4 2C 00 00 00 */ cmpwi r0, 0
-/* 80370448 0036C0A8 41 82 00 80 */ beq lbl_803704C8
-/* 8037044C 0036C0AC 3B E3 00 08 */ addi r31, r3, 8
-/* 80370450 0036C0B0 48 00 00 6C */ b lbl_803704BC
-lbl_80370454:
-/* 80370454 0036C0B4 83 BF 00 04 */ lwz r29, 4(r31)
-/* 80370458 0036C0B8 2C 1D 00 00 */ cmpwi r29, 0
-/* 8037045C 0036C0BC 41 82 00 54 */ beq lbl_803704B0
-/* 80370460 0036C0C0 3B DD 00 0C */ addi r30, r29, 0xc
-/* 80370464 0036C0C4 48 00 00 30 */ b lbl_80370494
-lbl_80370468:
-/* 80370468 0036C0C8 83 DE 00 04 */ lwz r30, 4(r30)
-/* 8037046C 0036C0CC 2C 1E 00 00 */ cmpwi r30, 0
-/* 80370470 0036C0D0 41 82 00 24 */ beq lbl_80370494
-/* 80370474 0036C0D4 81 9E 00 0C */ lwz r12, 0xc(r30)
-/* 80370478 0036C0D8 2C 0C 00 00 */ cmpwi r12, 0
-/* 8037047C 0036C0DC 41 82 00 18 */ beq lbl_80370494
-/* 80370480 0036C0E0 38 7E 00 20 */ addi r3, r30, 0x20
-/* 80370484 0036C0E4 80 9E 00 08 */ lwz r4, 8(r30)
-/* 80370488 0036C0E8 80 BE 00 10 */ lwz r5, 0x10(r30)
-/* 8037048C 0036C0EC 7D 89 03 A6 */ mtctr r12
-/* 80370490 0036C0F0 4E 80 04 21 */ bctrl
-lbl_80370494:
-/* 80370494 0036C0F4 80 1D 00 0C */ lwz r0, 0xc(r29)
-/* 80370498 0036C0F8 7C 1E 00 40 */ cmplw r30, r0
-/* 8037049C 0036C0FC 40 82 FF CC */ bne lbl_80370468
-/* 803704A0 0036C100 34 7D 00 08 */ addic. r3, r29, 8
-/* 803704A4 0036C104 41 82 00 0C */ beq lbl_803704B0
-/* 803704A8 0036C108 38 80 00 00 */ li r4, 0
-/* 803704AC 0036C10C 4B FF 26 8D */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv
-lbl_803704B0:
-/* 803704B0 0036C110 7F A4 EB 78 */ mr r4, r29
-/* 803704B4 0036C114 38 7C 00 04 */ addi r3, r28, 4
-/* 803704B8 0036C118 4B FF 27 BD */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
-lbl_803704BC:
-/* 803704BC 0036C11C 80 1C 00 04 */ lwz r0, 4(r28)
-/* 803704C0 0036C120 2C 00 00 00 */ cmpwi r0, 0
-/* 803704C4 0036C124 40 82 FF 90 */ bne lbl_80370454
-lbl_803704C8:
-/* 803704C8 0036C128 80 7C 00 00 */ lwz r3, 0(r28)
-/* 803704CC 0036C12C 38 80 00 03 */ li r4, 3
-/* 803704D0 0036C130 4B F2 71 11 */ bl func_802975E0
-/* 803704D4 0036C134 80 7C 00 00 */ lwz r3, 0(r28)
-/* 803704D8 0036C138 38 80 00 14 */ li r4, 0x14
-/* 803704DC 0036C13C 38 A0 00 04 */ li r5, 4
-/* 803704E0 0036C140 4B F2 6F E1 */ bl func_802974C0
-/* 803704E4 0036C144 2C 03 00 00 */ cmpwi r3, 0
-/* 803704E8 0036C148 41 82 00 44 */ beq lbl_8037052C
-/* 803704EC 0036C14C 7C 65 1B 78 */ mr r5, r3
-/* 803704F0 0036C150 41 82 00 28 */ beq lbl_80370518
-/* 803704F4 0036C154 38 00 00 00 */ li r0, 0
-/* 803704F8 0036C158 38 83 00 0C */ addi r4, r3, 0xc
-/* 803704FC 0036C15C 90 03 00 00 */ stw r0, 0(r3)
-/* 80370500 0036C160 90 03 00 04 */ stw r0, 4(r3)
-/* 80370504 0036C164 90 03 00 0C */ stw r0, 0xc(r3)
-/* 80370508 0036C168 90 03 00 10 */ stw r0, 0x10(r3)
-/* 8037050C 0036C16C 90 03 00 08 */ stw r0, 8(r3)
-/* 80370510 0036C170 90 83 00 0C */ stw r4, 0xc(r3)
-/* 80370514 0036C174 90 83 00 10 */ stw r4, 0x10(r3)
-lbl_80370518:
-/* 80370518 0036C178 38 1C 00 08 */ addi r0, r28, 8
-/* 8037051C 0036C17C 38 7C 00 04 */ addi r3, r28, 4
-/* 80370520 0036C180 90 01 00 08 */ stw r0, 8(r1)
-/* 80370524 0036C184 38 81 00 08 */ addi r4, r1, 8
-/* 80370528 0036C188 4B FF 27 21 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
-lbl_8037052C:
-/* 8037052C 0036C18C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80370530 0036C190 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 80370534 0036C194 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 80370538 0036C198 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 8037053C 0036C19C 83 81 00 10 */ lwz r28, 0x10(r1)
-/* 80370540 0036C1A0 7C 08 03 A6 */ mtlr r0
-/* 80370544 0036C1A4 38 21 00 20 */ addi r1, r1, 0x20
-/* 80370548 0036C1A8 4E 80 00 20 */ blr
-
-.global func_8037054C
-func_8037054C:
-/* 8037054C 0036C1AC 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 80370550 0036C1B0 7C 08 02 A6 */ mflr r0
-/* 80370554 0036C1B4 90 01 00 34 */ stw r0, 0x34(r1)
-/* 80370558 0036C1B8 39 61 00 30 */ addi r11, r1, 0x30
-/* 8037055C 0036C1BC 4B E5 6B CD */ bl _savegpr_27
-/* 80370560 0036C1C0 38 04 00 1F */ addi r0, r4, 0x1f
-/* 80370564 0036C1C4 7C 7B 1B 78 */ mr r27, r3
-/* 80370568 0036C1C8 54 07 00 34 */ rlwinm r7, r0, 0, 0, 0x1a
-/* 8037056C 0036C1CC 80 63 00 00 */ lwz r3, 0(r3)
-/* 80370570 0036C1D0 7C 9C 23 78 */ mr r28, r4
-/* 80370574 0036C1D4 7C BD 2B 78 */ mr r29, r5
-/* 80370578 0036C1D8 7C DE 33 78 */ mr r30, r6
-/* 8037057C 0036C1DC 38 87 00 20 */ addi r4, r7, 0x20
-/* 80370580 0036C1E0 38 A0 00 20 */ li r5, 0x20
-/* 80370584 0036C1E4 4B F2 6F 3D */ bl func_802974C0
-/* 80370588 0036C1E8 2C 03 00 00 */ cmpwi r3, 0
-/* 8037058C 0036C1EC 7C 7F 1B 78 */ mr r31, r3
-/* 80370590 0036C1F0 40 82 00 0C */ bne lbl_8037059C
-/* 80370594 0036C1F4 38 60 00 00 */ li r3, 0
-/* 80370598 0036C1F8 48 00 00 40 */ b lbl_803705D8
-lbl_8037059C:
-/* 8037059C 0036C1FC 41 82 00 1C */ beq lbl_803705B8
-/* 803705A0 0036C200 38 00 00 00 */ li r0, 0
-/* 803705A4 0036C204 90 03 00 00 */ stw r0, 0(r3)
-/* 803705A8 0036C208 90 03 00 04 */ stw r0, 4(r3)
-/* 803705AC 0036C20C 93 83 00 08 */ stw r28, 8(r3)
-/* 803705B0 0036C210 93 A3 00 0C */ stw r29, 0xc(r3)
-/* 803705B4 0036C214 93 C3 00 10 */ stw r30, 0x10(r3)
-lbl_803705B8:
-/* 803705B8 0036C218 80 7B 00 0C */ lwz r3, 0xc(r27)
-/* 803705BC 0036C21C 7F E5 FB 78 */ mr r5, r31
-/* 803705C0 0036C220 38 81 00 08 */ addi r4, r1, 8
-/* 803705C4 0036C224 38 03 00 0C */ addi r0, r3, 0xc
-/* 803705C8 0036C228 38 63 00 08 */ addi r3, r3, 8
-/* 803705CC 0036C22C 90 01 00 08 */ stw r0, 8(r1)
-/* 803705D0 0036C230 4B FF 26 79 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
-/* 803705D4 0036C234 38 7F 00 20 */ addi r3, r31, 0x20
-lbl_803705D8:
-/* 803705D8 0036C238 39 61 00 30 */ addi r11, r1, 0x30
-/* 803705DC 0036C23C 4B E5 6B 99 */ bl _restgpr_27
-/* 803705E0 0036C240 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 803705E4 0036C244 7C 08 03 A6 */ mtlr r0
-/* 803705E8 0036C248 38 21 00 30 */ addi r1, r1, 0x30
-/* 803705EC 0036C24C 4E 80 00 20 */ blr
-
-.global func_803705F0
-func_803705F0:
-/* 803705F0 0036C250 80 63 00 00 */ lwz r3, 0(r3)
-/* 803705F4 0036C254 80 03 00 1C */ lwz r0, 0x1c(r3)
-/* 803705F8 0036C258 7C 63 00 50 */ subf r3, r3, r0
-/* 803705FC 0036C25C 4E 80 00 20 */ blr
-
-.global func_80370600
-func_80370600:
-/* 80370600 0036C260 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80370604 0036C264 7C 08 02 A6 */ mflr r0
-/* 80370608 0036C268 80 63 00 00 */ lwz r3, 0(r3)
-/* 8037060C 0036C26C 38 80 00 20 */ li r4, 0x20
-/* 80370610 0036C270 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80370614 0036C274 4B F2 70 6D */ bl func_80297680
-/* 80370618 0036C278 38 80 00 20 */ li r4, 0x20
-/* 8037061C 0036C27C 38 03 FF E0 */ addi r0, r3, -32
-/* 80370620 0036C280 7C 64 18 10 */ subfc r3, r4, r3
-/* 80370624 0036C284 7C 63 19 10 */ subfe r3, r3, r3
-/* 80370628 0036C288 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a
-/* 8037062C 0036C28C 7C 03 18 78 */ andc r3, r0, r3
-/* 80370630 0036C290 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80370634 0036C294 7C 08 03 A6 */ mtlr r0
-/* 80370638 0036C298 38 21 00 10 */ addi r1, r1, 0x10
-/* 8037063C 0036C29C 4E 80 00 20 */ blr
-
.global func_80370640
func_80370640:
/* 80370640 0036C2A0 94 21 FF E0 */ stwu r1, -0x20(r1)
@@ -7159,7 +5982,7 @@ lbl_80375958: /* 80375968 003715C8 41 80 00 10 */ blt lbl_80375978
/* 8037596C 003715CC 7F C3 F3 78 */ mr r3, r30
/* 80375970 003715D0 57 A4 06 3E */ clrlwi r4, r29, 0x18
-/* 80375974 003715D4 4B FF A5 69 */ bl func_8036FEDC
+/* 80375974 003715D4 4B FF A5 69 */ bl SetRelease__Q44nw4r3snd6detail12EnvGeneratorFi
lbl_80375978:
/* 80375978 003715D8 7F C3 F3 78 */ mr r3, r30
/* 8037597C 003715DC 4B FF 93 65 */ bl Release__Q44nw4r3snd6detail7ChannelFv
@@ -7882,25 +6705,25 @@ lbl_803763AC: /* 803763B0 00372010 28 04 00 FF */ cmplwi r4, 0xff
/* 803763B4 00372014 41 82 00 0C */ beq lbl_803763C0
/* 803763B8 00372018 7F E3 FB 78 */ mr r3, r31
-/* 803763BC 0037201C 4B FF 9A 61 */ bl func_8036FE1C
+/* 803763BC 0037201C 4B FF 9A 61 */ bl SetAttack__Q44nw4r3snd6detail12EnvGeneratorFi
lbl_803763C0:
/* 803763C0 00372020 88 9C 00 90 */ lbz r4, 0x90(r28)
/* 803763C4 00372024 28 04 00 FF */ cmplwi r4, 0xff
/* 803763C8 00372028 41 82 00 0C */ beq lbl_803763D4
/* 803763CC 0037202C 7F E3 FB 78 */ mr r3, r31
-/* 803763D0 00372030 4B FF 9A 65 */ bl func_8036FE34
+/* 803763D0 00372030 4B FF 9A 65 */ bl SetDecay__Q44nw4r3snd6detail12EnvGeneratorFi
lbl_803763D4:
/* 803763D4 00372034 88 9C 00 91 */ lbz r4, 0x91(r28)
/* 803763D8 00372038 28 04 00 FF */ cmplwi r4, 0xff
/* 803763DC 0037203C 41 82 00 0C */ beq lbl_803763E8
/* 803763E0 00372040 7F E3 FB 78 */ mr r3, r31
-/* 803763E4 00372044 4B FF 9A F1 */ bl func_8036FED4
+/* 803763E4 00372044 4B FF 9A F1 */ bl SetSustain__Q44nw4r3snd6detail12EnvGeneratorFi
lbl_803763E8:
/* 803763E8 00372048 88 9C 00 92 */ lbz r4, 0x92(r28)
/* 803763EC 0037204C 28 04 00 FF */ cmplwi r4, 0xff
/* 803763F0 00372050 41 82 00 0C */ beq lbl_803763FC
/* 803763F4 00372054 7F E3 FB 78 */ mr r3, r31
-/* 803763F8 00372058 4B FF 9A E5 */ bl func_8036FEDC
+/* 803763F8 00372058 4B FF 9A E5 */ bl SetRelease__Q44nw4r3snd6detail12EnvGeneratorFi
lbl_803763FC:
/* 803763FC 0037205C 88 1C 00 5F */ lbz r0, 0x5f(r28)
/* 80376400 00372060 C0 3C 00 80 */ lfs f1, 0x80(r28)
@@ -12226,7 +11049,7 @@ lbl_80379F20: /* 80379F24 00375B84 7F C3 F3 78 */ mr r3, r30
/* 80379F28 00375B88 4B EF 5A 21 */ bl func_8026F948
/* 80379F2C 00375B8C 38 7F 00 1C */ addi r3, r31, 0x1c
-/* 80379F30 00375B90 4B FF 66 D1 */ bl func_80370600
+/* 80379F30 00375B90 4B FF 66 D1 */ bl GetFreeSize__Q44nw4r3snd6detail9FrameHeapCFv
/* 80379F34 00375B94 7C 7F 1B 78 */ mr r31, r3
/* 80379F38 00375B98 7F C3 F3 78 */ mr r3, r30
/* 80379F3C 00375B9C 4B EF 5A E9 */ bl func_8026FA24
@@ -13041,7 +11864,7 @@ func_8037AA3C: /* 8037AA54 003766B4 7C 7F 1B 78 */ mr r31, r3
/* 8037AA58 003766B8 90 83 00 00 */ stw r4, 0(r3)
/* 8037AA5C 003766BC 38 63 00 1C */ addi r3, r3, 0x1c
-/* 8037AA60 003766C0 4B FF 55 FD */ bl func_8037005C
+/* 8037AA60 003766C0 4B FF 55 FD */ bl __ct__Q44nw4r3snd6detail9FrameHeapFv
/* 8037AA64 003766C4 38 7F 00 04 */ addi r3, r31, 4
/* 8037AA68 003766C8 4B EF 4E A9 */ bl func_8026F910
/* 8037AA6C 003766CC 7F E3 FB 78 */ mr r3, r31
@@ -13066,10 +11889,10 @@ func_8037AA84: /* 8037AAAC 0037670C 38 84 CE C8 */ addi r4, r4, lbl_8044CEC8@l
/* 8037AAB0 00376710 90 83 00 00 */ stw r4, 0(r3)
/* 8037AAB4 00376714 38 63 00 1C */ addi r3, r3, 0x1c
-/* 8037AAB8 00376718 4B FF 58 79 */ bl func_80370330
+/* 8037AAB8 00376718 4B FF 58 79 */ bl Destroy__Q44nw4r3snd6detail9FrameHeapFv
/* 8037AABC 0037671C 38 7E 00 1C */ addi r3, r30, 0x1c
/* 8037AAC0 00376720 38 80 FF FF */ li r4, -1
-/* 8037AAC4 00376724 4B FF 55 BD */ bl func_80370080
+/* 8037AAC4 00376724 4B FF 55 BD */ bl __dt__Q44nw4r3snd6detail9FrameHeapFv
/* 8037AAC8 00376728 2C 1F 00 00 */ cmpwi r31, 0
/* 8037AACC 0037672C 40 81 00 0C */ ble lbl_8037AAD8
/* 8037AAD0 00376730 7F C3 F3 78 */ mr r3, r30
@@ -13086,12 +11909,12 @@ lbl_8037AAD8: .global func_8037AAF4
func_8037AAF4:
/* 8037AAF4 00376754 38 63 00 1C */ addi r3, r3, 0x1c
-/* 8037AAF8 00376758 4B FF 56 9C */ b lbl_80370194
+/* 8037AAF8 00376758 4B FF 56 9C */ b Create__Q44nw4r3snd6detail9FrameHeapFPvUl
.global func_8037AAFC
func_8037AAFC:
/* 8037AAFC 0037675C 38 63 00 1C */ addi r3, r3, 0x1c
-/* 8037AB00 00376760 4B FF 58 30 */ b func_80370330
+/* 8037AB00 00376760 4B FF 58 30 */ b Destroy__Q44nw4r3snd6detail9FrameHeapFv
/* 8037AB04 00376764 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8037AB08 00376768 7C 08 02 A6 */ mflr r0
/* 8037AB0C 0037676C 90 01 00 24 */ stw r0, 0x24(r1)
@@ -13108,7 +11931,7 @@ func_8037AAFC: /* 8037AB38 00376798 38 7D 00 1C */ addi r3, r29, 0x1c
/* 8037AB3C 0037679C 38 C0 00 00 */ li r6, 0
/* 8037AB40 003767A0 38 A5 AB 74 */ addi r5, r5, lbl_8037AB74@l
-/* 8037AB44 003767A4 4B FF 5A 09 */ bl func_8037054C
+/* 8037AB44 003767A4 4B FF 5A 09 */ bl Alloc__Q44nw4r3snd6detail9FrameHeapFUlPFPvUlPv_vPv
/* 8037AB48 003767A8 7C 7E 1B 78 */ mr r30, r3
/* 8037AB4C 003767AC 7F E3 FB 78 */ mr r3, r31
/* 8037AB50 003767B0 4B EF 4E D5 */ bl func_8026FA24
@@ -13826,7 +12649,7 @@ lbl_8037B4C4: /* 8037B4E8 00377148 93 FB 00 04 */ stw r31, 4(r27)
/* 8037B4EC 0037714C 4B EF 44 5D */ bl func_8026F948
/* 8037B4F0 00377150 38 7F 00 1C */ addi r3, r31, 0x1c
-/* 8037B4F4 00377154 4B FF 4F 2D */ bl func_80370420
+/* 8037B4F4 00377154 4B FF 4F 2D */ bl Clear__Q44nw4r3snd6detail9FrameHeapFv
/* 8037B4F8 00377158 7F 43 D3 78 */ mr r3, r26
/* 8037B4FC 0037715C 4B EF 45 29 */ bl func_8026FA24
/* 8037B500 00377160 7F 83 E3 78 */ mr r3, r28
@@ -13867,7 +12690,7 @@ lbl_8037B55C: /* 8037B584 003771E4 41 82 00 10 */ beq lbl_8037B594
/* 8037B588 003771E8 7F 23 CB 78 */ mr r3, r25
/* 8037B58C 003771EC 7F 64 DB 78 */ mr r4, r27
-/* 8037B590 003771F0 4B FF 49 ED */ bl func_8036FF7C
+/* 8037B590 003771F0 4B FF 49 ED */ bl InsertSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
lbl_8037B594:
/* 8037B594 003771F4 3A F6 00 48 */ addi r23, r22, 0x48
/* 8037B598 003771F8 7E E3 BB 78 */ mr r3, r23
@@ -14103,7 +12926,7 @@ lbl_8037B888: /* 8037B8AC 0037750C 93 FB 00 04 */ stw r31, 4(r27)
/* 8037B8B0 00377510 4B EF 40 99 */ bl func_8026F948
/* 8037B8B4 00377514 38 7F 00 1C */ addi r3, r31, 0x1c
-/* 8037B8B8 00377518 4B FF 4B 69 */ bl func_80370420
+/* 8037B8B8 00377518 4B FF 4B 69 */ bl Clear__Q44nw4r3snd6detail9FrameHeapFv
/* 8037B8BC 0037751C 7F 43 D3 78 */ mr r3, r26
/* 8037B8C0 00377520 4B EF 41 65 */ bl func_8026FA24
/* 8037B8C4 00377524 7F 83 E3 78 */ mr r3, r28
@@ -14144,7 +12967,7 @@ lbl_8037B920: /* 8037B948 003775A8 41 82 00 10 */ beq lbl_8037B958
/* 8037B94C 003775AC 7F 23 CB 78 */ mr r3, r25
/* 8037B950 003775B0 7F 64 DB 78 */ mr r4, r27
-/* 8037B954 003775B4 4B FF 46 29 */ bl func_8036FF7C
+/* 8037B954 003775B4 4B FF 46 29 */ bl InsertSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
lbl_8037B958:
/* 8037B958 003775B8 3A F6 00 48 */ addi r23, r22, 0x48
/* 8037B95C 003775BC 7E E3 BB 78 */ mr r3, r23
@@ -14380,7 +13203,7 @@ lbl_8037BC4C: /* 8037BC70 003778D0 93 FB 00 04 */ stw r31, 4(r27)
/* 8037BC74 003778D4 4B EF 3C D5 */ bl func_8026F948
/* 8037BC78 003778D8 38 7F 00 1C */ addi r3, r31, 0x1c
-/* 8037BC7C 003778DC 4B FF 47 A5 */ bl func_80370420
+/* 8037BC7C 003778DC 4B FF 47 A5 */ bl Clear__Q44nw4r3snd6detail9FrameHeapFv
/* 8037BC80 003778E0 7F 43 D3 78 */ mr r3, r26
/* 8037BC84 003778E4 4B EF 3D A1 */ bl func_8026FA24
/* 8037BC88 003778E8 7F 83 E3 78 */ mr r3, r28
@@ -14421,7 +13244,7 @@ lbl_8037BCE4: /* 8037BD0C 0037796C 41 82 00 10 */ beq lbl_8037BD1C
/* 8037BD10 00377970 7F 23 CB 78 */ mr r3, r25
/* 8037BD14 00377974 7F 64 DB 78 */ mr r4, r27
-/* 8037BD18 00377978 4B FF 42 65 */ bl func_8036FF7C
+/* 8037BD18 00377978 4B FF 42 65 */ bl InsertSoundList__Q44nw4r3snd6detail19ExternalSoundPlayerFPQ44nw4r3snd6detail10BasicSound
lbl_8037BD1C:
/* 8037BD1C 0037797C 3A F6 00 48 */ addi r23, r22, 0x48
/* 8037BD20 00377980 7E E3 BB 78 */ mr r3, r23
@@ -14599,7 +13422,7 @@ lbl_8037BF34: /* 8037BF68 00377BC8 48 00 00 70 */ b lbl_8037BFD8
lbl_8037BF6C:
/* 8037BF6C 00377BCC 7F C3 F3 78 */ mr r3, r30
-/* 8037BF70 00377BD0 4B FF 40 91 */ bl func_80370000
+/* 8037BF70 00377BD0 4B FF 40 91 */ bl GetLowestPrioritySound__Q44nw4r3snd6detail19ExternalSoundPlayerFv
/* 8037BF74 00377BD4 2C 03 00 00 */ cmpwi r3, 0
/* 8037BF78 00377BD8 40 82 00 14 */ bne lbl_8037BF8C
/* 8037BF7C 00377BDC 7F E3 FB 78 */ mr r3, r31
diff --git a/asm/text_11.s b/asm/text_11.s index 146b349..129dda3 100644 --- a/asm/text_11.s +++ b/asm/text_11.s @@ -3952,16 +3952,16 @@ lbl_803846DC: /* 80384700 00380360 48 00 00 5C */ b lbl_8038475C lbl_80384704: /* 80384704 00380364 88 81 00 0C */ lbz r4, 0xc(r1) -/* 80384708 00380368 4B FE B7 15 */ bl func_8036FE1C +/* 80384708 00380368 4B FE B7 15 */ bl SetAttack__Q44nw4r3snd6detail12EnvGeneratorFi /* 8038470C 0038036C 88 81 00 0D */ lbz r4, 0xd(r1) /* 80384710 00380370 7F C3 F3 78 */ mr r3, r30 -/* 80384714 00380374 4B FE B7 21 */ bl func_8036FE34 +/* 80384714 00380374 4B FE B7 21 */ bl SetDecay__Q44nw4r3snd6detail12EnvGeneratorFi /* 80384718 00380378 88 81 00 0E */ lbz r4, 0xe(r1) /* 8038471C 0038037C 7F C3 F3 78 */ mr r3, r30 -/* 80384720 00380380 4B FE B7 B5 */ bl func_8036FED4 +/* 80384720 00380380 4B FE B7 B5 */ bl SetSustain__Q44nw4r3snd6detail12EnvGeneratorFi /* 80384724 00380384 88 81 00 0F */ lbz r4, 0xf(r1) /* 80384728 00380388 7F C3 F3 78 */ mr r3, r30 -/* 8038472C 0038038C 4B FE B7 B1 */ bl func_8036FEDC +/* 8038472C 0038038C 4B FE B7 B1 */ bl SetRelease__Q44nw4r3snd6detail12EnvGeneratorFi /* 80384730 00380390 88 1F 00 90 */ lbz r0, 0x90(r31) /* 80384734 00380394 7F C3 F3 78 */ mr r3, r30 /* 80384738 00380398 7F A6 EB 78 */ mr r6, r29 diff --git a/asm/text_7.s b/asm/text_7.s index 5ceafd6..9ce8986 100644 --- a/asm/text_7.s +++ b/asm/text_7.s @@ -57515,7 +57515,7 @@ func_80254AD0: /* 80254AF4 00250754 7F E3 FB 78 */ mr r3, r31 /* 80254AF8 00250758 48 01 AE 51 */ bl func_8026F948 /* 80254AFC 0025075C 38 7E 00 1C */ addi r3, r30, 0x1c -/* 80254B00 00250760 48 11 B9 21 */ bl func_80370420 +/* 80254B00 00250760 48 11 B9 21 */ bl Clear__Q44nw4r3snd6detail9FrameHeapFv /* 80254B04 00250764 7F E3 FB 78 */ mr r3, r31 /* 80254B08 00250768 48 01 AF 1D */ bl func_8026FA24 /* 80254B0C 0025076C 80 01 00 14 */ lwz r0, 0x14(r1) @@ -57578,7 +57578,7 @@ func_80254B80: /* 80254BD8 00250838 7F C3 F3 78 */ mr r3, r30 /* 80254BDC 0025083C 48 01 AD 6D */ bl func_8026F948 /* 80254BE0 00250840 38 7F 00 1C */ addi r3, r31, 0x1c -/* 80254BE4 00250844 48 11 BA 1D */ bl func_80370600 +/* 80254BE4 00250844 48 11 BA 1D */ bl GetFreeSize__Q44nw4r3snd6detail9FrameHeapCFv /* 80254BE8 00250848 7C 7F 1B 78 */ mr r31, r3 /* 80254BEC 0025084C 7F C3 F3 78 */ mr r3, r30 /* 80254BF0 00250850 48 01 AE 35 */ bl func_8026FA24 @@ -57606,7 +57606,7 @@ func_80254C18: /* 80254C3C 0025089C 7F E3 FB 78 */ mr r3, r31 /* 80254C40 002508A0 48 01 AD 09 */ bl func_8026F948 /* 80254C44 002508A4 38 7E 00 1C */ addi r3, r30, 0x1c -/* 80254C48 002508A8 48 11 B9 B9 */ bl func_80370600 +/* 80254C48 002508A8 48 11 B9 B9 */ bl GetFreeSize__Q44nw4r3snd6detail9FrameHeapCFv /* 80254C4C 002508AC 7C 7E 1B 78 */ mr r30, r3 /* 80254C50 002508B0 7F E3 FB 78 */ mr r3, r31 /* 80254C54 002508B4 48 01 AD D1 */ bl func_8026FA24 diff --git a/obj_files.mk b/obj_files.mk index 6c3b322..a80af71 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -114,6 +114,10 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/NW4R/snd_BasicSound.o \ $(BUILD_DIR)/asm/NW4R/snd_Channel.o \ $(BUILD_DIR)/asm/NW4R/snd_DisposeCallbackManager.o \ + $(BUILD_DIR)/asm/NW4R/snd_DvdSoundArchive.o \ + $(BUILD_DIR)/asm/NW4R/snd_EnvGenerator.o \ + $(BUILD_DIR)/asm/NW4R/snd_ExternalSoundPlayer.o \ + $(BUILD_DIR)/asm/NW4R/snd_FrameHeap.o \ $(BUILD_DIR)/asm/text_10_4.o \ $(BUILD_DIR)/asm/text_11.o |