prime/asm/musyx/runtime/StdReverb/reverb.s

1026 lines
48 KiB
ArmAsm

.include "macros.inc"
.section .sdata2
.balign 8
.global lbl_805AF3F0
lbl_805AF3F0:
# ROM: 0x3FBC90
.4byte 0
.global lbl_805AF3F4
lbl_805AF3F4:
# ROM: 0x3FBC94
.float 1.0
.global lbl_805AF3F8
lbl_805AF3F8:
# ROM: 0x3FBC98
.float 0.01
.global lbl_805AF3FC
lbl_805AF3FC:
# ROM: 0x3FBC9C
.4byte 0x41200000
.global lbl_805AF400
lbl_805AF400:
# ROM: 0x3FBCA0
.float 0.1
.global lbl_805AF404
lbl_805AF404:
# ROM: 0x3FBCA4
.4byte 0x46FA0000
.global lbl_805AF408
lbl_805AF408:
# ROM: 0x3FBCA8
.4byte 0x40240000
.4byte 0
.global lbl_805AF410
lbl_805AF410:
# ROM: 0x3FBCB0
.4byte 0x3D4CCCCD
.global lbl_805AF414
lbl_805AF414:
# ROM: 0x3FBCB4
.4byte 0x3F4CCCCD
.global lbl_805AF418
lbl_805AF418:
# ROM: 0x3FBCB8
.double 4.503601774854144E15
.global lbl_805AF420
lbl_805AF420:
# ROM: 0x3FBCC0
.double 4.503601774854144E15
.global lbl_805AF428
lbl_805AF428:
# ROM: 0x3FBCC8
.float 0.6
.global lbl_805AF42C
lbl_805AF42C:
# ROM: 0x3FBCCC
.float 0.3
.global lbl_805AF430
lbl_805AF430:
# ROM: 0x3FBCD0
.float 0.5
.4byte 0
.section .data, "wa"
.balign 8
lbl_803F6470:
.4byte 0x000006FD
.4byte 0x000007CF
.4byte 0x0000091D
.4byte 0x000001B1
.4byte 0x00000095
.4byte 0x0000002F
.4byte 0x00000049
.4byte 0x00000043
.section .text, "ax"
.global ReverbHICreate
ReverbHICreate:
/* 803B5BC0 003B2B20 94 21 FF 40 */ stwu r1, -0xc0(r1)
/* 803B5BC4 003B2B24 7C 08 02 A6 */ mflr r0
/* 803B5BC8 003B2B28 90 01 00 C4 */ stw r0, 0xc4(r1)
/* 803B5BCC 003B2B2C DB E1 00 B0 */ stfd f31, 0xb0(r1)
/* 803B5BD0 003B2B30 F3 E1 00 B8 */ psq_st f31, 184(r1), 0, qr0
/* 803B5BD4 003B2B34 DB C1 00 A0 */ stfd f30, 0xa0(r1)
/* 803B5BD8 003B2B38 F3 C1 00 A8 */ psq_st f30, 168(r1), 0, qr0
/* 803B5BDC 003B2B3C DB A1 00 90 */ stfd f29, 0x90(r1)
/* 803B5BE0 003B2B40 F3 A1 00 98 */ psq_st f29, 152(r1), 0, qr0
/* 803B5BE4 003B2B44 DB 81 00 80 */ stfd f28, 0x80(r1)
/* 803B5BE8 003B2B48 F3 81 00 88 */ psq_st f28, 136(r1), 0, qr0
/* 803B5BEC 003B2B4C DB 61 00 70 */ stfd f27, 0x70(r1)
/* 803B5BF0 003B2B50 F3 61 00 78 */ psq_st f27, 120(r1), 0, qr0
/* 803B5BF4 003B2B54 DB 41 00 60 */ stfd f26, 0x60(r1)
/* 803B5BF8 003B2B58 F3 41 00 68 */ psq_st f26, 104(r1), 0, qr0
/* 803B5BFC 003B2B5C DB 21 00 50 */ stfd f25, 0x50(r1)
/* 803B5C00 003B2B60 F3 21 00 58 */ psq_st f25, 88(r1), 0, qr0
/* 803B5C04 003B2B64 DB 01 00 40 */ stfd f24, 0x40(r1)
/* 803B5C08 003B2B68 F3 01 00 48 */ psq_st f24, 72(r1), 0, qr0
/* 803B5C0C 003B2B6C 39 61 00 40 */ addi r11, r1, 0x40
/* 803B5C10 003B2B70 4B FD 3E 51 */ bl _savegpr_20
/* 803B5C14 003B2B74 FF 00 08 90 */ fmr f24, f1
/* 803B5C18 003B2B78 C0 E2 D6 D0 */ lfs f7, lbl_805AF3F0@sda21(r2)
/* 803B5C1C 003B2B7C FF 80 10 90 */ fmr f28, f2
/* 803B5C20 003B2B80 7C 7E 1B 78 */ mr r30, r3
/* 803B5C24 003B2B84 FF 20 18 90 */ fmr f25, f3
/* 803B5C28 003B2B88 FF 40 20 90 */ fmr f26, f4
/* 803B5C2C 003B2B8C FF E0 28 90 */ fmr f31, f5
/* 803B5C30 003B2B90 FF 60 30 90 */ fmr f27, f6
/* 803B5C34 003B2B94 FC 18 38 40 */ fcmpo cr0, f24, f7
/* 803B5C38 003B2B98 41 80 00 6C */ blt lbl_803B5CA4
/* 803B5C3C 003B2B9C C0 22 D6 D4 */ lfs f1, lbl_805AF3F4@sda21(r2)
/* 803B5C40 003B2BA0 FC 18 08 40 */ fcmpo cr0, f24, f1
/* 803B5C44 003B2BA4 41 81 00 60 */ bgt lbl_803B5CA4
/* 803B5C48 003B2BA8 C0 02 D6 D8 */ lfs f0, lbl_805AF3F8@sda21(r2)
/* 803B5C4C 003B2BAC FC 1C 00 40 */ fcmpo cr0, f28, f0
/* 803B5C50 003B2BB0 41 80 00 54 */ blt lbl_803B5CA4
/* 803B5C54 003B2BB4 C0 02 D6 DC */ lfs f0, lbl_805AF3FC@sda21(r2)
/* 803B5C58 003B2BB8 FC 1C 00 40 */ fcmpo cr0, f28, f0
/* 803B5C5C 003B2BBC 41 81 00 48 */ bgt lbl_803B5CA4
/* 803B5C60 003B2BC0 FC 19 38 40 */ fcmpo cr0, f25, f7
/* 803B5C64 003B2BC4 41 80 00 40 */ blt lbl_803B5CA4
/* 803B5C68 003B2BC8 FC 19 08 40 */ fcmpo cr0, f25, f1
/* 803B5C6C 003B2BCC 41 81 00 38 */ bgt lbl_803B5CA4
/* 803B5C70 003B2BD0 FC 1B 38 40 */ fcmpo cr0, f27, f7
/* 803B5C74 003B2BD4 41 80 00 30 */ blt lbl_803B5CA4
/* 803B5C78 003B2BD8 FC 1B 08 40 */ fcmpo cr0, f27, f1
/* 803B5C7C 003B2BDC 41 81 00 28 */ bgt lbl_803B5CA4
/* 803B5C80 003B2BE0 FC 1A 38 40 */ fcmpo cr0, f26, f7
/* 803B5C84 003B2BE4 41 80 00 20 */ blt lbl_803B5CA4
/* 803B5C88 003B2BE8 FC 1A 08 40 */ fcmpo cr0, f26, f1
/* 803B5C8C 003B2BEC 41 81 00 18 */ bgt lbl_803B5CA4
/* 803B5C90 003B2BF0 FC 1F 38 40 */ fcmpo cr0, f31, f7
/* 803B5C94 003B2BF4 41 80 00 10 */ blt lbl_803B5CA4
/* 803B5C98 003B2BF8 C0 02 D6 E0 */ lfs f0, lbl_805AF400@sda21(r2)
/* 803B5C9C 003B2BFC FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 803B5CA0 003B2C00 40 81 00 0C */ ble lbl_803B5CAC
lbl_803B5CA4:
/* 803B5CA4 003B2C04 38 60 00 00 */ li r3, 0
/* 803B5CA8 003B2C08 48 00 03 CC */ b lbl_803B6074
lbl_803B5CAC:
/* 803B5CAC 003B2C0C 38 80 00 00 */ li r4, 0
/* 803B5CB0 003B2C10 38 A0 01 C4 */ li r5, 0x1c4
/* 803B5CB4 003B2C14 4B C4 D6 F5 */ bl memset
/* 803B5CB8 003B2C18 C0 02 D6 E4 */ lfs f0, lbl_805AF404@sda21(r2)
/* 803B5CBC 003B2C1C 3C 60 80 3F */ lis r3, lbl_803F6470@ha
/* 803B5CC0 003B2C20 C3 C2 D6 D0 */ lfs f30, lbl_805AF3F0@sda21(r2)
/* 803B5CC4 003B2C24 3B A3 64 70 */ addi r29, r3, lbl_803F6470@l
/* 803B5CC8 003B2C28 EF 80 07 32 */ fmuls f28, f0, f28
/* 803B5CCC 003B2C2C CB A2 D6 F8 */ lfd f29, lbl_805AF418@sda21(r2)
/* 803B5CD0 003B2C30 3B E0 00 00 */ li r31, 0
/* 803B5CD4 003B2C34 3F 80 43 30 */ lis r28, 0x4330
/* 803B5CD8 003B2C38 48 00 02 B4 */ b lbl_803B5F8C
lbl_803B5CDC:
/* 803B5CDC 003B2C3C 57 F7 06 3E */ clrlwi r23, r31, 0x18
/* 803B5CE0 003B2C40 3A C0 00 00 */ li r22, 0
/* 803B5CE4 003B2C44 1F 17 00 03 */ mulli r24, r23, 3
/* 803B5CE8 003B2C48 48 00 00 F8 */ b lbl_803B5DE0
lbl_803B5CEC:
/* 803B5CEC 003B2C4C 56 C0 06 3E */ clrlwi r0, r22, 0x18
/* 803B5CF0 003B2C50 56 DB 15 BA */ rlwinm r27, r22, 2, 0x16, 0x1d
/* 803B5CF4 003B2C54 7F 20 C2 14 */ add r25, r0, r24
/* 803B5CF8 003B2C58 7C 7D D8 2E */ lwzx r3, r29, r27
/* 803B5CFC 003B2C5C 1C 19 00 14 */ mulli r0, r25, 0x14
/* 803B5D00 003B2C60 3A A3 00 02 */ addi r21, r3, 2
/* 803B5D04 003B2C64 56 B4 10 3A */ slwi r20, r21, 2
/* 803B5D08 003B2C68 7F 5E 02 14 */ add r26, r30, r0
/* 803B5D0C 003B2C6C 92 9A 00 BC */ stw r20, 0xbc(r26)
/* 803B5D10 003B2C70 7E 83 A3 78 */ mr r3, r20
/* 803B5D14 003B2C74 4B FF F4 21 */ bl salMalloc
/* 803B5D18 003B2C78 90 7A 00 C0 */ stw r3, 0xc0(r26)
/* 803B5D1C 003B2C7C 7E 85 A3 78 */ mr r5, r20
/* 803B5D20 003B2C80 38 80 00 00 */ li r4, 0
/* 803B5D24 003B2C84 80 7A 00 C0 */ lwz r3, 0xc0(r26)
/* 803B5D28 003B2C88 4B C4 D6 81 */ bl memset
/* 803B5D2C 003B2C8C D3 DA 00 C4 */ stfs f30, 0xc4(r26)
/* 803B5D30 003B2C90 7E A0 0E 70 */ srawi r0, r21, 1
/* 803B5D34 003B2C94 54 03 10 3A */ slwi r3, r0, 2
/* 803B5D38 003B2C98 80 1A 00 B4 */ lwz r0, 0xb4(r26)
/* 803B5D3C 003B2C9C 7C 03 00 50 */ subf r0, r3, r0
/* 803B5D40 003B2CA0 90 1A 00 B8 */ stw r0, 0xb8(r26)
/* 803B5D44 003B2CA4 48 00 00 14 */ b lbl_803B5D58
lbl_803B5D48:
/* 803B5D48 003B2CA8 80 7A 00 B8 */ lwz r3, 0xb8(r26)
/* 803B5D4C 003B2CAC 80 1A 00 BC */ lwz r0, 0xbc(r26)
/* 803B5D50 003B2CB0 7C 03 02 14 */ add r0, r3, r0
/* 803B5D54 003B2CB4 90 1A 00 B8 */ stw r0, 0xb8(r26)
lbl_803B5D58:
/* 803B5D58 003B2CB8 80 1A 00 B8 */ lwz r0, 0xb8(r26)
/* 803B5D5C 003B2CBC 2C 00 00 00 */ cmpwi r0, 0
/* 803B5D60 003B2CC0 41 80 FF E8 */ blt lbl_803B5D48
/* 803B5D64 003B2CC4 38 00 00 00 */ li r0, 0
/* 803B5D68 003B2CC8 90 1A 00 B4 */ stw r0, 0xb4(r26)
/* 803B5D6C 003B2CCC 90 1A 00 B8 */ stw r0, 0xb8(r26)
/* 803B5D70 003B2CD0 7C 7D D8 2E */ lwzx r3, r29, r27
/* 803B5D74 003B2CD4 80 1A 00 B4 */ lwz r0, 0xb4(r26)
/* 803B5D78 003B2CD8 54 63 10 3A */ slwi r3, r3, 2
/* 803B5D7C 003B2CDC 7C 03 00 50 */ subf r0, r3, r0
/* 803B5D80 003B2CE0 90 1A 00 B8 */ stw r0, 0xb8(r26)
/* 803B5D84 003B2CE4 48 00 00 14 */ b lbl_803B5D98
lbl_803B5D88:
/* 803B5D88 003B2CE8 80 7A 00 B8 */ lwz r3, 0xb8(r26)
/* 803B5D8C 003B2CEC 80 1A 00 BC */ lwz r0, 0xbc(r26)
/* 803B5D90 003B2CF0 7C 03 02 14 */ add r0, r3, r0
/* 803B5D94 003B2CF4 90 1A 00 B8 */ stw r0, 0xb8(r26)
lbl_803B5D98:
/* 803B5D98 003B2CF8 80 1A 00 B8 */ lwz r0, 0xb8(r26)
/* 803B5D9C 003B2CFC 2C 00 00 00 */ cmpwi r0, 0
/* 803B5DA0 003B2D00 41 80 FF E8 */ blt lbl_803B5D88
/* 803B5DA4 003B2D04 7C 1D D8 2E */ lwzx r0, r29, r27
/* 803B5DA8 003B2D08 93 81 00 08 */ stw r28, 8(r1)
/* 803B5DAC 003B2D0C 1C 00 FF FD */ mulli r0, r0, -3
/* 803B5DB0 003B2D10 C8 22 D6 E8 */ lfd f1, lbl_805AF408@sda21(r2)
/* 803B5DB4 003B2D14 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 803B5DB8 003B2D18 90 01 00 0C */ stw r0, 0xc(r1)
/* 803B5DBC 003B2D1C C8 01 00 08 */ lfd f0, 8(r1)
/* 803B5DC0 003B2D20 EC 00 E8 28 */ fsubs f0, f0, f29
/* 803B5DC4 003B2D24 EC 40 E0 24 */ fdivs f2, f0, f28
/* 803B5DC8 003B2D28 4B FD EF 25 */ bl pow
/* 803B5DCC 003B2D2C FC 00 08 18 */ frsp f0, f1
/* 803B5DD0 003B2D30 57 23 10 3A */ slwi r3, r25, 2
/* 803B5DD4 003B2D34 38 03 01 6C */ addi r0, r3, 0x16c
/* 803B5DD8 003B2D38 3A D6 00 01 */ addi r22, r22, 1
/* 803B5DDC 003B2D3C 7C 1E 05 2E */ stfsx f0, r30, r0
lbl_803B5DE0:
/* 803B5DE0 003B2D40 56 C0 06 3E */ clrlwi r0, r22, 0x18
/* 803B5DE4 003B2D44 28 00 00 03 */ cmplwi r0, 3
/* 803B5DE8 003B2D48 41 80 FF 04 */ blt lbl_803B5CEC
/* 803B5DEC 003B2D4C 3B 60 00 00 */ li r27, 0
/* 803B5DF0 003B2D50 48 00 00 C8 */ b lbl_803B5EB8
lbl_803B5DF4:
/* 803B5DF4 003B2D54 57 60 15 BA */ rlwinm r0, r27, 2, 0x16, 0x1d
/* 803B5DF8 003B2D58 57 64 06 3E */ clrlwi r4, r27, 0x18
/* 803B5DFC 003B2D5C 7C 7D 02 14 */ add r3, r29, r0
/* 803B5E00 003B2D60 7C 04 C2 14 */ add r0, r4, r24
/* 803B5E04 003B2D64 3B 43 00 0C */ addi r26, r3, 0xc
/* 803B5E08 003B2D68 80 63 00 0C */ lwz r3, 0xc(r3)
/* 803B5E0C 003B2D6C 1C 00 00 14 */ mulli r0, r0, 0x14
/* 803B5E10 003B2D70 3A A3 00 02 */ addi r21, r3, 2
/* 803B5E14 003B2D74 56 B4 10 3A */ slwi r20, r21, 2
/* 803B5E18 003B2D78 7F 3E 02 14 */ add r25, r30, r0
/* 803B5E1C 003B2D7C 92 99 00 08 */ stw r20, 8(r25)
/* 803B5E20 003B2D80 7E 83 A3 78 */ mr r3, r20
/* 803B5E24 003B2D84 4B FF F3 11 */ bl salMalloc
/* 803B5E28 003B2D88 90 79 00 0C */ stw r3, 0xc(r25)
/* 803B5E2C 003B2D8C 7E 85 A3 78 */ mr r5, r20
/* 803B5E30 003B2D90 38 80 00 00 */ li r4, 0
/* 803B5E34 003B2D94 80 79 00 0C */ lwz r3, 0xc(r25)
/* 803B5E38 003B2D98 4B C4 D5 71 */ bl memset
/* 803B5E3C 003B2D9C D3 D9 00 10 */ stfs f30, 0x10(r25)
/* 803B5E40 003B2DA0 7E A0 0E 70 */ srawi r0, r21, 1
/* 803B5E44 003B2DA4 54 03 10 3A */ slwi r3, r0, 2
/* 803B5E48 003B2DA8 80 19 00 00 */ lwz r0, 0(r25)
/* 803B5E4C 003B2DAC 7C 03 00 50 */ subf r0, r3, r0
/* 803B5E50 003B2DB0 90 19 00 04 */ stw r0, 4(r25)
/* 803B5E54 003B2DB4 48 00 00 14 */ b lbl_803B5E68
lbl_803B5E58:
/* 803B5E58 003B2DB8 80 79 00 04 */ lwz r3, 4(r25)
/* 803B5E5C 003B2DBC 80 19 00 08 */ lwz r0, 8(r25)
/* 803B5E60 003B2DC0 7C 03 02 14 */ add r0, r3, r0
/* 803B5E64 003B2DC4 90 19 00 04 */ stw r0, 4(r25)
lbl_803B5E68:
/* 803B5E68 003B2DC8 80 19 00 04 */ lwz r0, 4(r25)
/* 803B5E6C 003B2DCC 2C 00 00 00 */ cmpwi r0, 0
/* 803B5E70 003B2DD0 41 80 FF E8 */ blt lbl_803B5E58
/* 803B5E74 003B2DD4 38 00 00 00 */ li r0, 0
/* 803B5E78 003B2DD8 90 19 00 00 */ stw r0, 0(r25)
/* 803B5E7C 003B2DDC 90 19 00 04 */ stw r0, 4(r25)
/* 803B5E80 003B2DE0 80 7A 00 00 */ lwz r3, 0(r26)
/* 803B5E84 003B2DE4 80 19 00 00 */ lwz r0, 0(r25)
/* 803B5E88 003B2DE8 54 63 10 3A */ slwi r3, r3, 2
/* 803B5E8C 003B2DEC 7C 03 00 50 */ subf r0, r3, r0
/* 803B5E90 003B2DF0 90 19 00 04 */ stw r0, 4(r25)
/* 803B5E94 003B2DF4 48 00 00 14 */ b lbl_803B5EA8
lbl_803B5E98:
/* 803B5E98 003B2DF8 80 79 00 04 */ lwz r3, 4(r25)
/* 803B5E9C 003B2DFC 80 19 00 08 */ lwz r0, 8(r25)
/* 803B5EA0 003B2E00 7C 03 02 14 */ add r0, r3, r0
/* 803B5EA4 003B2E04 90 19 00 04 */ stw r0, 4(r25)
lbl_803B5EA8:
/* 803B5EA8 003B2E08 80 19 00 04 */ lwz r0, 4(r25)
/* 803B5EAC 003B2E0C 2C 00 00 00 */ cmpwi r0, 0
/* 803B5EB0 003B2E10 41 80 FF E8 */ blt lbl_803B5E98
/* 803B5EB4 003B2E14 3B 7B 00 01 */ addi r27, r27, 1
lbl_803B5EB8:
/* 803B5EB8 003B2E18 57 60 06 3E */ clrlwi r0, r27, 0x18
/* 803B5EBC 003B2E1C 28 00 00 02 */ cmplwi r0, 2
/* 803B5EC0 003B2E20 41 80 FF 34 */ blt lbl_803B5DF4
/* 803B5EC4 003B2E24 56 E0 10 3A */ slwi r0, r23, 2
/* 803B5EC8 003B2E28 7C 7D 02 14 */ add r3, r29, r0
/* 803B5ECC 003B2E2C 3B 03 00 14 */ addi r24, r3, 0x14
/* 803B5ED0 003B2E30 80 63 00 14 */ lwz r3, 0x14(r3)
/* 803B5ED4 003B2E34 1C 17 00 3C */ mulli r0, r23, 0x3c
/* 803B5ED8 003B2E38 3A A3 00 02 */ addi r21, r3, 2
/* 803B5EDC 003B2E3C 56 B4 10 3A */ slwi r20, r21, 2
/* 803B5EE0 003B2E40 7E FE 02 14 */ add r23, r30, r0
/* 803B5EE4 003B2E44 92 97 00 30 */ stw r20, 0x30(r23)
/* 803B5EE8 003B2E48 7E 83 A3 78 */ mr r3, r20
/* 803B5EEC 003B2E4C 4B FF F2 49 */ bl salMalloc
/* 803B5EF0 003B2E50 90 77 00 34 */ stw r3, 0x34(r23)
/* 803B5EF4 003B2E54 7E 85 A3 78 */ mr r5, r20
/* 803B5EF8 003B2E58 38 80 00 00 */ li r4, 0
/* 803B5EFC 003B2E5C 80 77 00 34 */ lwz r3, 0x34(r23)
/* 803B5F00 003B2E60 4B C4 D4 A9 */ bl memset
/* 803B5F04 003B2E64 D3 D7 00 38 */ stfs f30, 0x38(r23)
/* 803B5F08 003B2E68 7E A0 0E 70 */ srawi r0, r21, 1
/* 803B5F0C 003B2E6C 54 03 10 3A */ slwi r3, r0, 2
/* 803B5F10 003B2E70 80 17 00 28 */ lwz r0, 0x28(r23)
/* 803B5F14 003B2E74 7C 03 00 50 */ subf r0, r3, r0
/* 803B5F18 003B2E78 90 17 00 2C */ stw r0, 0x2c(r23)
/* 803B5F1C 003B2E7C 48 00 00 14 */ b lbl_803B5F30
lbl_803B5F20:
/* 803B5F20 003B2E80 80 77 00 2C */ lwz r3, 0x2c(r23)
/* 803B5F24 003B2E84 80 17 00 30 */ lwz r0, 0x30(r23)
/* 803B5F28 003B2E88 7C 03 02 14 */ add r0, r3, r0
/* 803B5F2C 003B2E8C 90 17 00 2C */ stw r0, 0x2c(r23)
lbl_803B5F30:
/* 803B5F30 003B2E90 80 17 00 2C */ lwz r0, 0x2c(r23)
/* 803B5F34 003B2E94 2C 00 00 00 */ cmpwi r0, 0
/* 803B5F38 003B2E98 41 80 FF E8 */ blt lbl_803B5F20
/* 803B5F3C 003B2E9C 38 00 00 00 */ li r0, 0
/* 803B5F40 003B2EA0 90 17 00 28 */ stw r0, 0x28(r23)
/* 803B5F44 003B2EA4 90 17 00 2C */ stw r0, 0x2c(r23)
/* 803B5F48 003B2EA8 80 78 00 00 */ lwz r3, 0(r24)
/* 803B5F4C 003B2EAC 80 17 00 28 */ lwz r0, 0x28(r23)
/* 803B5F50 003B2EB0 54 63 10 3A */ slwi r3, r3, 2
/* 803B5F54 003B2EB4 7C 03 00 50 */ subf r0, r3, r0
/* 803B5F58 003B2EB8 90 17 00 2C */ stw r0, 0x2c(r23)
/* 803B5F5C 003B2EBC 48 00 00 14 */ b lbl_803B5F70
lbl_803B5F60:
/* 803B5F60 003B2EC0 80 77 00 2C */ lwz r3, 0x2c(r23)
/* 803B5F64 003B2EC4 80 17 00 30 */ lwz r0, 0x30(r23)
/* 803B5F68 003B2EC8 7C 03 02 14 */ add r0, r3, r0
/* 803B5F6C 003B2ECC 90 17 00 2C */ stw r0, 0x2c(r23)
lbl_803B5F70:
/* 803B5F70 003B2ED0 80 17 00 2C */ lwz r0, 0x2c(r23)
/* 803B5F74 003B2ED4 2C 00 00 00 */ cmpwi r0, 0
/* 803B5F78 003B2ED8 41 80 FF E8 */ blt lbl_803B5F60
/* 803B5F7C 003B2EDC 57 E3 15 BA */ rlwinm r3, r31, 2, 0x16, 0x1d
/* 803B5F80 003B2EE0 3B FF 00 01 */ addi r31, r31, 1
/* 803B5F84 003B2EE4 38 03 01 90 */ addi r0, r3, 0x190
/* 803B5F88 003B2EE8 7F DE 05 2E */ stfsx f30, r30, r0
lbl_803B5F8C:
/* 803B5F8C 003B2EEC 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 803B5F90 003B2EF0 28 00 00 03 */ cmplwi r0, 3
/* 803B5F94 003B2EF4 41 80 FD 48 */ blt lbl_803B5CDC
/* 803B5F98 003B2EF8 D3 1E 01 68 */ stfs f24, 0x168(r30)
/* 803B5F9C 003B2EFC C0 02 D6 F0 */ lfs f0, lbl_805AF410@sda21(r2)
/* 803B5FA0 003B2F00 D3 3E 01 9C */ stfs f25, 0x19c(r30)
/* 803B5FA4 003B2F04 D3 7E 01 A8 */ stfs f27, 0x1a8(r30)
/* 803B5FA8 003B2F08 D3 5E 01 A0 */ stfs f26, 0x1a0(r30)
/* 803B5FAC 003B2F0C C0 3E 01 A0 */ lfs f1, 0x1a0(r30)
/* 803B5FB0 003B2F10 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 803B5FB4 003B2F14 40 80 00 08 */ bge lbl_803B5FBC
/* 803B5FB8 003B2F18 D0 1E 01 A0 */ stfs f0, 0x1a0(r30)
lbl_803B5FBC:
/* 803B5FBC 003B2F1C C0 42 D6 F4 */ lfs f2, lbl_805AF414@sda21(r2)
/* 803B5FC0 003B2F20 C0 3E 01 A0 */ lfs f1, 0x1a0(r30)
/* 803B5FC4 003B2F24 C0 02 D6 D0 */ lfs f0, lbl_805AF3F0@sda21(r2)
/* 803B5FC8 003B2F28 EC 22 00 72 */ fmuls f1, f2, f1
/* 803B5FCC 003B2F2C C0 42 D6 F0 */ lfs f2, lbl_805AF410@sda21(r2)
/* 803B5FD0 003B2F30 C0 62 D6 D4 */ lfs f3, lbl_805AF3F4@sda21(r2)
/* 803B5FD4 003B2F34 FC 00 F8 00 */ fcmpu cr0, f0, f31
/* 803B5FD8 003B2F38 EC 02 08 2A */ fadds f0, f2, f1
/* 803B5FDC 003B2F3C EC 03 00 28 */ fsubs f0, f3, f0
/* 803B5FE0 003B2F40 D0 1E 01 A0 */ stfs f0, 0x1a0(r30)
/* 803B5FE4 003B2F44 41 82 00 6C */ beq lbl_803B6050
/* 803B5FE8 003B2F48 C0 02 D6 E4 */ lfs f0, lbl_805AF404@sda21(r2)
/* 803B5FEC 003B2F4C 3A A0 00 00 */ li r21, 0
/* 803B5FF0 003B2F50 EC 00 07 F2 */ fmuls f0, f0, f31
/* 803B5FF4 003B2F54 FC 00 00 1E */ fctiwz f0, f0
/* 803B5FF8 003B2F58 D8 01 00 08 */ stfd f0, 8(r1)
/* 803B5FFC 003B2F5C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 803B6000 003B2F60 90 1E 01 A4 */ stw r0, 0x1a4(r30)
/* 803B6004 003B2F64 48 00 00 3C */ b lbl_803B6040
lbl_803B6008:
/* 803B6008 003B2F68 80 1E 01 A4 */ lwz r0, 0x1a4(r30)
/* 803B600C 003B2F6C 54 03 10 3A */ slwi r3, r0, 2
/* 803B6010 003B2F70 4B FF F1 25 */ bl salMalloc
/* 803B6014 003B2F74 56 A0 15 BA */ rlwinm r0, r21, 2, 0x16, 0x1d
/* 803B6018 003B2F78 38 80 00 00 */ li r4, 0
/* 803B601C 003B2F7C 7E 9E 02 14 */ add r20, r30, r0
/* 803B6020 003B2F80 90 74 01 AC */ stw r3, 0x1ac(r20)
/* 803B6024 003B2F84 80 1E 01 A4 */ lwz r0, 0x1a4(r30)
/* 803B6028 003B2F88 80 74 01 AC */ lwz r3, 0x1ac(r20)
/* 803B602C 003B2F8C 54 05 10 3A */ slwi r5, r0, 2
/* 803B6030 003B2F90 4B C4 D3 79 */ bl memset
/* 803B6034 003B2F94 80 14 01 AC */ lwz r0, 0x1ac(r20)
/* 803B6038 003B2F98 3A B5 00 01 */ addi r21, r21, 1
/* 803B603C 003B2F9C 90 14 01 B8 */ stw r0, 0x1b8(r20)
lbl_803B6040:
/* 803B6040 003B2FA0 56 A0 06 3E */ clrlwi r0, r21, 0x18
/* 803B6044 003B2FA4 28 00 00 03 */ cmplwi r0, 3
/* 803B6048 003B2FA8 41 80 FF C0 */ blt lbl_803B6008
/* 803B604C 003B2FAC 48 00 00 24 */ b lbl_803B6070
lbl_803B6050:
/* 803B6050 003B2FB0 38 00 00 00 */ li r0, 0
/* 803B6054 003B2FB4 90 1E 01 A4 */ stw r0, 0x1a4(r30)
/* 803B6058 003B2FB8 90 1E 01 B8 */ stw r0, 0x1b8(r30)
/* 803B605C 003B2FBC 90 1E 01 AC */ stw r0, 0x1ac(r30)
/* 803B6060 003B2FC0 90 1E 01 BC */ stw r0, 0x1bc(r30)
/* 803B6064 003B2FC4 90 1E 01 B0 */ stw r0, 0x1b0(r30)
/* 803B6068 003B2FC8 90 1E 01 C0 */ stw r0, 0x1c0(r30)
/* 803B606C 003B2FCC 90 1E 01 B4 */ stw r0, 0x1b4(r30)
lbl_803B6070:
/* 803B6070 003B2FD0 38 60 00 01 */ li r3, 1
lbl_803B6074:
/* 803B6074 003B2FD4 E3 E1 00 B8 */ psq_l f31, 184(r1), 0, qr0
/* 803B6078 003B2FD8 CB E1 00 B0 */ lfd f31, 0xb0(r1)
/* 803B607C 003B2FDC E3 C1 00 A8 */ psq_l f30, 168(r1), 0, qr0
/* 803B6080 003B2FE0 CB C1 00 A0 */ lfd f30, 0xa0(r1)
/* 803B6084 003B2FE4 E3 A1 00 98 */ psq_l f29, 152(r1), 0, qr0
/* 803B6088 003B2FE8 CB A1 00 90 */ lfd f29, 0x90(r1)
/* 803B608C 003B2FEC E3 81 00 88 */ psq_l f28, 136(r1), 0, qr0
/* 803B6090 003B2FF0 CB 81 00 80 */ lfd f28, 0x80(r1)
/* 803B6094 003B2FF4 E3 61 00 78 */ psq_l f27, 120(r1), 0, qr0
/* 803B6098 003B2FF8 CB 61 00 70 */ lfd f27, 0x70(r1)
/* 803B609C 003B2FFC E3 41 00 68 */ psq_l f26, 104(r1), 0, qr0
/* 803B60A0 003B3000 CB 41 00 60 */ lfd f26, 0x60(r1)
/* 803B60A4 003B3004 E3 21 00 58 */ psq_l f25, 88(r1), 0, qr0
/* 803B60A8 003B3008 CB 21 00 50 */ lfd f25, 0x50(r1)
/* 803B60AC 003B300C E3 01 00 48 */ psq_l f24, 72(r1), 0, qr0
/* 803B60B0 003B3010 39 61 00 40 */ addi r11, r1, 0x40
/* 803B60B4 003B3014 CB 01 00 40 */ lfd f24, 0x40(r1)
/* 803B60B8 003B3018 4B FD 39 F5 */ bl _restgpr_20
/* 803B60BC 003B301C 80 01 00 C4 */ lwz r0, 0xc4(r1)
/* 803B60C0 003B3020 7C 08 03 A6 */ mtlr r0
/* 803B60C4 003B3024 38 21 00 C0 */ addi r1, r1, 0xc0
/* 803B60C8 003B3028 4E 80 00 20 */ blr
.global DoCrossTalk
DoCrossTalk:
/* 803B60CC 003B302C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803B60D0 003B3030 D9 C1 00 28 */ stfd f14, 0x28(r1)
/* 803B60D4 003B3034 3C A0 80 5B */ lis r5, lbl_805AF420@ha
/* 803B60D8 003B3038 C8 05 F4 20 */ lfd f0, lbl_805AF420@l(r5)
/* 803B60DC 003B303C 3C A0 43 30 */ lis r5, 0x4330
/* 803B60E0 003B3040 90 A1 00 08 */ stw r5, 8(r1)
/* 803B60E4 003B3044 90 A1 00 10 */ stw r5, 0x10(r1)
/* 803B60E8 003B3048 90 A1 00 18 */ stw r5, 0x18(r1)
/* 803B60EC 003B304C 90 A1 00 20 */ stw r5, 0x20(r1)
/* 803B60F0 003B3050 10 62 0C 20 */ ps_merge00 f3, f2, f1
/* 803B60F4 003B3054 10 81 14 20 */ ps_merge00 f4, f1, f2
/* 803B60F8 003B3058 3C A0 80 5B */ lis r5, lbl_805AF428@ha
/* 803B60FC 003B305C C0 A5 F4 28 */ lfs f5, lbl_805AF428@l(r5)
/* 803B6100 003B3060 38 A0 00 4F */ li r5, 0x4f
/* 803B6104 003B3064 7C A9 03 A6 */ mtctr r5
/* 803B6108 003B3068 39 40 FF F8 */ li r10, -8
/* 803B610C 003B306C 39 60 FF FC */ li r11, -4
/* 803B6110 003B3070 10 84 01 58 */ ps_muls0 f4, f4, f5
/* 803B6114 003B3074 80 C3 00 00 */ lwz r6, 0(r3)
/* 803B6118 003B3078 80 E4 00 00 */ lwz r7, 0(r4)
/* 803B611C 003B307C 6C C6 80 00 */ xoris r6, r6, 0x8000
/* 803B6120 003B3080 81 03 00 04 */ lwz r8, 4(r3)
/* 803B6124 003B3084 6C E7 80 00 */ xoris r7, r7, 0x8000
/* 803B6128 003B3088 81 24 00 04 */ lwz r9, 4(r4)
/* 803B612C 003B308C 6D 08 80 00 */ xoris r8, r8, 0x8000
/* 803B6130 003B3090 90 C1 00 0C */ stw r6, 0xc(r1)
/* 803B6134 003B3094 6D 29 80 00 */ xoris r9, r9, 0x8000
/* 803B6138 003B3098 90 E1 00 14 */ stw r7, 0x14(r1)
/* 803B613C 003B309C 91 01 00 1C */ stw r8, 0x1c(r1)
/* 803B6140 003B30A0 91 21 00 24 */ stw r9, 0x24(r1)
/* 803B6144 003B30A4 C8 A1 00 08 */ lfd f5, 8(r1)
/* 803B6148 003B30A8 C8 C1 00 10 */ lfd f6, 0x10(r1)
/* 803B614C 003B30AC EC A5 00 28 */ fsubs f5, f5, f0
/* 803B6150 003B30B0 C8 E1 00 18 */ lfd f7, 0x18(r1)
/* 803B6154 003B30B4 EC C6 00 28 */ fsubs f6, f6, f0
/* 803B6158 003B30B8 C9 01 00 20 */ lfd f8, 0x20(r1)
/* 803B615C 003B30BC EC E7 00 28 */ fsubs f7, f7, f0
/* 803B6160 003B30C0 ED 08 00 28 */ fsubs f8, f8, f0
lbl_803B6164:
/* 803B6164 003B30C4 11 25 34 20 */ ps_merge00 f9, f5, f6
/* 803B6168 003B30C8 84 C3 00 08 */ lwzu r6, 8(r3)
/* 803B616C 003B30CC 11 47 44 20 */ ps_merge00 f10, f7, f8
/* 803B6170 003B30D0 84 E4 00 08 */ lwzu r7, 8(r4)
/* 803B6174 003B30D4 6C C6 80 00 */ xoris r6, r6, 0x8000
/* 803B6178 003B30D8 81 03 00 04 */ lwz r8, 4(r3)
/* 803B617C 003B30DC 11 69 00 F2 */ ps_mul f11, f9, f3
/* 803B6180 003B30E0 6C E7 80 00 */ xoris r7, r7, 0x8000
/* 803B6184 003B30E4 11 89 01 32 */ ps_mul f12, f9, f4
/* 803B6188 003B30E8 81 24 00 04 */ lwz r9, 4(r4)
/* 803B618C 003B30EC 11 AA 00 F2 */ ps_mul f13, f10, f3
/* 803B6190 003B30F0 6D 08 80 00 */ xoris r8, r8, 0x8000
/* 803B6194 003B30F4 11 CA 01 32 */ ps_mul f14, f10, f4
/* 803B6198 003B30F8 90 C1 00 0C */ stw r6, 0xc(r1)
/* 803B619C 003B30FC 11 6B 5A D4 */ ps_sum0 f11, f11, f11, f11
/* 803B61A0 003B3100 6D 29 80 00 */ xoris r9, r9, 0x8000
/* 803B61A4 003B3104 11 8C 63 14 */ ps_sum0 f12, f12, f12, f12
/* 803B61A8 003B3108 90 E1 00 14 */ stw r7, 0x14(r1)
/* 803B61AC 003B310C 11 AD 6B 54 */ ps_sum0 f13, f13, f13, f13
/* 803B61B0 003B3110 91 01 00 1C */ stw r8, 0x1c(r1)
/* 803B61B4 003B3114 11 CE 73 94 */ ps_sum0 f14, f14, f14, f14
/* 803B61B8 003B3118 91 21 00 24 */ stw r9, 0x24(r1)
/* 803B61BC 003B311C FD 60 58 1C */ fctiw f11, f11
/* 803B61C0 003B3120 C8 A1 00 08 */ lfd f5, 8(r1)
/* 803B61C4 003B3124 FD 80 60 1C */ fctiw f12, f12
/* 803B61C8 003B3128 C8 C1 00 10 */ lfd f6, 0x10(r1)
/* 803B61CC 003B312C FD A0 68 1C */ fctiw f13, f13
/* 803B61D0 003B3130 EC A5 00 28 */ fsubs f5, f5, f0
/* 803B61D4 003B3134 FD C0 70 1C */ fctiw f14, f14
/* 803B61D8 003B3138 C8 E1 00 18 */ lfd f7, 0x18(r1)
/* 803B61DC 003B313C 7D 6A 1F AE */ stfiwx f11, r10, r3
/* 803B61E0 003B3140 EC C6 00 28 */ fsubs f6, f6, f0
/* 803B61E4 003B3144 7D 8A 27 AE */ stfiwx f12, r10, r4
/* 803B61E8 003B3148 C9 01 00 20 */ lfd f8, 0x20(r1)
/* 803B61EC 003B314C 7D AB 1F AE */ stfiwx f13, r11, r3
/* 803B61F0 003B3150 EC E7 00 28 */ fsubs f7, f7, f0
/* 803B61F4 003B3154 7D CB 27 AE */ stfiwx f14, r11, r4
/* 803B61F8 003B3158 ED 08 00 28 */ fsubs f8, f8, f0
/* 803B61FC 003B315C 42 00 FF 68 */ bdnz lbl_803B6164
/* 803B6200 003B3160 11 25 34 20 */ ps_merge00 f9, f5, f6
/* 803B6204 003B3164 38 63 00 08 */ addi r3, r3, 8
/* 803B6208 003B3168 11 47 44 20 */ ps_merge00 f10, f7, f8
/* 803B620C 003B316C 38 84 00 08 */ addi r4, r4, 8
/* 803B6210 003B3170 11 69 00 F2 */ ps_mul f11, f9, f3
/* 803B6214 003B3174 11 89 01 32 */ ps_mul f12, f9, f4
/* 803B6218 003B3178 11 AA 00 F2 */ ps_mul f13, f10, f3
/* 803B621C 003B317C 11 CA 01 32 */ ps_mul f14, f10, f4
/* 803B6220 003B3180 11 6B 5A D4 */ ps_sum0 f11, f11, f11, f11
/* 803B6224 003B3184 11 8C 63 14 */ ps_sum0 f12, f12, f12, f12
/* 803B6228 003B3188 11 AD 6B 54 */ ps_sum0 f13, f13, f13, f13
/* 803B622C 003B318C 11 CE 73 94 */ ps_sum0 f14, f14, f14, f14
/* 803B6230 003B3190 FD 60 58 1C */ fctiw f11, f11
/* 803B6234 003B3194 FD 80 60 1C */ fctiw f12, f12
/* 803B6238 003B3198 FD A0 68 1C */ fctiw f13, f13
/* 803B623C 003B319C FD C0 70 1C */ fctiw f14, f14
/* 803B6240 003B31A0 7D 6A 1F AE */ stfiwx f11, r10, r3
/* 803B6244 003B31A4 7D 8A 27 AE */ stfiwx f12, r10, r4
/* 803B6248 003B31A8 7D AB 1F AE */ stfiwx f13, r11, r3
/* 803B624C 003B31AC 7D CB 27 AE */ stfiwx f14, r11, r4
/* 803B6250 003B31B0 C9 C1 00 28 */ lfd f14, 0x28(r1)
/* 803B6254 003B31B4 38 21 00 30 */ addi r1, r1, 0x30
/* 803B6258 003B31B8 4E 80 00 20 */ blr
.fn HandleReverb, local
/* 803B625C 003B31BC 94 21 FF 40 */ stwu r1, -0xc0(r1)
/* 803B6260 003B31C0 BD C1 00 08 */ stmw r14, 8(r1)
/* 803B6264 003B31C4 D9 C1 00 60 */ stfd f14, 0x60(r1)
/* 803B6268 003B31C8 D9 E1 00 68 */ stfd f15, 0x68(r1)
/* 803B626C 003B31CC DA 01 00 70 */ stfd f16, 0x70(r1)
/* 803B6270 003B31D0 DA 21 00 78 */ stfd f17, 0x78(r1)
/* 803B6274 003B31D4 DA 41 00 80 */ stfd f18, 0x80(r1)
/* 803B6278 003B31D8 DA 61 00 88 */ stfd f19, 0x88(r1)
/* 803B627C 003B31DC DA 81 00 90 */ stfd f20, 0x90(r1)
/* 803B6280 003B31E0 DA A1 00 98 */ stfd f21, 0x98(r1)
/* 803B6284 003B31E4 DA C1 00 A0 */ stfd f22, 0xa0(r1)
/* 803B6288 003B31E8 DA E1 00 A8 */ stfd f23, 0xa8(r1)
/* 803B628C 003B31EC DB 01 00 B0 */ stfd f24, 0xb0(r1)
/* 803B6290 003B31F0 DB 21 00 B8 */ stfd f25, 0xb8(r1)
/* 803B6294 003B31F4 90 A1 00 50 */ stw r5, 0x50(r1)
/* 803B6298 003B31F8 90 81 00 54 */ stw r4, 0x54(r1)
/* 803B629C 003B31FC 3F E0 80 5B */ lis r31, lbl_805AF42C@ha
/* 803B62A0 003B3200 C0 DF F4 2C */ lfs f6, lbl_805AF42C@l(r31)
/* 803B62A4 003B3204 3F E0 80 5B */ lis r31, lbl_805AF428@ha
/* 803B62A8 003B3208 C1 3F F4 28 */ lfs f9, lbl_805AF428@l(r31)
/* 803B62AC 003B320C 3F E0 80 5B */ lis r31, lbl_805AF420@ha
/* 803B62B0 003B3210 C8 BF F4 20 */ lfd f5, lbl_805AF420@l(r31)
/* 803B62B4 003B3214 C0 44 01 68 */ lfs f2, 0x168(r4)
/* 803B62B8 003B3218 C1 E4 01 A0 */ lfs f15, 0x1a0(r4)
/* 803B62BC 003B321C C1 04 01 9C */ lfs f8, 0x19c(r4)
/* 803B62C0 003B3220 EC 68 02 72 */ fmuls f3, f8, f9
/* 803B62C4 003B3224 EC 89 18 28 */ fsubs f4, f9, f3
/* 803B62C8 003B3228 54 BE 08 3C */ slwi r30, r5, 1
/* 803B62CC 003B322C 7F DE 2A 14 */ add r30, r30, r5
/* 803B62D0 003B3230 1F FE 00 14 */ mulli r31, r30, 0x14
/* 803B62D4 003B3234 3B A4 00 B4 */ addi r29, r4, 0xb4
/* 803B62D8 003B3238 7F BD FA 14 */ add r29, r29, r31
/* 803B62DC 003B323C 3B 64 00 00 */ addi r27, r4, 0
/* 803B62E0 003B3240 7F 7B FA 14 */ add r27, r27, r31
/* 803B62E4 003B3244 57 DF 10 3A */ slwi r31, r30, 2
/* 803B62E8 003B3248 7F FF 22 14 */ add r31, r31, r4
/* 803B62EC 003B324C C2 DF 01 6C */ lfs f22, 0x16c(r31)
/* 803B62F0 003B3250 C2 FF 01 70 */ lfs f23, 0x170(r31)
/* 803B62F4 003B3254 C3 1F 01 74 */ lfs f24, 0x174(r31)
/* 803B62F8 003B3258 54 BF 10 3A */ slwi r31, r5, 2
/* 803B62FC 003B325C 7F FF 22 14 */ add r31, r31, r4
/* 803B6300 003B3260 C3 3F 01 90 */ lfs f25, 0x190(r31)
/* 803B6304 003B3264 83 E4 01 A4 */ lwz r31, 0x1a4(r4)
/* 803B6308 003B3268 3F C0 43 30 */ lis r30, 0x4330
/* 803B630C 003B326C 93 C1 00 58 */ stw r30, 0x58(r1)
/* 803B6310 003B3270 3A DF FF FF */ addi r22, r31, -1
/* 803B6314 003B3274 56 D6 10 3A */ slwi r22, r22, 2
/* 803B6318 003B3278 54 BC 10 3A */ slwi r28, r5, 2
/* 803B631C 003B327C 7F 9C 22 14 */ add r28, r28, r4
/* 803B6320 003B3280 2F 9F 00 00 */ cmpwi cr7, r31, 0
/* 803B6324 003B3284 82 BD 00 00 */ lwz r21, 0(r29)
/* 803B6328 003B3288 82 9D 00 04 */ lwz r20, 4(r29)
/* 803B632C 003B328C 82 7D 00 14 */ lwz r19, 0x14(r29)
/* 803B6330 003B3290 82 5D 00 18 */ lwz r18, 0x18(r29)
/* 803B6334 003B3294 82 3D 00 28 */ lwz r17, 0x28(r29)
/* 803B6338 003B3298 82 1D 00 2C */ lwz r16, 0x2c(r29)
/* 803B633C 003B329C C2 1D 00 10 */ lfs f16, 0x10(r29)
/* 803B6340 003B32A0 C2 3D 00 24 */ lfs f17, 0x24(r29)
/* 803B6344 003B32A4 C2 5D 00 38 */ lfs f18, 0x38(r29)
/* 803B6348 003B32A8 83 3D 00 08 */ lwz r25, 8(r29)
/* 803B634C 003B32AC 83 1D 00 1C */ lwz r24, 0x1c(r29)
/* 803B6350 003B32B0 82 FD 00 30 */ lwz r23, 0x30(r29)
/* 803B6354 003B32B4 80 9D 00 0C */ lwz r4, 0xc(r29)
/* 803B6358 003B32B8 80 BD 00 20 */ lwz r5, 0x20(r29)
/* 803B635C 003B32BC 80 DD 00 34 */ lwz r6, 0x34(r29)
/* 803B6360 003B32C0 81 9B 00 00 */ lwz r12, 0(r27)
/* 803B6364 003B32C4 81 7B 00 04 */ lwz r11, 4(r27)
/* 803B6368 003B32C8 81 5B 00 14 */ lwz r10, 0x14(r27)
/* 803B636C 003B32CC 81 3B 00 18 */ lwz r9, 0x18(r27)
/* 803B6370 003B32D0 81 1B 00 28 */ lwz r8, 0x28(r27)
/* 803B6374 003B32D4 80 FB 00 2C */ lwz r7, 0x2c(r27)
/* 803B6378 003B32D8 C2 7B 00 10 */ lfs f19, 0x10(r27)
/* 803B637C 003B32DC C2 9B 00 24 */ lfs f20, 0x24(r27)
/* 803B6380 003B32E0 C2 BB 00 38 */ lfs f21, 0x38(r27)
/* 803B6384 003B32E4 81 FB 00 08 */ lwz r15, 8(r27)
/* 803B6388 003B32E8 81 DB 00 1C */ lwz r14, 0x1c(r27)
/* 803B638C 003B32EC 83 C3 00 00 */ lwz r30, 0(r3)
/* 803B6390 003B32F0 6F DE 80 00 */ xoris r30, r30, 0x8000
/* 803B6394 003B32F4 93 C1 00 5C */ stw r30, 0x5c(r1)
/* 803B6398 003B32F8 C9 81 00 58 */ lfd f12, 0x58(r1)
/* 803B639C 003B32FC ED 8C 28 28 */ fsubs f12, f12, f5
/* 803B63A0 003B3300 3B E0 00 9F */ li r31, 0x9f
/* 803B63A4 003B3304 7F E9 03 A6 */ mtctr r31
lbl_803B63A8:
/* 803B63A8 003B3308 FD A0 60 90 */ fmr f13, f12
/* 803B63AC 003B330C 41 9E 00 2C */ beq cr7, lbl_803B63D8
/* 803B63B0 003B3310 83 DC 01 AC */ lwz r30, 0x1ac(r28)
/* 803B63B4 003B3314 83 BC 01 B8 */ lwz r29, 0x1b8(r28)
/* 803B63B8 003B3318 7F F6 F2 14 */ add r31, r22, r30
/* 803B63BC 003B331C 3B BD 00 04 */ addi r29, r29, 4
/* 803B63C0 003B3320 C1 BD FF FC */ lfs f13, -4(r29)
/* 803B63C4 003B3324 7C 1D F8 00 */ cmpw r29, r31
/* 803B63C8 003B3328 D1 9D FF FC */ stfs f12, -4(r29)
/* 803B63CC 003B332C 40 A2 00 08 */ bne+ lbl_803B63D4
/* 803B63D0 003B3330 7F DD F3 78 */ mr r29, r30
lbl_803B63D4:
/* 803B63D4 003B3334 93 BE 01 B8 */ stw r29, 0x1b8(r30)
lbl_803B63D8:
/* 803B63D8 003B3338 ED 16 6C 3A */ fmadds f8, f22, f16, f13
/* 803B63DC 003B333C 87 A3 00 04 */ lwzu r29, 4(r3)
/* 803B63E0 003B3340 ED 37 6C 7A */ fmadds f9, f23, f17, f13
/* 803B63E4 003B3344 7D 04 AD 2E */ stfsx f8, r4, r21
/* 803B63E8 003B3348 3A B5 00 04 */ addi r21, r21, 4
/* 803B63EC 003B334C 7D 25 9D 2E */ stfsx f9, r5, r19
/* 803B63F0 003B3350 7D C4 A4 2E */ lfsx f14, r4, r20
/* 803B63F4 003B3354 3A 94 00 04 */ addi r20, r20, 4
/* 803B63F8 003B3358 7E 25 94 2E */ lfsx f17, r5, r18
/* 803B63FC 003B335C 7C 15 C8 00 */ cmpw r21, r25
/* 803B6400 003B3360 7C 94 C8 00 */ cmpw cr1, r20, r25
/* 803B6404 003B3364 3A 73 00 04 */ addi r19, r19, 4
/* 803B6408 003B3368 3A 52 00 04 */ addi r18, r18, 4
/* 803B640C 003B336C FE 00 70 90 */ fmr f16, f14
/* 803B6410 003B3370 7E 93 C0 00 */ cmpw cr5, r19, r24
/* 803B6414 003B3374 ED CE 88 2A */ fadds f14, f14, f17
/* 803B6418 003B3378 7F 12 C0 00 */ cmpw cr6, r18, r24
/* 803B641C 003B337C 40 A2 00 08 */ bne+ lbl_803B6424
/* 803B6420 003B3380 3A A0 00 00 */ li r21, 0
lbl_803B6424:
/* 803B6424 003B3384 ED 18 6C BA */ fmadds f8, f24, f18, f13
/* 803B6428 003B3388 40 A6 00 08 */ bne+ cr1, lbl_803B6430
/* 803B642C 003B338C 3A 80 00 00 */ li r20, 0
lbl_803B6430:
/* 803B6430 003B3390 7D 06 8D 2E */ stfsx f8, r6, r17
/* 803B6434 003B3394 3A 31 00 04 */ addi r17, r17, 4
/* 803B6438 003B3398 40 B6 00 08 */ bne+ cr5, lbl_803B6440
/* 803B643C 003B339C 3A 60 00 00 */ li r19, 0
lbl_803B6440:
/* 803B6440 003B33A0 7E 46 84 2E */ lfsx f18, r6, r16
/* 803B6444 003B33A4 3A 10 00 04 */ addi r16, r16, 4
/* 803B6448 003B33A8 7C 11 B8 00 */ cmpw r17, r23
/* 803B644C 003B33AC 40 BA 00 08 */ bne+ cr6, lbl_803B6454
/* 803B6450 003B33B0 3A 40 00 00 */ li r18, 0
lbl_803B6454:
/* 803B6454 003B33B4 ED CE 90 2A */ fadds f14, f14, f18
/* 803B6458 003B33B8 7C 90 B8 00 */ cmpw cr1, r16, r23
/* 803B645C 003B33BC 83 5B 00 0C */ lwz r26, 0xc(r27)
/* 803B6460 003B33C0 ED 22 74 FA */ fmadds f9, f2, f19, f14
/* 803B6464 003B33C4 40 A2 00 08 */ bne+ lbl_803B646C
/* 803B6468 003B33C8 3A 20 00 00 */ li r17, 0
lbl_803B646C:
/* 803B646C 003B33CC 40 A6 00 08 */ bne+ cr1, lbl_803B6474
/* 803B6470 003B33D0 3A 00 00 00 */ li r16, 0
lbl_803B6474:
/* 803B6474 003B33D4 6F BD 80 00 */ xoris r29, r29, 0x8000
/* 803B6478 003B33D8 7D 3A 65 2E */ stfsx f9, r26, r12
/* 803B647C 003B33DC ED C2 9A 7C */ fnmsubs f14, f2, f9, f19
/* 803B6480 003B33E0 39 8C 00 04 */ addi r12, r12, 4
/* 803B6484 003B33E4 7E 7A 5C 2E */ lfsx f19, r26, r11
/* 803B6488 003B33E8 7E 8C 78 00 */ cmpw cr5, r12, r15
/* 803B648C 003B33EC 39 6B 00 04 */ addi r11, r11, 4
/* 803B6490 003B33F0 83 5B 00 20 */ lwz r26, 0x20(r27)
/* 803B6494 003B33F4 7F 0B 78 00 */ cmpw cr6, r11, r15
/* 803B6498 003B33F8 ED 02 75 3A */ fmadds f8, f2, f20, f14
/* 803B649C 003B33FC 40 B6 00 08 */ bne+ cr5, lbl_803B64A4
/* 803B64A0 003B3400 39 80 00 00 */ li r12, 0
lbl_803B64A4:
/* 803B64A4 003B3404 93 A1 00 5C */ stw r29, 0x5c(r1)
/* 803B64A8 003B3408 7D 1A 55 2E */ stfsx f8, r26, r10
/* 803B64AC 003B340C ED C2 A2 3C */ fnmsubs f14, f2, f8, f20
/* 803B64B0 003B3410 39 4A 00 04 */ addi r10, r10, 4
/* 803B64B4 003B3414 40 BA 00 08 */ bne+ cr6, lbl_803B64BC
/* 803B64B8 003B3418 39 60 00 00 */ li r11, 0
lbl_803B64BC:
/* 803B64BC 003B341C 7E 9A 4C 2E */ lfsx f20, r26, r9
/* 803B64C0 003B3420 7C 0A 70 00 */ cmpw r10, r14
/* 803B64C4 003B3424 ED CE 01 B2 */ fmuls f14, f14, f6
/* 803B64C8 003B3428 39 29 00 04 */ addi r9, r9, 4
/* 803B64CC 003B342C 7C 89 70 00 */ cmpw cr1, r9, r14
/* 803B64D0 003B3430 C9 41 00 58 */ lfd f10, 0x58(r1)
/* 803B64D4 003B3434 ED CF 76 7A */ fmadds f14, f15, f25, f14
/* 803B64D8 003B3438 40 A2 00 08 */ bne+ lbl_803B64E0
/* 803B64DC 003B343C 39 40 00 00 */ li r10, 0
lbl_803B64E0:
/* 803B64E0 003B3440 83 5B 00 34 */ lwz r26, 0x34(r27)
/* 803B64E4 003B3444 ED 22 75 7A */ fmadds f9, f2, f21, f14
/* 803B64E8 003B3448 FF 20 70 90 */ fmr f25, f14
/* 803B64EC 003B344C 40 A6 00 08 */ bne+ cr1, lbl_803B64F4
/* 803B64F0 003B3450 39 20 00 00 */ li r9, 0
lbl_803B64F4:
/* 803B64F4 003B3454 7D 3A 45 2E */ stfsx f9, r26, r8
/* 803B64F8 003B3458 ED C2 AA 7C */ fnmsubs f14, f2, f9, f21
/* 803B64FC 003B345C 83 FB 00 30 */ lwz r31, 0x30(r27)
/* 803B6500 003B3460 ED 04 03 32 */ fmuls f8, f4, f12
/* 803B6504 003B3464 7E BA 3C 2E */ lfsx f21, r26, r7
/* 803B6508 003B3468 39 08 00 04 */ addi r8, r8, 4
/* 803B650C 003B346C 38 E7 00 04 */ addi r7, r7, 4
/* 803B6510 003B3470 ED C3 43 BA */ fmadds f14, f3, f14, f8
/* 803B6514 003B3474 7E 88 F8 00 */ cmpw cr5, r8, r31
/* 803B6518 003B3478 7F 07 F8 00 */ cmpw cr6, r7, r31
/* 803B651C 003B347C FD C0 70 1E */ fctiwz f14, f14
/* 803B6520 003B3480 40 B6 00 08 */ bne+ cr5, lbl_803B6528
/* 803B6524 003B3484 39 00 00 00 */ li r8, 0
lbl_803B6528:
/* 803B6528 003B3488 40 BA 00 08 */ bne+ cr6, lbl_803B6530
/* 803B652C 003B348C 38 E0 00 00 */ li r7, 0
lbl_803B6530:
/* 803B6530 003B3490 3B E0 FF FC */ li r31, -4
/* 803B6534 003B3494 ED 8A 28 28 */ fsubs f12, f10, f5
/* 803B6538 003B3498 7D C3 FF AE */ stfiwx f14, r3, r31
/* 803B653C 003B349C 42 00 FE 6C */ bdnz lbl_803B63A8
/* 803B6540 003B34A0 FD A0 60 90 */ fmr f13, f12
/* 803B6544 003B34A4 41 9E 00 2C */ beq cr7, lbl_803B6570
/* 803B6548 003B34A8 83 DC 01 AC */ lwz r30, 0x1ac(r28)
/* 803B654C 003B34AC 83 BC 01 B8 */ lwz r29, 0x1b8(r28)
/* 803B6550 003B34B0 7F F6 F2 14 */ add r31, r22, r30
/* 803B6554 003B34B4 3B BD 00 04 */ addi r29, r29, 4
/* 803B6558 003B34B8 C1 BD FF FC */ lfs f13, -4(r29)
/* 803B655C 003B34BC 7C 1D F8 00 */ cmpw r29, r31
/* 803B6560 003B34C0 D1 9D FF FC */ stfs f12, -4(r29)
/* 803B6564 003B34C4 40 A2 00 08 */ bne+ lbl_803B656C
/* 803B6568 003B34C8 7F DD F3 78 */ mr r29, r30
lbl_803B656C:
/* 803B656C 003B34CC 93 BE 01 B8 */ stw r29, 0x1b8(r30)
lbl_803B6570:
/* 803B6570 003B34D0 ED 16 6C 3A */ fmadds f8, f22, f16, f13
/* 803B6574 003B34D4 ED 37 6C 7A */ fmadds f9, f23, f17, f13
/* 803B6578 003B34D8 7D 04 AD 2E */ stfsx f8, r4, r21
/* 803B657C 003B34DC 3A B5 00 04 */ addi r21, r21, 4
/* 803B6580 003B34E0 7D 25 9D 2E */ stfsx f9, r5, r19
/* 803B6584 003B34E4 7D C4 A4 2E */ lfsx f14, r4, r20
/* 803B6588 003B34E8 3A 94 00 04 */ addi r20, r20, 4
/* 803B658C 003B34EC 7E 25 94 2E */ lfsx f17, r5, r18
/* 803B6590 003B34F0 7C 15 C8 00 */ cmpw r21, r25
/* 803B6594 003B34F4 7C 94 C8 00 */ cmpw cr1, r20, r25
/* 803B6598 003B34F8 3A 73 00 04 */ addi r19, r19, 4
/* 803B659C 003B34FC 3A 52 00 04 */ addi r18, r18, 4
/* 803B65A0 003B3500 FE 00 70 90 */ fmr f16, f14
/* 803B65A4 003B3504 7E 93 C0 00 */ cmpw cr5, r19, r24
/* 803B65A8 003B3508 ED CE 88 2A */ fadds f14, f14, f17
/* 803B65AC 003B350C 7F 12 C0 00 */ cmpw cr6, r18, r24
/* 803B65B0 003B3510 40 A2 00 08 */ bne+ lbl_803B65B8
/* 803B65B4 003B3514 3A A0 00 00 */ li r21, 0
lbl_803B65B8:
/* 803B65B8 003B3518 ED 18 6C BA */ fmadds f8, f24, f18, f13
/* 803B65BC 003B351C 40 A6 00 08 */ bne+ cr1, lbl_803B65C4
/* 803B65C0 003B3520 3A 80 00 00 */ li r20, 0
lbl_803B65C4:
/* 803B65C4 003B3524 7D 06 8D 2E */ stfsx f8, r6, r17
/* 803B65C8 003B3528 3A 31 00 04 */ addi r17, r17, 4
/* 803B65CC 003B352C 40 B6 00 08 */ bne+ cr5, lbl_803B65D4
/* 803B65D0 003B3530 3A 60 00 00 */ li r19, 0
lbl_803B65D4:
/* 803B65D4 003B3534 7E 46 84 2E */ lfsx f18, r6, r16
/* 803B65D8 003B3538 3A 10 00 04 */ addi r16, r16, 4
/* 803B65DC 003B353C 7C 11 B8 00 */ cmpw r17, r23
/* 803B65E0 003B3540 40 BA 00 08 */ bne+ cr6, lbl_803B65E8
/* 803B65E4 003B3544 3A 40 00 00 */ li r18, 0
lbl_803B65E8:
/* 803B65E8 003B3548 ED CE 90 2A */ fadds f14, f14, f18
/* 803B65EC 003B354C 7C 90 B8 00 */ cmpw cr1, r16, r23
/* 803B65F0 003B3550 83 5B 00 0C */ lwz r26, 0xc(r27)
/* 803B65F4 003B3554 ED 22 74 FA */ fmadds f9, f2, f19, f14
/* 803B65F8 003B3558 40 A2 00 08 */ bne+ lbl_803B6600
/* 803B65FC 003B355C 3A 20 00 00 */ li r17, 0
lbl_803B6600:
/* 803B6600 003B3560 40 A6 00 08 */ bne+ cr1, lbl_803B6608
/* 803B6604 003B3564 3A 00 00 00 */ li r16, 0
lbl_803B6608:
/* 803B6608 003B3568 7D 3A 65 2E */ stfsx f9, r26, r12
/* 803B660C 003B356C ED C2 9A 7C */ fnmsubs f14, f2, f9, f19
/* 803B6610 003B3570 39 8C 00 04 */ addi r12, r12, 4
/* 803B6614 003B3574 7E 7A 5C 2E */ lfsx f19, r26, r11
/* 803B6618 003B3578 7E 8C 78 00 */ cmpw cr5, r12, r15
/* 803B661C 003B357C 39 6B 00 04 */ addi r11, r11, 4
/* 803B6620 003B3580 83 5B 00 20 */ lwz r26, 0x20(r27)
/* 803B6624 003B3584 7F 0B 78 00 */ cmpw cr6, r11, r15
/* 803B6628 003B3588 ED 02 75 3A */ fmadds f8, f2, f20, f14
/* 803B662C 003B358C 40 B6 00 08 */ bne+ cr5, lbl_803B6634
/* 803B6630 003B3590 39 80 00 00 */ li r12, 0
lbl_803B6634:
/* 803B6634 003B3594 7D 1A 55 2E */ stfsx f8, r26, r10
/* 803B6638 003B3598 ED C2 A2 3C */ fnmsubs f14, f2, f8, f20
/* 803B663C 003B359C 39 4A 00 04 */ addi r10, r10, 4
/* 803B6640 003B35A0 40 BA 00 08 */ bne+ cr6, lbl_803B6648
/* 803B6644 003B35A4 39 60 00 00 */ li r11, 0
lbl_803B6648:
/* 803B6648 003B35A8 7E 9A 4C 2E */ lfsx f20, r26, r9
/* 803B664C 003B35AC 7C 0A 70 00 */ cmpw r10, r14
/* 803B6650 003B35B0 ED CE 01 B2 */ fmuls f14, f14, f6
/* 803B6654 003B35B4 39 29 00 04 */ addi r9, r9, 4
/* 803B6658 003B35B8 7C 89 70 00 */ cmpw cr1, r9, r14
/* 803B665C 003B35BC ED CF 76 7A */ fmadds f14, f15, f25, f14
/* 803B6660 003B35C0 40 A2 00 08 */ bne+ lbl_803B6668
/* 803B6664 003B35C4 39 40 00 00 */ li r10, 0
lbl_803B6668:
/* 803B6668 003B35C8 83 5B 00 34 */ lwz r26, 0x34(r27)
/* 803B666C 003B35CC 80 A1 00 50 */ lwz r5, 0x50(r1)
/* 803B6670 003B35D0 80 81 00 54 */ lwz r4, 0x54(r1)
/* 803B6674 003B35D4 ED 22 75 7A */ fmadds f9, f2, f21, f14
/* 803B6678 003B35D8 FF 20 70 90 */ fmr f25, f14
/* 803B667C 003B35DC 40 A6 00 08 */ bne+ cr1, lbl_803B6684
/* 803B6680 003B35E0 39 20 00 00 */ li r9, 0
lbl_803B6684:
/* 803B6684 003B35E4 7D 3A 45 2E */ stfsx f9, r26, r8
/* 803B6688 003B35E8 ED C2 AA 7C */ fnmsubs f14, f2, f9, f21
/* 803B668C 003B35EC 83 BB 00 30 */ lwz r29, 0x30(r27)
/* 803B6690 003B35F0 ED 04 03 32 */ fmuls f8, f4, f12
/* 803B6694 003B35F4 7E BA 3C 2E */ lfsx f21, r26, r7
/* 803B6698 003B35F8 39 08 00 04 */ addi r8, r8, 4
/* 803B669C 003B35FC 38 E7 00 04 */ addi r7, r7, 4
/* 803B66A0 003B3600 ED C3 43 BA */ fmadds f14, f3, f14, f8
/* 803B66A4 003B3604 7E 88 E8 00 */ cmpw cr5, r8, r29
/* 803B66A8 003B3608 7F 07 E8 00 */ cmpw cr6, r7, r29
/* 803B66AC 003B360C FD C0 70 1E */ fctiwz f14, f14
/* 803B66B0 003B3610 40 B6 00 08 */ bne+ cr5, lbl_803B66B8
/* 803B66B4 003B3614 39 00 00 00 */ li r8, 0
lbl_803B66B8:
/* 803B66B8 003B3618 40 BA 00 08 */ bne+ cr6, lbl_803B66C0
/* 803B66BC 003B361C 38 E0 00 00 */ li r7, 0
lbl_803B66C0:
/* 803B66C0 003B3620 54 BE 08 3C */ slwi r30, r5, 1
/* 803B66C4 003B3624 7F DE 2A 14 */ add r30, r30, r5
/* 803B66C8 003B3628 1F FE 00 14 */ mulli r31, r30, 0x14
/* 803B66CC 003B362C 7D C0 1F AE */ stfiwx f14, r0, r3
/* 803B66D0 003B3630 3B A4 00 B4 */ addi r29, r4, 0xb4
/* 803B66D4 003B3634 7F BD FA 14 */ add r29, r29, r31
/* 803B66D8 003B3638 92 BD 00 00 */ stw r21, 0(r29)
/* 803B66DC 003B363C 92 9D 00 04 */ stw r20, 4(r29)
/* 803B66E0 003B3640 92 7D 00 14 */ stw r19, 0x14(r29)
/* 803B66E4 003B3644 92 5D 00 18 */ stw r18, 0x18(r29)
/* 803B66E8 003B3648 92 3D 00 28 */ stw r17, 0x28(r29)
/* 803B66EC 003B364C 92 1D 00 2C */ stw r16, 0x2c(r29)
/* 803B66F0 003B3650 D2 1D 00 10 */ stfs f16, 0x10(r29)
/* 803B66F4 003B3654 D2 3D 00 24 */ stfs f17, 0x24(r29)
/* 803B66F8 003B3658 D2 5D 00 38 */ stfs f18, 0x38(r29)
/* 803B66FC 003B365C 91 9B 00 00 */ stw r12, 0(r27)
/* 803B6700 003B3660 91 7B 00 04 */ stw r11, 4(r27)
/* 803B6704 003B3664 91 5B 00 14 */ stw r10, 0x14(r27)
/* 803B6708 003B3668 91 3B 00 18 */ stw r9, 0x18(r27)
/* 803B670C 003B366C 91 1B 00 28 */ stw r8, 0x28(r27)
/* 803B6710 003B3670 90 FB 00 2C */ stw r7, 0x2c(r27)
/* 803B6714 003B3674 D2 7B 00 10 */ stfs f19, 0x10(r27)
/* 803B6718 003B3678 D2 9B 00 24 */ stfs f20, 0x24(r27)
/* 803B671C 003B367C D2 BB 00 38 */ stfs f21, 0x38(r27)
/* 803B6720 003B3680 54 BF 10 3A */ slwi r31, r5, 2
/* 803B6724 003B3684 7F FF 22 14 */ add r31, r31, r4
/* 803B6728 003B3688 D3 3F 01 90 */ stfs f25, 0x190(r31)
/* 803B672C 003B368C C9 C1 00 60 */ lfd f14, 0x60(r1)
/* 803B6730 003B3690 C9 E1 00 68 */ lfd f15, 0x68(r1)
/* 803B6734 003B3694 CA 01 00 70 */ lfd f16, 0x70(r1)
/* 803B6738 003B3698 CA 21 00 78 */ lfd f17, 0x78(r1)
/* 803B673C 003B369C CA 41 00 80 */ lfd f18, 0x80(r1)
/* 803B6740 003B36A0 CA 61 00 88 */ lfd f19, 0x88(r1)
/* 803B6744 003B36A4 CA 81 00 90 */ lfd f20, 0x90(r1)
/* 803B6748 003B36A8 CA A1 00 98 */ lfd f21, 0x98(r1)
/* 803B674C 003B36AC CA C1 00 A0 */ lfd f22, 0xa0(r1)
/* 803B6750 003B36B0 CA E1 00 A8 */ lfd f23, 0xa8(r1)
/* 803B6754 003B36B4 CB 01 00 B0 */ lfd f24, 0xb0(r1)
/* 803B6758 003B36B8 CB 21 00 B8 */ lfd f25, 0xb8(r1)
/* 803B675C 003B36BC B9 C1 00 08 */ lmw r14, 8(r1)
/* 803B6760 003B36C0 38 21 00 C0 */ addi r1, r1, 0xc0
/* 803B6764 003B36C4 4E 80 00 20 */ blr
.endfn HandleReverb
.global ReverbHICallback
ReverbHICallback:
/* 803B6768 003B36C8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803B676C 003B36CC 7C 08 02 A6 */ mflr r0
/* 803B6770 003B36D0 90 01 00 24 */ stw r0, 0x24(r1)
/* 803B6774 003B36D4 39 61 00 20 */ addi r11, r1, 0x20
/* 803B6778 003B36D8 4B FD 33 05 */ bl _savegpr_27
/* 803B677C 003B36DC 7C 7B 1B 78 */ mr r27, r3
/* 803B6780 003B36E0 7C 9C 23 78 */ mr r28, r4
/* 803B6784 003B36E4 7C BD 2B 78 */ mr r29, r5
/* 803B6788 003B36E8 7C DE 33 78 */ mr r30, r6
/* 803B678C 003B36EC 3B E0 00 00 */ li r31, 0
/* 803B6790 003B36F0 48 00 00 94 */ b lbl_803B6824
lbl_803B6794:
/* 803B6794 003B36F4 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 803B6798 003B36F8 2C 00 00 01 */ cmpwi r0, 1
/* 803B679C 003B36FC 41 82 00 60 */ beq lbl_803B67FC
/* 803B67A0 003B3700 40 80 00 10 */ bge lbl_803B67B0
/* 803B67A4 003B3704 2C 00 00 00 */ cmpwi r0, 0
/* 803B67A8 003B3708 40 80 00 14 */ bge lbl_803B67BC
/* 803B67AC 003B370C 48 00 00 74 */ b lbl_803B6820
lbl_803B67B0:
/* 803B67B0 003B3710 2C 00 00 03 */ cmpwi r0, 3
/* 803B67B4 003B3714 40 80 00 6C */ bge lbl_803B6820
/* 803B67B8 003B3718 48 00 00 58 */ b lbl_803B6810
lbl_803B67BC:
/* 803B67BC 003B371C C0 02 D6 D0 */ lfs f0, lbl_805AF3F0@sda21(r2)
/* 803B67C0 003B3720 C0 5E 01 A8 */ lfs f2, 0x1a8(r30)
/* 803B67C4 003B3724 FC 00 10 00 */ fcmpu cr0, f0, f2
/* 803B67C8 003B3728 41 82 00 20 */ beq lbl_803B67E8
/* 803B67CC 003B372C C0 22 D7 10 */ lfs f1, lbl_805AF430@sda21(r2)
/* 803B67D0 003B3730 7F 63 DB 78 */ mr r3, r27
/* 803B67D4 003B3734 C0 02 D6 D4 */ lfs f0, lbl_805AF3F4@sda21(r2)
/* 803B67D8 003B3738 7F 84 E3 78 */ mr r4, r28
/* 803B67DC 003B373C EC 21 00 B2 */ fmuls f1, f1, f2
/* 803B67E0 003B3740 EC 40 08 28 */ fsubs f2, f0, f1
/* 803B67E4 003B3744 4B FF F8 E9 */ bl DoCrossTalk
lbl_803B67E8:
/* 803B67E8 003B3748 7F 63 DB 78 */ mr r3, r27
/* 803B67EC 003B374C 7F C4 F3 78 */ mr r4, r30
/* 803B67F0 003B3750 38 A0 00 00 */ li r5, 0
/* 803B67F4 003B3754 4B FF FA 69 */ bl HandleReverb
/* 803B67F8 003B3758 48 00 00 28 */ b lbl_803B6820
lbl_803B67FC:
/* 803B67FC 003B375C 7F 83 E3 78 */ mr r3, r28
/* 803B6800 003B3760 7F C4 F3 78 */ mr r4, r30
/* 803B6804 003B3764 38 A0 00 01 */ li r5, 1
/* 803B6808 003B3768 4B FF FA 55 */ bl HandleReverb
/* 803B680C 003B376C 48 00 00 14 */ b lbl_803B6820
lbl_803B6810:
/* 803B6810 003B3770 7F A3 EB 78 */ mr r3, r29
/* 803B6814 003B3774 7F C4 F3 78 */ mr r4, r30
/* 803B6818 003B3778 38 A0 00 02 */ li r5, 2
/* 803B681C 003B377C 4B FF FA 41 */ bl HandleReverb
lbl_803B6820:
/* 803B6820 003B3780 3B FF 00 01 */ addi r31, r31, 1
lbl_803B6824:
/* 803B6824 003B3784 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 803B6828 003B3788 28 00 00 03 */ cmplwi r0, 3
/* 803B682C 003B378C 41 80 FF 68 */ blt lbl_803B6794
/* 803B6830 003B3790 39 61 00 20 */ addi r11, r1, 0x20
/* 803B6834 003B3794 4B FD 32 95 */ bl _restgpr_27
/* 803B6838 003B3798 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803B683C 003B379C 7C 08 03 A6 */ mtlr r0
/* 803B6840 003B37A0 38 21 00 20 */ addi r1, r1, 0x20
/* 803B6844 003B37A4 4E 80 00 20 */ blr
.global ReverbHIFree
ReverbHIFree:
/* 803B6848 003B37A8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803B684C 003B37AC 7C 08 02 A6 */ mflr r0
/* 803B6850 003B37B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 803B6854 003B37B4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803B6858 003B37B8 3B E0 00 00 */ li r31, 0
/* 803B685C 003B37BC 93 C1 00 08 */ stw r30, 8(r1)
/* 803B6860 003B37C0 7C 7E 1B 78 */ mr r30, r3
/* 803B6864 003B37C4 48 00 00 1C */ b lbl_803B6880
lbl_803B6868:
/* 803B6868 003B37C8 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 803B686C 003B37CC 1C 60 00 14 */ mulli r3, r0, 0x14
/* 803B6870 003B37D0 38 03 00 0C */ addi r0, r3, 0xc
/* 803B6874 003B37D4 7C 7E 00 2E */ lwzx r3, r30, r0
/* 803B6878 003B37D8 4B FF E8 E5 */ bl salFree
/* 803B687C 003B37DC 3B FF 00 01 */ addi r31, r31, 1
lbl_803B6880:
/* 803B6880 003B37E0 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 803B6884 003B37E4 28 00 00 09 */ cmplwi r0, 9
/* 803B6888 003B37E8 41 80 FF E0 */ blt lbl_803B6868
/* 803B688C 003B37EC 3B E0 00 00 */ li r31, 0
/* 803B6890 003B37F0 48 00 00 1C */ b lbl_803B68AC
lbl_803B6894:
/* 803B6894 003B37F4 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 803B6898 003B37F8 1C 60 00 14 */ mulli r3, r0, 0x14
/* 803B689C 003B37FC 38 03 00 C0 */ addi r0, r3, 0xc0
/* 803B68A0 003B3800 7C 7E 00 2E */ lwzx r3, r30, r0
/* 803B68A4 003B3804 4B FF E8 B9 */ bl salFree
/* 803B68A8 003B3808 3B FF 00 01 */ addi r31, r31, 1
lbl_803B68AC:
/* 803B68AC 003B380C 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 803B68B0 003B3810 28 00 00 09 */ cmplwi r0, 9
/* 803B68B4 003B3814 41 80 FF E0 */ blt lbl_803B6894
/* 803B68B8 003B3818 80 1E 01 A4 */ lwz r0, 0x1a4(r30)
/* 803B68BC 003B381C 2C 00 00 00 */ cmpwi r0, 0
/* 803B68C0 003B3820 41 82 00 2C */ beq lbl_803B68EC
/* 803B68C4 003B3824 3B E0 00 00 */ li r31, 0
/* 803B68C8 003B3828 48 00 00 18 */ b lbl_803B68E0
lbl_803B68CC:
/* 803B68CC 003B382C 57 E3 15 BA */ rlwinm r3, r31, 2, 0x16, 0x1d
/* 803B68D0 003B3830 38 03 01 AC */ addi r0, r3, 0x1ac
/* 803B68D4 003B3834 7C 7E 00 2E */ lwzx r3, r30, r0
/* 803B68D8 003B3838 4B FF E8 85 */ bl salFree
/* 803B68DC 003B383C 3B FF 00 01 */ addi r31, r31, 1
lbl_803B68E0:
/* 803B68E0 003B3840 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 803B68E4 003B3844 28 00 00 03 */ cmplwi r0, 3
/* 803B68E8 003B3848 41 80 FF E4 */ blt lbl_803B68CC
lbl_803B68EC:
/* 803B68EC 003B384C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803B68F0 003B3850 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803B68F4 003B3854 83 C1 00 08 */ lwz r30, 8(r1)
/* 803B68F8 003B3858 7C 08 03 A6 */ mtlr r0
/* 803B68FC 003B385C 38 21 00 10 */ addi r1, r1, 0x10
/* 803B6900 003B3860 4E 80 00 20 */ blr