.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

AddStartingEmitter:
/* 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

StartContinousEmitters:
/* 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

.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