summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-09-26 22:26:05 -0400
committerMax <mparisi@stevens.edu>2020-09-26 22:26:05 -0400
commit87bb7c407150786d00adfb3bb134bf96deaa731d (patch)
tree2f1d9f0e7d111a7aa471f80cdbd8970f3bfe4c69
parenta7c6f37ddc6efd85304779794d7a487e26ab96cf (diff)
split snd_Util.s
-rw-r--r--asm/nw4r/snd/detail/snd_Util.s353
-rw-r--r--asm/text_11.s350
-rw-r--r--obj_files.mk1
3 files changed, 354 insertions, 350 deletions
diff --git a/asm/nw4r/snd/detail/snd_Util.s b/asm/nw4r/snd/detail/snd_Util.s
new file mode 100644
index 0000000..cfc7569
--- /dev/null
+++ b/asm/nw4r/snd/detail/snd_Util.s
@@ -0,0 +1,353 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global CalcPitchRatio__Q44nw4r3snd6detail4UtilFi
+CalcPitchRatio__Q44nw4r3snd6detail4UtilFi:
+/* 80382FA8 0037EC08 20 A3 0B FF */ subfic r5, r3, 0xbff
+/* 80382FAC 0037EC0C 38 00 0C 00 */ li r0, 0xc00
+/* 80382FB0 0037EC10 7C A5 03 96 */ divwu r5, r5, r0
+/* 80382FB4 0037EC14 2C 03 00 00 */ cmpwi r3, 0
+/* 80382FB8 0037EC18 C0 22 A7 A8 */ lfs f1, lbl_80642DA8-_SDA2_BASE_(r2)
+/* 80382FBC 0037EC1C 38 C0 00 00 */ li r6, 0
+/* 80382FC0 0037EC20 40 80 00 34 */ bge lbl_80382FF4
+/* 80382FC4 0037EC24 54 A4 E8 FF */ rlwinm. r4, r5, 0x1d, 3, 0x1f
+/* 80382FC8 0037EC28 1C 05 0C 00 */ mulli r0, r5, 0xc00
+/* 80382FCC 0037EC2C 7C 89 03 A6 */ mtctr r4
+/* 80382FD0 0037EC30 41 82 00 14 */ beq lbl_80382FE4
+lbl_80382FD4:
+/* 80382FD4 0037EC34 38 C6 FF F8 */ addi r6, r6, -8
+/* 80382FD8 0037EC38 42 00 FF FC */ bdnz lbl_80382FD4
+/* 80382FDC 0037EC3C 70 A5 00 07 */ andi. r5, r5, 7
+/* 80382FE0 0037EC40 41 82 00 10 */ beq lbl_80382FF0
+lbl_80382FE4:
+/* 80382FE4 0037EC44 7C A9 03 A6 */ mtctr r5
+lbl_80382FE8:
+/* 80382FE8 0037EC48 38 C6 FF FF */ addi r6, r6, -1
+/* 80382FEC 0037EC4C 42 00 FF FC */ bdnz lbl_80382FE8
+lbl_80382FF0:
+/* 80382FF0 0037EC50 7C 63 02 14 */ add r3, r3, r0
+lbl_80382FF4:
+/* 80382FF4 0037EC54 38 00 0C 00 */ li r0, 0xc00
+/* 80382FF8 0037EC58 2C 03 0C 00 */ cmpwi r3, 0xc00
+/* 80382FFC 0037EC5C 7C A3 03 96 */ divwu r5, r3, r0
+/* 80383000 0037EC60 41 80 00 34 */ blt lbl_80383034
+/* 80383004 0037EC64 54 A4 E8 FF */ rlwinm. r4, r5, 0x1d, 3, 0x1f
+/* 80383008 0037EC68 1C 05 F4 00 */ mulli r0, r5, -3072
+/* 8038300C 0037EC6C 7C 89 03 A6 */ mtctr r4
+/* 80383010 0037EC70 41 82 00 14 */ beq lbl_80383024
+lbl_80383014:
+/* 80383014 0037EC74 38 C6 00 08 */ addi r6, r6, 8
+/* 80383018 0037EC78 42 00 FF FC */ bdnz lbl_80383014
+/* 8038301C 0037EC7C 70 A5 00 07 */ andi. r5, r5, 7
+/* 80383020 0037EC80 41 82 00 10 */ beq lbl_80383030
+lbl_80383024:
+/* 80383024 0037EC84 7C A9 03 A6 */ mtctr r5
+lbl_80383028:
+/* 80383028 0037EC88 38 C6 00 01 */ addi r6, r6, 1
+/* 8038302C 0037EC8C 42 00 FF FC */ bdnz lbl_80383028
+lbl_80383030:
+/* 80383030 0037EC90 7C 63 02 14 */ add r3, r3, r0
+lbl_80383034:
+/* 80383034 0037EC94 2C 06 00 00 */ cmpwi r6, 0
+/* 80383038 0037EC98 C0 02 A7 AC */ lfs f0, lbl_80642DAC-_SDA2_BASE_(r2)
+/* 8038303C 0037EC9C 7C C5 33 78 */ mr r5, r6
+/* 80383040 0037ECA0 40 81 00 50 */ ble lbl_80383090
+/* 80383044 0037ECA4 54 C4 E8 FF */ rlwinm. r4, r6, 0x1d, 3, 0x1f
+/* 80383048 0037ECA8 7C 06 00 D0 */ neg r0, r6
+/* 8038304C 0037ECAC 7C 89 03 A6 */ mtctr r4
+/* 80383050 0037ECB0 41 82 00 30 */ beq lbl_80383080
+lbl_80383054:
+/* 80383054 0037ECB4 EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383058 0037ECB8 EC 21 00 32 */ fmuls f1, f1, f0
+/* 8038305C 0037ECBC EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383060 0037ECC0 EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383064 0037ECC4 EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383068 0037ECC8 EC 21 00 32 */ fmuls f1, f1, f0
+/* 8038306C 0037ECCC EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383070 0037ECD0 EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383074 0037ECD4 42 00 FF E0 */ bdnz lbl_80383054
+/* 80383078 0037ECD8 70 C5 00 07 */ andi. r5, r6, 7
+/* 8038307C 0037ECDC 41 82 00 10 */ beq lbl_8038308C
+lbl_80383080:
+/* 80383080 0037ECE0 7C A9 03 A6 */ mtctr r5
+lbl_80383084:
+/* 80383084 0037ECE4 EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383088 0037ECE8 42 00 FF FC */ bdnz lbl_80383084
+lbl_8038308C:
+/* 8038308C 0037ECEC 7C C6 02 14 */ add r6, r6, r0
+lbl_80383090:
+/* 80383090 0037ECF0 2C 06 00 00 */ cmpwi r6, 0
+/* 80383094 0037ECF4 C0 02 A7 B0 */ lfs f0, lbl_80642DB0-_SDA2_BASE_(r2)
+/* 80383098 0037ECF8 7C 86 00 D0 */ neg r4, r6
+/* 8038309C 0037ECFC 40 80 00 48 */ bge lbl_803830E4
+/* 803830A0 0037ED00 54 80 E8 FF */ rlwinm. r0, r4, 0x1d, 3, 0x1f
+/* 803830A4 0037ED04 7C 09 03 A6 */ mtctr r0
+/* 803830A8 0037ED08 41 82 00 30 */ beq lbl_803830D8
+lbl_803830AC:
+/* 803830AC 0037ED0C EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830B0 0037ED10 EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830B4 0037ED14 EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830B8 0037ED18 EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830BC 0037ED1C EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830C0 0037ED20 EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830C4 0037ED24 EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830C8 0037ED28 EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830CC 0037ED2C 42 00 FF E0 */ bdnz lbl_803830AC
+/* 803830D0 0037ED30 70 84 00 07 */ andi. r4, r4, 7
+/* 803830D4 0037ED34 41 82 00 10 */ beq lbl_803830E4
+lbl_803830D8:
+/* 803830D8 0037ED38 7C 89 03 A6 */ mtctr r4
+lbl_803830DC:
+/* 803830DC 0037ED3C EC 21 00 32 */ fmuls f1, f1, f0
+/* 803830E0 0037ED40 42 00 FF FC */ bdnz lbl_803830DC
+lbl_803830E4:
+/* 803830E4 0037ED44 7C 64 46 70 */ srawi r4, r3, 8
+/* 803830E8 0037ED48 54 60 C0 0E */ slwi r0, r3, 0x18
+/* 803830EC 0037ED4C 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 803830F0 0037ED50 7C 03 00 50 */ subf r0, r3, r0
+/* 803830F4 0037ED54 7C A4 01 95 */ addze. r5, r4
+/* 803830F8 0037ED58 54 00 40 3E */ rotlwi r0, r0, 8
+/* 803830FC 0037ED5C 7C 60 1A 14 */ add r3, r0, r3
+/* 80383100 0037ED60 41 82 00 18 */ beq lbl_80383118
+/* 80383104 0037ED64 3C 80 80 40 */ lis r4, lbl_80402948@ha
+/* 80383108 0037ED68 54 A0 10 3A */ slwi r0, r5, 2
+/* 8038310C 0037ED6C 38 84 29 48 */ addi r4, r4, lbl_80402948@l
+/* 80383110 0037ED70 7C 04 04 2E */ lfsx f0, r4, r0
+/* 80383114 0037ED74 EC 21 00 32 */ fmuls f1, f1, f0
+lbl_80383118:
+/* 80383118 0037ED78 2C 03 00 00 */ cmpwi r3, 0
+/* 8038311C 0037ED7C 4D 82 00 20 */ beqlr
+/* 80383120 0037ED80 3C 80 80 40 */ lis r4, lbl_80402978@ha
+/* 80383124 0037ED84 54 60 10 3A */ slwi r0, r3, 2
+/* 80383128 0037ED88 38 84 29 78 */ addi r4, r4, lbl_80402978@l
+/* 8038312C 0037ED8C 7C 04 04 2E */ lfsx f0, r4, r0
+/* 80383130 0037ED90 EC 21 00 32 */ fmuls f1, f1, f0
+/* 80383134 0037ED94 4E 80 00 20 */ blr
+
+.global CalcVolumeRatio__Q44nw4r3snd6detail4UtilFf
+CalcVolumeRatio__Q44nw4r3snd6detail4UtilFf:
+/* 80383138 0037ED98 C0 42 A7 B4 */ lfs f2, lbl_80642DB4-_SDA2_BASE_(r2)
+/* 8038313C 0037ED9C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80383140 0037EDA0 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 80383144 0037EDA4 40 81 00 08 */ ble lbl_8038314C
+/* 80383148 0037EDA8 48 00 00 18 */ b lbl_80383160
+lbl_8038314C:
+/* 8038314C 0037EDAC C0 42 A7 B8 */ lfs f2, lbl_80642DB8-_SDA2_BASE_(r2)
+/* 80383150 0037EDB0 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 80383154 0037EDB4 40 80 00 08 */ bge lbl_8038315C
+/* 80383158 0037EDB8 48 00 00 08 */ b lbl_80383160
+lbl_8038315C:
+/* 8038315C 0037EDBC FC 40 08 90 */ fmr f2, f1
+lbl_80383160:
+/* 80383160 0037EDC0 C0 02 A7 BC */ lfs f0, lbl_80642DBC-_SDA2_BASE_(r2)
+/* 80383164 0037EDC4 3C 60 80 40 */ lis r3, lbl_80402D78@ha
+/* 80383168 0037EDC8 38 63 2D 78 */ addi r3, r3, lbl_80402D78@l
+/* 8038316C 0037EDCC EC 00 00 B2 */ fmuls f0, f0, f2
+/* 80383170 0037EDD0 FC 00 00 1E */ fctiwz f0, f0
+/* 80383174 0037EDD4 D8 01 00 08 */ stfd f0, 8(r1)
+/* 80383178 0037EDD8 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 8038317C 0037EDDC 38 04 03 88 */ addi r0, r4, 0x388
+/* 80383180 0037EDE0 54 00 10 3A */ slwi r0, r0, 2
+/* 80383184 0037EDE4 7C 23 04 2E */ lfsx f1, r3, r0
+/* 80383188 0037EDE8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8038318C 0037EDEC 4E 80 00 20 */ blr
+
+.global CalcPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
+CalcPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo:
+/* 80383190 0037EDF0 C0 42 A7 A8 */ lfs f2, lbl_80642DA8-_SDA2_BASE_(r2)
+/* 80383194 0037EDF4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80383198 0037EDF8 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 8038319C 0037EDFC 40 81 00 08 */ ble lbl_803831A4
+/* 803831A0 0037EE00 48 00 00 18 */ b lbl_803831B8
+lbl_803831A4:
+/* 803831A4 0037EE04 C0 42 A7 C0 */ lfs f2, lbl_80642DC0-_SDA2_BASE_(r2)
+/* 803831A8 0037EE08 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 803831AC 0037EE0C 40 80 00 08 */ bge lbl_803831B4
+/* 803831B0 0037EE10 48 00 00 08 */ b lbl_803831B8
+lbl_803831B4:
+/* 803831B4 0037EE14 FC 40 08 90 */ fmr f2, f1
+lbl_803831B8:
+/* 803831B8 0037EE18 C0 02 A7 A8 */ lfs f0, lbl_80642DA8-_SDA2_BASE_(r2)
+/* 803831BC 0037EE1C 3C 80 80 45 */ lis r4, lbl_8044D040@ha
+/* 803831C0 0037EE20 80 03 00 00 */ lwz r0, 0(r3)
+/* 803831C4 0037EE24 38 84 D0 40 */ addi r4, r4, lbl_8044D040@l
+/* 803831C8 0037EE28 EC 20 10 2A */ fadds f1, f0, f2
+/* 803831CC 0037EE2C C0 42 A7 B0 */ lfs f2, lbl_80642DB0-_SDA2_BASE_(r2)
+/* 803831D0 0037EE30 54 05 10 3A */ slwi r5, r0, 2
+/* 803831D4 0037EE34 88 03 00 04 */ lbz r0, 4(r3)
+/* 803831D8 0037EE38 C0 02 A7 C4 */ lfs f0, lbl_80642DC4-_SDA2_BASE_(r2)
+/* 803831DC 0037EE3C EC 21 00 B2 */ fmuls f1, f1, f2
+/* 803831E0 0037EE40 2C 00 00 00 */ cmpwi r0, 0
+/* 803831E4 0037EE44 7C 84 28 2E */ lwzx r4, r4, r5
+/* 803831E8 0037EE48 EC 00 00 72 */ fmuls f0, f0, f1
+/* 803831EC 0037EE4C EC 02 00 2A */ fadds f0, f2, f0
+/* 803831F0 0037EE50 FC 00 00 1E */ fctiwz f0, f0
+/* 803831F4 0037EE54 D8 01 00 08 */ stfd f0, 8(r1)
+/* 803831F8 0037EE58 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 803831FC 0037EE5C 54 00 10 3A */ slwi r0, r0, 2
+/* 80383200 0037EE60 7C 44 04 2E */ lfsx f2, r4, r0
+/* 80383204 0037EE64 41 82 00 0C */ beq lbl_80383210
+/* 80383208 0037EE68 C0 04 02 00 */ lfs f0, 0x200(r4)
+/* 8038320C 0037EE6C EC 42 00 24 */ fdivs f2, f2, f0
+lbl_80383210:
+/* 80383210 0037EE70 88 03 00 05 */ lbz r0, 5(r3)
+/* 80383214 0037EE74 2C 00 00 00 */ cmpwi r0, 0
+/* 80383218 0037EE78 41 82 00 2C */ beq lbl_80383244
+/* 8038321C 0037EE7C C0 22 A7 A8 */ lfs f1, lbl_80642DA8-_SDA2_BASE_(r2)
+/* 80383220 0037EE80 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 80383224 0037EE84 40 81 00 08 */ ble lbl_8038322C
+/* 80383228 0037EE88 48 00 00 40 */ b lbl_80383268
+lbl_8038322C:
+/* 8038322C 0037EE8C C0 22 A7 C8 */ lfs f1, lbl_80642DC8-_SDA2_BASE_(r2)
+/* 80383230 0037EE90 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 80383234 0037EE94 40 80 00 08 */ bge lbl_8038323C
+/* 80383238 0037EE98 48 00 00 30 */ b lbl_80383268
+lbl_8038323C:
+/* 8038323C 0037EE9C FC 20 10 90 */ fmr f1, f2
+/* 80383240 0037EEA0 48 00 00 28 */ b lbl_80383268
+lbl_80383244:
+/* 80383244 0037EEA4 C0 22 A7 AC */ lfs f1, lbl_80642DAC-_SDA2_BASE_(r2)
+/* 80383248 0037EEA8 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 8038324C 0037EEAC 40 81 00 08 */ ble lbl_80383254
+/* 80383250 0037EEB0 48 00 00 18 */ b lbl_80383268
+lbl_80383254:
+/* 80383254 0037EEB4 C0 22 A7 C8 */ lfs f1, lbl_80642DC8-_SDA2_BASE_(r2)
+/* 80383258 0037EEB8 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 8038325C 0037EEBC 40 80 00 08 */ bge lbl_80383264
+/* 80383260 0037EEC0 48 00 00 08 */ b lbl_80383268
+lbl_80383264:
+/* 80383264 0037EEC4 FC 20 10 90 */ fmr f1, f2
+lbl_80383268:
+/* 80383268 0037EEC8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8038326C 0037EECC 4E 80 00 20 */ blr
+
+.global CalcSurroundPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
+CalcSurroundPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo:
+/* 80383270 0037EED0 C0 02 A7 AC */ lfs f0, lbl_80642DAC-_SDA2_BASE_(r2)
+/* 80383274 0037EED4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80383278 0037EED8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8038327C 0037EEDC 40 81 00 08 */ ble lbl_80383284
+/* 80383280 0037EEE0 48 00 00 18 */ b lbl_80383298
+lbl_80383284:
+/* 80383284 0037EEE4 C0 02 A7 C8 */ lfs f0, lbl_80642DC8-_SDA2_BASE_(r2)
+/* 80383288 0037EEE8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8038328C 0037EEEC 40 80 00 08 */ bge lbl_80383294
+/* 80383290 0037EEF0 48 00 00 08 */ b lbl_80383298
+lbl_80383294:
+/* 80383294 0037EEF4 FC 00 08 90 */ fmr f0, f1
+lbl_80383298:
+/* 80383298 0037EEF8 C0 42 A7 B0 */ lfs f2, lbl_80642DB0-_SDA2_BASE_(r2)
+/* 8038329C 0037EEFC 3C 80 80 45 */ lis r4, lbl_8044D040@ha
+/* 803832A0 0037EF00 80 03 00 00 */ lwz r0, 0(r3)
+/* 803832A4 0037EF04 38 84 D0 40 */ addi r4, r4, lbl_8044D040@l
+/* 803832A8 0037EF08 EC 20 00 B2 */ fmuls f1, f0, f2
+/* 803832AC 0037EF0C C0 02 A7 C4 */ lfs f0, lbl_80642DC4-_SDA2_BASE_(r2)
+/* 803832B0 0037EF10 54 00 10 3A */ slwi r0, r0, 2
+/* 803832B4 0037EF14 C0 62 A7 AC */ lfs f3, lbl_80642DAC-_SDA2_BASE_(r2)
+/* 803832B8 0037EF18 7C 64 00 2E */ lwzx r3, r4, r0
+/* 803832BC 0037EF1C EC 00 00 72 */ fmuls f0, f0, f1
+/* 803832C0 0037EF20 EC 02 00 2A */ fadds f0, f2, f0
+/* 803832C4 0037EF24 FC 00 00 1E */ fctiwz f0, f0
+/* 803832C8 0037EF28 D8 01 00 08 */ stfd f0, 8(r1)
+/* 803832CC 0037EF2C 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 803832D0 0037EF30 54 00 10 3A */ slwi r0, r0, 2
+/* 803832D4 0037EF34 7C 03 04 2E */ lfsx f0, r3, r0
+/* 803832D8 0037EF38 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 803832DC 0037EF3C 40 81 00 08 */ ble lbl_803832E4
+/* 803832E0 0037EF40 48 00 00 18 */ b lbl_803832F8
+lbl_803832E4:
+/* 803832E4 0037EF44 C0 62 A7 C8 */ lfs f3, lbl_80642DC8-_SDA2_BASE_(r2)
+/* 803832E8 0037EF48 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 803832EC 0037EF4C 40 80 00 08 */ bge lbl_803832F4
+/* 803832F0 0037EF50 48 00 00 08 */ b lbl_803832F8
+lbl_803832F4:
+/* 803832F4 0037EF54 FC 60 00 90 */ fmr f3, f0
+lbl_803832F8:
+/* 803832F8 0037EF58 FC 20 18 90 */ fmr f1, f3
+/* 803832FC 0037EF5C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80383300 0037EF60 4E 80 00 20 */ blr
+
+.global CalcLpfFreq__Q44nw4r3snd6detail4UtilFf
+CalcLpfFreq__Q44nw4r3snd6detail4UtilFf:
+/* 80383304 0037EF64 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80383308 0037EF68 7C 08 02 A6 */ mflr r0
+/* 8038330C 0037EF6C C0 42 A7 A8 */ lfs f2, lbl_80642DA8-_SDA2_BASE_(r2)
+/* 80383310 0037EF70 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80383314 0037EF74 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 80383318 0037EF78 40 81 00 08 */ ble lbl_80383320
+/* 8038331C 0037EF7C 48 00 00 18 */ b lbl_80383334
+lbl_80383320:
+/* 80383320 0037EF80 C0 42 A7 C8 */ lfs f2, lbl_80642DC8-_SDA2_BASE_(r2)
+/* 80383324 0037EF84 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 80383328 0037EF88 40 80 00 08 */ bge lbl_80383330
+/* 8038332C 0037EF8C 48 00 00 08 */ b lbl_80383334
+lbl_80383330:
+/* 80383330 0037EF90 FC 40 08 90 */ fmr f2, f1
+lbl_80383334:
+/* 80383334 0037EF94 C8 22 A7 E8 */ lfd f1, lbl_80642DE8-_SDA2_BASE_(r2)
+/* 80383338 0037EF98 C8 02 A7 E0 */ lfd f0, lbl_80642DE0-_SDA2_BASE_(r2)
+/* 8038333C 0037EF9C FC 42 08 28 */ fsub f2, f2, f1
+/* 80383340 0037EFA0 C8 22 A7 D8 */ lfd f1, lbl_80642DD8-_SDA2_BASE_(r2)
+/* 80383344 0037EFA4 FC 40 00 B2 */ fmul f2, f0, f2
+/* 80383348 0037EFA8 4B E5 12 9D */ bl func_801D45E4
+/* 8038334C 0037EFAC C8 02 A7 D0 */ lfd f0, lbl_80642DD0-_SDA2_BASE_(r2)
+/* 80383350 0037EFB0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80383354 0037EFB4 FC 00 00 72 */ fmul f0, f0, f1
+/* 80383358 0037EFB8 FC 00 00 1E */ fctiwz f0, f0
+/* 8038335C 0037EFBC D8 01 00 08 */ stfd f0, 8(r1)
+/* 80383360 0037EFC0 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80383364 0037EFC4 7C 08 03 A6 */ mtlr r0
+/* 80383368 0037EFC8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8038336C 0037EFCC 4E 80 00 20 */ blr
+
+.global GetRemoteFilterCoefs__Q44nw4r3snd6detail4UtilFiPUsPUsPUsPUsPUs
+GetRemoteFilterCoefs__Q44nw4r3snd6detail4UtilFiPUsPUsPUsPUsPUs:
+/* 80383370 0037EFD0 2C 03 00 7F */ cmpwi r3, 0x7f
+/* 80383374 0037EFD4 40 81 00 0C */ ble lbl_80383380
+/* 80383378 0037EFD8 38 00 00 7F */ li r0, 0x7f
+/* 8038337C 0037EFDC 48 00 00 0C */ b lbl_80383388
+lbl_80383380:
+/* 80383380 0037EFE0 7C 60 FE 70 */ srawi r0, r3, 0x1f
+/* 80383384 0037EFE4 7C 60 00 78 */ andc r0, r3, r0
+lbl_80383388:
+/* 80383388 0037EFE8 1D 20 00 0A */ mulli r9, r0, 0xa
+/* 8038338C 0037EFEC 3C 60 80 40 */ lis r3, lbl_80404898@ha
+/* 80383390 0037EFF0 38 63 48 98 */ addi r3, r3, lbl_80404898@l
+/* 80383394 0037EFF4 7C 03 4A 2E */ lhzx r0, r3, r9
+/* 80383398 0037EFF8 7D 23 4A 14 */ add r9, r3, r9
+/* 8038339C 0037EFFC A0 69 00 02 */ lhz r3, 2(r9)
+/* 803833A0 0037F000 B0 04 00 00 */ sth r0, 0(r4)
+/* 803833A4 0037F004 A0 09 00 04 */ lhz r0, 4(r9)
+/* 803833A8 0037F008 B0 65 00 00 */ sth r3, 0(r5)
+/* 803833AC 0037F00C A0 69 00 06 */ lhz r3, 6(r9)
+/* 803833B0 0037F010 B0 06 00 00 */ sth r0, 0(r6)
+/* 803833B4 0037F014 A0 09 00 08 */ lhz r0, 8(r9)
+/* 803833B8 0037F018 B0 67 00 00 */ sth r3, 0(r7)
+/* 803833BC 0037F01C B0 08 00 00 */ sth r0, 0(r8)
+/* 803833C0 0037F020 4E 80 00 20 */ blr
+
+.global CalcRandom__Q44nw4r3snd6detail4UtilFv
+CalcRandom__Q44nw4r3snd6detail4UtilFv:
+/* 803833C4 0037F024 3C 60 00 19 */ lis r3, 0x0019660D@ha
+/* 803833C8 0037F028 80 8D 95 38 */ lwz r4, lbl_8063E7F8-_SDA_BASE_(r13)
+/* 803833CC 0037F02C 38 03 66 0D */ addi r0, r3, 0x0019660D@l
+/* 803833D0 0037F030 7C 64 01 D6 */ mullw r3, r4, r0
+/* 803833D4 0037F034 3C 63 3C 6F */ addis r3, r3, 0x3c6f
+/* 803833D8 0037F038 38 03 F3 5F */ addi r0, r3, -3233
+/* 803833DC 0037F03C 90 0D 95 38 */ stw r0, lbl_8063E7F8-_SDA_BASE_(r13)
+/* 803833E0 0037F040 54 03 84 3E */ srwi r3, r0, 0x10
+/* 803833E4 0037F044 4E 80 00 20 */ blr
+
+.global GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
+GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv:
+/* 803833E8 0037F048 2C 03 00 01 */ cmpwi r3, 1
+/* 803833EC 0037F04C 40 82 00 0C */ bne lbl_803833F8
+/* 803833F0 0037F050 7C 64 2A 14 */ add r3, r4, r5
+/* 803833F4 0037F054 4E 80 00 20 */ blr
+lbl_803833F8:
+/* 803833F8 0037F058 2C 03 00 00 */ cmpwi r3, 0
+/* 803833FC 0037F05C 38 60 00 00 */ li r3, 0
+/* 80383400 0037F060 4C 82 00 20 */ bnelr
+/* 80383404 0037F064 7C 83 23 78 */ mr r3, r4
+/* 80383408 0037F068 4E 80 00 20 */ blr
diff --git a/asm/text_11.s b/asm/text_11.s
index f53844f..91532dc 100644
--- a/asm/text_11.s
+++ b/asm/text_11.s
@@ -2,356 +2,6 @@
.section .text, "ax" # 0x80006980 - 0x803E1E60
-.global CalcPitchRatio__Q44nw4r3snd6detail4UtilFi
-CalcPitchRatio__Q44nw4r3snd6detail4UtilFi:
-/* 80382FA8 0037EC08 20 A3 0B FF */ subfic r5, r3, 0xbff
-/* 80382FAC 0037EC0C 38 00 0C 00 */ li r0, 0xc00
-/* 80382FB0 0037EC10 7C A5 03 96 */ divwu r5, r5, r0
-/* 80382FB4 0037EC14 2C 03 00 00 */ cmpwi r3, 0
-/* 80382FB8 0037EC18 C0 22 A7 A8 */ lfs f1, lbl_80642DA8-_SDA2_BASE_(r2)
-/* 80382FBC 0037EC1C 38 C0 00 00 */ li r6, 0
-/* 80382FC0 0037EC20 40 80 00 34 */ bge lbl_80382FF4
-/* 80382FC4 0037EC24 54 A4 E8 FF */ rlwinm. r4, r5, 0x1d, 3, 0x1f
-/* 80382FC8 0037EC28 1C 05 0C 00 */ mulli r0, r5, 0xc00
-/* 80382FCC 0037EC2C 7C 89 03 A6 */ mtctr r4
-/* 80382FD0 0037EC30 41 82 00 14 */ beq lbl_80382FE4
-lbl_80382FD4:
-/* 80382FD4 0037EC34 38 C6 FF F8 */ addi r6, r6, -8
-/* 80382FD8 0037EC38 42 00 FF FC */ bdnz lbl_80382FD4
-/* 80382FDC 0037EC3C 70 A5 00 07 */ andi. r5, r5, 7
-/* 80382FE0 0037EC40 41 82 00 10 */ beq lbl_80382FF0
-lbl_80382FE4:
-/* 80382FE4 0037EC44 7C A9 03 A6 */ mtctr r5
-lbl_80382FE8:
-/* 80382FE8 0037EC48 38 C6 FF FF */ addi r6, r6, -1
-/* 80382FEC 0037EC4C 42 00 FF FC */ bdnz lbl_80382FE8
-lbl_80382FF0:
-/* 80382FF0 0037EC50 7C 63 02 14 */ add r3, r3, r0
-lbl_80382FF4:
-/* 80382FF4 0037EC54 38 00 0C 00 */ li r0, 0xc00
-/* 80382FF8 0037EC58 2C 03 0C 00 */ cmpwi r3, 0xc00
-/* 80382FFC 0037EC5C 7C A3 03 96 */ divwu r5, r3, r0
-/* 80383000 0037EC60 41 80 00 34 */ blt lbl_80383034
-/* 80383004 0037EC64 54 A4 E8 FF */ rlwinm. r4, r5, 0x1d, 3, 0x1f
-/* 80383008 0037EC68 1C 05 F4 00 */ mulli r0, r5, -3072
-/* 8038300C 0037EC6C 7C 89 03 A6 */ mtctr r4
-/* 80383010 0037EC70 41 82 00 14 */ beq lbl_80383024
-lbl_80383014:
-/* 80383014 0037EC74 38 C6 00 08 */ addi r6, r6, 8
-/* 80383018 0037EC78 42 00 FF FC */ bdnz lbl_80383014
-/* 8038301C 0037EC7C 70 A5 00 07 */ andi. r5, r5, 7
-/* 80383020 0037EC80 41 82 00 10 */ beq lbl_80383030
-lbl_80383024:
-/* 80383024 0037EC84 7C A9 03 A6 */ mtctr r5
-lbl_80383028:
-/* 80383028 0037EC88 38 C6 00 01 */ addi r6, r6, 1
-/* 8038302C 0037EC8C 42 00 FF FC */ bdnz lbl_80383028
-lbl_80383030:
-/* 80383030 0037EC90 7C 63 02 14 */ add r3, r3, r0
-lbl_80383034:
-/* 80383034 0037EC94 2C 06 00 00 */ cmpwi r6, 0
-/* 80383038 0037EC98 C0 02 A7 AC */ lfs f0, lbl_80642DAC-_SDA2_BASE_(r2)
-/* 8038303C 0037EC9C 7C C5 33 78 */ mr r5, r6
-/* 80383040 0037ECA0 40 81 00 50 */ ble lbl_80383090
-/* 80383044 0037ECA4 54 C4 E8 FF */ rlwinm. r4, r6, 0x1d, 3, 0x1f
-/* 80383048 0037ECA8 7C 06 00 D0 */ neg r0, r6
-/* 8038304C 0037ECAC 7C 89 03 A6 */ mtctr r4
-/* 80383050 0037ECB0 41 82 00 30 */ beq lbl_80383080
-lbl_80383054:
-/* 80383054 0037ECB4 EC 21 00 32 */ fmuls f1, f1, f0
-/* 80383058 0037ECB8 EC 21 00 32 */ fmuls f1, f1, f0
-/* 8038305C 0037ECBC EC 21 00 32 */ fmuls f1, f1, f0
-/* 80383060 0037ECC0 EC 21 00 32 */ fmuls f1, f1, f0
-/* 80383064 0037ECC4 EC 21 00 32 */ fmuls f1, f1, f0
-/* 80383068 0037ECC8 EC 21 00 32 */ fmuls f1, f1, f0
-/* 8038306C 0037ECCC EC 21 00 32 */ fmuls f1, f1, f0
-/* 80383070 0037ECD0 EC 21 00 32 */ fmuls f1, f1, f0
-/* 80383074 0037ECD4 42 00 FF E0 */ bdnz lbl_80383054
-/* 80383078 0037ECD8 70 C5 00 07 */ andi. r5, r6, 7
-/* 8038307C 0037ECDC 41 82 00 10 */ beq lbl_8038308C
-lbl_80383080:
-/* 80383080 0037ECE0 7C A9 03 A6 */ mtctr r5
-lbl_80383084:
-/* 80383084 0037ECE4 EC 21 00 32 */ fmuls f1, f1, f0
-/* 80383088 0037ECE8 42 00 FF FC */ bdnz lbl_80383084
-lbl_8038308C:
-/* 8038308C 0037ECEC 7C C6 02 14 */ add r6, r6, r0
-lbl_80383090:
-/* 80383090 0037ECF0 2C 06 00 00 */ cmpwi r6, 0
-/* 80383094 0037ECF4 C0 02 A7 B0 */ lfs f0, lbl_80642DB0-_SDA2_BASE_(r2)
-/* 80383098 0037ECF8 7C 86 00 D0 */ neg r4, r6
-/* 8038309C 0037ECFC 40 80 00 48 */ bge lbl_803830E4
-/* 803830A0 0037ED00 54 80 E8 FF */ rlwinm. r0, r4, 0x1d, 3, 0x1f
-/* 803830A4 0037ED04 7C 09 03 A6 */ mtctr r0
-/* 803830A8 0037ED08 41 82 00 30 */ beq lbl_803830D8
-lbl_803830AC:
-/* 803830AC 0037ED0C EC 21 00 32 */ fmuls f1, f1, f0
-/* 803830B0 0037ED10 EC 21 00 32 */ fmuls f1, f1, f0
-/* 803830B4 0037ED14 EC 21 00 32 */ fmuls f1, f1, f0
-/* 803830B8 0037ED18 EC 21 00 32 */ fmuls f1, f1, f0
-/* 803830BC 0037ED1C EC 21 00 32 */ fmuls f1, f1, f0
-/* 803830C0 0037ED20 EC 21 00 32 */ fmuls f1, f1, f0
-/* 803830C4 0037ED24 EC 21 00 32 */ fmuls f1, f1, f0
-/* 803830C8 0037ED28 EC 21 00 32 */ fmuls f1, f1, f0
-/* 803830CC 0037ED2C 42 00 FF E0 */ bdnz lbl_803830AC
-/* 803830D0 0037ED30 70 84 00 07 */ andi. r4, r4, 7
-/* 803830D4 0037ED34 41 82 00 10 */ beq lbl_803830E4
-lbl_803830D8:
-/* 803830D8 0037ED38 7C 89 03 A6 */ mtctr r4
-lbl_803830DC:
-/* 803830DC 0037ED3C EC 21 00 32 */ fmuls f1, f1, f0
-/* 803830E0 0037ED40 42 00 FF FC */ bdnz lbl_803830DC
-lbl_803830E4:
-/* 803830E4 0037ED44 7C 64 46 70 */ srawi r4, r3, 8
-/* 803830E8 0037ED48 54 60 C0 0E */ slwi r0, r3, 0x18
-/* 803830EC 0037ED4C 54 63 0F FE */ srwi r3, r3, 0x1f
-/* 803830F0 0037ED50 7C 03 00 50 */ subf r0, r3, r0
-/* 803830F4 0037ED54 7C A4 01 95 */ addze. r5, r4
-/* 803830F8 0037ED58 54 00 40 3E */ rotlwi r0, r0, 8
-/* 803830FC 0037ED5C 7C 60 1A 14 */ add r3, r0, r3
-/* 80383100 0037ED60 41 82 00 18 */ beq lbl_80383118
-/* 80383104 0037ED64 3C 80 80 40 */ lis r4, lbl_80402948@ha
-/* 80383108 0037ED68 54 A0 10 3A */ slwi r0, r5, 2
-/* 8038310C 0037ED6C 38 84 29 48 */ addi r4, r4, lbl_80402948@l
-/* 80383110 0037ED70 7C 04 04 2E */ lfsx f0, r4, r0
-/* 80383114 0037ED74 EC 21 00 32 */ fmuls f1, f1, f0
-lbl_80383118:
-/* 80383118 0037ED78 2C 03 00 00 */ cmpwi r3, 0
-/* 8038311C 0037ED7C 4D 82 00 20 */ beqlr
-/* 80383120 0037ED80 3C 80 80 40 */ lis r4, lbl_80402978@ha
-/* 80383124 0037ED84 54 60 10 3A */ slwi r0, r3, 2
-/* 80383128 0037ED88 38 84 29 78 */ addi r4, r4, lbl_80402978@l
-/* 8038312C 0037ED8C 7C 04 04 2E */ lfsx f0, r4, r0
-/* 80383130 0037ED90 EC 21 00 32 */ fmuls f1, f1, f0
-/* 80383134 0037ED94 4E 80 00 20 */ blr
-
-.global CalcVolumeRatio__Q44nw4r3snd6detail4UtilFf
-CalcVolumeRatio__Q44nw4r3snd6detail4UtilFf:
-/* 80383138 0037ED98 C0 42 A7 B4 */ lfs f2, lbl_80642DB4-_SDA2_BASE_(r2)
-/* 8038313C 0037ED9C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80383140 0037EDA0 FC 01 10 40 */ fcmpo cr0, f1, f2
-/* 80383144 0037EDA4 40 81 00 08 */ ble lbl_8038314C
-/* 80383148 0037EDA8 48 00 00 18 */ b lbl_80383160
-lbl_8038314C:
-/* 8038314C 0037EDAC C0 42 A7 B8 */ lfs f2, lbl_80642DB8-_SDA2_BASE_(r2)
-/* 80383150 0037EDB0 FC 01 10 40 */ fcmpo cr0, f1, f2
-/* 80383154 0037EDB4 40 80 00 08 */ bge lbl_8038315C
-/* 80383158 0037EDB8 48 00 00 08 */ b lbl_80383160
-lbl_8038315C:
-/* 8038315C 0037EDBC FC 40 08 90 */ fmr f2, f1
-lbl_80383160:
-/* 80383160 0037EDC0 C0 02 A7 BC */ lfs f0, lbl_80642DBC-_SDA2_BASE_(r2)
-/* 80383164 0037EDC4 3C 60 80 40 */ lis r3, lbl_80402D78@ha
-/* 80383168 0037EDC8 38 63 2D 78 */ addi r3, r3, lbl_80402D78@l
-/* 8038316C 0037EDCC EC 00 00 B2 */ fmuls f0, f0, f2
-/* 80383170 0037EDD0 FC 00 00 1E */ fctiwz f0, f0
-/* 80383174 0037EDD4 D8 01 00 08 */ stfd f0, 8(r1)
-/* 80383178 0037EDD8 80 81 00 0C */ lwz r4, 0xc(r1)
-/* 8038317C 0037EDDC 38 04 03 88 */ addi r0, r4, 0x388
-/* 80383180 0037EDE0 54 00 10 3A */ slwi r0, r0, 2
-/* 80383184 0037EDE4 7C 23 04 2E */ lfsx f1, r3, r0
-/* 80383188 0037EDE8 38 21 00 10 */ addi r1, r1, 0x10
-/* 8038318C 0037EDEC 4E 80 00 20 */ blr
-
-.global CalcPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
-CalcPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo:
-/* 80383190 0037EDF0 C0 42 A7 A8 */ lfs f2, lbl_80642DA8-_SDA2_BASE_(r2)
-/* 80383194 0037EDF4 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80383198 0037EDF8 FC 01 10 40 */ fcmpo cr0, f1, f2
-/* 8038319C 0037EDFC 40 81 00 08 */ ble lbl_803831A4
-/* 803831A0 0037EE00 48 00 00 18 */ b lbl_803831B8
-lbl_803831A4:
-/* 803831A4 0037EE04 C0 42 A7 C0 */ lfs f2, lbl_80642DC0-_SDA2_BASE_(r2)
-/* 803831A8 0037EE08 FC 01 10 40 */ fcmpo cr0, f1, f2
-/* 803831AC 0037EE0C 40 80 00 08 */ bge lbl_803831B4
-/* 803831B0 0037EE10 48 00 00 08 */ b lbl_803831B8
-lbl_803831B4:
-/* 803831B4 0037EE14 FC 40 08 90 */ fmr f2, f1
-lbl_803831B8:
-/* 803831B8 0037EE18 C0 02 A7 A8 */ lfs f0, lbl_80642DA8-_SDA2_BASE_(r2)
-/* 803831BC 0037EE1C 3C 80 80 45 */ lis r4, lbl_8044D040@ha
-/* 803831C0 0037EE20 80 03 00 00 */ lwz r0, 0(r3)
-/* 803831C4 0037EE24 38 84 D0 40 */ addi r4, r4, lbl_8044D040@l
-/* 803831C8 0037EE28 EC 20 10 2A */ fadds f1, f0, f2
-/* 803831CC 0037EE2C C0 42 A7 B0 */ lfs f2, lbl_80642DB0-_SDA2_BASE_(r2)
-/* 803831D0 0037EE30 54 05 10 3A */ slwi r5, r0, 2
-/* 803831D4 0037EE34 88 03 00 04 */ lbz r0, 4(r3)
-/* 803831D8 0037EE38 C0 02 A7 C4 */ lfs f0, lbl_80642DC4-_SDA2_BASE_(r2)
-/* 803831DC 0037EE3C EC 21 00 B2 */ fmuls f1, f1, f2
-/* 803831E0 0037EE40 2C 00 00 00 */ cmpwi r0, 0
-/* 803831E4 0037EE44 7C 84 28 2E */ lwzx r4, r4, r5
-/* 803831E8 0037EE48 EC 00 00 72 */ fmuls f0, f0, f1
-/* 803831EC 0037EE4C EC 02 00 2A */ fadds f0, f2, f0
-/* 803831F0 0037EE50 FC 00 00 1E */ fctiwz f0, f0
-/* 803831F4 0037EE54 D8 01 00 08 */ stfd f0, 8(r1)
-/* 803831F8 0037EE58 80 01 00 0C */ lwz r0, 0xc(r1)
-/* 803831FC 0037EE5C 54 00 10 3A */ slwi r0, r0, 2
-/* 80383200 0037EE60 7C 44 04 2E */ lfsx f2, r4, r0
-/* 80383204 0037EE64 41 82 00 0C */ beq lbl_80383210
-/* 80383208 0037EE68 C0 04 02 00 */ lfs f0, 0x200(r4)
-/* 8038320C 0037EE6C EC 42 00 24 */ fdivs f2, f2, f0
-lbl_80383210:
-/* 80383210 0037EE70 88 03 00 05 */ lbz r0, 5(r3)
-/* 80383214 0037EE74 2C 00 00 00 */ cmpwi r0, 0
-/* 80383218 0037EE78 41 82 00 2C */ beq lbl_80383244
-/* 8038321C 0037EE7C C0 22 A7 A8 */ lfs f1, lbl_80642DA8-_SDA2_BASE_(r2)
-/* 80383220 0037EE80 FC 02 08 40 */ fcmpo cr0, f2, f1
-/* 80383224 0037EE84 40 81 00 08 */ ble lbl_8038322C
-/* 80383228 0037EE88 48 00 00 40 */ b lbl_80383268
-lbl_8038322C:
-/* 8038322C 0037EE8C C0 22 A7 C8 */ lfs f1, lbl_80642DC8-_SDA2_BASE_(r2)
-/* 80383230 0037EE90 FC 02 08 40 */ fcmpo cr0, f2, f1
-/* 80383234 0037EE94 40 80 00 08 */ bge lbl_8038323C
-/* 80383238 0037EE98 48 00 00 30 */ b lbl_80383268
-lbl_8038323C:
-/* 8038323C 0037EE9C FC 20 10 90 */ fmr f1, f2
-/* 80383240 0037EEA0 48 00 00 28 */ b lbl_80383268
-lbl_80383244:
-/* 80383244 0037EEA4 C0 22 A7 AC */ lfs f1, lbl_80642DAC-_SDA2_BASE_(r2)
-/* 80383248 0037EEA8 FC 02 08 40 */ fcmpo cr0, f2, f1
-/* 8038324C 0037EEAC 40 81 00 08 */ ble lbl_80383254
-/* 80383250 0037EEB0 48 00 00 18 */ b lbl_80383268
-lbl_80383254:
-/* 80383254 0037EEB4 C0 22 A7 C8 */ lfs f1, lbl_80642DC8-_SDA2_BASE_(r2)
-/* 80383258 0037EEB8 FC 02 08 40 */ fcmpo cr0, f2, f1
-/* 8038325C 0037EEBC 40 80 00 08 */ bge lbl_80383264
-/* 80383260 0037EEC0 48 00 00 08 */ b lbl_80383268
-lbl_80383264:
-/* 80383264 0037EEC4 FC 20 10 90 */ fmr f1, f2
-lbl_80383268:
-/* 80383268 0037EEC8 38 21 00 10 */ addi r1, r1, 0x10
-/* 8038326C 0037EECC 4E 80 00 20 */ blr
-
-.global CalcSurroundPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo
-CalcSurroundPanRatio__Q44nw4r3snd6detail4UtilFfRCQ54nw4r3snd6detail4Util7PanInfo:
-/* 80383270 0037EED0 C0 02 A7 AC */ lfs f0, lbl_80642DAC-_SDA2_BASE_(r2)
-/* 80383274 0037EED4 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80383278 0037EED8 FC 01 00 40 */ fcmpo cr0, f1, f0
-/* 8038327C 0037EEDC 40 81 00 08 */ ble lbl_80383284
-/* 80383280 0037EEE0 48 00 00 18 */ b lbl_80383298
-lbl_80383284:
-/* 80383284 0037EEE4 C0 02 A7 C8 */ lfs f0, lbl_80642DC8-_SDA2_BASE_(r2)
-/* 80383288 0037EEE8 FC 01 00 40 */ fcmpo cr0, f1, f0
-/* 8038328C 0037EEEC 40 80 00 08 */ bge lbl_80383294
-/* 80383290 0037EEF0 48 00 00 08 */ b lbl_80383298
-lbl_80383294:
-/* 80383294 0037EEF4 FC 00 08 90 */ fmr f0, f1
-lbl_80383298:
-/* 80383298 0037EEF8 C0 42 A7 B0 */ lfs f2, lbl_80642DB0-_SDA2_BASE_(r2)
-/* 8038329C 0037EEFC 3C 80 80 45 */ lis r4, lbl_8044D040@ha
-/* 803832A0 0037EF00 80 03 00 00 */ lwz r0, 0(r3)
-/* 803832A4 0037EF04 38 84 D0 40 */ addi r4, r4, lbl_8044D040@l
-/* 803832A8 0037EF08 EC 20 00 B2 */ fmuls f1, f0, f2
-/* 803832AC 0037EF0C C0 02 A7 C4 */ lfs f0, lbl_80642DC4-_SDA2_BASE_(r2)
-/* 803832B0 0037EF10 54 00 10 3A */ slwi r0, r0, 2
-/* 803832B4 0037EF14 C0 62 A7 AC */ lfs f3, lbl_80642DAC-_SDA2_BASE_(r2)
-/* 803832B8 0037EF18 7C 64 00 2E */ lwzx r3, r4, r0
-/* 803832BC 0037EF1C EC 00 00 72 */ fmuls f0, f0, f1
-/* 803832C0 0037EF20 EC 02 00 2A */ fadds f0, f2, f0
-/* 803832C4 0037EF24 FC 00 00 1E */ fctiwz f0, f0
-/* 803832C8 0037EF28 D8 01 00 08 */ stfd f0, 8(r1)
-/* 803832CC 0037EF2C 80 01 00 0C */ lwz r0, 0xc(r1)
-/* 803832D0 0037EF30 54 00 10 3A */ slwi r0, r0, 2
-/* 803832D4 0037EF34 7C 03 04 2E */ lfsx f0, r3, r0
-/* 803832D8 0037EF38 FC 00 18 40 */ fcmpo cr0, f0, f3
-/* 803832DC 0037EF3C 40 81 00 08 */ ble lbl_803832E4
-/* 803832E0 0037EF40 48 00 00 18 */ b lbl_803832F8
-lbl_803832E4:
-/* 803832E4 0037EF44 C0 62 A7 C8 */ lfs f3, lbl_80642DC8-_SDA2_BASE_(r2)
-/* 803832E8 0037EF48 FC 00 18 40 */ fcmpo cr0, f0, f3
-/* 803832EC 0037EF4C 40 80 00 08 */ bge lbl_803832F4
-/* 803832F0 0037EF50 48 00 00 08 */ b lbl_803832F8
-lbl_803832F4:
-/* 803832F4 0037EF54 FC 60 00 90 */ fmr f3, f0
-lbl_803832F8:
-/* 803832F8 0037EF58 FC 20 18 90 */ fmr f1, f3
-/* 803832FC 0037EF5C 38 21 00 10 */ addi r1, r1, 0x10
-/* 80383300 0037EF60 4E 80 00 20 */ blr
-
-.global CalcLpfFreq__Q44nw4r3snd6detail4UtilFf
-CalcLpfFreq__Q44nw4r3snd6detail4UtilFf:
-/* 80383304 0037EF64 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80383308 0037EF68 7C 08 02 A6 */ mflr r0
-/* 8038330C 0037EF6C C0 42 A7 A8 */ lfs f2, lbl_80642DA8-_SDA2_BASE_(r2)
-/* 80383310 0037EF70 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80383314 0037EF74 FC 01 10 40 */ fcmpo cr0, f1, f2
-/* 80383318 0037EF78 40 81 00 08 */ ble lbl_80383320
-/* 8038331C 0037EF7C 48 00 00 18 */ b lbl_80383334
-lbl_80383320:
-/* 80383320 0037EF80 C0 42 A7 C8 */ lfs f2, lbl_80642DC8-_SDA2_BASE_(r2)
-/* 80383324 0037EF84 FC 01 10 40 */ fcmpo cr0, f1, f2
-/* 80383328 0037EF88 40 80 00 08 */ bge lbl_80383330
-/* 8038332C 0037EF8C 48 00 00 08 */ b lbl_80383334
-lbl_80383330:
-/* 80383330 0037EF90 FC 40 08 90 */ fmr f2, f1
-lbl_80383334:
-/* 80383334 0037EF94 C8 22 A7 E8 */ lfd f1, lbl_80642DE8-_SDA2_BASE_(r2)
-/* 80383338 0037EF98 C8 02 A7 E0 */ lfd f0, lbl_80642DE0-_SDA2_BASE_(r2)
-/* 8038333C 0037EF9C FC 42 08 28 */ fsub f2, f2, f1
-/* 80383340 0037EFA0 C8 22 A7 D8 */ lfd f1, lbl_80642DD8-_SDA2_BASE_(r2)
-/* 80383344 0037EFA4 FC 40 00 B2 */ fmul f2, f0, f2
-/* 80383348 0037EFA8 4B E5 12 9D */ bl func_801D45E4
-/* 8038334C 0037EFAC C8 02 A7 D0 */ lfd f0, lbl_80642DD0-_SDA2_BASE_(r2)
-/* 80383350 0037EFB0 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80383354 0037EFB4 FC 00 00 72 */ fmul f0, f0, f1
-/* 80383358 0037EFB8 FC 00 00 1E */ fctiwz f0, f0
-/* 8038335C 0037EFBC D8 01 00 08 */ stfd f0, 8(r1)
-/* 80383360 0037EFC0 80 61 00 0C */ lwz r3, 0xc(r1)
-/* 80383364 0037EFC4 7C 08 03 A6 */ mtlr r0
-/* 80383368 0037EFC8 38 21 00 10 */ addi r1, r1, 0x10
-/* 8038336C 0037EFCC 4E 80 00 20 */ blr
-
-.global GetRemoteFilterCoefs__Q44nw4r3snd6detail4UtilFiPUsPUsPUsPUsPUs
-GetRemoteFilterCoefs__Q44nw4r3snd6detail4UtilFiPUsPUsPUsPUsPUs:
-/* 80383370 0037EFD0 2C 03 00 7F */ cmpwi r3, 0x7f
-/* 80383374 0037EFD4 40 81 00 0C */ ble lbl_80383380
-/* 80383378 0037EFD8 38 00 00 7F */ li r0, 0x7f
-/* 8038337C 0037EFDC 48 00 00 0C */ b lbl_80383388
-lbl_80383380:
-/* 80383380 0037EFE0 7C 60 FE 70 */ srawi r0, r3, 0x1f
-/* 80383384 0037EFE4 7C 60 00 78 */ andc r0, r3, r0
-lbl_80383388:
-/* 80383388 0037EFE8 1D 20 00 0A */ mulli r9, r0, 0xa
-/* 8038338C 0037EFEC 3C 60 80 40 */ lis r3, lbl_80404898@ha
-/* 80383390 0037EFF0 38 63 48 98 */ addi r3, r3, lbl_80404898@l
-/* 80383394 0037EFF4 7C 03 4A 2E */ lhzx r0, r3, r9
-/* 80383398 0037EFF8 7D 23 4A 14 */ add r9, r3, r9
-/* 8038339C 0037EFFC A0 69 00 02 */ lhz r3, 2(r9)
-/* 803833A0 0037F000 B0 04 00 00 */ sth r0, 0(r4)
-/* 803833A4 0037F004 A0 09 00 04 */ lhz r0, 4(r9)
-/* 803833A8 0037F008 B0 65 00 00 */ sth r3, 0(r5)
-/* 803833AC 0037F00C A0 69 00 06 */ lhz r3, 6(r9)
-/* 803833B0 0037F010 B0 06 00 00 */ sth r0, 0(r6)
-/* 803833B4 0037F014 A0 09 00 08 */ lhz r0, 8(r9)
-/* 803833B8 0037F018 B0 67 00 00 */ sth r3, 0(r7)
-/* 803833BC 0037F01C B0 08 00 00 */ sth r0, 0(r8)
-/* 803833C0 0037F020 4E 80 00 20 */ blr
-
-.global CalcRandom__Q44nw4r3snd6detail4UtilFv
-CalcRandom__Q44nw4r3snd6detail4UtilFv:
-/* 803833C4 0037F024 3C 60 00 19 */ lis r3, 0x0019660D@ha
-/* 803833C8 0037F028 80 8D 95 38 */ lwz r4, lbl_8063E7F8-_SDA_BASE_(r13)
-/* 803833CC 0037F02C 38 03 66 0D */ addi r0, r3, 0x0019660D@l
-/* 803833D0 0037F030 7C 64 01 D6 */ mullw r3, r4, r0
-/* 803833D4 0037F034 3C 63 3C 6F */ addis r3, r3, 0x3c6f
-/* 803833D8 0037F038 38 03 F3 5F */ addi r0, r3, -3233
-/* 803833DC 0037F03C 90 0D 95 38 */ stw r0, lbl_8063E7F8-_SDA_BASE_(r13)
-/* 803833E0 0037F040 54 03 84 3E */ srwi r3, r0, 0x10
-/* 803833E4 0037F044 4E 80 00 20 */ blr
-
-.global GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv
-GetDataRefAddressImpl__Q44nw4r3snd6detail4UtilFQ54nw4r3snd6detail4Util7RefTypeUlPCv:
-/* 803833E8 0037F048 2C 03 00 01 */ cmpwi r3, 1
-/* 803833EC 0037F04C 40 82 00 0C */ bne lbl_803833F8
-/* 803833F0 0037F050 7C 64 2A 14 */ add r3, r4, r5
-/* 803833F4 0037F054 4E 80 00 20 */ blr
-lbl_803833F8:
-/* 803833F8 0037F058 2C 03 00 00 */ cmpwi r3, 0
-/* 803833FC 0037F05C 38 60 00 00 */ li r3, 0
-/* 80383400 0037F060 4C 82 00 20 */ bnelr
-/* 80383404 0037F064 7C 83 23 78 */ mr r3, r4
-/* 80383408 0037F068 4E 80 00 20 */ blr
-
.global func_8038340C
func_8038340C:
/* 8038340C 0037F06C 90 83 00 00 */ stw r4, 0(r3)
diff --git a/obj_files.mk b/obj_files.mk
index 11600a1..1a54965 100644
--- a/obj_files.mk
+++ b/obj_files.mk
@@ -158,6 +158,7 @@ TEXT_O_FILES := \
$(BUILD_DIR)/asm/nw4r/snd/detail/snd_TaskThread.o \
$(BUILD_DIR)/asm/nw4r/snd/detail/snd_Voice.o \
$(BUILD_DIR)/asm/nw4r/snd/detail/snd_VoiceManager.o \
+ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_Util.o \
$(BUILD_DIR)/asm/text_11.o
CTORS_O_FILES := \