prime/asm/musyx/runtime/snd3d.s

2706 lines
127 KiB
ArmAsm

.include "macros.inc"
.section .bss
.balign 8
.global "tmp_em$388"
"tmp_em$388":
.skip 0x50
.global startGroup
startGroup:
.skip 0x400
.global runList
runList:
.skip 0x300
.global startListNum
startListNum:
.skip 0x700
.section .sbss
.balign 8
.global runListNum
runListNum:
.skip 0x1
.global startListNumnum
startListNumnum:
.skip 0x1
.global startGroupNum
startGroupNum:
.skip 0x1
.global s3dUseMaxVoices
s3dUseMaxVoices:
.skip 0x1
.global snd_max_studios
snd_max_studios:
.skip 0x1
.global snd_base_studio
snd_base_studio:
.skip 0x3
.global snd_used_studios
snd_used_studios:
.skip 0x4
.global s3dDoorRoot
s3dDoorRoot:
.skip 0x4
.global s3dRoomRoot
s3dRoomRoot:
.skip 0x4
.global s3dListenerRoot
s3dListenerRoot:
.skip 0x4
.global s3dEmitterRoot
s3dEmitterRoot:
.skip 0x4
.global s3dCallCnt
s3dCallCnt:
.skip 0x4
.section .sdata2
.balign 8
.global lbl_805AF328
lbl_805AF328:
# ROM: 0x3FBBC8
.4byte 0
.4byte 0
.global lbl_805AF330
lbl_805AF330:
# ROM: 0x3FBBD0
.4byte 0x43300000
.4byte 0
.global lbl_805AF338
lbl_805AF338:
# ROM: 0x3FBBD8
.float -1.0
.global lbl_805AF33C
lbl_805AF33C:
# ROM: 0x3FBBDC
.4byte 0x34010204
.global lbl_805AF340
lbl_805AF340:
# ROM: 0x3FBBE0
.4byte 0x3FE00000
.4byte 0
.global lbl_805AF348
lbl_805AF348:
# ROM: 0x3FBBE8
.4byte 0x42FE0000
.global lbl_805AF34C
lbl_805AF34C:
# ROM: 0x3FBBEC
.float 1.0
.global lbl_805AF350
lbl_805AF350:
# ROM: 0x3FBBF0
.4byte 0x40080000
.4byte 0
.global lbl_805AF358
lbl_805AF358:
# ROM: 0x3FBBF8
.4byte 0x3C888889
.global lbl_805AF35C
lbl_805AF35C:
# ROM: 0x3FBBFC
.4byte 0x42800000
.global lbl_805AF360
lbl_805AF360:
# ROM: 0x3FBC00
.4byte 0x46000000
.global lbl_805AF364
lbl_805AF364:
# ROM: 0x3FBC04
.4byte 0x3C010204
.global lbl_805AF368
lbl_805AF368:
# ROM: 0x3FBC08
.4byte 0x3DA3D70A
.global lbl_805AF36C
lbl_805AF36C:
# ROM: 0x3FBC0C
.float 0.15
.global lbl_805AF370
lbl_805AF370:
# ROM: 0x3FBC10
.float 0.3
.4byte 0
.section .text, "ax"
CheckRoomStatus:
/* 803AE800 003AB760 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 803AE804 003AB764 7C 08 02 A6 */ mflr r0
/* 803AE808 003AB768 90 01 00 44 */ stw r0, 0x44(r1)
/* 803AE80C 003AB76C DB E1 00 30 */ stfd f31, 0x30(r1)
/* 803AE810 003AB770 F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0
/* 803AE814 003AB774 39 61 00 30 */ addi r11, r1, 0x30
/* 803AE818 003AB778 4B FD B2 61 */ bl _savegpr_26
/* 803AE81C 003AB77C 80 8D AF 74 */ lwz r4, s3dListenerRoot@sda21(r13)
/* 803AE820 003AB780 38 60 00 00 */ li r3, 0
/* 803AE824 003AB784 48 00 00 0C */ b lbl_803AE830
lbl_803AE828:
/* 803AE828 003AB788 80 84 00 00 */ lwz r4, 0(r4)
/* 803AE82C 003AB78C 38 63 00 01 */ addi r3, r3, 1
lbl_803AE830:
/* 803AE830 003AB790 28 04 00 00 */ cmplwi r4, 0
/* 803AE834 003AB794 40 82 FF F4 */ bne lbl_803AE828
/* 803AE838 003AB798 28 03 00 00 */ cmplwi r3, 0
/* 803AE83C 003AB79C 41 82 00 98 */ beq lbl_803AE8D4
/* 803AE840 003AB7A0 80 8D AF 70 */ lwz r4, s3dRoomRoot@sda21(r13)
/* 803AE844 003AB7A4 48 00 00 88 */ b lbl_803AE8CC
lbl_803AE848:
/* 803AE848 003AB7A8 88 04 00 1C */ lbz r0, 0x1c(r4)
/* 803AE84C 003AB7AC 28 00 00 FF */ cmplwi r0, 0xff
/* 803AE850 003AB7B0 41 82 00 78 */ beq lbl_803AE8C8
/* 803AE854 003AB7B4 C0 82 D6 08 */ lfs f4, lbl_805AF328@sda21(r2)
/* 803AE858 003AB7B8 80 AD AF 74 */ lwz r5, s3dListenerRoot@sda21(r13)
/* 803AE85C 003AB7BC 48 00 00 44 */ b lbl_803AE8A0
lbl_803AE860:
/* 803AE860 003AB7C0 C0 64 00 0C */ lfs f3, 0xc(r4)
/* 803AE864 003AB7C4 C0 05 00 10 */ lfs f0, 0x10(r5)
/* 803AE868 003AB7C8 C0 44 00 10 */ lfs f2, 0x10(r4)
/* 803AE86C 003AB7CC C0 25 00 14 */ lfs f1, 0x14(r5)
/* 803AE870 003AB7D0 EC 63 00 28 */ fsubs f3, f3, f0
/* 803AE874 003AB7D4 C0 05 00 18 */ lfs f0, 0x18(r5)
/* 803AE878 003AB7D8 EC A2 08 28 */ fsubs f5, f2, f1
/* 803AE87C 003AB7DC C0 44 00 14 */ lfs f2, 0x14(r4)
/* 803AE880 003AB7E0 EC 23 00 F2 */ fmuls f1, f3, f3
/* 803AE884 003AB7E4 80 A5 00 00 */ lwz r5, 0(r5)
/* 803AE888 003AB7E8 EC 42 00 28 */ fsubs f2, f2, f0
/* 803AE88C 003AB7EC EC 05 01 72 */ fmuls f0, f5, f5
/* 803AE890 003AB7F0 EC 42 00 B2 */ fmuls f2, f2, f2
/* 803AE894 003AB7F4 EC 01 00 2A */ fadds f0, f1, f0
/* 803AE898 003AB7F8 EC 02 00 2A */ fadds f0, f2, f0
/* 803AE89C 003AB7FC EC 84 00 2A */ fadds f4, f4, f0
lbl_803AE8A0:
/* 803AE8A0 003AB800 28 05 00 00 */ cmplwi r5, 0
/* 803AE8A4 003AB804 40 82 FF BC */ bne lbl_803AE860
/* 803AE8A8 003AB808 3C 00 43 30 */ lis r0, 0x4330
/* 803AE8AC 003AB80C 90 61 00 0C */ stw r3, 0xc(r1)
/* 803AE8B0 003AB810 C8 22 D6 10 */ lfd f1, lbl_805AF330@sda21(r2)
/* 803AE8B4 003AB814 90 01 00 08 */ stw r0, 8(r1)
/* 803AE8B8 003AB818 C8 01 00 08 */ lfd f0, 8(r1)
/* 803AE8BC 003AB81C EC 00 08 28 */ fsubs f0, f0, f1
/* 803AE8C0 003AB820 EC 04 00 24 */ fdivs f0, f4, f0
/* 803AE8C4 003AB824 D0 04 00 18 */ stfs f0, 0x18(r4)
lbl_803AE8C8:
/* 803AE8C8 003AB828 80 84 00 00 */ lwz r4, 0(r4)
lbl_803AE8CC:
/* 803AE8CC 003AB82C 28 04 00 00 */ cmplwi r4, 0
/* 803AE8D0 003AB830 40 82 FF 78 */ bne lbl_803AE848
lbl_803AE8D4:
/* 803AE8D4 003AB834 80 6D AF 74 */ lwz r3, s3dListenerRoot@sda21(r13)
/* 803AE8D8 003AB838 3B A0 00 00 */ li r29, 0
/* 803AE8DC 003AB83C 48 00 00 0C */ b lbl_803AE8E8
lbl_803AE8E0:
/* 803AE8E0 003AB840 80 63 00 00 */ lwz r3, 0(r3)
/* 803AE8E4 003AB844 3B BD 00 01 */ addi r29, r29, 1
lbl_803AE8E8:
/* 803AE8E8 003AB848 28 03 00 00 */ cmplwi r3, 0
/* 803AE8EC 003AB84C 40 82 FF F4 */ bne lbl_803AE8E0
/* 803AE8F0 003AB850 28 1D 00 00 */ cmplwi r29, 0
/* 803AE8F4 003AB854 41 82 03 A0 */ beq lbl_803AEC94
/* 803AE8F8 003AB858 83 CD AF 70 */ lwz r30, s3dRoomRoot@sda21(r13)
/* 803AE8FC 003AB85C 48 00 03 90 */ b lbl_803AEC8C
lbl_803AE900:
/* 803AE900 003AB860 88 1E 00 1C */ lbz r0, 0x1c(r30)
/* 803AE904 003AB864 28 00 00 FF */ cmplwi r0, 0xff
/* 803AE908 003AB868 40 82 02 60 */ bne lbl_803AEB68
/* 803AE90C 003AB86C 80 6D AF 74 */ lwz r3, s3dListenerRoot@sda21(r13)
/* 803AE910 003AB870 C3 E2 D6 08 */ lfs f31, lbl_805AF328@sda21(r2)
/* 803AE914 003AB874 7C 64 1B 78 */ mr r4, r3
/* 803AE918 003AB878 48 00 00 44 */ b lbl_803AE95C
lbl_803AE91C:
/* 803AE91C 003AB87C C0 7E 00 0C */ lfs f3, 0xc(r30)
/* 803AE920 003AB880 C0 04 00 10 */ lfs f0, 0x10(r4)
/* 803AE924 003AB884 C0 5E 00 10 */ lfs f2, 0x10(r30)
/* 803AE928 003AB888 C0 24 00 14 */ lfs f1, 0x14(r4)
/* 803AE92C 003AB88C EC 63 00 28 */ fsubs f3, f3, f0
/* 803AE930 003AB890 C0 04 00 18 */ lfs f0, 0x18(r4)
/* 803AE934 003AB894 EC 82 08 28 */ fsubs f4, f2, f1
/* 803AE938 003AB898 C0 5E 00 14 */ lfs f2, 0x14(r30)
/* 803AE93C 003AB89C EC 23 00 F2 */ fmuls f1, f3, f3
/* 803AE940 003AB8A0 80 84 00 00 */ lwz r4, 0(r4)
/* 803AE944 003AB8A4 EC 42 00 28 */ fsubs f2, f2, f0
/* 803AE948 003AB8A8 EC 04 01 32 */ fmuls f0, f4, f4
/* 803AE94C 003AB8AC EC 42 00 B2 */ fmuls f2, f2, f2
/* 803AE950 003AB8B0 EC 01 00 2A */ fadds f0, f1, f0
/* 803AE954 003AB8B4 EC 02 00 2A */ fadds f0, f2, f0
/* 803AE958 003AB8B8 EF FF 00 2A */ fadds f31, f31, f0
lbl_803AE95C:
/* 803AE95C 003AB8BC 28 04 00 00 */ cmplwi r4, 0
/* 803AE960 003AB8C0 40 82 FF BC */ bne lbl_803AE91C
/* 803AE964 003AB8C4 3C 00 43 30 */ lis r0, 0x4330
/* 803AE968 003AB8C8 93 A1 00 0C */ stw r29, 0xc(r1)
/* 803AE96C 003AB8CC C8 22 D6 10 */ lfd f1, lbl_805AF330@sda21(r2)
/* 803AE970 003AB8D0 3B 80 00 00 */ li r28, 0
/* 803AE974 003AB8D4 90 01 00 08 */ stw r0, 8(r1)
/* 803AE978 003AB8D8 C8 01 00 08 */ lfd f0, 8(r1)
/* 803AE97C 003AB8DC EC 00 08 28 */ fsubs f0, f0, f1
/* 803AE980 003AB8E0 EF FF 00 24 */ fdivs f31, f31, f0
/* 803AE984 003AB8E4 48 00 00 1C */ b lbl_803AE9A0
lbl_803AE988:
/* 803AE988 003AB8E8 80 03 00 08 */ lwz r0, 8(r3)
/* 803AE98C 003AB8EC 7C 00 F0 40 */ cmplw r0, r30
/* 803AE990 003AB8F0 40 82 00 0C */ bne lbl_803AE99C
/* 803AE994 003AB8F4 3B 80 00 01 */ li r28, 1
/* 803AE998 003AB8F8 48 00 00 10 */ b lbl_803AE9A8
lbl_803AE99C:
/* 803AE99C 003AB8FC 80 63 00 00 */ lwz r3, 0(r3)
lbl_803AE9A0:
/* 803AE9A0 003AB900 28 03 00 00 */ cmplwi r3, 0
/* 803AE9A4 003AB904 40 82 FF E4 */ bne lbl_803AE988
lbl_803AE9A8:
/* 803AE9A8 003AB908 88 AD AF 64 */ lbz r5, snd_max_studios@sda21(r13)
/* 803AE9AC 003AB90C 38 00 FF FF */ li r0, -1
/* 803AE9B0 003AB910 80 8D AF 68 */ lwz r4, snd_used_studios@sda21(r13)
/* 803AE9B4 003AB914 7C 00 28 30 */ slw r0, r0, r5
/* 803AE9B8 003AB918 7C 03 00 F8 */ nor r3, r0, r0
/* 803AE9BC 003AB91C 7C 60 20 38 */ and r0, r3, r4
/* 803AE9C0 003AB920 7C 03 00 40 */ cmplw r3, r0
/* 803AE9C4 003AB924 41 82 00 50 */ beq lbl_803AEA14
/* 803AE9C8 003AB928 38 C0 00 00 */ li r6, 0
/* 803AE9CC 003AB92C 38 60 00 01 */ li r3, 1
/* 803AE9D0 003AB930 7C A9 03 A6 */ mtctr r5
/* 803AE9D4 003AB934 28 05 00 00 */ cmplwi r5, 0
/* 803AE9D8 003AB938 40 81 00 18 */ ble lbl_803AE9F0
lbl_803AE9DC:
/* 803AE9DC 003AB93C 7C 60 30 30 */ slw r0, r3, r6
/* 803AE9E0 003AB940 7C 80 00 39 */ and. r0, r4, r0
/* 803AE9E4 003AB944 41 82 00 0C */ beq lbl_803AE9F0
/* 803AE9E8 003AB948 38 C6 00 01 */ addi r6, r6, 1
/* 803AE9EC 003AB94C 42 00 FF F0 */ bdnz lbl_803AE9DC
lbl_803AE9F0:
/* 803AE9F0 003AB950 38 00 00 01 */ li r0, 1
/* 803AE9F4 003AB954 80 8D AF 68 */ lwz r4, snd_used_studios@sda21(r13)
/* 803AE9F8 003AB958 7C 03 30 30 */ slw r3, r0, r6
/* 803AE9FC 003AB95C 88 0D AF 65 */ lbz r0, snd_base_studio@sda21(r13)
/* 803AEA00 003AB960 7C 83 1B 78 */ or r3, r4, r3
/* 803AEA04 003AB964 90 6D AF 68 */ stw r3, snd_used_studios@sda21(r13)
/* 803AEA08 003AB968 7C 06 02 14 */ add r0, r6, r0
/* 803AEA0C 003AB96C 98 1E 00 1C */ stb r0, 0x1c(r30)
/* 803AEA10 003AB970 48 00 00 C0 */ b lbl_803AEAD0
lbl_803AEA14:
/* 803AEA14 003AB974 C0 22 D6 18 */ lfs f1, lbl_805AF338@sda21(r2)
/* 803AEA18 003AB978 80 6D AF 70 */ lwz r3, s3dRoomRoot@sda21(r13)
/* 803AEA1C 003AB97C 48 00 00 28 */ b lbl_803AEA44
lbl_803AEA20:
/* 803AEA20 003AB980 88 03 00 1C */ lbz r0, 0x1c(r3)
/* 803AEA24 003AB984 28 00 00 FF */ cmplwi r0, 0xff
/* 803AEA28 003AB988 41 82 00 18 */ beq lbl_803AEA40
/* 803AEA2C 003AB98C C0 03 00 18 */ lfs f0, 0x18(r3)
/* 803AEA30 003AB990 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 803AEA34 003AB994 40 80 00 0C */ bge lbl_803AEA40
/* 803AEA38 003AB998 FC 20 00 90 */ fmr f1, f0
/* 803AEA3C 003AB99C 7C 7F 1B 78 */ mr r31, r3
lbl_803AEA40:
/* 803AEA40 003AB9A0 80 63 00 00 */ lwz r3, 0(r3)
lbl_803AEA44:
/* 803AEA44 003AB9A4 28 03 00 00 */ cmplwi r3, 0
/* 803AEA48 003AB9A8 40 82 FF D8 */ bne lbl_803AEA20
/* 803AEA4C 003AB9AC 57 80 06 3F */ clrlwi. r0, r28, 0x18
/* 803AEA50 003AB9B0 40 82 00 0C */ bne lbl_803AEA5C
/* 803AEA54 003AB9B4 FC 01 F8 40 */ fcmpo cr0, f1, f31
/* 803AEA58 003AB9B8 40 81 02 30 */ ble lbl_803AEC88
lbl_803AEA5C:
/* 803AEA5C 003AB9BC 83 4D AF 78 */ lwz r26, s3dEmitterRoot@sda21(r13)
/* 803AEA60 003AB9C0 3B 60 FF FF */ li r27, -1
/* 803AEA64 003AB9C4 48 00 00 2C */ b lbl_803AEA90
lbl_803AEA68:
/* 803AEA68 003AB9C8 80 1A 00 08 */ lwz r0, 8(r26)
/* 803AEA6C 003AB9CC 7C 00 F8 40 */ cmplw r0, r31
/* 803AEA70 003AB9D0 40 82 00 1C */ bne lbl_803AEA8C
/* 803AEA74 003AB9D4 80 7A 00 3C */ lwz r3, 0x3c(r26)
/* 803AEA78 003AB9D8 4B FE C8 E9 */ bl synthSendKeyOff
/* 803AEA7C 003AB9DC 80 1A 00 10 */ lwz r0, 0x10(r26)
/* 803AEA80 003AB9E0 64 00 00 08 */ oris r0, r0, 8
/* 803AEA84 003AB9E4 90 1A 00 10 */ stw r0, 0x10(r26)
/* 803AEA88 003AB9E8 93 7A 00 3C */ stw r27, 0x3c(r26)
lbl_803AEA8C:
/* 803AEA8C 003AB9EC 83 5A 00 00 */ lwz r26, 0(r26)
lbl_803AEA90:
/* 803AEA90 003AB9F0 28 1A 00 00 */ cmplwi r26, 0
/* 803AEA94 003AB9F4 40 82 FF D4 */ bne lbl_803AEA68
/* 803AEA98 003AB9F8 81 9F 00 24 */ lwz r12, 0x24(r31)
/* 803AEA9C 003AB9FC 28 0C 00 00 */ cmplwi r12, 0
/* 803AEAA0 003ABA00 41 82 00 10 */ beq lbl_803AEAB0
/* 803AEAA4 003ABA04 88 7F 00 1C */ lbz r3, 0x1c(r31)
/* 803AEAA8 003ABA08 7D 89 03 A6 */ mtctr r12
/* 803AEAAC 003ABA0C 4E 80 04 21 */ bctrl
lbl_803AEAB0:
/* 803AEAB0 003ABA10 88 7F 00 1C */ lbz r3, 0x1c(r31)
/* 803AEAB4 003ABA14 4B FE DC 81 */ bl synthDeactivateStudio
/* 803AEAB8 003ABA18 88 9F 00 1C */ lbz r4, 0x1c(r31)
/* 803AEABC 003ABA1C 38 60 00 FF */ li r3, 0xff
/* 803AEAC0 003ABA20 38 00 00 00 */ li r0, 0
/* 803AEAC4 003ABA24 98 9E 00 1C */ stb r4, 0x1c(r30)
/* 803AEAC8 003ABA28 98 7F 00 1C */ stb r3, 0x1c(r31)
/* 803AEACC 003ABA2C 90 1F 00 08 */ stw r0, 8(r31)
lbl_803AEAD0:
/* 803AEAD0 003ABA30 57 84 06 3E */ clrlwi r4, r28, 0x18
/* 803AEAD4 003ABA34 3C 00 43 30 */ lis r0, 0x4330
/* 803AEAD8 003ABA38 7C 64 00 D0 */ neg r3, r4
/* 803AEADC 003ABA3C D3 FE 00 18 */ stfs f31, 0x18(r30)
/* 803AEAE0 003ABA40 7C 64 23 78 */ or r4, r3, r4
/* 803AEAE4 003ABA44 3C 60 00 7F */ lis r3, 0x7f
/* 803AEAE8 003ABA48 7C 84 FE 70 */ srawi r4, r4, 0x1f
/* 803AEAEC 003ABA4C 90 01 00 08 */ stw r0, 8(r1)
/* 803AEAF0 003ABA50 7C 60 20 38 */ and r0, r3, r4
/* 803AEAF4 003ABA54 C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2)
/* 803AEAF8 003ABA58 90 1E 00 2C */ stw r0, 0x2c(r30)
/* 803AEAFC 003ABA5C C0 62 D6 1C */ lfs f3, lbl_805AF33C@sda21(r2)
/* 803AEB00 003ABA60 80 1E 00 2C */ lwz r0, 0x2c(r30)
/* 803AEB04 003ABA64 C8 02 D6 20 */ lfd f0, lbl_805AF340@sda21(r2)
/* 803AEB08 003ABA68 90 01 00 0C */ stw r0, 0xc(r1)
/* 803AEB0C 003ABA6C C8 21 00 08 */ lfd f1, 8(r1)
/* 803AEB10 003ABA70 EC 21 10 28 */ fsubs f1, f1, f2
/* 803AEB14 003ABA74 EC 23 00 72 */ fmuls f1, f3, f1
/* 803AEB18 003ABA78 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 803AEB1C 003ABA7C 4C 41 13 82 */ cror 2, 1, 2
/* 803AEB20 003ABA80 40 82 00 18 */ bne lbl_803AEB38
/* 803AEB24 003ABA84 88 7E 00 1C */ lbz r3, 0x1c(r30)
/* 803AEB28 003ABA88 38 80 00 01 */ li r4, 1
/* 803AEB2C 003ABA8C 38 A0 00 00 */ li r5, 0
/* 803AEB30 003ABA90 4B FE DB 5D */ bl synthActivateStudio
/* 803AEB34 003ABA94 48 00 00 14 */ b lbl_803AEB48
lbl_803AEB38:
/* 803AEB38 003ABA98 88 7E 00 1C */ lbz r3, 0x1c(r30)
/* 803AEB3C 003ABA9C 38 80 00 00 */ li r4, 0
/* 803AEB40 003ABAA0 38 A0 00 00 */ li r5, 0
/* 803AEB44 003ABAA4 4B FE DB 49 */ bl synthActivateStudio
lbl_803AEB48:
/* 803AEB48 003ABAA8 81 9E 00 20 */ lwz r12, 0x20(r30)
/* 803AEB4C 003ABAAC 28 0C 00 00 */ cmplwi r12, 0
/* 803AEB50 003ABAB0 41 82 01 38 */ beq lbl_803AEC88
/* 803AEB54 003ABAB4 88 7E 00 1C */ lbz r3, 0x1c(r30)
/* 803AEB58 003ABAB8 80 9E 00 28 */ lwz r4, 0x28(r30)
/* 803AEB5C 003ABABC 7D 89 03 A6 */ mtctr r12
/* 803AEB60 003ABAC0 4E 80 04 21 */ bctrl
/* 803AEB64 003ABAC4 48 00 01 24 */ b lbl_803AEC88
lbl_803AEB68:
/* 803AEB68 003ABAC8 80 1E 00 08 */ lwz r0, 8(r30)
/* 803AEB6C 003ABACC 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0
/* 803AEB70 003ABAD0 41 82 00 88 */ beq lbl_803AEBF8
/* 803AEB74 003ABAD4 80 7E 00 2C */ lwz r3, 0x2c(r30)
/* 803AEB78 003ABAD8 3C 00 00 7F */ lis r0, 0x7f
/* 803AEB7C 003ABADC 3C 63 00 04 */ addis r3, r3, 4
/* 803AEB80 003ABAE0 90 7E 00 2C */ stw r3, 0x2c(r30)
/* 803AEB84 003ABAE4 80 7E 00 2C */ lwz r3, 0x2c(r30)
/* 803AEB88 003ABAE8 7C 03 00 40 */ cmplw r3, r0
/* 803AEB8C 003ABAEC 41 80 00 14 */ blt lbl_803AEBA0
/* 803AEB90 003ABAF0 90 1E 00 2C */ stw r0, 0x2c(r30)
/* 803AEB94 003ABAF4 80 1E 00 08 */ lwz r0, 8(r30)
/* 803AEB98 003ABAF8 54 00 00 7E */ clrlwi r0, r0, 1
/* 803AEB9C 003ABAFC 90 1E 00 08 */ stw r0, 8(r30)
lbl_803AEBA0:
/* 803AEBA0 003ABB00 80 7E 00 2C */ lwz r3, 0x2c(r30)
/* 803AEBA4 003ABB04 3C 00 43 30 */ lis r0, 0x4330
/* 803AEBA8 003ABB08 90 01 00 08 */ stw r0, 8(r1)
/* 803AEBAC 003ABB0C C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2)
/* 803AEBB0 003ABB10 90 61 00 0C */ stw r3, 0xc(r1)
/* 803AEBB4 003ABB14 C0 62 D6 1C */ lfs f3, lbl_805AF33C@sda21(r2)
/* 803AEBB8 003ABB18 C8 21 00 08 */ lfd f1, 8(r1)
/* 803AEBBC 003ABB1C C8 02 D6 20 */ lfd f0, lbl_805AF340@sda21(r2)
/* 803AEBC0 003ABB20 EC 21 10 28 */ fsubs f1, f1, f2
/* 803AEBC4 003ABB24 EC 23 00 72 */ fmuls f1, f3, f1
/* 803AEBC8 003ABB28 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 803AEBCC 003ABB2C 4C 41 13 82 */ cror 2, 1, 2
/* 803AEBD0 003ABB30 40 82 00 18 */ bne lbl_803AEBE8
/* 803AEBD4 003ABB34 88 7E 00 1C */ lbz r3, 0x1c(r30)
/* 803AEBD8 003ABB38 38 80 00 01 */ li r4, 1
/* 803AEBDC 003ABB3C 38 A0 00 00 */ li r5, 0
/* 803AEBE0 003ABB40 4B FE DA AD */ bl synthActivateStudio
/* 803AEBE4 003ABB44 48 00 00 14 */ b lbl_803AEBF8
lbl_803AEBE8:
/* 803AEBE8 003ABB48 88 7E 00 1C */ lbz r3, 0x1c(r30)
/* 803AEBEC 003ABB4C 38 80 00 00 */ li r4, 0
/* 803AEBF0 003ABB50 38 A0 00 00 */ li r5, 0
/* 803AEBF4 003ABB54 4B FE DA 99 */ bl synthActivateStudio
lbl_803AEBF8:
/* 803AEBF8 003ABB58 80 1E 00 08 */ lwz r0, 8(r30)
/* 803AEBFC 003ABB5C 54 00 00 43 */ rlwinm. r0, r0, 0, 1, 1
/* 803AEC00 003ABB60 41 82 00 88 */ beq lbl_803AEC88
/* 803AEC04 003ABB64 80 7E 00 2C */ lwz r3, 0x2c(r30)
/* 803AEC08 003ABB68 3C 03 FF FC */ addis r0, r3, 0xfffc
/* 803AEC0C 003ABB6C 90 1E 00 2C */ stw r0, 0x2c(r30)
/* 803AEC10 003ABB70 80 1E 00 2C */ lwz r0, 0x2c(r30)
/* 803AEC14 003ABB74 2C 00 00 00 */ cmpwi r0, 0
/* 803AEC18 003ABB78 41 80 00 18 */ blt lbl_803AEC30
/* 803AEC1C 003ABB7C 38 00 00 00 */ li r0, 0
/* 803AEC20 003ABB80 90 1E 00 2C */ stw r0, 0x2c(r30)
/* 803AEC24 003ABB84 80 1E 00 08 */ lwz r0, 8(r30)
/* 803AEC28 003ABB88 54 00 00 80 */ rlwinm r0, r0, 0, 2, 0
/* 803AEC2C 003ABB8C 90 1E 00 08 */ stw r0, 8(r30)
lbl_803AEC30:
/* 803AEC30 003ABB90 80 7E 00 2C */ lwz r3, 0x2c(r30)
/* 803AEC34 003ABB94 3C 00 43 30 */ lis r0, 0x4330
/* 803AEC38 003ABB98 90 01 00 08 */ stw r0, 8(r1)
/* 803AEC3C 003ABB9C C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2)
/* 803AEC40 003ABBA0 90 61 00 0C */ stw r3, 0xc(r1)
/* 803AEC44 003ABBA4 C0 62 D6 1C */ lfs f3, lbl_805AF33C@sda21(r2)
/* 803AEC48 003ABBA8 C8 21 00 08 */ lfd f1, 8(r1)
/* 803AEC4C 003ABBAC C8 02 D6 20 */ lfd f0, lbl_805AF340@sda21(r2)
/* 803AEC50 003ABBB0 EC 21 10 28 */ fsubs f1, f1, f2
/* 803AEC54 003ABBB4 EC 23 00 72 */ fmuls f1, f3, f1
/* 803AEC58 003ABBB8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 803AEC5C 003ABBBC 4C 41 13 82 */ cror 2, 1, 2
/* 803AEC60 003ABBC0 40 82 00 18 */ bne lbl_803AEC78
/* 803AEC64 003ABBC4 88 7E 00 1C */ lbz r3, 0x1c(r30)
/* 803AEC68 003ABBC8 38 80 00 01 */ li r4, 1
/* 803AEC6C 003ABBCC 38 A0 00 00 */ li r5, 0
/* 803AEC70 003ABBD0 4B FE DA 1D */ bl synthActivateStudio
/* 803AEC74 003ABBD4 48 00 00 14 */ b lbl_803AEC88
lbl_803AEC78:
/* 803AEC78 003ABBD8 88 7E 00 1C */ lbz r3, 0x1c(r30)
/* 803AEC7C 003ABBDC 38 80 00 00 */ li r4, 0
/* 803AEC80 003ABBE0 38 A0 00 00 */ li r5, 0
/* 803AEC84 003ABBE4 4B FE DA 09 */ bl synthActivateStudio
lbl_803AEC88:
/* 803AEC88 003ABBE8 83 DE 00 00 */ lwz r30, 0(r30)
lbl_803AEC8C:
/* 803AEC8C 003ABBEC 28 1E 00 00 */ cmplwi r30, 0
/* 803AEC90 003ABBF0 40 82 FC 70 */ bne lbl_803AE900
lbl_803AEC94:
/* 803AEC94 003ABBF4 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0
/* 803AEC98 003ABBF8 39 61 00 30 */ addi r11, r1, 0x30
/* 803AEC9C 003ABBFC CB E1 00 30 */ lfd f31, 0x30(r1)
/* 803AECA0 003ABC00 4B FD AE 25 */ bl _restgpr_26
/* 803AECA4 003ABC04 80 01 00 44 */ lwz r0, 0x44(r1)
/* 803AECA8 003ABC08 7C 08 03 A6 */ mtlr r0
/* 803AECAC 003ABC0C 38 21 00 40 */ addi r1, r1, 0x40
/* 803AECB0 003ABC10 4E 80 00 20 */ blr
.global CalcEmitter
CalcEmitter:
/* 803AECB4 003ABC14 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 803AECB8 003ABC18 7C 08 02 A6 */ mflr r0
/* 803AECBC 003ABC1C 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 803AECC0 003ABC20 DB E1 00 90 */ stfd f31, 0x90(r1)
/* 803AECC4 003ABC24 F3 E1 00 98 */ psq_st f31, 152(r1), 0, qr0
/* 803AECC8 003ABC28 DB C1 00 80 */ stfd f30, 0x80(r1)
/* 803AECCC 003ABC2C F3 C1 00 88 */ psq_st f30, 136(r1), 0, qr0
/* 803AECD0 003ABC30 DB A1 00 70 */ stfd f29, 0x70(r1)
/* 803AECD4 003ABC34 F3 A1 00 78 */ psq_st f29, 120(r1), 0, qr0
/* 803AECD8 003ABC38 DB 81 00 60 */ stfd f28, 0x60(r1)
/* 803AECDC 003ABC3C F3 81 00 68 */ psq_st f28, 104(r1), 0, qr0
/* 803AECE0 003ABC40 39 61 00 60 */ addi r11, r1, 0x60
/* 803AECE4 003ABC44 4B FD AD 8D */ bl _savegpr_24
/* 803AECE8 003ABC48 C3 E2 D6 08 */ lfs f31, lbl_805AF328@sda21(r2)
/* 803AECEC 003ABC4C 7C 99 23 78 */ mr r25, r4
/* 803AECF0 003ABC50 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2)
/* 803AECF4 003ABC54 7C BA 2B 78 */ mr r26, r5
/* 803AECF8 003ABC58 D3 E4 00 00 */ stfs f31, 0(r4)
/* 803AECFC 003ABC5C FF C0 F8 90 */ fmr f30, f31
/* 803AED00 003ABC60 FF A0 F8 90 */ fmr f29, f31
/* 803AED04 003ABC64 7C 78 1B 78 */ mr r24, r3
/* 803AED08 003ABC68 D0 05 00 00 */ stfs f0, 0(r5)
/* 803AED0C 003ABC6C FF 80 F8 90 */ fmr f28, f31
/* 803AED10 003ABC70 7C DB 33 78 */ mr r27, r6
/* 803AED14 003ABC74 83 ED AF 74 */ lwz r31, s3dListenerRoot@sda21(r13)
/* 803AED18 003ABC78 7C FC 3B 78 */ mr r28, r7
/* 803AED1C 003ABC7C 7D 1D 43 78 */ mr r29, r8
/* 803AED20 003ABC80 3B C0 00 00 */ li r30, 0
/* 803AED24 003ABC84 48 00 04 14 */ b lbl_803AF138
lbl_803AED28:
/* 803AED28 003ABC88 C0 5F 00 2C */ lfs f2, 0x2c(r31)
/* 803AED2C 003ABC8C C0 DF 00 1C */ lfs f6, 0x1c(r31)
/* 803AED30 003ABC90 C0 3F 00 30 */ lfs f1, 0x30(r31)
/* 803AED34 003ABC94 C0 1F 00 34 */ lfs f0, 0x34(r31)
/* 803AED38 003ABC98 EC 82 01 B2 */ fmuls f4, f2, f6
/* 803AED3C 003ABC9C C0 BF 00 10 */ lfs f5, 0x10(r31)
/* 803AED40 003ABCA0 EC 41 01 B2 */ fmuls f2, f1, f6
/* 803AED44 003ABCA4 C0 7F 00 14 */ lfs f3, 0x14(r31)
/* 803AED48 003ABCA8 EC 00 01 B2 */ fmuls f0, f0, f6
/* 803AED4C 003ABCAC C0 3F 00 18 */ lfs f1, 0x18(r31)
/* 803AED50 003ABCB0 EC 85 20 2A */ fadds f4, f5, f4
/* 803AED54 003ABCB4 C0 B8 00 14 */ lfs f5, 0x14(r24)
/* 803AED58 003ABCB8 EC 43 10 2A */ fadds f2, f3, f2
/* 803AED5C 003ABCBC C0 78 00 18 */ lfs f3, 0x18(r24)
/* 803AED60 003ABCC0 EC 01 00 2A */ fadds f0, f1, f0
/* 803AED64 003ABCC4 C0 38 00 1C */ lfs f1, 0x1c(r24)
/* 803AED68 003ABCC8 EC 85 20 28 */ fsubs f4, f5, f4
/* 803AED6C 003ABCCC EC 43 10 28 */ fsubs f2, f3, f2
/* 803AED70 003ABCD0 EC 61 00 28 */ fsubs f3, f1, f0
/* 803AED74 003ABCD4 EC 24 01 32 */ fmuls f1, f4, f4
/* 803AED78 003ABCD8 EC 02 00 B2 */ fmuls f0, f2, f2
/* 803AED7C 003ABCDC EC 43 00 F2 */ fmuls f2, f3, f3
/* 803AED80 003ABCE0 EC 01 00 2A */ fadds f0, f1, f0
/* 803AED84 003ABCE4 EC 22 00 2A */ fadds f1, f2, f0
/* 803AED88 003ABCE8 FC 01 F8 40 */ fcmpo cr0, f1, f31
/* 803AED8C 003ABCEC 40 81 00 5C */ ble lbl_803AEDE8
/* 803AED90 003ABCF0 FC 40 08 34 */ frsqrte f2, f1
/* 803AED94 003ABCF4 C8 82 D6 20 */ lfd f4, lbl_805AF340@sda21(r2)
/* 803AED98 003ABCF8 C8 62 D6 30 */ lfd f3, lbl_805AF350@sda21(r2)
/* 803AED9C 003ABCFC FC 02 00 B2 */ fmul f0, f2, f2
/* 803AEDA0 003ABD00 FC 44 00 B2 */ fmul f2, f4, f2
/* 803AEDA4 003ABD04 FC 01 00 32 */ fmul f0, f1, f0
/* 803AEDA8 003ABD08 FC 03 00 28 */ fsub f0, f3, f0
/* 803AEDAC 003ABD0C FC 42 00 32 */ fmul f2, f2, f0
/* 803AEDB0 003ABD10 FC 02 00 B2 */ fmul f0, f2, f2
/* 803AEDB4 003ABD14 FC 44 00 B2 */ fmul f2, f4, f2
/* 803AEDB8 003ABD18 FC 01 00 32 */ fmul f0, f1, f0
/* 803AEDBC 003ABD1C FC 03 00 28 */ fsub f0, f3, f0
/* 803AEDC0 003ABD20 FC 42 00 32 */ fmul f2, f2, f0
/* 803AEDC4 003ABD24 FC 02 00 B2 */ fmul f0, f2, f2
/* 803AEDC8 003ABD28 FC 44 00 B2 */ fmul f2, f4, f2
/* 803AEDCC 003ABD2C FC 01 00 32 */ fmul f0, f1, f0
/* 803AEDD0 003ABD30 FC 03 00 28 */ fsub f0, f3, f0
/* 803AEDD4 003ABD34 FC 02 00 32 */ fmul f0, f2, f0
/* 803AEDD8 003ABD38 FC 01 00 32 */ fmul f0, f1, f0
/* 803AEDDC 003ABD3C FC 00 00 18 */ frsp f0, f0
/* 803AEDE0 003ABD40 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 803AEDE4 003ABD44 C0 21 00 10 */ lfs f1, 0x10(r1)
lbl_803AEDE8:
/* 803AEDE8 003ABD48 C0 18 00 2C */ lfs f0, 0x2c(r24)
/* 803AEDEC 003ABD4C FC 00 08 40 */ fcmpo cr0, f0, f1
/* 803AEDF0 003ABD50 4C 41 13 82 */ cror 2, 1, 2
/* 803AEDF4 003ABD54 40 82 03 3C */ bne lbl_803AF130
/* 803AEDF8 003ABD58 ED 41 00 24 */ fdivs f10, f1, f0
/* 803AEDFC 003ABD5C C0 F8 00 38 */ lfs f7, 0x38(r24)
/* 803AEE00 003ABD60 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2)
/* 803AEE04 003ABD64 FC 07 00 40 */ fcmpo cr0, f7, f0
/* 803AEE08 003ABD68 4C 41 13 82 */ cror 2, 1, 2
/* 803AEE0C 003ABD6C 40 82 00 4C */ bne lbl_803AEE58
/* 803AEE10 003ABD70 C0 62 D6 2C */ lfs f3, lbl_805AF34C@sda21(r2)
/* 803AEE14 003ABD74 EC 07 02 B2 */ fmuls f0, f7, f10
/* 803AEE18 003ABD78 C1 18 00 34 */ lfs f8, 0x34(r24)
/* 803AEE1C 003ABD7C EC 43 38 28 */ fsubs f2, f3, f7
/* 803AEE20 003ABD80 C0 98 00 30 */ lfs f4, 0x30(r24)
/* 803AEE24 003ABD84 EC 0A 00 32 */ fmuls f0, f10, f0
/* 803AEE28 003ABD88 C0 BF 00 8C */ lfs f5, 0x8c(r31)
/* 803AEE2C 003ABD8C EC 84 40 28 */ fsubs f4, f4, f8
/* 803AEE30 003ABD90 C0 D9 00 00 */ lfs f6, 0(r25)
/* 803AEE34 003ABD94 EC 42 02 B2 */ fmuls f2, f2, f10
/* 803AEE38 003ABD98 EC 02 00 2A */ fadds f0, f2, f0
/* 803AEE3C 003ABD9C EC 03 00 28 */ fsubs f0, f3, f0
/* 803AEE40 003ABDA0 EC 04 00 32 */ fmuls f0, f4, f0
/* 803AEE44 003ABDA4 EC 08 00 2A */ fadds f0, f8, f0
/* 803AEE48 003ABDA8 EC 05 00 32 */ fmuls f0, f5, f0
/* 803AEE4C 003ABDAC EC 06 00 2A */ fadds f0, f6, f0
/* 803AEE50 003ABDB0 D0 19 00 00 */ stfs f0, 0(r25)
/* 803AEE54 003ABDB4 48 00 00 50 */ b lbl_803AEEA4
lbl_803AEE58:
/* 803AEE58 003ABDB8 C0 62 D6 2C */ lfs f3, lbl_805AF34C@sda21(r2)
/* 803AEE5C 003ABDBC C1 38 00 34 */ lfs f9, 0x34(r24)
/* 803AEE60 003ABDC0 ED 03 50 28 */ fsubs f8, f3, f10
/* 803AEE64 003ABDC4 C0 18 00 30 */ lfs f0, 0x30(r24)
/* 803AEE68 003ABDC8 EC 43 38 2A */ fadds f2, f3, f7
/* 803AEE6C 003ABDCC C0 BF 00 8C */ lfs f5, 0x8c(r31)
/* 803AEE70 003ABDD0 EC 80 48 28 */ fsubs f4, f0, f9
/* 803AEE74 003ABDD4 C0 D9 00 00 */ lfs f6, 0(r25)
/* 803AEE78 003ABDD8 EC 08 02 32 */ fmuls f0, f8, f8
/* 803AEE7C 003ABDDC EC 42 02 B2 */ fmuls f2, f2, f10
/* 803AEE80 003ABDE0 EC 03 00 28 */ fsubs f0, f3, f0
/* 803AEE84 003ABDE4 EC 07 00 32 */ fmuls f0, f7, f0
/* 803AEE88 003ABDE8 EC 02 00 28 */ fsubs f0, f2, f0
/* 803AEE8C 003ABDEC EC 03 00 28 */ fsubs f0, f3, f0
/* 803AEE90 003ABDF0 EC 04 00 32 */ fmuls f0, f4, f0
/* 803AEE94 003ABDF4 EC 09 00 2A */ fadds f0, f9, f0
/* 803AEE98 003ABDF8 EC 05 00 32 */ fmuls f0, f5, f0
/* 803AEE9C 003ABDFC EC 06 00 2A */ fadds f0, f6, f0
/* 803AEEA0 003ABE00 D0 19 00 00 */ stfs f0, 0(r25)
lbl_803AEEA4:
/* 803AEEA4 003ABE04 80 78 00 10 */ lwz r3, 0x10(r24)
/* 803AEEA8 003ABE08 54 60 03 19 */ rlwinm. r0, r3, 0, 0xc, 0xc
/* 803AEEAC 003ABE0C 40 82 02 84 */ bne lbl_803AF130
/* 803AEEB0 003ABE10 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c
/* 803AEEB4 003ABE14 40 82 00 10 */ bne lbl_803AEEC4
/* 803AEEB8 003ABE18 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803AEEBC 003ABE1C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 803AEEC0 003ABE20 41 82 01 BC */ beq lbl_803AF07C
lbl_803AEEC4:
/* 803AEEC4 003ABE24 C0 9F 00 20 */ lfs f4, 0x20(r31)
/* 803AEEC8 003ABE28 C0 78 00 20 */ lfs f3, 0x20(r24)
/* 803AEECC 003ABE2C C0 5F 00 24 */ lfs f2, 0x24(r31)
/* 803AEED0 003ABE30 C0 18 00 24 */ lfs f0, 0x24(r24)
/* 803AEED4 003ABE34 EC 64 18 28 */ fsubs f3, f4, f3
/* 803AEED8 003ABE38 C0 9F 00 28 */ lfs f4, 0x28(r31)
/* 803AEEDC 003ABE3C EC A2 00 28 */ fsubs f5, f2, f0
/* 803AEEE0 003ABE40 C0 58 00 28 */ lfs f2, 0x28(r24)
/* 803AEEE4 003ABE44 EC 63 00 F2 */ fmuls f3, f3, f3
/* 803AEEE8 003ABE48 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2)
/* 803AEEEC 003ABE4C EC 84 10 28 */ fsubs f4, f4, f2
/* 803AEEF0 003ABE50 EC 45 01 72 */ fmuls f2, f5, f5
/* 803AEEF4 003ABE54 EC 84 01 32 */ fmuls f4, f4, f4
/* 803AEEF8 003ABE58 EC 43 10 2A */ fadds f2, f3, f2
/* 803AEEFC 003ABE5C EC 44 10 2A */ fadds f2, f4, f2
/* 803AEF00 003ABE60 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 803AEF04 003ABE64 40 81 00 5C */ ble lbl_803AEF60
/* 803AEF08 003ABE68 FC 60 10 34 */ frsqrte f3, f2
/* 803AEF0C 003ABE6C C8 A2 D6 20 */ lfd f5, lbl_805AF340@sda21(r2)
/* 803AEF10 003ABE70 C8 82 D6 30 */ lfd f4, lbl_805AF350@sda21(r2)
/* 803AEF14 003ABE74 FC 03 00 F2 */ fmul f0, f3, f3
/* 803AEF18 003ABE78 FC 65 00 F2 */ fmul f3, f5, f3
/* 803AEF1C 003ABE7C FC 02 00 32 */ fmul f0, f2, f0
/* 803AEF20 003ABE80 FC 04 00 28 */ fsub f0, f4, f0
/* 803AEF24 003ABE84 FC 63 00 32 */ fmul f3, f3, f0
/* 803AEF28 003ABE88 FC 03 00 F2 */ fmul f0, f3, f3
/* 803AEF2C 003ABE8C FC 65 00 F2 */ fmul f3, f5, f3
/* 803AEF30 003ABE90 FC 02 00 32 */ fmul f0, f2, f0
/* 803AEF34 003ABE94 FC 04 00 28 */ fsub f0, f4, f0
/* 803AEF38 003ABE98 FC 63 00 32 */ fmul f3, f3, f0
/* 803AEF3C 003ABE9C FC 03 00 F2 */ fmul f0, f3, f3
/* 803AEF40 003ABEA0 FC 65 00 F2 */ fmul f3, f5, f3
/* 803AEF44 003ABEA4 FC 02 00 32 */ fmul f0, f2, f0
/* 803AEF48 003ABEA8 FC 04 00 28 */ fsub f0, f4, f0
/* 803AEF4C 003ABEAC FC 03 00 32 */ fmul f0, f3, f0
/* 803AEF50 003ABEB0 FC 02 00 32 */ fmul f0, f2, f0
/* 803AEF54 003ABEB4 FC 00 00 18 */ frsp f0, f0
/* 803AEF58 003ABEB8 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 803AEF5C 003ABEBC C0 41 00 0C */ lfs f2, 0xc(r1)
lbl_803AEF60:
/* 803AEF60 003ABEC0 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2)
/* 803AEF64 003ABEC4 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 803AEF68 003ABEC8 40 81 01 14 */ ble lbl_803AF07C
/* 803AEF6C 003ABECC C0 78 00 20 */ lfs f3, 0x20(r24)
/* 803AEF70 003ABED0 C1 82 D6 38 */ lfs f12, lbl_805AF358@sda21(r2)
/* 803AEF74 003ABED4 C0 BF 00 20 */ lfs f5, 0x20(r31)
/* 803AEF78 003ABED8 C0 98 00 24 */ lfs f4, 0x24(r24)
/* 803AEF7C 003ABEDC ED 63 03 32 */ fmuls f11, f3, f12
/* 803AEF80 003ABEE0 C0 7F 00 24 */ lfs f3, 0x24(r31)
/* 803AEF84 003ABEE4 ED 25 03 32 */ fmuls f9, f5, f12
/* 803AEF88 003ABEE8 C0 B8 00 14 */ lfs f5, 0x14(r24)
/* 803AEF8C 003ABEEC EC C4 03 32 */ fmuls f6, f4, f12
/* 803AEF90 003ABEF0 C1 5F 00 10 */ lfs f10, 0x10(r31)
/* 803AEF94 003ABEF4 C1 18 00 18 */ lfs f8, 0x18(r24)
/* 803AEF98 003ABEF8 EC 83 03 32 */ fmuls f4, f3, f12
/* 803AEF9C 003ABEFC C0 FF 00 14 */ lfs f7, 0x14(r31)
/* 803AEFA0 003ABF00 ED 65 58 2A */ fadds f11, f5, f11
/* 803AEFA4 003ABF04 C0 B8 00 28 */ lfs f5, 0x28(r24)
/* 803AEFA8 003ABF08 ED 2A 48 2A */ fadds f9, f10, f9
/* 803AEFAC 003ABF0C C0 7F 00 28 */ lfs f3, 0x28(r31)
/* 803AEFB0 003ABF10 ED 08 30 2A */ fadds f8, f8, f6
/* 803AEFB4 003ABF14 C0 D8 00 1C */ lfs f6, 0x1c(r24)
/* 803AEFB8 003ABF18 EC E7 20 2A */ fadds f7, f7, f4
/* 803AEFBC 003ABF1C C0 9F 00 18 */ lfs f4, 0x18(r31)
/* 803AEFC0 003ABF20 EC A5 03 32 */ fmuls f5, f5, f12
/* 803AEFC4 003ABF24 EC 63 03 32 */ fmuls f3, f3, f12
/* 803AEFC8 003ABF28 ED 2B 48 28 */ fsubs f9, f11, f9
/* 803AEFCC 003ABF2C EC E8 38 28 */ fsubs f7, f8, f7
/* 803AEFD0 003ABF30 EC C6 28 2A */ fadds f6, f6, f5
/* 803AEFD4 003ABF34 EC A4 18 2A */ fadds f5, f4, f3
/* 803AEFD8 003ABF38 EC 89 02 72 */ fmuls f4, f9, f9
/* 803AEFDC 003ABF3C EC 67 01 F2 */ fmuls f3, f7, f7
/* 803AEFE0 003ABF40 EC A6 28 28 */ fsubs f5, f6, f5
/* 803AEFE4 003ABF44 EC 64 18 2A */ fadds f3, f4, f3
/* 803AEFE8 003ABF48 EC 85 01 72 */ fmuls f4, f5, f5
/* 803AEFEC 003ABF4C EC C4 18 2A */ fadds f6, f4, f3
/* 803AEFF0 003ABF50 FC 06 00 40 */ fcmpo cr0, f6, f0
/* 803AEFF4 003ABF54 40 81 00 5C */ ble lbl_803AF050
/* 803AEFF8 003ABF58 FC 60 30 34 */ frsqrte f3, f6
/* 803AEFFC 003ABF5C C8 A2 D6 20 */ lfd f5, lbl_805AF340@sda21(r2)
/* 803AF000 003ABF60 C8 82 D6 30 */ lfd f4, lbl_805AF350@sda21(r2)
/* 803AF004 003ABF64 FC 03 00 F2 */ fmul f0, f3, f3
/* 803AF008 003ABF68 FC 65 00 F2 */ fmul f3, f5, f3
/* 803AF00C 003ABF6C FC 06 00 32 */ fmul f0, f6, f0
/* 803AF010 003ABF70 FC 04 00 28 */ fsub f0, f4, f0
/* 803AF014 003ABF74 FC 63 00 32 */ fmul f3, f3, f0
/* 803AF018 003ABF78 FC 03 00 F2 */ fmul f0, f3, f3
/* 803AF01C 003ABF7C FC 65 00 F2 */ fmul f3, f5, f3
/* 803AF020 003ABF80 FC 06 00 32 */ fmul f0, f6, f0
/* 803AF024 003ABF84 FC 04 00 28 */ fsub f0, f4, f0
/* 803AF028 003ABF88 FC 63 00 32 */ fmul f3, f3, f0
/* 803AF02C 003ABF8C FC 03 00 F2 */ fmul f0, f3, f3
/* 803AF030 003ABF90 FC 65 00 F2 */ fmul f3, f5, f3
/* 803AF034 003ABF94 FC 06 00 32 */ fmul f0, f6, f0
/* 803AF038 003ABF98 FC 04 00 28 */ fsub f0, f4, f0
/* 803AF03C 003ABF9C FC 03 00 32 */ fmul f0, f3, f0
/* 803AF040 003ABFA0 FC 06 00 32 */ fmul f0, f6, f0
/* 803AF044 003ABFA4 FC 00 00 18 */ frsp f0, f0
/* 803AF048 003ABFA8 D0 01 00 08 */ stfs f0, 8(r1)
/* 803AF04C 003ABFAC C0 C1 00 08 */ lfs f6, 8(r1)
lbl_803AF050:
/* 803AF050 003ABFB0 FC 06 08 40 */ fcmpo cr0, f6, f1
/* 803AF054 003ABFB4 40 80 00 18 */ bge lbl_803AF06C
/* 803AF058 003ABFB8 C0 7F 00 88 */ lfs f3, 0x88(r31)
/* 803AF05C 003ABFBC EC 03 10 28 */ fsubs f0, f3, f2
/* 803AF060 003ABFC0 EC 03 00 24 */ fdivs f0, f3, f0
/* 803AF064 003ABFC4 D0 1A 00 00 */ stfs f0, 0(r26)
/* 803AF068 003ABFC8 48 00 00 14 */ b lbl_803AF07C
lbl_803AF06C:
/* 803AF06C 003ABFCC C0 7F 00 88 */ lfs f3, 0x88(r31)
/* 803AF070 003ABFD0 EC 03 10 2A */ fadds f0, f3, f2
/* 803AF074 003ABFD4 EC 03 00 24 */ fdivs f0, f3, f0
/* 803AF078 003ABFD8 D0 1A 00 00 */ stfs f0, 0(r26)
lbl_803AF07C:
/* 803AF07C 003ABFDC C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2)
/* 803AF080 003ABFE0 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 803AF084 003ABFE4 41 82 00 AC */ beq lbl_803AF130
/* 803AF088 003ABFE8 38 7F 00 50 */ addi r3, r31, 0x50
/* 803AF08C 003ABFEC 38 98 00 14 */ addi r4, r24, 0x14
/* 803AF090 003ABFF0 38 A1 00 14 */ addi r5, r1, 0x14
/* 803AF094 003ABFF4 48 00 1C 79 */ bl salApplyMatrix
/* 803AF098 003ABFF8 C0 41 00 1C */ lfs f2, 0x1c(r1)
/* 803AF09C 003ABFFC C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2)
/* 803AF0A0 003AC000 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 803AF0A4 003AC004 4C 40 13 82 */ cror 2, 0, 2
/* 803AF0A8 003AC008 40 82 00 2C */ bne lbl_803AF0D4
/* 803AF0AC 003AC00C C0 3F 00 80 */ lfs f1, 0x80(r31)
/* 803AF0B0 003AC010 FC 00 08 50 */ fneg f0, f1
/* 803AF0B4 003AC014 FC 00 10 40 */ fcmpo cr0, f0, f2
/* 803AF0B8 003AC018 40 80 00 10 */ bge lbl_803AF0C8
/* 803AF0BC 003AC01C FC 00 10 50 */ fneg f0, f2
/* 803AF0C0 003AC020 EC 00 08 24 */ fdivs f0, f0, f1
/* 803AF0C4 003AC024 48 00 00 08 */ b lbl_803AF0CC
lbl_803AF0C8:
/* 803AF0C8 003AC028 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2)
lbl_803AF0CC:
/* 803AF0CC 003AC02C EF DE 00 2A */ fadds f30, f30, f0
/* 803AF0D0 003AC030 48 00 00 24 */ b lbl_803AF0F4
lbl_803AF0D4:
/* 803AF0D4 003AC034 C0 3F 00 84 */ lfs f1, 0x84(r31)
/* 803AF0D8 003AC038 FC 01 10 40 */ fcmpo cr0, f1, f2
/* 803AF0DC 003AC03C 40 81 00 10 */ ble lbl_803AF0EC
/* 803AF0E0 003AC040 FC 00 10 50 */ fneg f0, f2
/* 803AF0E4 003AC044 EC 00 08 24 */ fdivs f0, f0, f1
/* 803AF0E8 003AC048 48 00 00 08 */ b lbl_803AF0F0
lbl_803AF0EC:
/* 803AF0EC 003AC04C C0 02 D6 18 */ lfs f0, lbl_805AF338@sda21(r2)
lbl_803AF0F0:
/* 803AF0F0 003AC050 EF DE 00 2A */ fadds f30, f30, f0
lbl_803AF0F4:
/* 803AF0F4 003AC054 C0 22 D6 08 */ lfs f1, lbl_805AF328@sda21(r2)
/* 803AF0F8 003AC058 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 803AF0FC 003AC05C FC 01 00 00 */ fcmpu cr0, f1, f0
/* 803AF100 003AC060 40 82 00 18 */ bne lbl_803AF118
/* 803AF104 003AC064 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 803AF108 003AC068 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 803AF10C 003AC06C 40 82 00 0C */ bne lbl_803AF118
/* 803AF110 003AC070 FC 01 10 00 */ fcmpu cr0, f1, f2
/* 803AF114 003AC074 41 82 00 0C */ beq lbl_803AF120
lbl_803AF118:
/* 803AF118 003AC078 38 61 00 14 */ addi r3, r1, 0x14
/* 803AF11C 003AC07C 48 00 1C 9D */ bl salNormalizeVector
lbl_803AF120:
/* 803AF120 003AC080 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 803AF124 003AC084 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 803AF128 003AC088 EF 9C 08 2A */ fadds f28, f28, f1
/* 803AF12C 003AC08C EF BD 00 28 */ fsubs f29, f29, f0
lbl_803AF130:
/* 803AF130 003AC090 83 FF 00 00 */ lwz r31, 0(r31)
/* 803AF134 003AC094 3B DE 00 01 */ addi r30, r30, 1
lbl_803AF138:
/* 803AF138 003AC098 28 1F 00 00 */ cmplwi r31, 0
/* 803AF13C 003AC09C 40 82 FB EC */ bne lbl_803AED28
/* 803AF140 003AC0A0 28 1E 00 00 */ cmplwi r30, 0
/* 803AF144 003AC0A4 41 82 00 54 */ beq lbl_803AF198
/* 803AF148 003AC0A8 3C 00 43 30 */ lis r0, 0x4330
/* 803AF14C 003AC0AC 93 C1 00 24 */ stw r30, 0x24(r1)
/* 803AF150 003AC0B0 C8 62 D6 10 */ lfd f3, lbl_805AF330@sda21(r2)
/* 803AF154 003AC0B4 90 01 00 20 */ stw r0, 0x20(r1)
/* 803AF158 003AC0B8 C8 01 00 20 */ lfd f0, 0x20(r1)
/* 803AF15C 003AC0BC 93 C1 00 2C */ stw r30, 0x2c(r1)
/* 803AF160 003AC0C0 EC 00 18 28 */ fsubs f0, f0, f3
/* 803AF164 003AC0C4 90 01 00 28 */ stw r0, 0x28(r1)
/* 803AF168 003AC0C8 C8 21 00 28 */ lfd f1, 0x28(r1)
/* 803AF16C 003AC0CC EC 5C 00 24 */ fdivs f2, f28, f0
/* 803AF170 003AC0D0 93 C1 00 34 */ stw r30, 0x34(r1)
/* 803AF174 003AC0D4 90 01 00 30 */ stw r0, 0x30(r1)
/* 803AF178 003AC0D8 C8 01 00 30 */ lfd f0, 0x30(r1)
/* 803AF17C 003AC0DC EC 21 18 28 */ fsubs f1, f1, f3
/* 803AF180 003AC0E0 D0 5B 00 00 */ stfs f2, 0(r27)
/* 803AF184 003AC0E4 EC 00 18 28 */ fsubs f0, f0, f3
/* 803AF188 003AC0E8 EC 3D 08 24 */ fdivs f1, f29, f1
/* 803AF18C 003AC0EC EC 1E 00 24 */ fdivs f0, f30, f0
/* 803AF190 003AC0F0 D0 3C 00 00 */ stfs f1, 0(r28)
/* 803AF194 003AC0F4 D0 1D 00 00 */ stfs f0, 0(r29)
lbl_803AF198:
/* 803AF198 003AC0F8 E3 E1 00 98 */ psq_l f31, 152(r1), 0, qr0
/* 803AF19C 003AC0FC CB E1 00 90 */ lfd f31, 0x90(r1)
/* 803AF1A0 003AC100 E3 C1 00 88 */ psq_l f30, 136(r1), 0, qr0
/* 803AF1A4 003AC104 CB C1 00 80 */ lfd f30, 0x80(r1)
/* 803AF1A8 003AC108 E3 A1 00 78 */ psq_l f29, 120(r1), 0, qr0
/* 803AF1AC 003AC10C CB A1 00 70 */ lfd f29, 0x70(r1)
/* 803AF1B0 003AC110 E3 81 00 68 */ psq_l f28, 104(r1), 0, qr0
/* 803AF1B4 003AC114 39 61 00 60 */ addi r11, r1, 0x60
/* 803AF1B8 003AC118 CB 81 00 60 */ lfd f28, 0x60(r1)
/* 803AF1BC 003AC11C 4B FD A9 01 */ bl _restgpr_24
/* 803AF1C0 003AC120 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 803AF1C4 003AC124 7C 08 03 A6 */ mtlr r0
/* 803AF1C8 003AC128 38 21 00 A0 */ addi r1, r1, 0xa0
/* 803AF1CC 003AC12C 4E 80 00 20 */ blr
.global sndUpdateEmitter
sndUpdateEmitter:
/* 803AF1D0 003AC130 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803AF1D4 003AC134 7C 08 02 A6 */ mflr r0
/* 803AF1D8 003AC138 90 01 00 34 */ stw r0, 0x34(r1)
/* 803AF1DC 003AC13C 39 61 00 30 */ addi r11, r1, 0x30
/* 803AF1E0 003AC140 4B FD A8 9D */ bl _savegpr_27
/* 803AF1E4 003AC144 88 0D AE 48 */ lbz r0, sndActive@sda21(r13)
/* 803AF1E8 003AC148 7C 7E 1B 78 */ mr r30, r3
/* 803AF1EC 003AC14C 7C 9B 23 78 */ mr r27, r4
/* 803AF1F0 003AC150 7C BC 2B 78 */ mr r28, r5
/* 803AF1F4 003AC154 28 00 00 00 */ cmplwi r0, 0
/* 803AF1F8 003AC158 7C DD 33 78 */ mr r29, r6
/* 803AF1FC 003AC15C 7C FF 3B 78 */ mr r31, r7
/* 803AF200 003AC160 41 82 00 E4 */ beq lbl_803AF2E4
/* 803AF204 003AC164 48 00 5E B9 */ bl hwDisableIrq
/* 803AF208 003AC168 57 A3 06 3E */ clrlwi r3, r29, 0x18
/* 803AF20C 003AC16C 3C 00 43 30 */ lis r0, 0x4330
/* 803AF210 003AC170 90 61 00 0C */ stw r3, 0xc(r1)
/* 803AF214 003AC174 C8 22 D6 10 */ lfd f1, lbl_805AF330@sda21(r2)
/* 803AF218 003AC178 90 01 00 08 */ stw r0, 8(r1)
/* 803AF21C 003AC17C 80 7B 00 00 */ lwz r3, 0(r27)
/* 803AF220 003AC180 C8 01 00 08 */ lfd f0, 8(r1)
/* 803AF224 003AC184 80 1B 00 04 */ lwz r0, 4(r27)
/* 803AF228 003AC188 EC 20 08 28 */ fsubs f1, f0, f1
/* 803AF22C 003AC18C C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2)
/* 803AF230 003AC190 90 7E 00 14 */ stw r3, 0x14(r30)
/* 803AF234 003AC194 90 1E 00 18 */ stw r0, 0x18(r30)
/* 803AF238 003AC198 EC 01 00 24 */ fdivs f0, f1, f0
/* 803AF23C 003AC19C 80 1B 00 08 */ lwz r0, 8(r27)
/* 803AF240 003AC1A0 90 1E 00 1C */ stw r0, 0x1c(r30)
/* 803AF244 003AC1A4 80 7C 00 00 */ lwz r3, 0(r28)
/* 803AF248 003AC1A8 80 1C 00 04 */ lwz r0, 4(r28)
/* 803AF24C 003AC1AC 90 7E 00 20 */ stw r3, 0x20(r30)
/* 803AF250 003AC1B0 90 1E 00 24 */ stw r0, 0x24(r30)
/* 803AF254 003AC1B4 80 1C 00 08 */ lwz r0, 8(r28)
/* 803AF258 003AC1B8 90 1E 00 28 */ stw r0, 0x28(r30)
/* 803AF25C 003AC1BC D0 1E 00 30 */ stfs f0, 0x30(r30)
/* 803AF260 003AC1C0 C0 1E 00 34 */ lfs f0, 0x34(r30)
/* 803AF264 003AC1C4 C0 3E 00 30 */ lfs f1, 0x30(r30)
/* 803AF268 003AC1C8 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 803AF26C 003AC1CC 40 81 00 08 */ ble lbl_803AF274
/* 803AF270 003AC1D0 D0 3E 00 34 */ stfs f1, 0x34(r30)
lbl_803AF274:
/* 803AF274 003AC1D4 80 1E 00 08 */ lwz r0, 8(r30)
/* 803AF278 003AC1D8 7C 00 F8 40 */ cmplw r0, r31
/* 803AF27C 003AC1DC 41 82 00 5C */ beq lbl_803AF2D8
/* 803AF280 003AC1E0 80 7E 00 3C */ lwz r3, 0x3c(r30)
/* 803AF284 003AC1E4 3C 03 00 01 */ addis r0, r3, 1
/* 803AF288 003AC1E8 28 00 FF FF */ cmplwi r0, 0xffff
/* 803AF28C 003AC1EC 41 82 00 48 */ beq lbl_803AF2D4
/* 803AF290 003AC1F0 88 1F 00 1C */ lbz r0, 0x1c(r31)
/* 803AF294 003AC1F4 28 00 00 FF */ cmplwi r0, 0xff
/* 803AF298 003AC1F8 41 82 00 24 */ beq lbl_803AF2BC
/* 803AF29C 003AC1FC 4B FF 89 0D */ bl vidGetInternalId
/* 803AF2A0 003AC200 3C 03 00 01 */ addis r0, r3, 1
/* 803AF2A4 003AC204 28 00 FF FF */ cmplwi r0, 0xffff
/* 803AF2A8 003AC208 41 82 00 2C */ beq lbl_803AF2D4
/* 803AF2AC 003AC20C 88 9F 00 1C */ lbz r4, 0x1c(r31)
/* 803AF2B0 003AC210 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 803AF2B4 003AC214 48 00 48 91 */ bl hwChangeStudio
/* 803AF2B8 003AC218 48 00 00 1C */ b lbl_803AF2D4
lbl_803AF2BC:
/* 803AF2BC 003AC21C 4B FE C0 A5 */ bl synthSendKeyOff
/* 803AF2C0 003AC220 80 7E 00 10 */ lwz r3, 0x10(r30)
/* 803AF2C4 003AC224 38 00 FF FF */ li r0, -1
/* 803AF2C8 003AC228 64 63 00 08 */ oris r3, r3, 8
/* 803AF2CC 003AC22C 90 7E 00 10 */ stw r3, 0x10(r30)
/* 803AF2D0 003AC230 90 1E 00 3C */ stw r0, 0x3c(r30)
lbl_803AF2D4:
/* 803AF2D4 003AC234 93 FE 00 08 */ stw r31, 8(r30)
lbl_803AF2D8:
/* 803AF2D8 003AC238 48 00 5D AD */ bl hwEnableIrq
/* 803AF2DC 003AC23C 38 60 00 01 */ li r3, 1
/* 803AF2E0 003AC240 48 00 00 08 */ b lbl_803AF2E8
lbl_803AF2E4:
/* 803AF2E4 003AC244 38 60 00 00 */ li r3, 0
lbl_803AF2E8:
/* 803AF2E8 003AC248 39 61 00 30 */ addi r11, r1, 0x30
/* 803AF2EC 003AC24C 4B FD A7 DD */ bl _restgpr_27
/* 803AF2F0 003AC250 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803AF2F4 003AC254 7C 08 03 A6 */ mtlr r0
/* 803AF2F8 003AC258 38 21 00 30 */ addi r1, r1, 0x30
/* 803AF2FC 003AC25C 4E 80 00 20 */ blr
.global sndCheckEmitter
sndCheckEmitter:
/* 803AF300 003AC260 88 0D AE 48 */ lbz r0, sndActive@sda21(r13)
/* 803AF304 003AC264 28 00 00 00 */ cmplwi r0, 0
/* 803AF308 003AC268 41 82 00 10 */ beq lbl_803AF318
/* 803AF30C 003AC26C 80 03 00 10 */ lwz r0, 0x10(r3)
/* 803AF310 003AC270 54 03 87 FE */ rlwinm r3, r0, 0x10, 0x1f, 0x1f
/* 803AF314 003AC274 4E 80 00 20 */ blr
lbl_803AF318:
/* 803AF318 003AC278 38 60 00 00 */ li r3, 0
/* 803AF31C 003AC27C 4E 80 00 20 */ blr
.global AddEmitter
AddEmitter:
/* 803AF320 003AC280 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 803AF324 003AC284 7C 08 02 A6 */ mflr r0
/* 803AF328 003AC288 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 803AF32C 003AC28C DB E1 00 90 */ stfd f31, 0x90(r1)
/* 803AF330 003AC290 F3 E1 00 98 */ psq_st f31, 152(r1), 0, qr0
/* 803AF334 003AC294 DB C1 00 80 */ stfd f30, 0x80(r1)
/* 803AF338 003AC298 F3 C1 00 88 */ psq_st f30, 136(r1), 0, qr0
/* 803AF33C 003AC29C DB A1 00 70 */ stfd f29, 0x70(r1)
/* 803AF340 003AC2A0 F3 A1 00 78 */ psq_st f29, 120(r1), 0, qr0
/* 803AF344 003AC2A4 39 61 00 70 */ addi r11, r1, 0x70
/* 803AF348 003AC2A8 4B FD A7 19 */ bl _savegpr_20
/* 803AF34C 003AC2AC FF C0 08 90 */ fmr f30, f1
/* 803AF350 003AC2B0 83 81 00 A8 */ lwz r28, 0xa8(r1)
/* 803AF354 003AC2B4 FF A0 10 90 */ fmr f29, f2
/* 803AF358 003AC2B8 83 A1 00 AC */ lwz r29, 0xac(r1)
/* 803AF35C 003AC2BC 8B E1 00 B3 */ lbz r31, 0xb3(r1)
/* 803AF360 003AC2C0 7C 77 1B 78 */ mr r23, r3
/* 803AF364 003AC2C4 7C 98 23 78 */ mr r24, r4
/* 803AF368 003AC2C8 7C B9 2B 78 */ mr r25, r5
/* 803AF36C 003AC2CC 7C D4 33 78 */ mr r20, r6
/* 803AF370 003AC2D0 7C FA 3B 78 */ mr r26, r7
/* 803AF374 003AC2D4 7D 1B 43 78 */ mr r27, r8
/* 803AF378 003AC2D8 7D 35 4B 78 */ mr r21, r9
/* 803AF37C 003AC2DC 7D 56 53 78 */ mr r22, r10
/* 803AF380 003AC2E0 48 00 5D 3D */ bl hwDisableIrq
/* 803AF384 003AC2E4 28 17 00 00 */ cmplwi r23, 0
/* 803AF388 003AC2E8 40 82 00 10 */ bne lbl_803AF398
/* 803AF38C 003AC2EC 3C 60 80 56 */ lis r3, "tmp_em$388"@ha
/* 803AF390 003AC2F0 3B C3 F9 40 */ addi r30, r3, "tmp_em$388"@l
/* 803AF394 003AC2F4 48 00 00 08 */ b lbl_803AF39C
lbl_803AF398:
/* 803AF398 003AC2F8 7E FE BB 78 */ mr r30, r23
lbl_803AF39C:
/* 803AF39C 003AC2FC 92 9E 00 10 */ stw r20, 0x10(r30)
/* 803AF3A0 003AC300 3C 60 43 30 */ lis r3, 0x4330
/* 803AF3A4 003AC304 56 A4 06 3E */ clrlwi r4, r21, 0x18
/* 803AF3A8 003AC308 56 C0 06 3E */ clrlwi r0, r22, 0x18
/* 803AF3AC 003AC30C 80 D8 00 00 */ lwz r6, 0(r24)
/* 803AF3B0 003AC310 28 17 00 00 */ cmplwi r23, 0
/* 803AF3B4 003AC314 80 B8 00 04 */ lwz r5, 4(r24)
/* 803AF3B8 003AC318 90 81 00 24 */ stw r4, 0x24(r1)
/* 803AF3BC 003AC31C C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2)
/* 803AF3C0 003AC320 90 DE 00 14 */ stw r6, 0x14(r30)
/* 803AF3C4 003AC324 C0 62 D6 44 */ lfs f3, lbl_805AF364@sda21(r2)
/* 803AF3C8 003AC328 90 BE 00 18 */ stw r5, 0x18(r30)
/* 803AF3CC 003AC32C 80 98 00 08 */ lwz r4, 8(r24)
/* 803AF3D0 003AC330 90 61 00 20 */ stw r3, 0x20(r1)
/* 803AF3D4 003AC334 90 9E 00 1C */ stw r4, 0x1c(r30)
/* 803AF3D8 003AC338 C8 01 00 20 */ lfd f0, 0x20(r1)
/* 803AF3DC 003AC33C 80 B9 00 00 */ lwz r5, 0(r25)
/* 803AF3E0 003AC340 80 99 00 04 */ lwz r4, 4(r25)
/* 803AF3E4 003AC344 EC 00 10 28 */ fsubs f0, f0, f2
/* 803AF3E8 003AC348 90 01 00 2C */ stw r0, 0x2c(r1)
/* 803AF3EC 003AC34C 90 BE 00 20 */ stw r5, 0x20(r30)
/* 803AF3F0 003AC350 EC 23 00 32 */ fmuls f1, f3, f0
/* 803AF3F4 003AC354 90 9E 00 24 */ stw r4, 0x24(r30)
/* 803AF3F8 003AC358 90 61 00 28 */ stw r3, 0x28(r1)
/* 803AF3FC 003AC35C 80 19 00 08 */ lwz r0, 8(r25)
/* 803AF400 003AC360 C8 01 00 28 */ lfd f0, 0x28(r1)
/* 803AF404 003AC364 90 1E 00 28 */ stw r0, 0x28(r30)
/* 803AF408 003AC368 EC 00 10 28 */ fsubs f0, f0, f2
/* 803AF40C 003AC36C D3 DE 00 2C */ stfs f30, 0x2c(r30)
/* 803AF410 003AC370 B3 5E 00 44 */ sth r26, 0x44(r30)
/* 803AF414 003AC374 EC 03 00 32 */ fmuls f0, f3, f0
/* 803AF418 003AC378 D0 3E 00 30 */ stfs f1, 0x30(r30)
/* 803AF41C 003AC37C D0 1E 00 34 */ stfs f0, 0x34(r30)
/* 803AF420 003AC380 D3 BE 00 38 */ stfs f29, 0x38(r30)
/* 803AF424 003AC384 93 7E 00 40 */ stw r27, 0x40(r30)
/* 803AF428 003AC388 93 9E 00 08 */ stw r28, 8(r30)
/* 803AF42C 003AC38C 9B FE 00 46 */ stb r31, 0x46(r30)
/* 803AF430 003AC390 40 82 02 64 */ bne lbl_803AF694
/* 803AF434 003AC394 80 7E 00 08 */ lwz r3, 8(r30)
/* 803AF438 003AC398 28 03 00 00 */ cmplwi r3, 0
/* 803AF43C 003AC39C 41 82 00 1C */ beq lbl_803AF458
/* 803AF440 003AC3A0 88 03 00 1C */ lbz r0, 0x1c(r3)
/* 803AF444 003AC3A4 28 00 00 FF */ cmplwi r0, 0xff
/* 803AF448 003AC3A8 40 82 00 10 */ bne lbl_803AF458
/* 803AF44C 003AC3AC 48 00 5C 39 */ bl hwEnableIrq
/* 803AF450 003AC3B0 38 60 FF FF */ li r3, -1
/* 803AF454 003AC3B4 48 00 02 94 */ b lbl_803AF6E8
lbl_803AF458:
/* 803AF458 003AC3B8 7F C3 F3 78 */ mr r3, r30
/* 803AF45C 003AC3BC 38 81 00 0C */ addi r4, r1, 0xc
/* 803AF460 003AC3C0 38 A1 00 08 */ addi r5, r1, 8
/* 803AF464 003AC3C4 38 C1 00 18 */ addi r6, r1, 0x18
/* 803AF468 003AC3C8 38 E1 00 14 */ addi r7, r1, 0x14
/* 803AF46C 003AC3CC 39 01 00 10 */ addi r8, r1, 0x10
/* 803AF470 003AC3D0 4B FF F8 45 */ bl CalcEmitter
/* 803AF474 003AC3D4 C0 22 D6 08 */ lfs f1, lbl_805AF328@sda21(r2)
/* 803AF478 003AC3D8 C0 01 00 0C */ lfs f0, 0xc(r1)
/* 803AF47C 003AC3DC FC 01 00 00 */ fcmpu cr0, f1, f0
/* 803AF480 003AC3E0 40 82 00 10 */ bne lbl_803AF490
/* 803AF484 003AC3E4 48 00 5C 01 */ bl hwEnableIrq
/* 803AF488 003AC3E8 38 60 FF FF */ li r3, -1
/* 803AF48C 003AC3EC 48 00 02 5C */ b lbl_803AF6E8
lbl_803AF490:
/* 803AF490 003AC3F0 80 7E 00 08 */ lwz r3, 8(r30)
/* 803AF494 003AC3F4 28 03 00 00 */ cmplwi r3, 0
/* 803AF498 003AC3F8 41 82 00 0C */ beq lbl_803AF4A4
/* 803AF49C 003AC3FC 88 C3 00 1C */ lbz r6, 0x1c(r3)
/* 803AF4A0 003AC400 48 00 00 08 */ b lbl_803AF4A8
lbl_803AF4A4:
/* 803AF4A4 003AC404 88 DE 00 46 */ lbz r6, 0x46(r30)
lbl_803AF4A8:
/* 803AF4A8 003AC408 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803AF4AC 003AC40C 38 80 00 7F */ li r4, 0x7f
/* 803AF4B0 003AC410 A0 7E 00 44 */ lhz r3, 0x44(r30)
/* 803AF4B4 003AC414 38 A0 00 40 */ li r5, 0x40
/* 803AF4B8 003AC418 54 07 E7 FE */ rlwinm r7, r0, 0x1c, 0x1f, 0x1f
/* 803AF4BC 003AC41C 4B FE BB 91 */ bl synthFXStart
/* 803AF4C0 003AC420 90 7E 00 3C */ stw r3, 0x3c(r30)
/* 803AF4C4 003AC424 83 FE 00 3C */ lwz r31, 0x3c(r30)
/* 803AF4C8 003AC428 3C 1F 00 01 */ addis r0, r31, 1
/* 803AF4CC 003AC42C 28 00 FF FF */ cmplwi r0, 0xffff
/* 803AF4D0 003AC430 40 82 00 10 */ bne lbl_803AF4E0
/* 803AF4D4 003AC434 48 00 5B B1 */ bl hwEnableIrq
/* 803AF4D8 003AC438 38 60 FF FF */ li r3, -1
/* 803AF4DC 003AC43C 48 00 02 0C */ b lbl_803AF6E8
lbl_803AF4E0:
/* 803AF4E0 003AC440 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803AF4E4 003AC444 C3 E1 00 08 */ lfs f31, 8(r1)
/* 803AF4E8 003AC448 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb
/* 803AF4EC 003AC44C C3 A1 00 10 */ lfs f29, 0x10(r1)
/* 803AF4F0 003AC450 C3 C1 00 18 */ lfs f30, 0x18(r1)
/* 803AF4F4 003AC454 C0 41 00 0C */ lfs f2, 0xc(r1)
/* 803AF4F8 003AC458 41 82 00 44 */ beq lbl_803AF53C
/* 803AF4FC 003AC45C C0 1E 00 4C */ lfs f0, 0x4c(r30)
/* 803AF500 003AC460 7F E3 FB 78 */ mr r3, r31
/* 803AF504 003AC464 C0 22 D6 28 */ lfs f1, lbl_805AF348@sda21(r2)
/* 803AF508 003AC468 38 80 00 07 */ li r4, 7
/* 803AF50C 003AC46C EC 00 00 B2 */ fmuls f0, f0, f2
/* 803AF510 003AC470 38 A0 00 7F */ li r5, 0x7f
/* 803AF514 003AC474 EC 01 00 32 */ fmuls f0, f1, f0
/* 803AF518 003AC478 FC 00 00 1E */ fctiwz f0, f0
/* 803AF51C 003AC47C D8 01 00 28 */ stfd f0, 0x28(r1)
/* 803AF520 003AC480 80 C1 00 2C */ lwz r6, 0x2c(r1)
/* 803AF524 003AC484 54 C0 06 3E */ clrlwi r0, r6, 0x18
/* 803AF528 003AC488 28 00 00 7F */ cmplwi r0, 0x7f
/* 803AF52C 003AC48C 41 81 00 08 */ bgt lbl_803AF534
/* 803AF530 003AC490 7C C5 33 78 */ mr r5, r6
lbl_803AF534:
/* 803AF534 003AC494 4B FE BB E1 */ bl synthFXSetCtrl
/* 803AF538 003AC498 48 00 00 3C */ b lbl_803AF574
lbl_803AF53C:
/* 803AF53C 003AC49C C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2)
/* 803AF540 003AC4A0 38 A0 00 7F */ li r5, 0x7f
/* 803AF544 003AC4A4 EC 00 00 B2 */ fmuls f0, f0, f2
/* 803AF548 003AC4A8 FC 00 00 1E */ fctiwz f0, f0
/* 803AF54C 003AC4AC D8 01 00 28 */ stfd f0, 0x28(r1)
/* 803AF550 003AC4B0 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803AF554 003AC4B4 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 803AF558 003AC4B8 28 00 00 7F */ cmplwi r0, 0x7f
/* 803AF55C 003AC4BC 41 81 00 0C */ bgt lbl_803AF568
/* 803AF560 003AC4C0 D8 01 00 20 */ stfd f0, 0x20(r1)
/* 803AF564 003AC4C4 80 A1 00 24 */ lwz r5, 0x24(r1)
lbl_803AF568:
/* 803AF568 003AC4C8 7F E3 FB 78 */ mr r3, r31
/* 803AF56C 003AC4CC 38 80 00 07 */ li r4, 7
/* 803AF570 003AC4D0 4B FE BB A5 */ bl synthFXSetCtrl
lbl_803AF574:
/* 803AF574 003AC4D4 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2)
/* 803AF578 003AC4D8 38 A0 00 7F */ li r5, 0x7f
/* 803AF57C 003AC4DC C0 22 D6 3C */ lfs f1, lbl_805AF35C@sda21(r2)
/* 803AF580 003AC4E0 EC 00 F0 2A */ fadds f0, f0, f30
/* 803AF584 003AC4E4 EC 01 00 32 */ fmuls f0, f1, f0
/* 803AF588 003AC4E8 FC 00 00 1E */ fctiwz f0, f0
/* 803AF58C 003AC4EC D8 01 00 28 */ stfd f0, 0x28(r1)
/* 803AF590 003AC4F0 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803AF594 003AC4F4 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 803AF598 003AC4F8 28 00 00 7F */ cmplwi r0, 0x7f
/* 803AF59C 003AC4FC 41 81 00 0C */ bgt lbl_803AF5A8
/* 803AF5A0 003AC500 D8 01 00 20 */ stfd f0, 0x20(r1)
/* 803AF5A4 003AC504 80 A1 00 24 */ lwz r5, 0x24(r1)
lbl_803AF5A8:
/* 803AF5A8 003AC508 7F E3 FB 78 */ mr r3, r31
/* 803AF5AC 003AC50C 38 80 00 0A */ li r4, 0xa
/* 803AF5B0 003AC510 4B FE BB 65 */ bl synthFXSetCtrl
/* 803AF5B4 003AC514 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2)
/* 803AF5B8 003AC518 38 A0 00 7F */ li r5, 0x7f
/* 803AF5BC 003AC51C C0 22 D6 3C */ lfs f1, lbl_805AF35C@sda21(r2)
/* 803AF5C0 003AC520 EC 00 E8 28 */ fsubs f0, f0, f29
/* 803AF5C4 003AC524 EC 01 00 32 */ fmuls f0, f1, f0
/* 803AF5C8 003AC528 FC 00 00 1E */ fctiwz f0, f0
/* 803AF5CC 003AC52C D8 01 00 30 */ stfd f0, 0x30(r1)
/* 803AF5D0 003AC530 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803AF5D4 003AC534 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 803AF5D8 003AC538 28 00 00 7F */ cmplwi r0, 0x7f
/* 803AF5DC 003AC53C 41 81 00 0C */ bgt lbl_803AF5E8
/* 803AF5E0 003AC540 D8 01 00 38 */ stfd f0, 0x38(r1)
/* 803AF5E4 003AC544 80 A1 00 3C */ lwz r5, 0x3c(r1)
lbl_803AF5E8:
/* 803AF5E8 003AC548 7F E3 FB 78 */ mr r3, r31
/* 803AF5EC 003AC54C 38 80 00 83 */ li r4, 0x83
/* 803AF5F0 003AC550 4B FE BB 25 */ bl synthFXSetCtrl
/* 803AF5F4 003AC554 C0 02 D6 40 */ lfs f0, lbl_805AF360@sda21(r2)
/* 803AF5F8 003AC558 EC 20 07 F2 */ fmuls f1, f0, f31
/* 803AF5FC 003AC55C 4B FD A3 59 */ bl __cvt_fp2unsigned
/* 803AF600 003AC560 28 03 3F FF */ cmplwi r3, 0x3fff
/* 803AF604 003AC564 38 A0 3F FF */ li r5, 0x3fff
/* 803AF608 003AC568 41 81 00 08 */ bgt lbl_803AF610
/* 803AF60C 003AC56C 54 65 04 3E */ clrlwi r5, r3, 0x10
lbl_803AF610:
/* 803AF610 003AC570 7F E3 FB 78 */ mr r3, r31
/* 803AF614 003AC574 38 80 00 84 */ li r4, 0x84
/* 803AF618 003AC578 4B FE BB E1 */ bl synthFXSetCtrl14
/* 803AF61C 003AC57C 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 803AF620 003AC580 28 03 00 00 */ cmplwi r3, 0
/* 803AF624 003AC584 41 82 00 64 */ beq lbl_803AF688
/* 803AF628 003AC588 82 E3 00 04 */ lwz r23, 4(r3)
/* 803AF62C 003AC58C 3B 00 00 00 */ li r24, 0
/* 803AF630 003AC590 48 00 00 44 */ b lbl_803AF674
lbl_803AF634:
/* 803AF634 003AC594 88 97 00 00 */ lbz r4, 0(r23)
/* 803AF638 003AC598 28 04 00 40 */ cmplwi r4, 0x40
/* 803AF63C 003AC59C 41 80 00 14 */ blt lbl_803AF650
/* 803AF640 003AC5A0 28 04 00 80 */ cmplwi r4, 0x80
/* 803AF644 003AC5A4 41 82 00 0C */ beq lbl_803AF650
/* 803AF648 003AC5A8 28 04 00 84 */ cmplwi r4, 0x84
/* 803AF64C 003AC5AC 40 82 00 14 */ bne lbl_803AF660
lbl_803AF650:
/* 803AF650 003AC5B0 A0 B7 00 02 */ lhz r5, 2(r23)
/* 803AF654 003AC5B4 7F E3 FB 78 */ mr r3, r31
/* 803AF658 003AC5B8 4B FE BB A1 */ bl synthFXSetCtrl14
/* 803AF65C 003AC5BC 48 00 00 10 */ b lbl_803AF66C
lbl_803AF660:
/* 803AF660 003AC5C0 88 B7 00 02 */ lbz r5, 2(r23)
/* 803AF664 003AC5C4 7F E3 FB 78 */ mr r3, r31
/* 803AF668 003AC5C8 4B FE BA AD */ bl synthFXSetCtrl
lbl_803AF66C:
/* 803AF66C 003AC5CC 3A F7 00 04 */ addi r23, r23, 4
/* 803AF670 003AC5D0 3B 18 00 01 */ addi r24, r24, 1
lbl_803AF674:
/* 803AF674 003AC5D4 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 803AF678 003AC5D8 57 04 06 3E */ clrlwi r4, r24, 0x18
/* 803AF67C 003AC5DC 88 03 00 00 */ lbz r0, 0(r3)
/* 803AF680 003AC5E0 7C 04 00 40 */ cmplw r4, r0
/* 803AF684 003AC5E4 41 80 FF B0 */ blt lbl_803AF634
lbl_803AF688:
/* 803AF688 003AC5E8 48 00 59 FD */ bl hwEnableIrq
/* 803AF68C 003AC5EC 80 7E 00 3C */ lwz r3, 0x3c(r30)
/* 803AF690 003AC5F0 48 00 00 58 */ b lbl_803AF6E8
lbl_803AF694:
/* 803AF694 003AC5F4 80 0D AF 78 */ lwz r0, s3dEmitterRoot@sda21(r13)
/* 803AF698 003AC5F8 28 00 00 00 */ cmplwi r0, 0
/* 803AF69C 003AC5FC 90 1E 00 00 */ stw r0, 0(r30)
/* 803AF6A0 003AC600 41 82 00 0C */ beq lbl_803AF6AC
/* 803AF6A4 003AC604 80 6D AF 78 */ lwz r3, s3dEmitterRoot@sda21(r13)
/* 803AF6A8 003AC608 93 C3 00 04 */ stw r30, 4(r3)
lbl_803AF6AC:
/* 803AF6AC 003AC60C 38 60 00 00 */ li r3, 0
/* 803AF6B0 003AC610 38 00 FF FF */ li r0, -1
/* 803AF6B4 003AC614 90 7E 00 04 */ stw r3, 4(r30)
/* 803AF6B8 003AC618 93 CD AF 78 */ stw r30, s3dEmitterRoot@sda21(r13)
/* 803AF6BC 003AC61C 93 BE 00 0C */ stw r29, 0xc(r30)
/* 803AF6C0 003AC620 90 1E 00 3C */ stw r0, 0x3c(r30)
/* 803AF6C4 003AC624 B0 7E 00 48 */ sth r3, 0x48(r30)
/* 803AF6C8 003AC628 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803AF6CC 003AC62C 64 00 00 03 */ oris r0, r0, 3
/* 803AF6D0 003AC630 90 1E 00 10 */ stw r0, 0x10(r30)
/* 803AF6D4 003AC634 A0 7E 00 44 */ lhz r3, 0x44(r30)
/* 803AF6D8 003AC638 4B FE B9 41 */ bl synthFXGetMaxVoices
/* 803AF6DC 003AC63C 98 7E 00 47 */ stb r3, 0x47(r30)
/* 803AF6E0 003AC640 48 00 59 A5 */ bl hwEnableIrq
/* 803AF6E4 003AC644 38 60 FF FF */ li r3, -1
lbl_803AF6E8:
/* 803AF6E8 003AC648 E3 E1 00 98 */ psq_l f31, 152(r1), 0, qr0
/* 803AF6EC 003AC64C CB E1 00 90 */ lfd f31, 0x90(r1)
/* 803AF6F0 003AC650 E3 C1 00 88 */ psq_l f30, 136(r1), 0, qr0
/* 803AF6F4 003AC654 CB C1 00 80 */ lfd f30, 0x80(r1)
/* 803AF6F8 003AC658 E3 A1 00 78 */ psq_l f29, 120(r1), 0, qr0
/* 803AF6FC 003AC65C 39 61 00 70 */ addi r11, r1, 0x70
/* 803AF700 003AC660 CB A1 00 70 */ lfd f29, 0x70(r1)
/* 803AF704 003AC664 4B FD A3 A9 */ bl _restgpr_20
/* 803AF708 003AC668 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 803AF70C 003AC66C 7C 08 03 A6 */ mtlr r0
/* 803AF710 003AC670 38 21 00 A0 */ addi r1, r1, 0xa0
/* 803AF714 003AC674 4E 80 00 20 */ blr
.global sndAddEmitterParaEx
sndAddEmitterParaEx:
/* 803AF718 003AC678 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803AF71C 003AC67C 7C 08 02 A6 */ mflr r0
/* 803AF720 003AC680 90 01 00 24 */ stw r0, 0x24(r1)
/* 803AF724 003AC684 81 81 00 28 */ lwz r12, 0x28(r1)
/* 803AF728 003AC688 88 0D AE 48 */ lbz r0, sndActive@sda21(r13)
/* 803AF72C 003AC68C 81 61 00 2C */ lwz r11, 0x2c(r1)
/* 803AF730 003AC690 28 00 00 00 */ cmplwi r0, 0
/* 803AF734 003AC694 41 82 00 20 */ beq lbl_803AF754
/* 803AF738 003AC698 91 81 00 08 */ stw r12, 8(r1)
/* 803AF73C 003AC69C 38 00 00 00 */ li r0, 0
/* 803AF740 003AC6A0 55 08 04 3E */ clrlwi r8, r8, 0x10
/* 803AF744 003AC6A4 91 61 00 0C */ stw r11, 0xc(r1)
/* 803AF748 003AC6A8 90 01 00 10 */ stw r0, 0x10(r1)
/* 803AF74C 003AC6AC 4B FF FB D5 */ bl AddEmitter
/* 803AF750 003AC6B0 48 00 00 08 */ b lbl_803AF758
lbl_803AF754:
/* 803AF754 003AC6B4 38 60 FF FF */ li r3, -1
lbl_803AF758:
/* 803AF758 003AC6B8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803AF75C 003AC6BC 7C 08 03 A6 */ mtlr r0
/* 803AF760 003AC6C0 38 21 00 20 */ addi r1, r1, 0x20
/* 803AF764 003AC6C4 4E 80 00 20 */ blr
.global sndRemoveEmitter
sndRemoveEmitter:
/* 803AF768 003AC6C8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803AF76C 003AC6CC 7C 08 02 A6 */ mflr r0
/* 803AF770 003AC6D0 90 01 00 14 */ stw r0, 0x14(r1)
/* 803AF774 003AC6D4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803AF778 003AC6D8 7C 7F 1B 78 */ mr r31, r3
/* 803AF77C 003AC6DC 88 0D AE 48 */ lbz r0, sndActive@sda21(r13)
/* 803AF780 003AC6E0 28 00 00 00 */ cmplwi r0, 0
/* 803AF784 003AC6E4 41 82 00 74 */ beq lbl_803AF7F8
/* 803AF788 003AC6E8 48 00 59 35 */ bl hwDisableIrq
/* 803AF78C 003AC6EC 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 803AF790 003AC6F0 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf
/* 803AF794 003AC6F4 41 82 00 58 */ beq lbl_803AF7EC
/* 803AF798 003AC6F8 80 7F 00 00 */ lwz r3, 0(r31)
/* 803AF79C 003AC6FC 28 03 00 00 */ cmplwi r3, 0
/* 803AF7A0 003AC700 41 82 00 0C */ beq lbl_803AF7AC
/* 803AF7A4 003AC704 80 1F 00 04 */ lwz r0, 4(r31)
/* 803AF7A8 003AC708 90 03 00 04 */ stw r0, 4(r3)
lbl_803AF7AC:
/* 803AF7AC 003AC70C 80 7F 00 04 */ lwz r3, 4(r31)
/* 803AF7B0 003AC710 28 03 00 00 */ cmplwi r3, 0
/* 803AF7B4 003AC714 41 82 00 10 */ beq lbl_803AF7C4
/* 803AF7B8 003AC718 80 1F 00 00 */ lwz r0, 0(r31)
/* 803AF7BC 003AC71C 90 03 00 00 */ stw r0, 0(r3)
/* 803AF7C0 003AC720 48 00 00 0C */ b lbl_803AF7CC
lbl_803AF7C4:
/* 803AF7C4 003AC724 80 1F 00 00 */ lwz r0, 0(r31)
/* 803AF7C8 003AC728 90 0D AF 78 */ stw r0, s3dEmitterRoot@sda21(r13)
lbl_803AF7CC:
/* 803AF7CC 003AC72C 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 803AF7D0 003AC730 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 803AF7D4 003AC734 90 1F 00 10 */ stw r0, 0x10(r31)
/* 803AF7D8 003AC738 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 803AF7DC 003AC73C 3C 03 00 01 */ addis r0, r3, 1
/* 803AF7E0 003AC740 28 00 FF FF */ cmplwi r0, 0xffff
/* 803AF7E4 003AC744 41 82 00 08 */ beq lbl_803AF7EC
/* 803AF7E8 003AC748 4B FE BB 79 */ bl synthSendKeyOff
lbl_803AF7EC:
/* 803AF7EC 003AC74C 48 00 58 99 */ bl hwEnableIrq
/* 803AF7F0 003AC750 38 60 00 01 */ li r3, 1
/* 803AF7F4 003AC754 48 00 00 08 */ b lbl_803AF7FC
lbl_803AF7F8:
/* 803AF7F8 003AC758 38 60 00 00 */ li r3, 0
lbl_803AF7FC:
/* 803AF7FC 003AC75C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803AF800 003AC760 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803AF804 003AC764 7C 08 03 A6 */ mtlr r0
/* 803AF808 003AC768 38 21 00 10 */ addi r1, r1, 0x10
/* 803AF80C 003AC76C 4E 80 00 20 */ blr
.global sndEmitterVoiceID
sndEmitterVoiceID:
/* 803AF810 003AC770 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803AF814 003AC774 7C 08 02 A6 */ mflr r0
/* 803AF818 003AC778 90 01 00 14 */ stw r0, 0x14(r1)
/* 803AF81C 003AC77C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803AF820 003AC780 3B E0 FF FF */ li r31, -1
/* 803AF824 003AC784 93 C1 00 08 */ stw r30, 8(r1)
/* 803AF828 003AC788 7C 7E 1B 78 */ mr r30, r3
/* 803AF82C 003AC78C 88 0D AE 48 */ lbz r0, sndActive@sda21(r13)
/* 803AF830 003AC790 28 00 00 00 */ cmplwi r0, 0
/* 803AF834 003AC794 41 82 00 1C */ beq lbl_803AF850
/* 803AF838 003AC798 48 00 58 85 */ bl hwDisableIrq
/* 803AF83C 003AC79C 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803AF840 003AC7A0 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf
/* 803AF844 003AC7A4 41 82 00 08 */ beq lbl_803AF84C
/* 803AF848 003AC7A8 83 FE 00 3C */ lwz r31, 0x3c(r30)
lbl_803AF84C:
/* 803AF84C 003AC7AC 48 00 58 39 */ bl hwEnableIrq
lbl_803AF850:
/* 803AF850 003AC7B0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803AF854 003AC7B4 7F E3 FB 78 */ mr r3, r31
/* 803AF858 003AC7B8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803AF85C 003AC7BC 83 C1 00 08 */ lwz r30, 8(r1)
/* 803AF860 003AC7C0 7C 08 03 A6 */ mtlr r0
/* 803AF864 003AC7C4 38 21 00 10 */ addi r1, r1, 0x10
/* 803AF868 003AC7C8 4E 80 00 20 */ blr
.global s3dKillEmitterByFXID
s3dKillEmitterByFXID:
/* 803AF86C 003AC7CC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803AF870 003AC7D0 7C 08 02 A6 */ mflr r0
/* 803AF874 003AC7D4 90 01 00 24 */ stw r0, 0x24(r1)
/* 803AF878 003AC7D8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803AF87C 003AC7DC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803AF880 003AC7E0 7C 9E 23 78 */ mr r30, r4
/* 803AF884 003AC7E4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803AF888 003AC7E8 7C 7D 1B 78 */ mr r29, r3
/* 803AF88C 003AC7EC 93 81 00 10 */ stw r28, 0x10(r1)
/* 803AF890 003AC7F0 83 8D AF 78 */ lwz r28, s3dEmitterRoot@sda21(r13)
/* 803AF894 003AC7F4 48 00 00 AC */ b lbl_803AF940
lbl_803AF898:
/* 803AF898 003AC7F8 7F A4 EB 78 */ mr r4, r29
/* 803AF89C 003AC7FC 83 FC 00 00 */ lwz r31, 0(r28)
/* 803AF8A0 003AC800 7F C9 03 A6 */ mtctr r30
/* 803AF8A4 003AC804 28 1E 00 00 */ cmplwi r30, 0
/* 803AF8A8 003AC808 40 81 00 94 */ ble lbl_803AF93C
lbl_803AF8AC:
/* 803AF8AC 003AC80C A0 7C 00 44 */ lhz r3, 0x44(r28)
/* 803AF8B0 003AC810 A0 04 00 00 */ lhz r0, 0(r4)
/* 803AF8B4 003AC814 7C 03 00 40 */ cmplw r3, r0
/* 803AF8B8 003AC818 40 82 00 7C */ bne lbl_803AF934
/* 803AF8BC 003AC81C 88 0D AE 48 */ lbz r0, sndActive@sda21(r13)
/* 803AF8C0 003AC820 28 00 00 00 */ cmplwi r0, 0
/* 803AF8C4 003AC824 41 82 00 78 */ beq lbl_803AF93C
/* 803AF8C8 003AC828 48 00 57 F5 */ bl hwDisableIrq
/* 803AF8CC 003AC82C 80 1C 00 10 */ lwz r0, 0x10(r28)
/* 803AF8D0 003AC830 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf
/* 803AF8D4 003AC834 41 82 00 58 */ beq lbl_803AF92C
/* 803AF8D8 003AC838 80 7C 00 00 */ lwz r3, 0(r28)
/* 803AF8DC 003AC83C 28 03 00 00 */ cmplwi r3, 0
/* 803AF8E0 003AC840 41 82 00 0C */ beq lbl_803AF8EC
/* 803AF8E4 003AC844 80 1C 00 04 */ lwz r0, 4(r28)
/* 803AF8E8 003AC848 90 03 00 04 */ stw r0, 4(r3)
lbl_803AF8EC:
/* 803AF8EC 003AC84C 80 7C 00 04 */ lwz r3, 4(r28)
/* 803AF8F0 003AC850 28 03 00 00 */ cmplwi r3, 0
/* 803AF8F4 003AC854 41 82 00 10 */ beq lbl_803AF904
/* 803AF8F8 003AC858 80 1C 00 00 */ lwz r0, 0(r28)
/* 803AF8FC 003AC85C 90 03 00 00 */ stw r0, 0(r3)
/* 803AF900 003AC860 48 00 00 0C */ b lbl_803AF90C
lbl_803AF904:
/* 803AF904 003AC864 80 1C 00 00 */ lwz r0, 0(r28)
/* 803AF908 003AC868 90 0D AF 78 */ stw r0, s3dEmitterRoot@sda21(r13)
lbl_803AF90C:
/* 803AF90C 003AC86C 80 1C 00 10 */ lwz r0, 0x10(r28)
/* 803AF910 003AC870 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 803AF914 003AC874 90 1C 00 10 */ stw r0, 0x10(r28)
/* 803AF918 003AC878 80 7C 00 3C */ lwz r3, 0x3c(r28)
/* 803AF91C 003AC87C 3C 03 00 01 */ addis r0, r3, 1
/* 803AF920 003AC880 28 00 FF FF */ cmplwi r0, 0xffff
/* 803AF924 003AC884 41 82 00 08 */ beq lbl_803AF92C
/* 803AF928 003AC888 4B FE BA 39 */ bl synthSendKeyOff
lbl_803AF92C:
/* 803AF92C 003AC88C 48 00 57 59 */ bl hwEnableIrq
/* 803AF930 003AC890 48 00 00 0C */ b lbl_803AF93C
lbl_803AF934:
/* 803AF934 003AC894 38 84 00 0A */ addi r4, r4, 0xa
/* 803AF938 003AC898 42 00 FF 74 */ bdnz lbl_803AF8AC
lbl_803AF93C:
/* 803AF93C 003AC89C 7F FC FB 78 */ mr r28, r31
lbl_803AF940:
/* 803AF940 003AC8A0 28 1C 00 00 */ cmplwi r28, 0
/* 803AF944 003AC8A4 40 82 FF 54 */ bne lbl_803AF898
/* 803AF948 003AC8A8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803AF94C 003AC8AC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803AF950 003AC8B0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803AF954 003AC8B4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803AF958 003AC8B8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 803AF95C 003AC8BC 7C 08 03 A6 */ mtlr r0
/* 803AF960 003AC8C0 38 21 00 20 */ addi r1, r1, 0x20
/* 803AF964 003AC8C4 4E 80 00 20 */ blr
.global sndUpdateListener
sndUpdateListener:
/* 803AF968 003AC8C8 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 803AF96C 003AC8CC 7C 08 02 A6 */ mflr r0
/* 803AF970 003AC8D0 90 01 00 64 */ stw r0, 0x64(r1)
/* 803AF974 003AC8D4 39 61 00 60 */ addi r11, r1, 0x60
/* 803AF978 003AC8D8 4B FD A0 FD */ bl _savegpr_25
/* 803AF97C 003AC8DC 88 0D AE 48 */ lbz r0, sndActive@sda21(r13)
/* 803AF980 003AC8E0 7C 7E 1B 78 */ mr r30, r3
/* 803AF984 003AC8E4 7C 99 23 78 */ mr r25, r4
/* 803AF988 003AC8E8 7C BA 2B 78 */ mr r26, r5
/* 803AF98C 003AC8EC 28 00 00 00 */ cmplwi r0, 0
/* 803AF990 003AC8F0 7C DB 33 78 */ mr r27, r6
/* 803AF994 003AC8F4 7C FC 3B 78 */ mr r28, r7
/* 803AF998 003AC8F8 7D 1D 43 78 */ mr r29, r8
/* 803AF99C 003AC8FC 7D 3F 4B 78 */ mr r31, r9
/* 803AF9A0 003AC900 41 82 01 B0 */ beq lbl_803AFB50
/* 803AF9A4 003AC904 48 00 57 19 */ bl hwDisableIrq
/* 803AF9A8 003AC908 80 D9 00 00 */ lwz r6, 0(r25)
/* 803AF9AC 003AC90C 38 7E 00 38 */ addi r3, r30, 0x38
/* 803AF9B0 003AC910 80 19 00 04 */ lwz r0, 4(r25)
/* 803AF9B4 003AC914 38 9E 00 2C */ addi r4, r30, 0x2c
/* 803AF9B8 003AC918 38 BE 00 44 */ addi r5, r30, 0x44
/* 803AF9BC 003AC91C 90 DE 00 10 */ stw r6, 0x10(r30)
/* 803AF9C0 003AC920 90 1E 00 14 */ stw r0, 0x14(r30)
/* 803AF9C4 003AC924 80 19 00 08 */ lwz r0, 8(r25)
/* 803AF9C8 003AC928 90 1E 00 18 */ stw r0, 0x18(r30)
/* 803AF9CC 003AC92C 80 DA 00 00 */ lwz r6, 0(r26)
/* 803AF9D0 003AC930 80 1A 00 04 */ lwz r0, 4(r26)
/* 803AF9D4 003AC934 90 DE 00 20 */ stw r6, 0x20(r30)
/* 803AF9D8 003AC938 90 1E 00 24 */ stw r0, 0x24(r30)
/* 803AF9DC 003AC93C 80 1A 00 08 */ lwz r0, 8(r26)
/* 803AF9E0 003AC940 90 1E 00 28 */ stw r0, 0x28(r30)
/* 803AF9E4 003AC944 80 DB 00 00 */ lwz r6, 0(r27)
/* 803AF9E8 003AC948 80 1B 00 04 */ lwz r0, 4(r27)
/* 803AF9EC 003AC94C 90 DE 00 2C */ stw r6, 0x2c(r30)
/* 803AF9F0 003AC950 90 1E 00 30 */ stw r0, 0x30(r30)
/* 803AF9F4 003AC954 80 1B 00 08 */ lwz r0, 8(r27)
/* 803AF9F8 003AC958 90 1E 00 34 */ stw r0, 0x34(r30)
/* 803AF9FC 003AC95C 80 DC 00 00 */ lwz r6, 0(r28)
/* 803AFA00 003AC960 80 1C 00 04 */ lwz r0, 4(r28)
/* 803AFA04 003AC964 90 DE 00 44 */ stw r6, 0x44(r30)
/* 803AFA08 003AC968 90 1E 00 48 */ stw r0, 0x48(r30)
/* 803AFA0C 003AC96C 80 1C 00 08 */ lwz r0, 8(r28)
/* 803AFA10 003AC970 90 1E 00 4C */ stw r0, 0x4c(r30)
/* 803AFA14 003AC974 48 00 14 59 */ bl salCrossProduct
/* 803AFA18 003AC978 C0 1E 00 38 */ lfs f0, 0x38(r30)
/* 803AFA1C 003AC97C 38 7E 00 50 */ addi r3, r30, 0x50
/* 803AFA20 003AC980 38 81 00 08 */ addi r4, r1, 8
/* 803AFA24 003AC984 D0 01 00 08 */ stfs f0, 8(r1)
/* 803AFA28 003AC988 C0 1E 00 3C */ lfs f0, 0x3c(r30)
/* 803AFA2C 003AC98C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 803AFA30 003AC990 C0 1E 00 40 */ lfs f0, 0x40(r30)
/* 803AFA34 003AC994 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 803AFA38 003AC998 C0 1E 00 44 */ lfs f0, 0x44(r30)
/* 803AFA3C 003AC99C D0 01 00 0C */ stfs f0, 0xc(r1)
/* 803AFA40 003AC9A0 C0 1E 00 48 */ lfs f0, 0x48(r30)
/* 803AFA44 003AC9A4 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 803AFA48 003AC9A8 C0 1E 00 4C */ lfs f0, 0x4c(r30)
/* 803AFA4C 003AC9AC D0 01 00 24 */ stfs f0, 0x24(r1)
/* 803AFA50 003AC9B0 C0 1E 00 2C */ lfs f0, 0x2c(r30)
/* 803AFA54 003AC9B4 FC 00 00 50 */ fneg f0, f0
/* 803AFA58 003AC9B8 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 803AFA5C 003AC9BC C0 1E 00 30 */ lfs f0, 0x30(r30)
/* 803AFA60 003AC9C0 FC 00 00 50 */ fneg f0, f0
/* 803AFA64 003AC9C4 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 803AFA68 003AC9C8 C0 1E 00 34 */ lfs f0, 0x34(r30)
/* 803AFA6C 003AC9CC FC 00 00 50 */ fneg f0, f0
/* 803AFA70 003AC9D0 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 803AFA74 003AC9D4 C0 1E 00 10 */ lfs f0, 0x10(r30)
/* 803AFA78 003AC9D8 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 803AFA7C 003AC9DC C0 1E 00 14 */ lfs f0, 0x14(r30)
/* 803AFA80 003AC9E0 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 803AFA84 003AC9E4 C0 1E 00 18 */ lfs f0, 0x18(r30)
/* 803AFA88 003AC9E8 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 803AFA8C 003AC9EC 48 00 14 45 */ bl salInvertMatrix
/* 803AFA90 003AC9F0 57 A3 06 3E */ clrlwi r3, r29, 0x18
/* 803AFA94 003AC9F4 3C 00 43 30 */ lis r0, 0x4330
/* 803AFA98 003AC9F8 90 61 00 3C */ stw r3, 0x3c(r1)
/* 803AFA9C 003AC9FC C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2)
/* 803AFAA0 003ACA00 90 01 00 38 */ stw r0, 0x38(r1)
/* 803AFAA4 003ACA04 C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2)
/* 803AFAA8 003ACA08 C8 21 00 38 */ lfd f1, 0x38(r1)
/* 803AFAAC 003ACA0C EC 21 10 28 */ fsubs f1, f1, f2
/* 803AFAB0 003ACA10 EC 01 00 24 */ fdivs f0, f1, f0
/* 803AFAB4 003ACA14 D0 1E 00 8C */ stfs f0, 0x8c(r30)
/* 803AFAB8 003ACA18 80 BE 00 08 */ lwz r5, 8(r30)
/* 803AFABC 003ACA1C 7C 1F 28 40 */ cmplw r31, r5
/* 803AFAC0 003ACA20 41 82 00 84 */ beq lbl_803AFB44
/* 803AFAC4 003ACA24 28 05 00 00 */ cmplwi r5, 0
/* 803AFAC8 003ACA28 41 82 00 4C */ beq lbl_803AFB14
/* 803AFACC 003ACA2C 80 6D AF 74 */ lwz r3, s3dListenerRoot@sda21(r13)
/* 803AFAD0 003ACA30 38 80 00 00 */ li r4, 0
/* 803AFAD4 003ACA34 48 00 00 18 */ b lbl_803AFAEC
lbl_803AFAD8:
/* 803AFAD8 003ACA38 80 03 00 08 */ lwz r0, 8(r3)
/* 803AFADC 003ACA3C 7C 00 28 40 */ cmplw r0, r5
/* 803AFAE0 003ACA40 40 82 00 08 */ bne lbl_803AFAE8
/* 803AFAE4 003ACA44 38 84 00 01 */ addi r4, r4, 1
lbl_803AFAE8:
/* 803AFAE8 003ACA48 80 63 00 00 */ lwz r3, 0(r3)
lbl_803AFAEC:
/* 803AFAEC 003ACA4C 28 03 00 00 */ cmplwi r3, 0
/* 803AFAF0 003ACA50 40 82 FF E8 */ bne lbl_803AFAD8
/* 803AFAF4 003ACA54 28 04 00 01 */ cmplwi r4, 1
/* 803AFAF8 003ACA58 40 82 00 1C */ bne lbl_803AFB14
/* 803AFAFC 003ACA5C 80 05 00 08 */ lwz r0, 8(r5)
/* 803AFB00 003ACA60 54 00 00 7E */ clrlwi r0, r0, 1
/* 803AFB04 003ACA64 90 05 00 08 */ stw r0, 8(r5)
/* 803AFB08 003ACA68 80 05 00 08 */ lwz r0, 8(r5)
/* 803AFB0C 003ACA6C 64 00 40 00 */ oris r0, r0, 0x4000
/* 803AFB10 003ACA70 90 05 00 08 */ stw r0, 8(r5)
lbl_803AFB14:
/* 803AFB14 003ACA74 28 1F 00 00 */ cmplwi r31, 0
/* 803AFB18 003ACA78 93 FE 00 08 */ stw r31, 8(r30)
/* 803AFB1C 003ACA7C 41 82 00 28 */ beq lbl_803AFB44
/* 803AFB20 003ACA80 80 9E 00 08 */ lwz r4, 8(r30)
/* 803AFB24 003ACA84 80 64 00 08 */ lwz r3, 8(r4)
/* 803AFB28 003ACA88 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0
/* 803AFB2C 003ACA8C 40 82 00 18 */ bne lbl_803AFB44
/* 803AFB30 003ACA90 80 04 00 2C */ lwz r0, 0x2c(r4)
/* 803AFB34 003ACA94 28 00 00 00 */ cmplwi r0, 0
/* 803AFB38 003ACA98 40 82 00 0C */ bne lbl_803AFB44
/* 803AFB3C 003ACA9C 64 60 80 00 */ oris r0, r3, 0x8000
/* 803AFB40 003ACAA0 90 04 00 08 */ stw r0, 8(r4)
lbl_803AFB44:
/* 803AFB44 003ACAA4 48 00 55 41 */ bl hwEnableIrq
/* 803AFB48 003ACAA8 38 60 00 01 */ li r3, 1
/* 803AFB4C 003ACAAC 48 00 00 08 */ b lbl_803AFB54
lbl_803AFB50:
/* 803AFB50 003ACAB0 38 60 00 00 */ li r3, 0
lbl_803AFB54:
/* 803AFB54 003ACAB4 39 61 00 60 */ addi r11, r1, 0x60
/* 803AFB58 003ACAB8 4B FD 9F 69 */ bl _restgpr_25
/* 803AFB5C 003ACABC 80 01 00 64 */ lwz r0, 0x64(r1)
/* 803AFB60 003ACAC0 7C 08 03 A6 */ mtlr r0
/* 803AFB64 003ACAC4 38 21 00 60 */ addi r1, r1, 0x60
/* 803AFB68 003ACAC8 4E 80 00 20 */ blr
.global sndAddListener
sndAddListener:
/* 803AFB6C 003ACACC 94 21 FF 70 */ stwu r1, -0x90(r1)
/* 803AFB70 003ACAD0 7C 08 02 A6 */ mflr r0
/* 803AFB74 003ACAD4 90 01 00 94 */ stw r0, 0x94(r1)
/* 803AFB78 003ACAD8 DB E1 00 80 */ stfd f31, 0x80(r1)
/* 803AFB7C 003ACADC F3 E1 00 88 */ psq_st f31, 136(r1), 0, qr0
/* 803AFB80 003ACAE0 DB C1 00 70 */ stfd f30, 0x70(r1)
/* 803AFB84 003ACAE4 F3 C1 00 78 */ psq_st f30, 120(r1), 0, qr0
/* 803AFB88 003ACAE8 DB A1 00 60 */ stfd f29, 0x60(r1)
/* 803AFB8C 003ACAEC F3 A1 00 68 */ psq_st f29, 104(r1), 0, qr0
/* 803AFB90 003ACAF0 39 61 00 60 */ addi r11, r1, 0x60
/* 803AFB94 003ACAF4 4B FD 9E DD */ bl _savegpr_24
/* 803AFB98 003ACAF8 88 0D AE 48 */ lbz r0, sndActive@sda21(r13)
/* 803AFB9C 003ACAFC FF A0 08 90 */ fmr f29, f1
/* 803AFBA0 003ACB00 FF C0 10 90 */ fmr f30, f2
/* 803AFBA4 003ACB04 7C 7B 1B 78 */ mr r27, r3
/* 803AFBA8 003ACB08 FF E0 18 90 */ fmr f31, f3
/* 803AFBAC 003ACB0C 28 00 00 00 */ cmplwi r0, 0
/* 803AFBB0 003ACB10 7C 98 23 78 */ mr r24, r4
/* 803AFBB4 003ACB14 7C B9 2B 78 */ mr r25, r5
/* 803AFBB8 003ACB18 7C DA 33 78 */ mr r26, r6
/* 803AFBBC 003ACB1C 7C FC 3B 78 */ mr r28, r7
/* 803AFBC0 003ACB20 7D 1D 43 78 */ mr r29, r8
/* 803AFBC4 003ACB24 7D 3E 4B 78 */ mr r30, r9
/* 803AFBC8 003ACB28 7D 5F 53 78 */ mr r31, r10
/* 803AFBCC 003ACB2C 41 82 01 8C */ beq lbl_803AFD58
/* 803AFBD0 003ACB30 48 00 54 ED */ bl hwDisableIrq
/* 803AFBD4 003ACB34 80 0D AF 74 */ lwz r0, s3dListenerRoot@sda21(r13)
/* 803AFBD8 003ACB38 28 00 00 00 */ cmplwi r0, 0
/* 803AFBDC 003ACB3C 90 1B 00 00 */ stw r0, 0(r27)
/* 803AFBE0 003ACB40 41 82 00 0C */ beq lbl_803AFBEC
/* 803AFBE4 003ACB44 80 6D AF 74 */ lwz r3, s3dListenerRoot@sda21(r13)
/* 803AFBE8 003ACB48 93 63 00 04 */ stw r27, 4(r3)
lbl_803AFBEC:
/* 803AFBEC 003ACB4C 38 00 00 00 */ li r0, 0
/* 803AFBF0 003ACB50 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2)
/* 803AFBF4 003ACB54 90 1B 00 04 */ stw r0, 4(r27)
/* 803AFBF8 003ACB58 38 7B 00 38 */ addi r3, r27, 0x38
/* 803AFBFC 003ACB5C 38 9B 00 2C */ addi r4, r27, 0x2c
/* 803AFC00 003ACB60 38 BB 00 44 */ addi r5, r27, 0x44
/* 803AFC04 003ACB64 93 6D AF 74 */ stw r27, s3dListenerRoot@sda21(r13)
/* 803AFC08 003ACB68 80 D8 00 00 */ lwz r6, 0(r24)
/* 803AFC0C 003ACB6C 80 18 00 04 */ lwz r0, 4(r24)
/* 803AFC10 003ACB70 90 DB 00 10 */ stw r6, 0x10(r27)
/* 803AFC14 003ACB74 90 1B 00 14 */ stw r0, 0x14(r27)
/* 803AFC18 003ACB78 80 18 00 08 */ lwz r0, 8(r24)
/* 803AFC1C 003ACB7C 90 1B 00 18 */ stw r0, 0x18(r27)
/* 803AFC20 003ACB80 80 D9 00 00 */ lwz r6, 0(r25)
/* 803AFC24 003ACB84 80 19 00 04 */ lwz r0, 4(r25)
/* 803AFC28 003ACB88 90 DB 00 20 */ stw r6, 0x20(r27)
/* 803AFC2C 003ACB8C 90 1B 00 24 */ stw r0, 0x24(r27)
/* 803AFC30 003ACB90 80 19 00 08 */ lwz r0, 8(r25)
/* 803AFC34 003ACB94 90 1B 00 28 */ stw r0, 0x28(r27)
/* 803AFC38 003ACB98 80 DA 00 00 */ lwz r6, 0(r26)
/* 803AFC3C 003ACB9C 80 1A 00 04 */ lwz r0, 4(r26)
/* 803AFC40 003ACBA0 90 DB 00 2C */ stw r6, 0x2c(r27)
/* 803AFC44 003ACBA4 90 1B 00 30 */ stw r0, 0x30(r27)
/* 803AFC48 003ACBA8 80 1A 00 08 */ lwz r0, 8(r26)
/* 803AFC4C 003ACBAC 90 1B 00 34 */ stw r0, 0x34(r27)
/* 803AFC50 003ACBB0 80 DC 00 00 */ lwz r6, 0(r28)
/* 803AFC54 003ACBB4 80 1C 00 04 */ lwz r0, 4(r28)
/* 803AFC58 003ACBB8 90 DB 00 44 */ stw r6, 0x44(r27)
/* 803AFC5C 003ACBBC 90 1B 00 48 */ stw r0, 0x48(r27)
/* 803AFC60 003ACBC0 80 1C 00 08 */ lwz r0, 8(r28)
/* 803AFC64 003ACBC4 90 1B 00 4C */ stw r0, 0x4c(r27)
/* 803AFC68 003ACBC8 D3 BB 00 80 */ stfs f29, 0x80(r27)
/* 803AFC6C 003ACBCC D3 DB 00 84 */ stfs f30, 0x84(r27)
/* 803AFC70 003ACBD0 D3 FB 00 88 */ stfs f31, 0x88(r27)
/* 803AFC74 003ACBD4 D0 1B 00 1C */ stfs f0, 0x1c(r27)
/* 803AFC78 003ACBD8 48 00 11 F5 */ bl salCrossProduct
/* 803AFC7C 003ACBDC C0 1B 00 38 */ lfs f0, 0x38(r27)
/* 803AFC80 003ACBE0 38 7B 00 50 */ addi r3, r27, 0x50
/* 803AFC84 003ACBE4 38 81 00 08 */ addi r4, r1, 8
/* 803AFC88 003ACBE8 D0 01 00 08 */ stfs f0, 8(r1)
/* 803AFC8C 003ACBEC C0 1B 00 3C */ lfs f0, 0x3c(r27)
/* 803AFC90 003ACBF0 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 803AFC94 003ACBF4 C0 1B 00 40 */ lfs f0, 0x40(r27)
/* 803AFC98 003ACBF8 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 803AFC9C 003ACBFC C0 1B 00 44 */ lfs f0, 0x44(r27)
/* 803AFCA0 003ACC00 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 803AFCA4 003ACC04 C0 1B 00 48 */ lfs f0, 0x48(r27)
/* 803AFCA8 003ACC08 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 803AFCAC 003ACC0C C0 1B 00 4C */ lfs f0, 0x4c(r27)
/* 803AFCB0 003ACC10 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 803AFCB4 003ACC14 C0 1B 00 2C */ lfs f0, 0x2c(r27)
/* 803AFCB8 003ACC18 FC 00 00 50 */ fneg f0, f0
/* 803AFCBC 003ACC1C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 803AFCC0 003ACC20 C0 1B 00 30 */ lfs f0, 0x30(r27)
/* 803AFCC4 003ACC24 FC 00 00 50 */ fneg f0, f0
/* 803AFCC8 003ACC28 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 803AFCCC 003ACC2C C0 1B 00 34 */ lfs f0, 0x34(r27)
/* 803AFCD0 003ACC30 FC 00 00 50 */ fneg f0, f0
/* 803AFCD4 003ACC34 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 803AFCD8 003ACC38 C0 1B 00 10 */ lfs f0, 0x10(r27)
/* 803AFCDC 003ACC3C D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 803AFCE0 003ACC40 C0 1B 00 14 */ lfs f0, 0x14(r27)
/* 803AFCE4 003ACC44 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 803AFCE8 003ACC48 C0 1B 00 18 */ lfs f0, 0x18(r27)
/* 803AFCEC 003ACC4C D0 01 00 34 */ stfs f0, 0x34(r1)
/* 803AFCF0 003ACC50 48 00 11 E1 */ bl salInvertMatrix
/* 803AFCF4 003ACC54 57 C3 06 3E */ clrlwi r3, r30, 0x18
/* 803AFCF8 003ACC58 3C 00 43 30 */ lis r0, 0x4330
/* 803AFCFC 003ACC5C 90 61 00 3C */ stw r3, 0x3c(r1)
/* 803AFD00 003ACC60 28 1F 00 00 */ cmplwi r31, 0
/* 803AFD04 003ACC64 C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2)
/* 803AFD08 003ACC68 90 01 00 38 */ stw r0, 0x38(r1)
/* 803AFD0C 003ACC6C C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2)
/* 803AFD10 003ACC70 C8 21 00 38 */ lfd f1, 0x38(r1)
/* 803AFD14 003ACC74 93 BB 00 0C */ stw r29, 0xc(r27)
/* 803AFD18 003ACC78 EC 21 10 28 */ fsubs f1, f1, f2
/* 803AFD1C 003ACC7C EC 01 00 24 */ fdivs f0, f1, f0
/* 803AFD20 003ACC80 D0 1B 00 8C */ stfs f0, 0x8c(r27)
/* 803AFD24 003ACC84 93 FB 00 08 */ stw r31, 8(r27)
/* 803AFD28 003ACC88 41 82 00 24 */ beq lbl_803AFD4C
/* 803AFD2C 003ACC8C 80 7F 00 08 */ lwz r3, 8(r31)
/* 803AFD30 003ACC90 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0
/* 803AFD34 003ACC94 40 82 00 18 */ bne lbl_803AFD4C
/* 803AFD38 003ACC98 80 1F 00 2C */ lwz r0, 0x2c(r31)
/* 803AFD3C 003ACC9C 28 00 00 00 */ cmplwi r0, 0
/* 803AFD40 003ACCA0 40 82 00 0C */ bne lbl_803AFD4C
/* 803AFD44 003ACCA4 64 60 80 00 */ oris r0, r3, 0x8000
/* 803AFD48 003ACCA8 90 1F 00 08 */ stw r0, 8(r31)
lbl_803AFD4C:
/* 803AFD4C 003ACCAC 48 00 53 39 */ bl hwEnableIrq
/* 803AFD50 003ACCB0 38 60 00 01 */ li r3, 1
/* 803AFD54 003ACCB4 48 00 00 08 */ b lbl_803AFD5C
lbl_803AFD58:
/* 803AFD58 003ACCB8 38 60 00 00 */ li r3, 0
lbl_803AFD5C:
/* 803AFD5C 003ACCBC E3 E1 00 88 */ psq_l f31, 136(r1), 0, qr0
/* 803AFD60 003ACCC0 CB E1 00 80 */ lfd f31, 0x80(r1)
/* 803AFD64 003ACCC4 E3 C1 00 78 */ psq_l f30, 120(r1), 0, qr0
/* 803AFD68 003ACCC8 CB C1 00 70 */ lfd f30, 0x70(r1)
/* 803AFD6C 003ACCCC E3 A1 00 68 */ psq_l f29, 104(r1), 0, qr0
/* 803AFD70 003ACCD0 39 61 00 60 */ addi r11, r1, 0x60
/* 803AFD74 003ACCD4 CB A1 00 60 */ lfd f29, 0x60(r1)
/* 803AFD78 003ACCD8 4B FD 9D 45 */ bl _restgpr_24
/* 803AFD7C 003ACCDC 80 01 00 94 */ lwz r0, 0x94(r1)
/* 803AFD80 003ACCE0 7C 08 03 A6 */ mtlr r0
/* 803AFD84 003ACCE4 38 21 00 90 */ addi r1, r1, 0x90
/* 803AFD88 003ACCE8 4E 80 00 20 */ blr
.global sndRemoveListener
sndRemoveListener:
/* 803AFD8C 003ACCEC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803AFD90 003ACCF0 7C 08 02 A6 */ mflr r0
/* 803AFD94 003ACCF4 90 01 00 14 */ stw r0, 0x14(r1)
/* 803AFD98 003ACCF8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803AFD9C 003ACCFC 7C 7F 1B 78 */ mr r31, r3
/* 803AFDA0 003ACD00 88 0D AE 48 */ lbz r0, sndActive@sda21(r13)
/* 803AFDA4 003ACD04 28 00 00 00 */ cmplwi r0, 0
/* 803AFDA8 003ACD08 41 82 00 9C */ beq lbl_803AFE44
/* 803AFDAC 003ACD0C 48 00 53 11 */ bl hwDisableIrq
/* 803AFDB0 003ACD10 80 BF 00 08 */ lwz r5, 8(r31)
/* 803AFDB4 003ACD14 28 05 00 00 */ cmplwi r5, 0
/* 803AFDB8 003ACD18 41 82 00 4C */ beq lbl_803AFE04
/* 803AFDBC 003ACD1C 80 6D AF 74 */ lwz r3, s3dListenerRoot@sda21(r13)
/* 803AFDC0 003ACD20 38 80 00 00 */ li r4, 0
/* 803AFDC4 003ACD24 48 00 00 18 */ b lbl_803AFDDC
lbl_803AFDC8:
/* 803AFDC8 003ACD28 80 03 00 08 */ lwz r0, 8(r3)
/* 803AFDCC 003ACD2C 7C 00 28 40 */ cmplw r0, r5
/* 803AFDD0 003ACD30 40 82 00 08 */ bne lbl_803AFDD8
/* 803AFDD4 003ACD34 38 84 00 01 */ addi r4, r4, 1
lbl_803AFDD8:
/* 803AFDD8 003ACD38 80 63 00 00 */ lwz r3, 0(r3)
lbl_803AFDDC:
/* 803AFDDC 003ACD3C 28 03 00 00 */ cmplwi r3, 0
/* 803AFDE0 003ACD40 40 82 FF E8 */ bne lbl_803AFDC8
/* 803AFDE4 003ACD44 28 04 00 01 */ cmplwi r4, 1
/* 803AFDE8 003ACD48 40 82 00 1C */ bne lbl_803AFE04
/* 803AFDEC 003ACD4C 80 05 00 08 */ lwz r0, 8(r5)
/* 803AFDF0 003ACD50 54 00 00 7E */ clrlwi r0, r0, 1
/* 803AFDF4 003ACD54 90 05 00 08 */ stw r0, 8(r5)
/* 803AFDF8 003ACD58 80 05 00 08 */ lwz r0, 8(r5)
/* 803AFDFC 003ACD5C 64 00 40 00 */ oris r0, r0, 0x4000
/* 803AFE00 003ACD60 90 05 00 08 */ stw r0, 8(r5)
lbl_803AFE04:
/* 803AFE04 003ACD64 80 7F 00 00 */ lwz r3, 0(r31)
/* 803AFE08 003ACD68 28 03 00 00 */ cmplwi r3, 0
/* 803AFE0C 003ACD6C 41 82 00 0C */ beq lbl_803AFE18
/* 803AFE10 003ACD70 80 1F 00 04 */ lwz r0, 4(r31)
/* 803AFE14 003ACD74 90 03 00 04 */ stw r0, 4(r3)
lbl_803AFE18:
/* 803AFE18 003ACD78 80 7F 00 04 */ lwz r3, 4(r31)
/* 803AFE1C 003ACD7C 28 03 00 00 */ cmplwi r3, 0
/* 803AFE20 003ACD80 41 82 00 10 */ beq lbl_803AFE30
/* 803AFE24 003ACD84 80 1F 00 00 */ lwz r0, 0(r31)
/* 803AFE28 003ACD88 90 03 00 00 */ stw r0, 0(r3)
/* 803AFE2C 003ACD8C 48 00 00 0C */ b lbl_803AFE38
lbl_803AFE30:
/* 803AFE30 003ACD90 80 1F 00 00 */ lwz r0, 0(r31)
/* 803AFE34 003ACD94 90 0D AF 74 */ stw r0, s3dListenerRoot@sda21(r13)
lbl_803AFE38:
/* 803AFE38 003ACD98 48 00 52 4D */ bl hwEnableIrq
/* 803AFE3C 003ACD9C 38 60 00 01 */ li r3, 1
/* 803AFE40 003ACDA0 48 00 00 08 */ b lbl_803AFE48
lbl_803AFE44:
/* 803AFE44 003ACDA4 38 60 00 00 */ li r3, 0
lbl_803AFE48:
/* 803AFE48 003ACDA8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803AFE4C 003ACDAC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803AFE50 003ACDB0 7C 08 03 A6 */ mtlr r0
/* 803AFE54 003ACDB4 38 21 00 10 */ addi r1, r1, 0x10
/* 803AFE58 003ACDB8 4E 80 00 20 */ blr
.fn AddStartingEmitter, local
/* 803AFE5C 003ACDBC 88 CD AF 62 */ lbz r6, startGroupNum@sda21(r13)
/* 803AFE60 003ACDC0 3C 80 80 56 */ lis r4, startGroup@ha
/* 803AFE64 003ACDC4 38 A4 F9 90 */ addi r5, r4, startGroup@l
/* 803AFE68 003ACDC8 39 20 00 00 */ li r9, 0
/* 803AFE6C 003ACDCC 7C C9 03 A6 */ mtctr r6
/* 803AFE70 003ACDD0 2C 06 00 00 */ cmpwi r6, 0
/* 803AFE74 003ACDD4 40 81 00 20 */ ble lbl_803AFE94
lbl_803AFE78:
/* 803AFE78 003ACDD8 80 83 00 40 */ lwz r4, 0x40(r3)
/* 803AFE7C 003ACDDC 80 05 00 00 */ lwz r0, 0(r5)
/* 803AFE80 003ACDE0 7C 04 00 40 */ cmplw r4, r0
/* 803AFE84 003ACDE4 41 82 00 10 */ beq lbl_803AFE94
/* 803AFE88 003ACDE8 38 A5 00 10 */ addi r5, r5, 0x10
/* 803AFE8C 003ACDEC 39 29 00 01 */ addi r9, r9, 1
/* 803AFE90 003ACDF0 42 00 FF E8 */ bdnz lbl_803AFE78
lbl_803AFE94:
/* 803AFE94 003ACDF4 7C 09 30 00 */ cmpw r9, r6
/* 803AFE98 003ACDF8 40 82 00 48 */ bne lbl_803AFEE0
/* 803AFE9C 003ACDFC 28 06 00 40 */ cmplwi r6, 0x40
/* 803AFEA0 003ACE00 40 82 00 0C */ bne lbl_803AFEAC
/* 803AFEA4 003ACE04 38 60 00 00 */ li r3, 0
/* 803AFEA8 003ACE08 4E 80 00 20 */ blr
lbl_803AFEAC:
/* 803AFEAC 003ACE0C 3C A0 80 56 */ lis r5, startGroup@ha
/* 803AFEB0 003ACE10 88 8D AF 62 */ lbz r4, startGroupNum@sda21(r13)
/* 803AFEB4 003ACE14 38 C5 F9 90 */ addi r6, r5, startGroup@l
/* 803AFEB8 003ACE18 55 28 20 36 */ slwi r8, r9, 4
/* 803AFEBC 003ACE1C 7C A6 42 14 */ add r5, r6, r8
/* 803AFEC0 003ACE20 38 E0 00 00 */ li r7, 0
/* 803AFEC4 003ACE24 90 E5 00 04 */ stw r7, 4(r5)
/* 803AFEC8 003ACE28 38 04 00 01 */ addi r0, r4, 1
/* 803AFECC 003ACE2C 90 E5 00 08 */ stw r7, 8(r5)
/* 803AFED0 003ACE30 B0 E5 00 0C */ sth r7, 0xc(r5)
/* 803AFED4 003ACE34 80 83 00 40 */ lwz r4, 0x40(r3)
/* 803AFED8 003ACE38 7C 86 41 2E */ stwx r4, r6, r8
/* 803AFEDC 003ACE3C 98 0D AF 62 */ stb r0, startGroupNum@sda21(r13)
lbl_803AFEE0:
/* 803AFEE0 003ACE40 88 AD AF 61 */ lbz r5, startListNumnum@sda21(r13)
/* 803AFEE4 003ACE44 28 05 00 40 */ cmplwi r5, 0x40
/* 803AFEE8 003ACE48 40 82 00 0C */ bne lbl_803AFEF4
/* 803AFEEC 003ACE4C 38 60 00 00 */ li r3, 0
/* 803AFEF0 003ACE50 4E 80 00 20 */ blr
lbl_803AFEF4:
/* 803AFEF4 003ACE54 3C 80 80 56 */ lis r4, startGroup@ha
/* 803AFEF8 003ACE58 55 20 20 36 */ slwi r0, r9, 4
/* 803AFEFC 003ACE5C 38 84 F9 90 */ addi r4, r4, startGroup@l
/* 803AFF00 003ACE60 7C E4 02 14 */ add r7, r4, r0
/* 803AFF04 003ACE64 80 C7 00 04 */ lwz r6, 4(r7)
/* 803AFF08 003ACE68 38 E7 00 04 */ addi r7, r7, 4
/* 803AFF0C 003ACE6C 28 06 00 00 */ cmplwi r6, 0
/* 803AFF10 003ACE70 7C C8 33 78 */ mr r8, r6
/* 803AFF14 003ACE74 41 82 00 40 */ beq lbl_803AFF54
/* 803AFF18 003ACE78 48 00 00 14 */ b lbl_803AFF2C
lbl_803AFF1C:
/* 803AFF1C 003ACE7C C0 08 00 04 */ lfs f0, 4(r8)
/* 803AFF20 003ACE80 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 803AFF24 003ACE84 41 80 00 14 */ blt lbl_803AFF38
/* 803AFF28 003ACE88 7C C8 33 78 */ mr r8, r6
lbl_803AFF2C:
/* 803AFF2C 003ACE8C 80 C8 00 00 */ lwz r6, 0(r8)
/* 803AFF30 003ACE90 28 06 00 00 */ cmplwi r6, 0
/* 803AFF34 003ACE94 40 82 FF E8 */ bne lbl_803AFF1C
lbl_803AFF38:
/* 803AFF38 003ACE98 1C A5 00 1C */ mulli r5, r5, 0x1c
/* 803AFF3C 003ACE9C 3C 80 80 56 */ lis r4, startListNum@ha
/* 803AFF40 003ACEA0 38 04 00 90 */ addi r0, r4, startListNum@l
/* 803AFF44 003ACEA4 7C 80 2A 14 */ add r4, r0, r5
/* 803AFF48 003ACEA8 90 C4 00 00 */ stw r6, 0(r4)
/* 803AFF4C 003ACEAC 90 88 00 00 */ stw r4, 0(r8)
/* 803AFF50 003ACEB0 48 00 00 1C */ b lbl_803AFF6C
lbl_803AFF54:
/* 803AFF54 003ACEB4 1C A5 00 1C */ mulli r5, r5, 0x1c
/* 803AFF58 003ACEB8 3C 80 80 56 */ lis r4, startListNum@ha
/* 803AFF5C 003ACEBC 38 04 00 90 */ addi r0, r4, startListNum@l
/* 803AFF60 003ACEC0 7C 80 2A 14 */ add r4, r0, r5
/* 803AFF64 003ACEC4 90 C4 00 00 */ stw r6, 0(r4)
/* 803AFF68 003ACEC8 90 87 00 00 */ stw r4, 0(r7)
lbl_803AFF6C:
/* 803AFF6C 003ACECC 88 8D AF 61 */ lbz r4, startListNumnum@sda21(r13)
/* 803AFF70 003ACED0 3C A0 80 56 */ lis r5, startListNum@ha
/* 803AFF74 003ACED4 38 A5 00 90 */ addi r5, r5, startListNum@l
/* 803AFF78 003ACED8 1C C4 00 1C */ mulli r6, r4, 0x1c
/* 803AFF7C 003ACEDC 38 04 00 01 */ addi r0, r4, 1
/* 803AFF80 003ACEE0 98 0D AF 61 */ stb r0, startListNumnum@sda21(r13)
/* 803AFF84 003ACEE4 7C 85 32 14 */ add r4, r5, r6
/* 803AFF88 003ACEE8 90 64 00 18 */ stw r3, 0x18(r4)
/* 803AFF8C 003ACEEC 38 60 00 01 */ li r3, 1
/* 803AFF90 003ACEF0 D0 A4 00 14 */ stfs f5, 0x14(r4)
/* 803AFF94 003ACEF4 D0 44 00 08 */ stfs f2, 8(r4)
/* 803AFF98 003ACEF8 D0 64 00 0C */ stfs f3, 0xc(r4)
/* 803AFF9C 003ACEFC D0 84 00 10 */ stfs f4, 0x10(r4)
/* 803AFFA0 003ACF00 D0 24 00 04 */ stfs f1, 4(r4)
/* 803AFFA4 003ACF04 4E 80 00 20 */ blr
.endfn AddStartingEmitter
.fn StartContinousEmitters, local
/* 803AFFA8 003ACF08 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 803AFFAC 003ACF0C 7C 08 02 A6 */ mflr r0
/* 803AFFB0 003ACF10 90 01 00 84 */ stw r0, 0x84(r1)
/* 803AFFB4 003ACF14 DB E1 00 70 */ stfd f31, 0x70(r1)
/* 803AFFB8 003ACF18 F3 E1 00 78 */ psq_st f31, 120(r1), 0, qr0
/* 803AFFBC 003ACF1C DB C1 00 60 */ stfd f30, 0x60(r1)
/* 803AFFC0 003ACF20 F3 C1 00 68 */ psq_st f30, 104(r1), 0, qr0
/* 803AFFC4 003ACF24 DB A1 00 50 */ stfd f29, 0x50(r1)
/* 803AFFC8 003ACF28 F3 A1 00 58 */ psq_st f29, 88(r1), 0, qr0
/* 803AFFCC 003ACF2C 39 61 00 50 */ addi r11, r1, 0x50
/* 803AFFD0 003ACF30 4B FD 9A 99 */ bl _savegpr_22
/* 803AFFD4 003ACF34 3C 60 80 56 */ lis r3, startGroup@ha
/* 803AFFD8 003ACF38 3B 40 00 00 */ li r26, 0
/* 803AFFDC 003ACF3C 3B 63 F9 90 */ addi r27, r3, startGroup@l
/* 803AFFE0 003ACF40 48 00 03 3C */ b lbl_803B031C
lbl_803AFFE4:
/* 803AFFE4 003ACF44 83 3B 00 04 */ lwz r25, 4(r27)
/* 803AFFE8 003ACF48 3B DB 00 08 */ addi r30, r27, 8
/* 803AFFEC 003ACF4C 3B BB 00 04 */ addi r29, r27, 4
/* 803AFFF0 003ACF50 3B 9B 00 0C */ addi r28, r27, 0xc
/* 803AFFF4 003ACF54 48 00 03 18 */ b lbl_803B030C
lbl_803AFFF8:
/* 803AFFF8 003ACF58 80 BE 00 00 */ lwz r5, 0(r30)
/* 803AFFFC 003ACF5C 28 05 00 00 */ cmplwi r5, 0
/* 803B0000 003ACF60 41 82 00 8C */ beq lbl_803B008C
/* 803B0004 003ACF64 88 0D AF 63 */ lbz r0, s3dUseMaxVoices@sda21(r13)
/* 803B0008 003ACF68 28 00 00 00 */ cmplwi r0, 0
/* 803B000C 003ACF6C 41 82 00 28 */ beq lbl_803B0034
/* 803B0010 003ACF70 80 1B 00 00 */ lwz r0, 0(r27)
/* 803B0014 003ACF74 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0
/* 803B0018 003ACF78 41 82 00 1C */ beq lbl_803B0034
/* 803B001C 003ACF7C 80 7D 00 00 */ lwz r3, 0(r29)
/* 803B0020 003ACF80 A0 9C 00 00 */ lhz r4, 0(r28)
/* 803B0024 003ACF84 80 63 00 18 */ lwz r3, 0x18(r3)
/* 803B0028 003ACF88 88 03 00 47 */ lbz r0, 0x47(r3)
/* 803B002C 003ACF8C 7C 04 00 00 */ cmpw r4, r0
/* 803B0030 003ACF90 41 80 00 5C */ blt lbl_803B008C
lbl_803B0034:
/* 803B0034 003ACF94 C0 59 00 04 */ lfs f2, 4(r25)
/* 803B0038 003ACF98 C0 25 00 04 */ lfs f1, 4(r5)
/* 803B003C 003ACF9C C0 02 D6 48 */ lfs f0, lbl_805AF368@sda21(r2)
/* 803B0040 003ACFA0 EC 22 08 28 */ fsubs f1, f2, f1
/* 803B0044 003ACFA4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 803B0048 003ACFA8 4C 40 13 82 */ cror 2, 0, 2
/* 803B004C 003ACFAC 41 82 02 BC */ beq lbl_803B0308
/* 803B0050 003ACFB0 C0 02 D6 4C */ lfs f0, lbl_805AF36C@sda21(r2)
/* 803B0054 003ACFB4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 803B0058 003ACFB8 4C 40 13 82 */ cror 2, 0, 2
/* 803B005C 003ACFBC 40 82 00 24 */ bne lbl_803B0080
/* 803B0060 003ACFC0 80 99 00 18 */ lwz r4, 0x18(r25)
/* 803B0064 003ACFC4 A0 64 00 48 */ lhz r3, 0x48(r4)
/* 803B0068 003ACFC8 38 63 00 01 */ addi r3, r3, 1
/* 803B006C 003ACFCC 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 803B0070 003ACFD0 B0 64 00 48 */ sth r3, 0x48(r4)
/* 803B0074 003ACFD4 28 00 00 14 */ cmplwi r0, 0x14
/* 803B0078 003ACFD8 41 80 02 90 */ blt lbl_803B0308
/* 803B007C 003ACFDC 48 00 00 10 */ b lbl_803B008C
lbl_803B0080:
/* 803B0080 003ACFE0 80 79 00 18 */ lwz r3, 0x18(r25)
/* 803B0084 003ACFE4 38 00 00 00 */ li r0, 0
/* 803B0088 003ACFE8 B0 03 00 48 */ sth r0, 0x48(r3)
lbl_803B008C:
/* 803B008C 003ACFEC 83 19 00 18 */ lwz r24, 0x18(r25)
/* 803B0090 003ACFF0 80 D8 00 08 */ lwz r6, 8(r24)
/* 803B0094 003ACFF4 28 06 00 00 */ cmplwi r6, 0
/* 803B0098 003ACFF8 41 82 00 10 */ beq lbl_803B00A8
/* 803B009C 003ACFFC 88 06 00 1C */ lbz r0, 0x1c(r6)
/* 803B00A0 003AD000 28 00 00 FF */ cmplwi r0, 0xff
/* 803B00A4 003AD004 41 82 00 40 */ beq lbl_803B00E4
lbl_803B00A8:
/* 803B00A8 003AD008 28 06 00 00 */ cmplwi r6, 0
/* 803B00AC 003AD00C A0 78 00 44 */ lhz r3, 0x44(r24)
/* 803B00B0 003AD010 38 80 00 7F */ li r4, 0x7f
/* 803B00B4 003AD014 38 A0 00 40 */ li r5, 0x40
/* 803B00B8 003AD018 41 82 00 0C */ beq lbl_803B00C4
/* 803B00BC 003AD01C 88 C6 00 1C */ lbz r6, 0x1c(r6)
/* 803B00C0 003AD020 48 00 00 08 */ b lbl_803B00C8
lbl_803B00C4:
/* 803B00C4 003AD024 88 D8 00 46 */ lbz r6, 0x46(r24)
lbl_803B00C8:
/* 803B00C8 003AD028 80 18 00 10 */ lwz r0, 0x10(r24)
/* 803B00CC 003AD02C 54 07 E7 FE */ rlwinm r7, r0, 0x1c, 0x1f, 0x1f
/* 803B00D0 003AD030 4B FE AF 7D */ bl synthFXStart
/* 803B00D4 003AD034 3C 03 00 01 */ addis r0, r3, 1
/* 803B00D8 003AD038 90 78 00 3C */ stw r3, 0x3c(r24)
/* 803B00DC 003AD03C 28 00 FF FF */ cmplwi r0, 0xffff
/* 803B00E0 003AD040 40 82 00 28 */ bne lbl_803B0108
lbl_803B00E4:
/* 803B00E4 003AD044 80 78 00 10 */ lwz r3, 0x10(r24)
/* 803B00E8 003AD048 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e
/* 803B00EC 003AD04C 40 82 02 1C */ bne lbl_803B0308
/* 803B00F0 003AD050 64 60 00 04 */ oris r0, r3, 4
/* 803B00F4 003AD054 90 18 00 10 */ stw r0, 0x10(r24)
/* 803B00F8 003AD058 80 18 00 10 */ lwz r0, 0x10(r24)
/* 803B00FC 003AD05C 54 00 03 DA */ rlwinm r0, r0, 0, 0xf, 0xd
/* 803B0100 003AD060 90 18 00 10 */ stw r0, 0x10(r24)
/* 803B0104 003AD064 48 00 02 04 */ b lbl_803B0308
lbl_803B0108:
/* 803B0108 003AD068 80 78 00 10 */ lwz r3, 0x10(r24)
/* 803B010C 003AD06C 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a
/* 803B0110 003AD070 40 82 00 18 */ bne lbl_803B0128
/* 803B0114 003AD074 64 60 00 10 */ oris r0, r3, 0x10
/* 803B0118 003AD078 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2)
/* 803B011C 003AD07C 90 18 00 10 */ stw r0, 0x10(r24)
/* 803B0120 003AD080 D0 18 00 4C */ stfs f0, 0x4c(r24)
/* 803B0124 003AD084 48 00 00 0C */ b lbl_803B0130
lbl_803B0128:
/* 803B0128 003AD088 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2)
/* 803B012C 003AD08C D0 18 00 4C */ stfs f0, 0x4c(r24)
lbl_803B0130:
/* 803B0130 003AD090 80 18 00 10 */ lwz r0, 0x10(r24)
/* 803B0134 003AD094 C3 F9 00 14 */ lfs f31, 0x14(r25)
/* 803B0138 003AD098 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb
/* 803B013C 003AD09C C3 B9 00 10 */ lfs f29, 0x10(r25)
/* 803B0140 003AD0A0 C3 D9 00 08 */ lfs f30, 8(r25)
/* 803B0144 003AD0A4 C0 59 00 04 */ lfs f2, 4(r25)
/* 803B0148 003AD0A8 83 F8 00 3C */ lwz r31, 0x3c(r24)
/* 803B014C 003AD0AC 41 82 00 44 */ beq lbl_803B0190
/* 803B0150 003AD0B0 C0 18 00 4C */ lfs f0, 0x4c(r24)
/* 803B0154 003AD0B4 7F E3 FB 78 */ mr r3, r31
/* 803B0158 003AD0B8 C0 22 D6 28 */ lfs f1, lbl_805AF348@sda21(r2)
/* 803B015C 003AD0BC 38 80 00 07 */ li r4, 7
/* 803B0160 003AD0C0 EC 00 00 B2 */ fmuls f0, f0, f2
/* 803B0164 003AD0C4 38 A0 00 7F */ li r5, 0x7f
/* 803B0168 003AD0C8 EC 01 00 32 */ fmuls f0, f1, f0
/* 803B016C 003AD0CC FC 00 00 1E */ fctiwz f0, f0
/* 803B0170 003AD0D0 D8 01 00 08 */ stfd f0, 8(r1)
/* 803B0174 003AD0D4 80 C1 00 0C */ lwz r6, 0xc(r1)
/* 803B0178 003AD0D8 54 C0 06 3E */ clrlwi r0, r6, 0x18
/* 803B017C 003AD0DC 28 00 00 7F */ cmplwi r0, 0x7f
/* 803B0180 003AD0E0 41 81 00 08 */ bgt lbl_803B0188
/* 803B0184 003AD0E4 7C C5 33 78 */ mr r5, r6
lbl_803B0188:
/* 803B0188 003AD0E8 4B FE AF 8D */ bl synthFXSetCtrl
/* 803B018C 003AD0EC 48 00 00 3C */ b lbl_803B01C8
lbl_803B0190:
/* 803B0190 003AD0F0 C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2)
/* 803B0194 003AD0F4 38 A0 00 7F */ li r5, 0x7f
/* 803B0198 003AD0F8 EC 00 00 B2 */ fmuls f0, f0, f2
/* 803B019C 003AD0FC FC 00 00 1E */ fctiwz f0, f0
/* 803B01A0 003AD100 D8 01 00 08 */ stfd f0, 8(r1)
/* 803B01A4 003AD104 80 01 00 0C */ lwz r0, 0xc(r1)
/* 803B01A8 003AD108 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 803B01AC 003AD10C 28 00 00 7F */ cmplwi r0, 0x7f
/* 803B01B0 003AD110 41 81 00 0C */ bgt lbl_803B01BC
/* 803B01B4 003AD114 D8 01 00 10 */ stfd f0, 0x10(r1)
/* 803B01B8 003AD118 80 A1 00 14 */ lwz r5, 0x14(r1)
lbl_803B01BC:
/* 803B01BC 003AD11C 7F E3 FB 78 */ mr r3, r31
/* 803B01C0 003AD120 38 80 00 07 */ li r4, 7
/* 803B01C4 003AD124 4B FE AF 51 */ bl synthFXSetCtrl
lbl_803B01C8:
/* 803B01C8 003AD128 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2)
/* 803B01CC 003AD12C 38 A0 00 7F */ li r5, 0x7f
/* 803B01D0 003AD130 C0 22 D6 3C */ lfs f1, lbl_805AF35C@sda21(r2)
/* 803B01D4 003AD134 EC 00 F0 2A */ fadds f0, f0, f30
/* 803B01D8 003AD138 EC 01 00 32 */ fmuls f0, f1, f0
/* 803B01DC 003AD13C FC 00 00 1E */ fctiwz f0, f0
/* 803B01E0 003AD140 D8 01 00 10 */ stfd f0, 0x10(r1)
/* 803B01E4 003AD144 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803B01E8 003AD148 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 803B01EC 003AD14C 28 00 00 7F */ cmplwi r0, 0x7f
/* 803B01F0 003AD150 41 81 00 0C */ bgt lbl_803B01FC
/* 803B01F4 003AD154 D8 01 00 08 */ stfd f0, 8(r1)
/* 803B01F8 003AD158 80 A1 00 0C */ lwz r5, 0xc(r1)
lbl_803B01FC:
/* 803B01FC 003AD15C 7F E3 FB 78 */ mr r3, r31
/* 803B0200 003AD160 38 80 00 0A */ li r4, 0xa
/* 803B0204 003AD164 4B FE AF 11 */ bl synthFXSetCtrl
/* 803B0208 003AD168 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2)
/* 803B020C 003AD16C 38 A0 00 7F */ li r5, 0x7f
/* 803B0210 003AD170 C0 22 D6 3C */ lfs f1, lbl_805AF35C@sda21(r2)
/* 803B0214 003AD174 EC 00 E8 28 */ fsubs f0, f0, f29
/* 803B0218 003AD178 EC 01 00 32 */ fmuls f0, f1, f0
/* 803B021C 003AD17C FC 00 00 1E */ fctiwz f0, f0
/* 803B0220 003AD180 D8 01 00 18 */ stfd f0, 0x18(r1)
/* 803B0224 003AD184 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803B0228 003AD188 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 803B022C 003AD18C 28 00 00 7F */ cmplwi r0, 0x7f
/* 803B0230 003AD190 41 81 00 0C */ bgt lbl_803B023C
/* 803B0234 003AD194 D8 01 00 20 */ stfd f0, 0x20(r1)
/* 803B0238 003AD198 80 A1 00 24 */ lwz r5, 0x24(r1)
lbl_803B023C:
/* 803B023C 003AD19C 7F E3 FB 78 */ mr r3, r31
/* 803B0240 003AD1A0 38 80 00 83 */ li r4, 0x83
/* 803B0244 003AD1A4 4B FE AE D1 */ bl synthFXSetCtrl
/* 803B0248 003AD1A8 C0 02 D6 40 */ lfs f0, lbl_805AF360@sda21(r2)
/* 803B024C 003AD1AC EC 20 07 F2 */ fmuls f1, f0, f31
/* 803B0250 003AD1B0 4B FD 97 05 */ bl __cvt_fp2unsigned
/* 803B0254 003AD1B4 28 03 3F FF */ cmplwi r3, 0x3fff
/* 803B0258 003AD1B8 38 A0 3F FF */ li r5, 0x3fff
/* 803B025C 003AD1BC 41 81 00 08 */ bgt lbl_803B0264
/* 803B0260 003AD1C0 54 65 04 3E */ clrlwi r5, r3, 0x10
lbl_803B0264:
/* 803B0264 003AD1C4 7F E3 FB 78 */ mr r3, r31
/* 803B0268 003AD1C8 38 80 00 84 */ li r4, 0x84
/* 803B026C 003AD1CC 4B FE AF 8D */ bl synthFXSetCtrl14
/* 803B0270 003AD1D0 80 78 00 0C */ lwz r3, 0xc(r24)
/* 803B0274 003AD1D4 28 03 00 00 */ cmplwi r3, 0
/* 803B0278 003AD1D8 41 82 00 64 */ beq lbl_803B02DC
/* 803B027C 003AD1DC 82 E3 00 04 */ lwz r23, 4(r3)
/* 803B0280 003AD1E0 3A C0 00 00 */ li r22, 0
/* 803B0284 003AD1E4 48 00 00 44 */ b lbl_803B02C8
lbl_803B0288:
/* 803B0288 003AD1E8 88 97 00 00 */ lbz r4, 0(r23)
/* 803B028C 003AD1EC 28 04 00 40 */ cmplwi r4, 0x40
/* 803B0290 003AD1F0 41 80 00 14 */ blt lbl_803B02A4
/* 803B0294 003AD1F4 28 04 00 80 */ cmplwi r4, 0x80
/* 803B0298 003AD1F8 41 82 00 0C */ beq lbl_803B02A4
/* 803B029C 003AD1FC 28 04 00 84 */ cmplwi r4, 0x84
/* 803B02A0 003AD200 40 82 00 14 */ bne lbl_803B02B4
lbl_803B02A4:
/* 803B02A4 003AD204 A0 B7 00 02 */ lhz r5, 2(r23)
/* 803B02A8 003AD208 7F E3 FB 78 */ mr r3, r31
/* 803B02AC 003AD20C 4B FE AF 4D */ bl synthFXSetCtrl14
/* 803B02B0 003AD210 48 00 00 10 */ b lbl_803B02C0
lbl_803B02B4:
/* 803B02B4 003AD214 88 B7 00 02 */ lbz r5, 2(r23)
/* 803B02B8 003AD218 7F E3 FB 78 */ mr r3, r31
/* 803B02BC 003AD21C 4B FE AE 59 */ bl synthFXSetCtrl
lbl_803B02C0:
/* 803B02C0 003AD220 3A F7 00 04 */ addi r23, r23, 4
/* 803B02C4 003AD224 3A D6 00 01 */ addi r22, r22, 1
lbl_803B02C8:
/* 803B02C8 003AD228 80 78 00 0C */ lwz r3, 0xc(r24)
/* 803B02CC 003AD22C 56 C4 06 3E */ clrlwi r4, r22, 0x18
/* 803B02D0 003AD230 88 03 00 00 */ lbz r0, 0(r3)
/* 803B02D4 003AD234 7C 04 00 40 */ cmplw r4, r0
/* 803B02D8 003AD238 41 80 FF B0 */ blt lbl_803B0288
lbl_803B02DC:
/* 803B02DC 003AD23C 80 18 00 10 */ lwz r0, 0x10(r24)
/* 803B02E0 003AD240 54 00 03 DA */ rlwinm r0, r0, 0, 0xf, 0xd
/* 803B02E4 003AD244 90 18 00 10 */ stw r0, 0x10(r24)
/* 803B02E8 003AD248 A0 7C 00 00 */ lhz r3, 0(r28)
/* 803B02EC 003AD24C 38 03 00 01 */ addi r0, r3, 1
/* 803B02F0 003AD250 B0 1C 00 00 */ sth r0, 0(r28)
/* 803B02F4 003AD254 80 7E 00 00 */ lwz r3, 0(r30)
/* 803B02F8 003AD258 28 03 00 00 */ cmplwi r3, 0
/* 803B02FC 003AD25C 41 82 00 0C */ beq lbl_803B0308
/* 803B0300 003AD260 80 03 00 00 */ lwz r0, 0(r3)
/* 803B0304 003AD264 90 1E 00 00 */ stw r0, 0(r30)
lbl_803B0308:
/* 803B0308 003AD268 83 39 00 00 */ lwz r25, 0(r25)
lbl_803B030C:
/* 803B030C 003AD26C 28 19 00 00 */ cmplwi r25, 0
/* 803B0310 003AD270 40 82 FC E8 */ bne lbl_803AFFF8
/* 803B0314 003AD274 3B 7B 00 10 */ addi r27, r27, 0x10
/* 803B0318 003AD278 3B 5A 00 01 */ addi r26, r26, 1
lbl_803B031C:
/* 803B031C 003AD27C 88 0D AF 62 */ lbz r0, startGroupNum@sda21(r13)
/* 803B0320 003AD280 7C 1A 00 00 */ cmpw r26, r0
/* 803B0324 003AD284 41 80 FC C0 */ blt lbl_803AFFE4
/* 803B0328 003AD288 E3 E1 00 78 */ psq_l f31, 120(r1), 0, qr0
/* 803B032C 003AD28C CB E1 00 70 */ lfd f31, 0x70(r1)
/* 803B0330 003AD290 E3 C1 00 68 */ psq_l f30, 104(r1), 0, qr0
/* 803B0334 003AD294 CB C1 00 60 */ lfd f30, 0x60(r1)
/* 803B0338 003AD298 E3 A1 00 58 */ psq_l f29, 88(r1), 0, qr0
/* 803B033C 003AD29C 39 61 00 50 */ addi r11, r1, 0x50
/* 803B0340 003AD2A0 CB A1 00 50 */ lfd f29, 0x50(r1)
/* 803B0344 003AD2A4 4B FD 97 71 */ bl _restgpr_22
/* 803B0348 003AD2A8 80 01 00 84 */ lwz r0, 0x84(r1)
/* 803B034C 003AD2AC 7C 08 03 A6 */ mtlr r0
/* 803B0350 003AD2B0 38 21 00 80 */ addi r1, r1, 0x80
/* 803B0354 003AD2B4 4E 80 00 20 */ blr
.endfn StartContinousEmitters
.global s3dHandle
s3dHandle:
/* 803B0358 003AD2B8 94 21 FF 70 */ stwu r1, -0x90(r1)
/* 803B035C 003AD2BC 7C 08 02 A6 */ mflr r0
/* 803B0360 003AD2C0 90 01 00 94 */ stw r0, 0x94(r1)
/* 803B0364 003AD2C4 DB E1 00 80 */ stfd f31, 0x80(r1)
/* 803B0368 003AD2C8 F3 E1 00 88 */ psq_st f31, 136(r1), 0, qr0
/* 803B036C 003AD2CC DB C1 00 70 */ stfd f30, 0x70(r1)
/* 803B0370 003AD2D0 F3 C1 00 78 */ psq_st f30, 120(r1), 0, qr0
/* 803B0374 003AD2D4 DB A1 00 60 */ stfd f29, 0x60(r1)
/* 803B0378 003AD2D8 F3 A1 00 68 */ psq_st f29, 104(r1), 0, qr0
/* 803B037C 003AD2DC 39 61 00 60 */ addi r11, r1, 0x60
/* 803B0380 003AD2E0 4B FD 96 FD */ bl _savegpr_27
/* 803B0384 003AD2E4 88 6D AF 7C */ lbz r3, s3dCallCnt@sda21(r13)
/* 803B0388 003AD2E8 28 03 00 00 */ cmplwi r3, 0
/* 803B038C 003AD2EC 41 82 00 10 */ beq lbl_803B039C
/* 803B0390 003AD2F0 38 03 FF FF */ addi r0, r3, -1
/* 803B0394 003AD2F4 98 0D AF 7C */ stb r0, s3dCallCnt@sda21(r13)
/* 803B0398 003AD2F8 48 00 07 BC */ b lbl_803B0B54
lbl_803B039C:
/* 803B039C 003AD2FC 38 00 00 00 */ li r0, 0
/* 803B03A0 003AD300 38 60 00 03 */ li r3, 3
/* 803B03A4 003AD304 98 6D AF 7C */ stb r3, s3dCallCnt@sda21(r13)
/* 803B03A8 003AD308 83 CD AF 78 */ lwz r30, s3dEmitterRoot@sda21(r13)
/* 803B03AC 003AD30C 98 0D AF 62 */ stb r0, startGroupNum@sda21(r13)
/* 803B03B0 003AD310 98 0D AF 61 */ stb r0, startListNumnum@sda21(r13)
/* 803B03B4 003AD314 98 0D AF 60 */ stb r0, runListNum@sda21(r13)
/* 803B03B8 003AD318 48 00 05 E0 */ b lbl_803B0998
lbl_803B03BC:
/* 803B03BC 003AD31C 80 9E 00 10 */ lwz r4, 0x10(r30)
/* 803B03C0 003AD320 80 7E 00 00 */ lwz r3, 0(r30)
/* 803B03C4 003AD324 54 80 03 5B */ rlwinm. r0, r4, 0, 0xd, 0xd
/* 803B03C8 003AD328 7C 7D 1B 78 */ mr r29, r3
/* 803B03CC 003AD32C 41 82 00 58 */ beq lbl_803B0424
/* 803B03D0 003AD330 28 03 00 00 */ cmplwi r3, 0
/* 803B03D4 003AD334 41 82 00 0C */ beq lbl_803B03E0
/* 803B03D8 003AD338 80 1E 00 04 */ lwz r0, 4(r30)
/* 803B03DC 003AD33C 90 03 00 04 */ stw r0, 4(r3)
lbl_803B03E0:
/* 803B03E0 003AD340 80 7E 00 04 */ lwz r3, 4(r30)
/* 803B03E4 003AD344 28 03 00 00 */ cmplwi r3, 0
/* 803B03E8 003AD348 41 82 00 10 */ beq lbl_803B03F8
/* 803B03EC 003AD34C 80 1E 00 00 */ lwz r0, 0(r30)
/* 803B03F0 003AD350 90 03 00 00 */ stw r0, 0(r3)
/* 803B03F4 003AD354 48 00 00 0C */ b lbl_803B0400
lbl_803B03F8:
/* 803B03F8 003AD358 80 1E 00 00 */ lwz r0, 0(r30)
/* 803B03FC 003AD35C 90 0D AF 78 */ stw r0, s3dEmitterRoot@sda21(r13)
lbl_803B0400:
/* 803B0400 003AD360 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803B0404 003AD364 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 803B0408 003AD368 90 1E 00 10 */ stw r0, 0x10(r30)
/* 803B040C 003AD36C 80 7E 00 3C */ lwz r3, 0x3c(r30)
/* 803B0410 003AD370 3C 03 00 01 */ addis r0, r3, 1
/* 803B0414 003AD374 28 00 FF FF */ cmplwi r0, 0xffff
/* 803B0418 003AD378 41 82 05 7C */ beq lbl_803B0994
/* 803B041C 003AD37C 4B FE AF 45 */ bl synthSendKeyOff
/* 803B0420 003AD380 48 00 05 74 */ b lbl_803B0994
lbl_803B0424:
/* 803B0424 003AD384 3C 60 00 02 */ lis r3, 0x00020001@ha
/* 803B0428 003AD388 38 03 00 01 */ addi r0, r3, 0x00020001@l
/* 803B042C 003AD38C 7C 80 00 39 */ and. r0, r4, r0
/* 803B0430 003AD390 41 82 00 20 */ beq lbl_803B0450
/* 803B0434 003AD394 7F C3 F3 78 */ mr r3, r30
/* 803B0438 003AD398 38 81 00 18 */ addi r4, r1, 0x18
/* 803B043C 003AD39C 38 A1 00 08 */ addi r5, r1, 8
/* 803B0440 003AD3A0 38 C1 00 14 */ addi r6, r1, 0x14
/* 803B0444 003AD3A4 38 E1 00 10 */ addi r7, r1, 0x10
/* 803B0448 003AD3A8 39 01 00 0C */ addi r8, r1, 0xc
/* 803B044C 003AD3AC 4B FF E8 69 */ bl CalcEmitter
lbl_803B0450:
/* 803B0450 003AD3B0 80 FE 00 10 */ lwz r7, 0x10(r30)
/* 803B0454 003AD3B4 54 E0 03 19 */ rlwinm. r0, r7, 0, 0xc, 0xc
/* 803B0458 003AD3B8 40 82 04 F8 */ bne lbl_803B0950
/* 803B045C 003AD3BC 54 E0 03 9D */ rlwinm. r0, r7, 0, 0xe, 0xe
/* 803B0460 003AD3C0 41 82 01 40 */ beq lbl_803B05A0
/* 803B0464 003AD3C4 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2)
/* 803B0468 003AD3C8 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 803B046C 003AD3CC FC 00 08 00 */ fcmpu cr0, f0, f1
/* 803B0470 003AD3D0 40 82 00 24 */ bne lbl_803B0494
/* 803B0474 003AD3D4 54 E0 07 7B */ rlwinm. r0, r7, 0, 0x1d, 0x1d
/* 803B0478 003AD3D8 41 82 00 1C */ beq lbl_803B0494
/* 803B047C 003AD3DC 64 E0 00 08 */ oris r0, r7, 8
/* 803B0480 003AD3E0 90 1E 00 10 */ stw r0, 0x10(r30)
/* 803B0484 003AD3E4 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803B0488 003AD3E8 54 00 03 DA */ rlwinm r0, r0, 0, 0xf, 0xd
/* 803B048C 003AD3EC 90 1E 00 10 */ stw r0, 0x10(r30)
/* 803B0490 003AD3F0 48 00 01 48 */ b lbl_803B05D8
lbl_803B0494:
/* 803B0494 003AD3F4 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2)
/* 803B0498 003AD3F8 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 803B049C 003AD3FC 40 82 00 64 */ bne lbl_803B0500
/* 803B04A0 003AD400 54 E0 06 73 */ rlwinm. r0, r7, 0, 0x19, 0x19
/* 803B04A4 003AD404 41 82 00 5C */ beq lbl_803B0500
/* 803B04A8 003AD408 80 7E 00 00 */ lwz r3, 0(r30)
/* 803B04AC 003AD40C 28 03 00 00 */ cmplwi r3, 0
/* 803B04B0 003AD410 41 82 00 0C */ beq lbl_803B04BC
/* 803B04B4 003AD414 80 1E 00 04 */ lwz r0, 4(r30)
/* 803B04B8 003AD418 90 03 00 04 */ stw r0, 4(r3)
lbl_803B04BC:
/* 803B04BC 003AD41C 80 7E 00 04 */ lwz r3, 4(r30)
/* 803B04C0 003AD420 28 03 00 00 */ cmplwi r3, 0
/* 803B04C4 003AD424 41 82 00 10 */ beq lbl_803B04D4
/* 803B04C8 003AD428 80 1E 00 00 */ lwz r0, 0(r30)
/* 803B04CC 003AD42C 90 03 00 00 */ stw r0, 0(r3)
/* 803B04D0 003AD430 48 00 00 0C */ b lbl_803B04DC
lbl_803B04D4:
/* 803B04D4 003AD434 80 1E 00 00 */ lwz r0, 0(r30)
/* 803B04D8 003AD438 90 0D AF 78 */ stw r0, s3dEmitterRoot@sda21(r13)
lbl_803B04DC:
/* 803B04DC 003AD43C 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803B04E0 003AD440 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 803B04E4 003AD444 90 1E 00 10 */ stw r0, 0x10(r30)
/* 803B04E8 003AD448 80 7E 00 3C */ lwz r3, 0x3c(r30)
/* 803B04EC 003AD44C 3C 03 00 01 */ addis r0, r3, 1
/* 803B04F0 003AD450 28 00 FF FF */ cmplwi r0, 0xffff
/* 803B04F4 003AD454 41 82 04 A0 */ beq lbl_803B0994
/* 803B04F8 003AD458 4B FE AE 69 */ bl synthSendKeyOff
/* 803B04FC 003AD45C 48 00 04 98 */ b lbl_803B0994
lbl_803B0500:
/* 803B0500 003AD460 54 E0 07 FF */ clrlwi. r0, r7, 0x1f
/* 803B0504 003AD464 41 82 00 28 */ beq lbl_803B052C
/* 803B0508 003AD468 C0 41 00 14 */ lfs f2, 0x14(r1)
/* 803B050C 003AD46C 7F C3 F3 78 */ mr r3, r30
/* 803B0510 003AD470 C0 61 00 10 */ lfs f3, 0x10(r1)
/* 803B0514 003AD474 C0 81 00 0C */ lfs f4, 0xc(r1)
/* 803B0518 003AD478 C0 A1 00 08 */ lfs f5, 8(r1)
/* 803B051C 003AD47C 4B FF F9 41 */ bl AddStartingEmitter
/* 803B0520 003AD480 28 03 00 00 */ cmplwi r3, 0
/* 803B0524 003AD484 40 82 04 70 */ bne lbl_803B0994
/* 803B0528 003AD488 48 00 00 B0 */ b lbl_803B05D8
lbl_803B052C:
/* 803B052C 003AD48C 80 DE 00 08 */ lwz r6, 8(r30)
/* 803B0530 003AD490 28 06 00 00 */ cmplwi r6, 0
/* 803B0534 003AD494 41 82 00 10 */ beq lbl_803B0544
/* 803B0538 003AD498 88 06 00 1C */ lbz r0, 0x1c(r6)
/* 803B053C 003AD49C 28 00 00 FF */ cmplwi r0, 0xff
/* 803B0540 003AD4A0 41 82 00 3C */ beq lbl_803B057C
lbl_803B0544:
/* 803B0544 003AD4A4 28 06 00 00 */ cmplwi r6, 0
/* 803B0548 003AD4A8 A0 7E 00 44 */ lhz r3, 0x44(r30)
/* 803B054C 003AD4AC 38 80 00 7F */ li r4, 0x7f
/* 803B0550 003AD4B0 38 A0 00 40 */ li r5, 0x40
/* 803B0554 003AD4B4 41 82 00 0C */ beq lbl_803B0560
/* 803B0558 003AD4B8 88 C6 00 1C */ lbz r6, 0x1c(r6)
/* 803B055C 003AD4BC 48 00 00 08 */ b lbl_803B0564
lbl_803B0560:
/* 803B0560 003AD4C0 88 DE 00 46 */ lbz r6, 0x46(r30)
lbl_803B0564:
/* 803B0564 003AD4C4 54 E7 E7 FE */ rlwinm r7, r7, 0x1c, 0x1f, 0x1f
/* 803B0568 003AD4C8 4B FE AA E5 */ bl synthFXStart
/* 803B056C 003AD4CC 3C 03 00 01 */ addis r0, r3, 1
/* 803B0570 003AD4D0 90 7E 00 3C */ stw r3, 0x3c(r30)
/* 803B0574 003AD4D4 28 00 FF FF */ cmplwi r0, 0xffff
/* 803B0578 003AD4D8 40 82 00 60 */ bne lbl_803B05D8
lbl_803B057C:
/* 803B057C 003AD4DC 80 7E 00 10 */ lwz r3, 0x10(r30)
/* 803B0580 003AD4E0 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e
/* 803B0584 003AD4E4 40 82 04 10 */ bne lbl_803B0994
/* 803B0588 003AD4E8 64 60 00 04 */ oris r0, r3, 4
/* 803B058C 003AD4EC 90 1E 00 10 */ stw r0, 0x10(r30)
/* 803B0590 003AD4F0 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803B0594 003AD4F4 54 00 03 DA */ rlwinm r0, r0, 0, 0xf, 0xd
/* 803B0598 003AD4F8 90 1E 00 10 */ stw r0, 0x10(r30)
/* 803B059C 003AD4FC 48 00 00 3C */ b lbl_803B05D8
lbl_803B05A0:
/* 803B05A0 003AD500 80 7E 00 3C */ lwz r3, 0x3c(r30)
/* 803B05A4 003AD504 4B FE BD 71 */ bl sndFXCheck
/* 803B05A8 003AD508 3C 03 00 01 */ addis r0, r3, 1
/* 803B05AC 003AD50C 90 7E 00 3C */ stw r3, 0x3c(r30)
/* 803B05B0 003AD510 28 00 FF FF */ cmplwi r0, 0xffff
/* 803B05B4 003AD514 40 82 00 24 */ bne lbl_803B05D8
/* 803B05B8 003AD518 80 7E 00 10 */ lwz r3, 0x10(r30)
/* 803B05BC 003AD51C 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e
/* 803B05C0 003AD520 41 82 00 10 */ beq lbl_803B05D0
/* 803B05C4 003AD524 64 60 00 02 */ oris r0, r3, 2
/* 803B05C8 003AD528 90 1E 00 10 */ stw r0, 0x10(r30)
/* 803B05CC 003AD52C 48 00 00 0C */ b lbl_803B05D8
lbl_803B05D0:
/* 803B05D0 003AD530 64 60 00 04 */ oris r0, r3, 4
/* 803B05D4 003AD534 90 1E 00 10 */ stw r0, 0x10(r30)
lbl_803B05D8:
/* 803B05D8 003AD538 80 7E 00 3C */ lwz r3, 0x3c(r30)
/* 803B05DC 003AD53C 3C 03 00 01 */ addis r0, r3, 1
/* 803B05E0 003AD540 28 00 FF FF */ cmplwi r0, 0xffff
/* 803B05E4 003AD544 41 82 03 2C */ beq lbl_803B0910
/* 803B05E8 003AD548 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803B05EC 003AD54C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 803B05F0 003AD550 41 82 01 28 */ beq lbl_803B0718
/* 803B05F4 003AD554 88 AD AF 62 */ lbz r5, startGroupNum@sda21(r13)
/* 803B05F8 003AD558 3C 60 80 56 */ lis r3, startGroup@ha
/* 803B05FC 003AD55C 38 83 F9 90 */ addi r4, r3, startGroup@l
/* 803B0600 003AD560 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 803B0604 003AD564 38 E0 00 00 */ li r7, 0
/* 803B0608 003AD568 7C A9 03 A6 */ mtctr r5
/* 803B060C 003AD56C 2C 05 00 00 */ cmpwi r5, 0
/* 803B0610 003AD570 40 81 00 20 */ ble lbl_803B0630
lbl_803B0614:
/* 803B0614 003AD574 80 7E 00 40 */ lwz r3, 0x40(r30)
/* 803B0618 003AD578 80 04 00 00 */ lwz r0, 0(r4)
/* 803B061C 003AD57C 7C 03 00 40 */ cmplw r3, r0
/* 803B0620 003AD580 41 82 00 10 */ beq lbl_803B0630
/* 803B0624 003AD584 38 84 00 10 */ addi r4, r4, 0x10
/* 803B0628 003AD588 38 E7 00 01 */ addi r7, r7, 1
/* 803B062C 003AD58C 42 00 FF E8 */ bdnz lbl_803B0614
lbl_803B0630:
/* 803B0630 003AD590 7C 07 28 00 */ cmpw r7, r5
/* 803B0634 003AD594 40 82 00 38 */ bne lbl_803B066C
/* 803B0638 003AD598 3C 80 80 56 */ lis r4, startGroup@ha
/* 803B063C 003AD59C 88 6D AF 62 */ lbz r3, startGroupNum@sda21(r13)
/* 803B0640 003AD5A0 54 E5 20 36 */ slwi r5, r7, 4
/* 803B0644 003AD5A4 38 C0 00 00 */ li r6, 0
/* 803B0648 003AD5A8 38 84 F9 90 */ addi r4, r4, startGroup@l
/* 803B064C 003AD5AC 38 03 00 01 */ addi r0, r3, 1
/* 803B0650 003AD5B0 7C 84 2A 14 */ add r4, r4, r5
/* 803B0654 003AD5B4 90 C4 00 04 */ stw r6, 4(r4)
/* 803B0658 003AD5B8 90 C4 00 08 */ stw r6, 8(r4)
/* 803B065C 003AD5BC B0 C4 00 0C */ sth r6, 0xc(r4)
/* 803B0660 003AD5C0 80 7E 00 40 */ lwz r3, 0x40(r30)
/* 803B0664 003AD5C4 90 64 00 00 */ stw r3, 0(r4)
/* 803B0668 003AD5C8 98 0D AF 62 */ stb r0, startGroupNum@sda21(r13)
lbl_803B066C:
/* 803B066C 003AD5CC 3C 60 80 56 */ lis r3, startGroup@ha
/* 803B0670 003AD5D0 54 E4 20 36 */ slwi r4, r7, 4
/* 803B0674 003AD5D4 38 03 F9 90 */ addi r0, r3, startGroup@l
/* 803B0678 003AD5D8 38 A0 00 00 */ li r5, 0
/* 803B067C 003AD5DC 7C 80 22 14 */ add r4, r0, r4
/* 803B0680 003AD5E0 A0 64 00 0C */ lhz r3, 0xc(r4)
/* 803B0684 003AD5E4 38 E4 00 08 */ addi r7, r4, 8
/* 803B0688 003AD5E8 38 03 00 01 */ addi r0, r3, 1
/* 803B068C 003AD5EC B0 04 00 0C */ sth r0, 0xc(r4)
/* 803B0690 003AD5F0 80 C4 00 08 */ lwz r6, 8(r4)
/* 803B0694 003AD5F4 48 00 00 18 */ b lbl_803B06AC
lbl_803B0698:
/* 803B0698 003AD5F8 C0 06 00 04 */ lfs f0, 4(r6)
/* 803B069C 003AD5FC FC 00 08 40 */ fcmpo cr0, f0, f1
/* 803B06A0 003AD600 41 81 00 14 */ bgt lbl_803B06B4
/* 803B06A4 003AD604 7C C5 33 78 */ mr r5, r6
/* 803B06A8 003AD608 80 C6 00 00 */ lwz r6, 0(r6)
lbl_803B06AC:
/* 803B06AC 003AD60C 28 06 00 00 */ cmplwi r6, 0
/* 803B06B0 003AD610 40 82 FF E8 */ bne lbl_803B0698
lbl_803B06B4:
/* 803B06B4 003AD614 28 05 00 00 */ cmplwi r5, 0
/* 803B06B8 003AD618 40 82 00 20 */ bne lbl_803B06D8
/* 803B06BC 003AD61C 88 8D AF 60 */ lbz r4, runListNum@sda21(r13)
/* 803B06C0 003AD620 3C 60 80 56 */ lis r3, runList@ha
/* 803B06C4 003AD624 38 03 FD 90 */ addi r0, r3, runList@l
/* 803B06C8 003AD628 1C 64 00 0C */ mulli r3, r4, 0xc
/* 803B06CC 003AD62C 7C 00 1A 14 */ add r0, r0, r3
/* 803B06D0 003AD630 90 07 00 00 */ stw r0, 0(r7)
/* 803B06D4 003AD634 48 00 00 1C */ b lbl_803B06F0
lbl_803B06D8:
/* 803B06D8 003AD638 88 8D AF 60 */ lbz r4, runListNum@sda21(r13)
/* 803B06DC 003AD63C 3C 60 80 56 */ lis r3, runList@ha
/* 803B06E0 003AD640 38 03 FD 90 */ addi r0, r3, runList@l
/* 803B06E4 003AD644 1C 64 00 0C */ mulli r3, r4, 0xc
/* 803B06E8 003AD648 7C 00 1A 14 */ add r0, r0, r3
/* 803B06EC 003AD64C 90 05 00 00 */ stw r0, 0(r5)
lbl_803B06F0:
/* 803B06F0 003AD650 88 AD AF 60 */ lbz r5, runListNum@sda21(r13)
/* 803B06F4 003AD654 3C 60 80 56 */ lis r3, runList@ha
/* 803B06F8 003AD658 38 63 FD 90 */ addi r3, r3, runList@l
/* 803B06FC 003AD65C 1C 85 00 0C */ mulli r4, r5, 0xc
/* 803B0700 003AD660 38 05 00 01 */ addi r0, r5, 1
/* 803B0704 003AD664 98 0D AF 60 */ stb r0, runListNum@sda21(r13)
/* 803B0708 003AD668 7C 63 22 14 */ add r3, r3, r4
/* 803B070C 003AD66C 90 C3 00 00 */ stw r6, 0(r3)
/* 803B0710 003AD670 93 C3 00 08 */ stw r30, 8(r3)
/* 803B0714 003AD674 D0 23 00 04 */ stfs f1, 4(r3)
lbl_803B0718:
/* 803B0718 003AD678 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2)
/* 803B071C 003AD67C C0 41 00 18 */ lfs f2, 0x18(r1)
/* 803B0720 003AD680 FC 00 10 00 */ fcmpu cr0, f0, f2
/* 803B0724 003AD684 40 82 00 44 */ bne lbl_803B0768
/* 803B0728 003AD688 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803B072C 003AD68C 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 803B0730 003AD690 41 82 00 38 */ beq lbl_803B0768
/* 803B0734 003AD694 80 7E 00 3C */ lwz r3, 0x3c(r30)
/* 803B0738 003AD698 4B FE AC 29 */ bl synthSendKeyOff
/* 803B073C 003AD69C 38 00 FF FF */ li r0, -1
/* 803B0740 003AD6A0 90 1E 00 3C */ stw r0, 0x3c(r30)
/* 803B0744 003AD6A4 80 7E 00 10 */ lwz r3, 0x10(r30)
/* 803B0748 003AD6A8 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e
/* 803B074C 003AD6AC 41 82 00 10 */ beq lbl_803B075C
/* 803B0750 003AD6B0 64 60 00 08 */ oris r0, r3, 8
/* 803B0754 003AD6B4 90 1E 00 10 */ stw r0, 0x10(r30)
/* 803B0758 003AD6B8 48 00 01 B8 */ b lbl_803B0910
lbl_803B075C:
/* 803B075C 003AD6BC 64 60 00 04 */ oris r0, r3, 4
/* 803B0760 003AD6C0 90 1E 00 10 */ stw r0, 0x10(r30)
/* 803B0764 003AD6C4 48 00 01 AC */ b lbl_803B0910
lbl_803B0768:
/* 803B0768 003AD6C8 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803B076C 003AD6CC C3 E1 00 08 */ lfs f31, 8(r1)
/* 803B0770 003AD6D0 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb
/* 803B0774 003AD6D4 C3 A1 00 0C */ lfs f29, 0xc(r1)
/* 803B0778 003AD6D8 C3 C1 00 14 */ lfs f30, 0x14(r1)
/* 803B077C 003AD6DC 83 FE 00 3C */ lwz r31, 0x3c(r30)
/* 803B0780 003AD6E0 41 82 00 44 */ beq lbl_803B07C4
/* 803B0784 003AD6E4 C0 1E 00 4C */ lfs f0, 0x4c(r30)
/* 803B0788 003AD6E8 7F E3 FB 78 */ mr r3, r31
/* 803B078C 003AD6EC C0 22 D6 28 */ lfs f1, lbl_805AF348@sda21(r2)
/* 803B0790 003AD6F0 38 80 00 07 */ li r4, 7
/* 803B0794 003AD6F4 EC 00 00 B2 */ fmuls f0, f0, f2
/* 803B0798 003AD6F8 38 A0 00 7F */ li r5, 0x7f
/* 803B079C 003AD6FC EC 01 00 32 */ fmuls f0, f1, f0
/* 803B07A0 003AD700 FC 00 00 1E */ fctiwz f0, f0
/* 803B07A4 003AD704 D8 01 00 20 */ stfd f0, 0x20(r1)
/* 803B07A8 003AD708 80 C1 00 24 */ lwz r6, 0x24(r1)
/* 803B07AC 003AD70C 54 C0 06 3E */ clrlwi r0, r6, 0x18
/* 803B07B0 003AD710 28 00 00 7F */ cmplwi r0, 0x7f
/* 803B07B4 003AD714 41 81 00 08 */ bgt lbl_803B07BC
/* 803B07B8 003AD718 7C C5 33 78 */ mr r5, r6
lbl_803B07BC:
/* 803B07BC 003AD71C 4B FE A9 59 */ bl synthFXSetCtrl
/* 803B07C0 003AD720 48 00 00 3C */ b lbl_803B07FC
lbl_803B07C4:
/* 803B07C4 003AD724 C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2)
/* 803B07C8 003AD728 38 A0 00 7F */ li r5, 0x7f
/* 803B07CC 003AD72C EC 00 00 B2 */ fmuls f0, f0, f2
/* 803B07D0 003AD730 FC 00 00 1E */ fctiwz f0, f0
/* 803B07D4 003AD734 D8 01 00 20 */ stfd f0, 0x20(r1)
/* 803B07D8 003AD738 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803B07DC 003AD73C 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 803B07E0 003AD740 28 00 00 7F */ cmplwi r0, 0x7f
/* 803B07E4 003AD744 41 81 00 0C */ bgt lbl_803B07F0
/* 803B07E8 003AD748 D8 01 00 28 */ stfd f0, 0x28(r1)
/* 803B07EC 003AD74C 80 A1 00 2C */ lwz r5, 0x2c(r1)
lbl_803B07F0:
/* 803B07F0 003AD750 7F E3 FB 78 */ mr r3, r31
/* 803B07F4 003AD754 38 80 00 07 */ li r4, 7
/* 803B07F8 003AD758 4B FE A9 1D */ bl synthFXSetCtrl
lbl_803B07FC:
/* 803B07FC 003AD75C C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2)
/* 803B0800 003AD760 38 A0 00 7F */ li r5, 0x7f
/* 803B0804 003AD764 C0 22 D6 3C */ lfs f1, lbl_805AF35C@sda21(r2)
/* 803B0808 003AD768 EC 00 F0 2A */ fadds f0, f0, f30
/* 803B080C 003AD76C EC 01 00 32 */ fmuls f0, f1, f0
/* 803B0810 003AD770 FC 00 00 1E */ fctiwz f0, f0
/* 803B0814 003AD774 D8 01 00 28 */ stfd f0, 0x28(r1)
/* 803B0818 003AD778 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803B081C 003AD77C 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 803B0820 003AD780 28 00 00 7F */ cmplwi r0, 0x7f
/* 803B0824 003AD784 41 81 00 0C */ bgt lbl_803B0830
/* 803B0828 003AD788 D8 01 00 20 */ stfd f0, 0x20(r1)
/* 803B082C 003AD78C 80 A1 00 24 */ lwz r5, 0x24(r1)
lbl_803B0830:
/* 803B0830 003AD790 7F E3 FB 78 */ mr r3, r31
/* 803B0834 003AD794 38 80 00 0A */ li r4, 0xa
/* 803B0838 003AD798 4B FE A8 DD */ bl synthFXSetCtrl
/* 803B083C 003AD79C C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2)
/* 803B0840 003AD7A0 38 A0 00 7F */ li r5, 0x7f
/* 803B0844 003AD7A4 C0 22 D6 3C */ lfs f1, lbl_805AF35C@sda21(r2)
/* 803B0848 003AD7A8 EC 00 E8 28 */ fsubs f0, f0, f29
/* 803B084C 003AD7AC EC 01 00 32 */ fmuls f0, f1, f0
/* 803B0850 003AD7B0 FC 00 00 1E */ fctiwz f0, f0
/* 803B0854 003AD7B4 D8 01 00 30 */ stfd f0, 0x30(r1)
/* 803B0858 003AD7B8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803B085C 003AD7BC 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 803B0860 003AD7C0 28 00 00 7F */ cmplwi r0, 0x7f
/* 803B0864 003AD7C4 41 81 00 0C */ bgt lbl_803B0870
/* 803B0868 003AD7C8 D8 01 00 38 */ stfd f0, 0x38(r1)
/* 803B086C 003AD7CC 80 A1 00 3C */ lwz r5, 0x3c(r1)
lbl_803B0870:
/* 803B0870 003AD7D0 7F E3 FB 78 */ mr r3, r31
/* 803B0874 003AD7D4 38 80 00 83 */ li r4, 0x83
/* 803B0878 003AD7D8 4B FE A8 9D */ bl synthFXSetCtrl
/* 803B087C 003AD7DC C0 02 D6 40 */ lfs f0, lbl_805AF360@sda21(r2)
/* 803B0880 003AD7E0 EC 20 07 F2 */ fmuls f1, f0, f31
/* 803B0884 003AD7E4 4B FD 90 D1 */ bl __cvt_fp2unsigned
/* 803B0888 003AD7E8 28 03 3F FF */ cmplwi r3, 0x3fff
/* 803B088C 003AD7EC 38 A0 3F FF */ li r5, 0x3fff
/* 803B0890 003AD7F0 41 81 00 08 */ bgt lbl_803B0898
/* 803B0894 003AD7F4 54 65 04 3E */ clrlwi r5, r3, 0x10
lbl_803B0898:
/* 803B0898 003AD7F8 7F E3 FB 78 */ mr r3, r31
/* 803B089C 003AD7FC 38 80 00 84 */ li r4, 0x84
/* 803B08A0 003AD800 4B FE A9 59 */ bl synthFXSetCtrl14
/* 803B08A4 003AD804 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 803B08A8 003AD808 28 03 00 00 */ cmplwi r3, 0
/* 803B08AC 003AD80C 41 82 00 64 */ beq lbl_803B0910
/* 803B08B0 003AD810 83 83 00 04 */ lwz r28, 4(r3)
/* 803B08B4 003AD814 3B 60 00 00 */ li r27, 0
/* 803B08B8 003AD818 48 00 00 44 */ b lbl_803B08FC
lbl_803B08BC:
/* 803B08BC 003AD81C 88 9C 00 00 */ lbz r4, 0(r28)
/* 803B08C0 003AD820 28 04 00 40 */ cmplwi r4, 0x40
/* 803B08C4 003AD824 41 80 00 14 */ blt lbl_803B08D8
/* 803B08C8 003AD828 28 04 00 80 */ cmplwi r4, 0x80
/* 803B08CC 003AD82C 41 82 00 0C */ beq lbl_803B08D8
/* 803B08D0 003AD830 28 04 00 84 */ cmplwi r4, 0x84
/* 803B08D4 003AD834 40 82 00 14 */ bne lbl_803B08E8
lbl_803B08D8:
/* 803B08D8 003AD838 A0 BC 00 02 */ lhz r5, 2(r28)
/* 803B08DC 003AD83C 7F E3 FB 78 */ mr r3, r31
/* 803B08E0 003AD840 4B FE A9 19 */ bl synthFXSetCtrl14
/* 803B08E4 003AD844 48 00 00 10 */ b lbl_803B08F4
lbl_803B08E8:
/* 803B08E8 003AD848 88 BC 00 02 */ lbz r5, 2(r28)
/* 803B08EC 003AD84C 7F E3 FB 78 */ mr r3, r31
/* 803B08F0 003AD850 4B FE A8 25 */ bl synthFXSetCtrl
lbl_803B08F4:
/* 803B08F4 003AD854 3B 9C 00 04 */ addi r28, r28, 4
/* 803B08F8 003AD858 3B 7B 00 01 */ addi r27, r27, 1
lbl_803B08FC:
/* 803B08FC 003AD85C 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 803B0900 003AD860 57 64 06 3E */ clrlwi r4, r27, 0x18
/* 803B0904 003AD864 88 03 00 00 */ lbz r0, 0(r3)
/* 803B0908 003AD868 7C 04 00 40 */ cmplw r4, r0
/* 803B090C 003AD86C 41 80 FF B0 */ blt lbl_803B08BC
lbl_803B0910:
/* 803B0910 003AD870 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803B0914 003AD874 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb
/* 803B0918 003AD878 41 82 00 7C */ beq lbl_803B0994
/* 803B091C 003AD87C C0 5E 00 4C */ lfs f2, 0x4c(r30)
/* 803B0920 003AD880 C0 22 D6 50 */ lfs f1, lbl_805AF370@sda21(r2)
/* 803B0924 003AD884 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2)
/* 803B0928 003AD888 EC 22 08 2A */ fadds f1, f2, f1
/* 803B092C 003AD88C D0 3E 00 4C */ stfs f1, 0x4c(r30)
/* 803B0930 003AD890 C0 3E 00 4C */ lfs f1, 0x4c(r30)
/* 803B0934 003AD894 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 803B0938 003AD898 4C 41 13 82 */ cror 2, 1, 2
/* 803B093C 003AD89C 40 82 00 58 */ bne lbl_803B0994
/* 803B0940 003AD8A0 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803B0944 003AD8A4 54 00 03 14 */ rlwinm r0, r0, 0, 0xc, 0xa
/* 803B0948 003AD8A8 90 1E 00 10 */ stw r0, 0x10(r30)
/* 803B094C 003AD8AC 48 00 00 48 */ b lbl_803B0994
lbl_803B0950:
/* 803B0950 003AD8B0 80 7E 00 08 */ lwz r3, 8(r30)
/* 803B0954 003AD8B4 28 03 00 00 */ cmplwi r3, 0
/* 803B0958 003AD8B8 41 82 00 14 */ beq lbl_803B096C
/* 803B095C 003AD8BC 41 82 00 38 */ beq lbl_803B0994
/* 803B0960 003AD8C0 88 03 00 1C */ lbz r0, 0x1c(r3)
/* 803B0964 003AD8C4 28 00 00 FF */ cmplwi r0, 0xff
/* 803B0968 003AD8C8 41 82 00 2C */ beq lbl_803B0994
lbl_803B096C:
/* 803B096C 003AD8CC C0 22 D6 08 */ lfs f1, lbl_805AF328@sda21(r2)
/* 803B0970 003AD8D0 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 803B0974 003AD8D4 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 803B0978 003AD8D8 41 82 00 1C */ beq lbl_803B0994
/* 803B097C 003AD8DC 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803B0980 003AD8E0 54 00 03 56 */ rlwinm r0, r0, 0, 0xd, 0xb
/* 803B0984 003AD8E4 90 1E 00 10 */ stw r0, 0x10(r30)
/* 803B0988 003AD8E8 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803B098C 003AD8EC 64 00 00 02 */ oris r0, r0, 2
/* 803B0990 003AD8F0 90 1E 00 10 */ stw r0, 0x10(r30)
lbl_803B0994:
/* 803B0994 003AD8F4 7F BE EB 78 */ mr r30, r29
lbl_803B0998:
/* 803B0998 003AD8F8 28 1E 00 00 */ cmplwi r30, 0
/* 803B099C 003AD8FC 40 82 FA 20 */ bne lbl_803B03BC
/* 803B09A0 003AD900 4B FF F6 09 */ bl StartContinousEmitters
/* 803B09A4 003AD904 4B FF DE 5D */ bl CheckRoomStatus
/* 803B09A8 003AD908 83 ED AF 6C */ lwz r31, s3dDoorRoot@sda21(r13)
/* 803B09AC 003AD90C 48 00 01 A0 */ b lbl_803B0B4C
lbl_803B09B0:
/* 803B09B0 003AD910 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 803B09B4 003AD914 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0
/* 803B09B8 003AD918 40 82 00 D0 */ bne lbl_803B0A88
/* 803B09BC 003AD91C 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 803B09C0 003AD920 88 03 00 1C */ lbz r0, 0x1c(r3)
/* 803B09C4 003AD924 28 00 00 FF */ cmplwi r0, 0xff
/* 803B09C8 003AD928 41 82 01 80 */ beq lbl_803B0B48
/* 803B09CC 003AD92C 80 7F 00 24 */ lwz r3, 0x24(r31)
/* 803B09D0 003AD930 88 03 00 1C */ lbz r0, 0x1c(r3)
/* 803B09D4 003AD934 28 00 00 FF */ cmplwi r0, 0xff
/* 803B09D8 003AD938 41 82 01 70 */ beq lbl_803B0B48
/* 803B09DC 003AD93C 88 9F 00 1C */ lbz r4, 0x1c(r31)
/* 803B09E0 003AD940 3C 00 43 30 */ lis r0, 0x4330
/* 803B09E4 003AD944 90 01 00 38 */ stw r0, 0x38(r1)
/* 803B09E8 003AD948 38 60 00 00 */ li r3, 0
/* 803B09EC 003AD94C C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2)
/* 803B09F0 003AD950 90 81 00 3C */ stw r4, 0x3c(r1)
/* 803B09F4 003AD954 C0 7F 00 14 */ lfs f3, 0x14(r31)
/* 803B09F8 003AD958 C8 21 00 38 */ lfd f1, 0x38(r1)
/* 803B09FC 003AD95C C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2)
/* 803B0A00 003AD960 EC 21 10 28 */ fsubs f1, f1, f2
/* 803B0A04 003AD964 EC 00 00 F2 */ fmuls f0, f0, f3
/* 803B0A08 003AD968 EC 21 00 F2 */ fmuls f1, f1, f3
/* 803B0A0C 003AD96C FC 00 00 1E */ fctiwz f0, f0
/* 803B0A10 003AD970 FC 20 08 1E */ fctiwz f1, f1
/* 803B0A14 003AD974 D8 01 00 28 */ stfd f0, 0x28(r1)
/* 803B0A18 003AD978 D8 21 00 30 */ stfd f1, 0x30(r1)
/* 803B0A1C 003AD97C 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803B0A20 003AD980 80 81 00 34 */ lwz r4, 0x34(r1)
/* 803B0A24 003AD984 98 9F 00 35 */ stb r4, 0x35(r31)
/* 803B0A28 003AD988 98 7F 00 36 */ stb r3, 0x36(r31)
/* 803B0A2C 003AD98C 98 1F 00 34 */ stb r0, 0x34(r31)
/* 803B0A30 003AD990 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 803B0A34 003AD994 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 803B0A38 003AD998 41 82 00 24 */ beq lbl_803B0A5C
/* 803B0A3C 003AD99C 80 7F 00 24 */ lwz r3, 0x24(r31)
/* 803B0A40 003AD9A0 38 9F 00 34 */ addi r4, r31, 0x34
/* 803B0A44 003AD9A4 88 03 00 1C */ lbz r0, 0x1c(r3)
/* 803B0A48 003AD9A8 98 1F 00 37 */ stb r0, 0x37(r31)
/* 803B0A4C 003AD9AC 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 803B0A50 003AD9B0 88 63 00 1C */ lbz r3, 0x1c(r3)
/* 803B0A54 003AD9B4 4B FE BD D1 */ bl synthAddStudioInput
/* 803B0A58 003AD9B8 48 00 00 20 */ b lbl_803B0A78
lbl_803B0A5C:
/* 803B0A5C 003AD9BC 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 803B0A60 003AD9C0 38 9F 00 34 */ addi r4, r31, 0x34
/* 803B0A64 003AD9C4 88 03 00 1C */ lbz r0, 0x1c(r3)
/* 803B0A68 003AD9C8 98 1F 00 37 */ stb r0, 0x37(r31)
/* 803B0A6C 003AD9CC 80 7F 00 24 */ lwz r3, 0x24(r31)
/* 803B0A70 003AD9D0 88 63 00 1C */ lbz r3, 0x1c(r3)
/* 803B0A74 003AD9D4 4B FE BD B1 */ bl synthAddStudioInput
lbl_803B0A78:
/* 803B0A78 003AD9D8 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 803B0A7C 003AD9DC 64 00 80 00 */ oris r0, r0, 0x8000
/* 803B0A80 003AD9E0 90 1F 00 28 */ stw r0, 0x28(r31)
/* 803B0A84 003AD9E4 48 00 00 C4 */ b lbl_803B0B48
lbl_803B0A88:
/* 803B0A88 003AD9E8 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 803B0A8C 003AD9EC 88 83 00 1C */ lbz r4, 0x1c(r3)
/* 803B0A90 003AD9F0 28 04 00 FF */ cmplwi r4, 0xff
/* 803B0A94 003AD9F4 41 82 00 14 */ beq lbl_803B0AA8
/* 803B0A98 003AD9F8 80 7F 00 24 */ lwz r3, 0x24(r31)
/* 803B0A9C 003AD9FC 88 03 00 1C */ lbz r0, 0x1c(r3)
/* 803B0AA0 003ADA00 28 00 00 FF */ cmplwi r0, 0xff
/* 803B0AA4 003ADA04 40 82 00 50 */ bne lbl_803B0AF4
lbl_803B0AA8:
/* 803B0AA8 003ADA08 28 04 00 FF */ cmplwi r4, 0xff
/* 803B0AAC 003ADA0C 41 82 00 10 */ beq lbl_803B0ABC
/* 803B0AB0 003ADA10 88 1F 00 1D */ lbz r0, 0x1d(r31)
/* 803B0AB4 003ADA14 7C 04 00 40 */ cmplw r4, r0
/* 803B0AB8 003ADA18 41 82 00 20 */ beq lbl_803B0AD8
lbl_803B0ABC:
/* 803B0ABC 003ADA1C 80 7F 00 24 */ lwz r3, 0x24(r31)
/* 803B0AC0 003ADA20 88 63 00 1C */ lbz r3, 0x1c(r3)
/* 803B0AC4 003ADA24 28 03 00 FF */ cmplwi r3, 0xff
/* 803B0AC8 003ADA28 41 82 00 1C */ beq lbl_803B0AE4
/* 803B0ACC 003ADA2C 88 1F 00 1D */ lbz r0, 0x1d(r31)
/* 803B0AD0 003ADA30 7C 03 00 40 */ cmplw r3, r0
/* 803B0AD4 003ADA34 40 82 00 10 */ bne lbl_803B0AE4
lbl_803B0AD8:
/* 803B0AD8 003ADA38 88 7F 00 1D */ lbz r3, 0x1d(r31)
/* 803B0ADC 003ADA3C 38 9F 00 34 */ addi r4, r31, 0x34
/* 803B0AE0 003ADA40 4B FE BD 65 */ bl synthRemoveStudioInput
lbl_803B0AE4:
/* 803B0AE4 003ADA44 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 803B0AE8 003ADA48 54 00 00 7E */ clrlwi r0, r0, 1
/* 803B0AEC 003ADA4C 90 1F 00 28 */ stw r0, 0x28(r31)
/* 803B0AF0 003ADA50 48 00 00 58 */ b lbl_803B0B48
lbl_803B0AF4:
/* 803B0AF4 003ADA54 88 9F 00 1C */ lbz r4, 0x1c(r31)
/* 803B0AF8 003ADA58 3C 00 43 30 */ lis r0, 0x4330
/* 803B0AFC 003ADA5C 90 01 00 38 */ stw r0, 0x38(r1)
/* 803B0B00 003ADA60 38 60 00 00 */ li r3, 0
/* 803B0B04 003ADA64 C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2)
/* 803B0B08 003ADA68 90 81 00 3C */ stw r4, 0x3c(r1)
/* 803B0B0C 003ADA6C C0 7F 00 14 */ lfs f3, 0x14(r31)
/* 803B0B10 003ADA70 C8 21 00 38 */ lfd f1, 0x38(r1)
/* 803B0B14 003ADA74 C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2)
/* 803B0B18 003ADA78 EC 21 10 28 */ fsubs f1, f1, f2
/* 803B0B1C 003ADA7C EC 00 00 F2 */ fmuls f0, f0, f3
/* 803B0B20 003ADA80 EC 21 00 F2 */ fmuls f1, f1, f3
/* 803B0B24 003ADA84 FC 00 00 1E */ fctiwz f0, f0
/* 803B0B28 003ADA88 FC 20 08 1E */ fctiwz f1, f1
/* 803B0B2C 003ADA8C D8 01 00 28 */ stfd f0, 0x28(r1)
/* 803B0B30 003ADA90 D8 21 00 30 */ stfd f1, 0x30(r1)
/* 803B0B34 003ADA94 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803B0B38 003ADA98 80 81 00 34 */ lwz r4, 0x34(r1)
/* 803B0B3C 003ADA9C 98 9F 00 35 */ stb r4, 0x35(r31)
/* 803B0B40 003ADAA0 98 7F 00 36 */ stb r3, 0x36(r31)
/* 803B0B44 003ADAA4 98 1F 00 34 */ stb r0, 0x34(r31)
lbl_803B0B48:
/* 803B0B48 003ADAA8 83 FF 00 00 */ lwz r31, 0(r31)
lbl_803B0B4C:
/* 803B0B4C 003ADAAC 28 1F 00 00 */ cmplwi r31, 0
/* 803B0B50 003ADAB0 40 82 FE 60 */ bne lbl_803B09B0
lbl_803B0B54:
/* 803B0B54 003ADAB4 E3 E1 00 88 */ psq_l f31, 136(r1), 0, qr0
/* 803B0B58 003ADAB8 CB E1 00 80 */ lfd f31, 0x80(r1)
/* 803B0B5C 003ADABC E3 C1 00 78 */ psq_l f30, 120(r1), 0, qr0
/* 803B0B60 003ADAC0 CB C1 00 70 */ lfd f30, 0x70(r1)
/* 803B0B64 003ADAC4 E3 A1 00 68 */ psq_l f29, 104(r1), 0, qr0
/* 803B0B68 003ADAC8 39 61 00 60 */ addi r11, r1, 0x60
/* 803B0B6C 003ADACC CB A1 00 60 */ lfd f29, 0x60(r1)
/* 803B0B70 003ADAD0 4B FD 8F 59 */ bl _restgpr_27
/* 803B0B74 003ADAD4 80 01 00 94 */ lwz r0, 0x94(r1)
/* 803B0B78 003ADAD8 7C 08 03 A6 */ mtlr r0
/* 803B0B7C 003ADADC 38 21 00 90 */ addi r1, r1, 0x90
/* 803B0B80 003ADAE0 4E 80 00 20 */ blr
.global s3dInit
s3dInit:
/* 803B0B84 003ADAE4 38 A0 00 00 */ li r5, 0
/* 803B0B88 003ADAE8 54 60 FF FE */ rlwinm r0, r3, 0x1f, 0x1f, 0x1f
/* 803B0B8C 003ADAEC 38 80 00 01 */ li r4, 1
/* 803B0B90 003ADAF0 38 60 00 03 */ li r3, 3
/* 803B0B94 003ADAF4 90 AD AF 78 */ stw r5, s3dEmitterRoot@sda21(r13)
/* 803B0B98 003ADAF8 90 AD AF 74 */ stw r5, s3dListenerRoot@sda21(r13)
/* 803B0B9C 003ADAFC 90 AD AF 70 */ stw r5, s3dRoomRoot@sda21(r13)
/* 803B0BA0 003ADB00 90 AD AF 6C */ stw r5, s3dDoorRoot@sda21(r13)
/* 803B0BA4 003ADB04 90 AD AF 68 */ stw r5, snd_used_studios@sda21(r13)
/* 803B0BA8 003ADB08 98 8D AF 65 */ stb r4, snd_base_studio@sda21(r13)
/* 803B0BAC 003ADB0C 98 6D AF 64 */ stb r3, snd_max_studios@sda21(r13)
/* 803B0BB0 003ADB10 98 AD AF 7C */ stb r5, s3dCallCnt@sda21(r13)
/* 803B0BB4 003ADB14 98 0D AF 63 */ stb r0, s3dUseMaxVoices@sda21(r13)
/* 803B0BB8 003ADB18 4E 80 00 20 */ blr
.global s3dExit
s3dExit:
/* 803B0BBC 003ADB1C 4E 80 00 20 */ blr