sm64pc/asm/non_matchings/eu/audio/seq_channel_layer_process_s...

782 lines
36 KiB
ArmAsm

.late_rodata
glabel jtbl_EU_803066A0
.word L_EU_802E7960, L_EU_802E7B6C
.word L_EU_802E7B6C, L_EU_802E78F8
.word L_EU_802E78C0, L_EU_802E7B6C
.word L_EU_802E7B6C, L_EU_802E7940
.word L_EU_802E7880, L_EU_802E7B6C
.word L_EU_802E7B6C, L_EU_802E7848
glabel jtbl_EU_803066D0
.word L_EU_802E7980, L_EU_802E79BC
.word L_EU_802E7A1C, L_EU_802E79E4
.word L_EU_802E79E4, L_EU_802E7A30
.word L_EU_802E7AA0, L_EU_802E7B28
.word L_EU_802E79BC, L_EU_802E7980
.word L_EU_802E7B30, L_EU_802E7B5C
glabel jtbl_EU_80306700
.word L_EU_802E7F48, L_EU_802E7F50
.word L_EU_802E7F48, L_EU_802E7F50
.word L_EU_802E7F48
.text
glabel seq_channel_layer_process_script
/* 0A6F08 802E7708 27BDFF90 */ addiu $sp, $sp, -0x70
/* 0A6F0C 802E770C 240E0001 */ li $t6, 1
/* 0A6F10 802E7710 AFBF002C */ sw $ra, 0x2c($sp)
/* 0A6F14 802E7714 AFB40028 */ sw $s4, 0x28($sp)
/* 0A6F18 802E7718 AFB30024 */ sw $s3, 0x24($sp)
/* 0A6F1C 802E771C AFB20020 */ sw $s2, 0x20($sp)
/* 0A6F20 802E7720 AFB1001C */ sw $s1, 0x1c($sp)
/* 0A6F24 802E7724 AFB00018 */ sw $s0, 0x18($sp)
/* 0A6F28 802E7728 AFAE0044 */ sw $t6, 0x44($sp)
/* 0A6F2C 802E772C 8C820000 */ lw $v0, ($a0)
/* 0A6F30 802E7730 00808825 */ move $s1, $a0
/* 0A6F34 802E7734 00027FC2 */ srl $t7, $v0, 0x1f
/* 0A6F38 802E7738 51E0028E */ beql $t7, $zero, .L80202184
/* 0A6F3C 802E773C 8FBF002C */ lw $ra, 0x2c($sp)
/* 0A6F40 802E7740 84830038 */ lh $v1, 0x38($a0)
/* 0A6F44 802E7744 00024080 */ sll $t0, $v0, 2
/* 0A6F48 802E7748 000278C0 */ sll $t7, $v0, 3
/* 0A6F4C 802E774C 28610002 */ slti $at, $v1, 2
/* 0A6F50 802E7750 1420000E */ bnez $at, .L8020179C
/* 0A6F54 802E7754 2478FFFF */ addiu $t8, $v1, -1
/* 0A6F58 802E7758 05000285 */ bltz $t0, .L80202180
/* 0A6F5C 802E775C A4980038 */ sh $t8, 0x38($a0)
/* 0A6F60 802E7760 8489003A */ lh $t1, 0x3a($a0)
/* 0A6F64 802E7764 848A0038 */ lh $t2, 0x38($a0)
/* 0A6F68 802E7768 012A082A */ slt $at, $t1, $t2
/* 0A6F6C 802E776C 54200281 */ bnezl $at, .L80202184
/* 0A6F70 802E7770 8FBF002C */ lw $ra, 0x2c($sp)
/* 0A6F74 802E7774 0C0B95B3 */ jal seq_channel_layer_note_decay
/* 0A6F78 802E7778 00000000 */ nop
/* 0A6F7C 802E777C 922C0000 */ lbu $t4, ($s1)
/* 0A6F80 802E7780 358D0020 */ ori $t5, $t4, 0x20
/* 0A6F84 802E7784 1000027A */ b .L80202180
/* 0A6F88 802E7788 A22D0000 */ sb $t5, ($s1)
.L8020179C:
/* 0A6F8C 802E778C 05E20004 */ bltzl $t7, .L802017B0
/* 0A6F90 802E7790 92220008 */ lbu $v0, 8($s1)
/* 0A6F94 802E7794 0C0B95B3 */ jal seq_channel_layer_note_decay
/* 0A6F98 802E7798 02202025 */ move $a0, $s1
/* 0A6F9C 802E779C 92220008 */ lbu $v0, 8($s1)
.L802017B0:
/* 0A6FA0 802E77A0 2401FF7F */ li $at, -129
/* 0A6FA4 802E77A4 0041C024 */ and $t8, $v0, $at
/* 0A6FA8 802E77A8 24010001 */ li $at, 1
/* 0A6FAC 802E77AC 13010003 */ beq $t8, $at, .L802017CC
/* 0A6FB0 802E77B0 24010002 */ li $at, 2
/* 0A6FB4 802E77B4 57010003 */ bnel $t8, $at, .L802017D4
/* 0A6FB8 802E77B8 8E22004C */ lw $v0, 0x4c($s1)
.L802017CC:
/* 0A6FBC 802E77BC A2200008 */ sb $zero, 8($s1)
/* 0A6FC0 802E77C0 8E22004C */ lw $v0, 0x4c($s1)
.L802017D4:
/* 0A6FC4 802E77C4 92280000 */ lbu $t0, ($s1)
/* 0A6FC8 802E77C8 26300050 */ addiu $s0, $s1, 0x50
/* 0A6FCC 802E77CC 8C540044 */ lw $s4, 0x44($v0)
/* 0A6FD0 802E77D0 35090004 */ ori $t1, $t0, 4
/* 0A6FD4 802E77D4 A2290000 */ sb $t1, ($s1)
/* 0A6FD8 802E77D8 97B3004A */ lhu $s3, 0x4a($sp)
/* 0A6FDC 802E77DC AFA20068 */ sw $v0, 0x68($sp)
.L802017F0:
/* 0A6FE0 802E77E0 0C0B9DA0 */ jal m64_read_u8
/* 0A6FE4 802E77E4 02002025 */ move $a0, $s0
/* 0A6FE8 802E77E8 284100C1 */ slti $at, $v0, 0xc1
/* 0A6FEC 802E77EC 305200FF */ andi $s2, $v0, 0xff
/* 0A6FF0 802E77F0 142000F7 */ bnez $at, .L80201BE0
/* 0A6FF4 802E77F4 00402825 */ move $a1, $v0
/* 0A6FF8 802E77F8 284100CD */ slti $at, $v0, 0xcd
/* 0A6FFC 802E77FC 1420000A */ bnez $at, .L80201838
/* 0A7000 802E7800 24ABFF3F */ addiu $t3, $a1, -0xc1
/* 0A7004 802E7804 244AFF0C */ addiu $t2, $v0, -0xf4
/* 0A7008 802E7808 2D41000C */ sltiu $at, $t2, 0xc
/* 0A700C 802E780C 102000D7 */ beqz $at, .L_EU_802E7B6C
/* 0A7010 802E7810 000A5080 */ sll $t2, $t2, 2
/* 0A7014 802E7814 3C018030 */ lui $at, %hi(jtbl_EU_803066A0)
/* 0A7018 802E7818 002A0821 */ addu $at, $at, $t2
/* 0A701C 802E781C 8C2A66A0 */ lw $t2, %lo(jtbl_EU_803066A0)($at)
/* 0A7020 802E7820 01400008 */ jr $t2
/* 0A7024 802E7824 00000000 */ nop
.L80201838:
/* 0A7028 802E7828 2D61000C */ sltiu $at, $t3, 0xc
/* 0A702C 802E782C 102000CF */ beqz $at, .L_EU_802E7B6C
/* 0A7030 802E7830 000B5880 */ sll $t3, $t3, 2
/* 0A7034 802E7834 3C018030 */ lui $at, %hi(jtbl_EU_803066D0)
/* 0A7038 802E7838 002B0821 */ addu $at, $at, $t3
/* 0A703C 802E783C 8C2B66D0 */ lw $t3, %lo(jtbl_EU_803066D0)($at)
/* 0A7040 802E7840 01600008 */ jr $t3
/* 0A7044 802E7844 00000000 */ nop
glabel L_EU_802E7848
/* 0A7048 802E7848 92030018 */ lbu $v1, 0x18($s0)
/* 0A704C 802E784C 14600005 */ bnez $v1, .L80201874
/* 0A7050 802E7850 2462FFFF */ addiu $v0, $v1, -1
/* 0A7054 802E7854 0C0B9C1E */ jal seq_channel_layer_disable
/* 0A7058 802E7858 02202025 */ move $a0, $s1
/* 0A705C 802E785C 10000245 */ b .L80202184
/* 0A7060 802E7860 8FBF002C */ lw $ra, 0x2c($sp)
.L80201874:
/* 0A7064 802E7864 304C00FF */ andi $t4, $v0, 0xff
/* 0A7068 802E7868 000C6880 */ sll $t5, $t4, 2
/* 0A706C 802E786C 020D7021 */ addu $t6, $s0, $t5
/* 0A7070 802E7870 A20C0018 */ sb $t4, 0x18($s0)
/* 0A7074 802E7874 8DCF0004 */ lw $t7, 4($t6)
/* 0A7078 802E7878 1000FFD9 */ b .L802017F0
/* 0A707C 802E787C AE0F0000 */ sw $t7, ($s0)
glabel L_EU_802E7880
/* 0A7080 802E7880 0C0B9DA5 */ jal m64_read_s16
/* 0A7084 802E7884 02002025 */ move $a0, $s0
/* 0A7088 802E7888 92190018 */ lbu $t9, 0x18($s0)
/* 0A708C 802E788C 8E180000 */ lw $t8, ($s0)
/* 0A7090 802E7890 304DFFFF */ andi $t5, $v0, 0xffff
/* 0A7094 802E7894 00194080 */ sll $t0, $t9, 2
/* 0A7098 802E7898 02084821 */ addu $t1, $s0, $t0
/* 0A709C 802E789C AD380004 */ sw $t8, 4($t1)
/* 0A70A0 802E78A0 920A0018 */ lbu $t2, 0x18($s0)
/* 0A70A4 802E78A4 3053FFFF */ andi $s3, $v0, 0xffff
/* 0A70A8 802E78A8 254B0001 */ addiu $t3, $t2, 1
/* 0A70AC 802E78AC A20B0018 */ sb $t3, 0x18($s0)
/* 0A70B0 802E78B0 8E8C0014 */ lw $t4, 0x14($s4)
/* 0A70B4 802E78B4 018D7021 */ addu $t6, $t4, $t5
/* 0A70B8 802E78B8 1000FFC9 */ b .L802017F0
/* 0A70BC 802E78BC AE0E0000 */ sw $t6, ($s0)
glabel L_EU_802E78C0
/* 0A70C0 802E78C0 0C0B9DA0 */ jal m64_read_u8
/* 0A70C4 802E78C4 02002025 */ move $a0, $s0
/* 0A70C8 802E78C8 920F0018 */ lbu $t7, 0x18($s0)
/* 0A70CC 802E78CC 020FC821 */ addu $t9, $s0, $t7
/* 0A70D0 802E78D0 A3220014 */ sb $v0, 0x14($t9)
/* 0A70D4 802E78D4 92180018 */ lbu $t8, 0x18($s0)
/* 0A70D8 802E78D8 8E080000 */ lw $t0, ($s0)
/* 0A70DC 802E78DC 00184880 */ sll $t1, $t8, 2
/* 0A70E0 802E78E0 02095021 */ addu $t2, $s0, $t1
/* 0A70E4 802E78E4 AD480004 */ sw $t0, 4($t2)
/* 0A70E8 802E78E8 920B0018 */ lbu $t3, 0x18($s0)
/* 0A70EC 802E78EC 256C0001 */ addiu $t4, $t3, 1
/* 0A70F0 802E78F0 1000FFBB */ b .L802017F0
/* 0A70F4 802E78F4 A20C0018 */ sb $t4, 0x18($s0)
glabel L_EU_802E78F8
/* 0A70F8 802E78F8 920D0018 */ lbu $t5, 0x18($s0)
/* 0A70FC 802E78FC 020D1021 */ addu $v0, $s0, $t5
/* 0A7100 802E7900 904E0013 */ lbu $t6, 0x13($v0)
/* 0A7104 802E7904 25CFFFFF */ addiu $t7, $t6, -1
/* 0A7108 802E7908 A04F0013 */ sb $t7, 0x13($v0)
/* 0A710C 802E790C 92030018 */ lbu $v1, 0x18($s0)
/* 0A7110 802E7910 0203C821 */ addu $t9, $s0, $v1
/* 0A7114 802E7914 93380013 */ lbu $t8, 0x13($t9)
/* 0A7118 802E7918 00602025 */ move $a0, $v1
/* 0A711C 802E791C 00044880 */ sll $t1, $a0, 2
/* 0A7120 802E7920 13000005 */ beqz $t8, .L80201948
/* 0A7124 802E7924 246BFFFF */ addiu $t3, $v1, -1
/* 0A7128 802E7928 02094021 */ addu $t0, $s0, $t1
/* 0A712C 802E792C 8D0A0000 */ lw $t2, ($t0)
/* 0A7130 802E7930 1000FFAB */ b .L802017F0
/* 0A7134 802E7934 AE0A0000 */ sw $t2, ($s0)
.L80201948:
/* 0A7138 802E7938 1000FFA9 */ b .L802017F0
/* 0A713C 802E793C A20B0018 */ sb $t3, 0x18($s0)
glabel L_EU_802E7940
/* 0A7140 802E7940 0C0B9DA5 */ jal m64_read_s16
/* 0A7144 802E7944 02002025 */ move $a0, $s0
/* 0A7148 802E7948 8E8C0014 */ lw $t4, 0x14($s4)
/* 0A714C 802E794C 304DFFFF */ andi $t5, $v0, 0xffff
/* 0A7150 802E7950 3053FFFF */ andi $s3, $v0, 0xffff
/* 0A7154 802E7954 018D7021 */ addu $t6, $t4, $t5
/* 0A7158 802E7958 1000FFA1 */ b .L802017F0
/* 0A715C 802E795C AE0E0000 */ sw $t6, ($s0)
glabel L_EU_802E7960
/* 0A7160 802E7960 0C0B9DA0 */ jal m64_read_u8
/* 0A7164 802E7964 02002025 */ move $a0, $s0
/* 0A7168 802E7968 8E0F0000 */ lw $t7, ($s0)
/* 0A716C 802E796C 0002CE00 */ sll $t9, $v0, 0x18
/* 0A7170 802E7970 0019C603 */ sra $t8, $t9, 0x18
/* 0A7174 802E7974 01F84821 */ addu $t1, $t7, $t8
/* 0A7178 802E7978 1000FF99 */ b .L802017F0
/* 0A717C 802E797C AE090000 */ sw $t1, ($s0)
glabel L_EU_802E7980
/* 0A7180 802E7980 8E030000 */ lw $v1, ($s0)
/* 0A7184 802E7984 240100C1 */ li $at, 193
/* 0A7188 802E7988 90640000 */ lbu $a0, ($v1)
/* 0A718C 802E798C 24680001 */ addiu $t0, $v1, 1
/* 0A7190 802E7990 14A10008 */ bne $a1, $at, .L802019C4
/* 0A7194 802E7994 AE080000 */ sw $t0, ($s0)
/* 0A7198 802E7998 00840019 */ multu $a0, $a0
/* 0A719C 802E799C 00005012 */ mflo $t2
/* 0A71A0 802E79A0 448A2000 */ mtc1 $t2, $f4
/* 0A71A4 802E79A4 00000000 */ nop
/* 0A71A8 802E79A8 468021A0 */ cvt.s.w $f6, $f4
/* 0A71AC 802E79AC 1000FF8C */ b .L802017F0
/* 0A71B0 802E79B0 E6260028 */ swc1 $f6, 0x28($s1)
.L802019C4:
/* 0A71B4 802E79B4 1000FF8A */ b .L802017F0
/* 0A71B8 802E79B8 A2240005 */ sb $a0, 5($s1)
glabel L_EU_802E79BC
/* 0A71BC 802E79BC 8E030000 */ lw $v1, ($s0)
/* 0A71C0 802E79C0 240100C9 */ li $at, 201
/* 0A71C4 802E79C4 90640000 */ lbu $a0, ($v1)
/* 0A71C8 802E79C8 246B0001 */ addiu $t3, $v1, 1
/* 0A71CC 802E79CC 14A10003 */ bne $a1, $at, .L802019EC
/* 0A71D0 802E79D0 AE0B0000 */ sw $t3, ($s0)
/* 0A71D4 802E79D4 1000FF82 */ b .L802017F0
/* 0A71D8 802E79D8 A2240003 */ sb $a0, 3($s1)
.L802019EC:
/* 0A71DC 802E79DC 1000FF80 */ b .L802017F0
/* 0A71E0 802E79E0 A6240022 */ sh $a0, 0x22($s1)
glabel L_EU_802E79E4
/* 0A71E4 802E79E4 240100C4 */ li $at, 196
/* 0A71E8 802E79E8 54A10006 */ bnel $a1, $at, .L80201A14
/* 0A71EC 802E79EC 92390000 */ lbu $t9, ($s1)
/* 0A71F0 802E79F0 922D0000 */ lbu $t5, ($s1)
/* 0A71F4 802E79F4 35AE0010 */ ori $t6, $t5, 0x10
/* 0A71F8 802E79F8 10000004 */ b .L80201A1C
/* 0A71FC 802E79FC A22E0000 */ sb $t6, ($s1)
/* 0A7200 802E7A00 92390000 */ lbu $t9, ($s1)
.L80201A14:
/* 0A7204 802E7A04 332FFFEF */ andi $t7, $t9, 0xffef
/* 0A7208 802E7A08 A22F0000 */ sb $t7, ($s1)
.L80201A1C:
/* 0A720C 802E7A0C 0C0B95B3 */ jal seq_channel_layer_note_decay
/* 0A7210 802E7A10 02202025 */ move $a0, $s1
/* 0A7214 802E7A14 1000FF72 */ b .L802017F0
/* 0A7218 802E7A18 00000000 */ nop
glabel L_EU_802E7A1C
/* 0A721C 802E7A1C 0C0B9DB1 */ jal m64_read_compressed_u16
/* 0A7220 802E7A20 02002025 */ move $a0, $s0
/* 0A7224 802E7A24 3053FFFF */ andi $s3, $v0, 0xffff
/* 0A7228 802E7A28 1000FF6D */ b .L802017F0
/* 0A722C 802E7A2C A6220034 */ sh $v0, 0x34($s1)
glabel L_EU_802E7A30
/* 0A7230 802E7A30 0C0B9DA0 */ jal m64_read_u8
/* 0A7234 802E7A34 02002025 */ move $a0, $s0
/* 0A7238 802E7A38 2841007F */ slti $at, $v0, 0x7f
/* 0A723C 802E7A3C 305200FF */ andi $s2, $v0, 0xff
/* 0A7240 802E7A40 1420000D */ bnez $at, .L80201A88
/* 0A7244 802E7A44 00402825 */ move $a1, $v0
/* 0A7248 802E7A48 2401007F */ li $at, 127
/* 0A724C 802E7A4C 54410004 */ bnel $v0, $at, .L80201A70
/* 0A7250 802E7A50 A2220001 */ sb $v0, 1($s1)
/* 0A7254 802E7A54 10000003 */ b .L80201A74
/* 0A7258 802E7A58 A2200001 */ sb $zero, 1($s1)
/* 0A725C 802E7A5C A2220001 */ sb $v0, 1($s1)
.L80201A70:
/* 0A7260 802E7A60 AE200044 */ sw $zero, 0x44($s1)
.L80201A74:
/* 0A7264 802E7A64 240100FF */ li $at, 255
/* 0A7268 802E7A68 14A1FF5D */ bne $a1, $at, .L802017F0
/* 0A726C 802E7A6C 00000000 */ nop
/* 0A7270 802E7A70 1000FF5B */ b .L802017F0
/* 0A7274 802E7A74 A2200018 */ sb $zero, 0x18($s1)
.L80201A88:
/* 0A7278 802E7A78 8FA40068 */ lw $a0, 0x68($sp)
/* 0A727C 802E7A7C 324500FF */ andi $a1, $s2, 0xff
/* 0A7280 802E7A80 26260044 */ addiu $a2, $s1, 0x44
/* 0A7284 802E7A84 0C0BA064 */ jal get_instrument
/* 0A7288 802E7A88 26270018 */ addiu $a3, $s1, 0x18
/* 0A728C 802E7A8C 1440FF54 */ bnez $v0, .L802017F0
/* 0A7290 802E7A90 A2220001 */ sb $v0, 1($s1)
/* 0A7294 802E7A94 241800FF */ li $t8, 255
/* 0A7298 802E7A98 1000FF51 */ b .L802017F0
/* 0A729C 802E7A9C A2380001 */ sb $t8, 1($s1)
glabel L_EU_802E7AA0
/* 0A72A0 802E7AA0 0C0B9DA0 */ jal m64_read_u8
/* 0A72A4 802E7AA4 02002025 */ move $a0, $s0
/* 0A72A8 802E7AA8 A2220008 */ sb $v0, 8($s1)
/* 0A72AC 802E7AAC 0C0B9DA0 */ jal m64_read_u8
/* 0A72B0 802E7AB0 02002025 */ move $a0, $s0
/* 0A72B4 802E7AB4 8FA90068 */ lw $t1, 0x68($sp)
/* 0A72B8 802E7AB8 862B0022 */ lh $t3, 0x22($s1)
/* 0A72BC 802E7ABC 868D000C */ lh $t5, 0xc($s4)
/* 0A72C0 802E7AC0 8528001E */ lh $t0, 0x1e($t1)
/* 0A72C4 802E7AC4 00485021 */ addu $t2, $v0, $t0
/* 0A72C8 802E7AC8 014B6021 */ addu $t4, $t2, $t3
/* 0A72CC 802E7ACC 018D9021 */ addu $s2, $t4, $t5
/* 0A72D0 802E7AD0 324E00FF */ andi $t6, $s2, 0xff
/* 0A72D4 802E7AD4 29C10080 */ slti $at, $t6, 0x80
/* 0A72D8 802E7AD8 14200002 */ bnez $at, .L80201AF4
/* 0A72DC 802E7ADC 01C09025 */ move $s2, $t6
/* 0A72E0 802E7AE0 00009025 */ move $s2, $zero
.L80201AF4:
/* 0A72E4 802E7AE4 92390008 */ lbu $t9, 8($s1)
/* 0A72E8 802E7AE8 A2320004 */ sb $s2, 4($s1)
/* 0A72EC 802E7AEC 332F0080 */ andi $t7, $t9, 0x80
/* 0A72F0 802E7AF0 11E00008 */ beqz $t7, .L80201B24
/* 0A72F4 802E7AF4 00000000 */ nop
/* 0A72F8 802E7AF8 8E180000 */ lw $t8, ($s0)
/* 0A72FC 802E7AFC 93090000 */ lbu $t1, ($t8)
/* 0A7300 802E7B00 A6290020 */ sh $t1, 0x20($s1)
/* 0A7304 802E7B04 8E080000 */ lw $t0, ($s0)
/* 0A7308 802E7B08 250A0001 */ addiu $t2, $t0, 1
/* 0A730C 802E7B0C 1000FF34 */ b .L802017F0
/* 0A7310 802E7B10 AE0A0000 */ sw $t2, ($s0)
.L80201B24:
/* 0A7314 802E7B14 0C0B9DB1 */ jal m64_read_compressed_u16
/* 0A7318 802E7B18 02002025 */ move $a0, $s0
/* 0A731C 802E7B1C 3053FFFF */ andi $s3, $v0, 0xffff
/* 0A7320 802E7B20 1000FF2F */ b .L802017F0
/* 0A7324 802E7B24 A6220020 */ sh $v0, 0x20($s1)
glabel L_EU_802E7B28
/* 0A7328 802E7B28 1000FF2D */ b .L802017F0
/* 0A732C 802E7B2C A2200008 */ sb $zero, 8($s1)
glabel L_EU_802E7B30
/* 0A7330 802E7B30 0C0B9DA5 */ jal m64_read_s16
/* 0A7334 802E7B34 02002025 */ move $a0, $s0
/* 0A7338 802E7B38 8E8B0014 */ lw $t3, 0x14($s4)
/* 0A733C 802E7B3C 304CFFFF */ andi $t4, $v0, 0xffff
/* 0A7340 802E7B40 3053FFFF */ andi $s3, $v0, 0xffff
/* 0A7344 802E7B44 016C6821 */ addu $t5, $t3, $t4
/* 0A7348 802E7B48 AE2D001C */ sw $t5, 0x1c($s1)
/* 0A734C 802E7B4C 0C0B9DA0 */ jal m64_read_u8
/* 0A7350 802E7B50 02002025 */ move $a0, $s0
/* 0A7354 802E7B54 1000FF22 */ b .L802017F0
/* 0A7358 802E7B58 A2220018 */ sb $v0, 0x18($s1)
glabel L_EU_802E7B5C
/* 0A735C 802E7B5C 92390000 */ lbu $t9, ($s1)
/* 0A7360 802E7B60 372F0002 */ ori $t7, $t9, 2
/* 0A7364 802E7B64 1000FF1E */ b .L802017F0
/* 0A7368 802E7B68 A22F0000 */ sb $t7, ($s1)
glabel L_EU_802E7B6C
.L_EU_802E7B6C:
/* 0A736C 802E7B6C 30A300F0 */ andi $v1, $a1, 0xf0
/* 0A7370 802E7B70 240100D0 */ li $at, 208
/* 0A7374 802E7B74 10610005 */ beq $v1, $at, .L80201B9C
/* 0A7378 802E7B78 240100E0 */ li $at, 224
/* 0A737C 802E7B7C 5061000F */ beql $v1, $at, .L80201BCC
/* 0A7380 802E7B80 8E8B0090 */ lw $t3, 0x90($s4)
/* 0A7384 802E7B84 1000FF16 */ b .L802017F0
/* 0A7388 802E7B88 00000000 */ nop
.L80201B9C:
/* 0A738C 802E7B8C 8E98008C */ lw $t8, 0x8c($s4)
/* 0A7390 802E7B90 30A9000F */ andi $t1, $a1, 0xf
/* 0A7394 802E7B94 03094021 */ addu $t0, $t8, $t1
/* 0A7398 802E7B98 91130000 */ lbu $s3, ($t0)
/* 0A739C 802E7B9C 02730019 */ multu $s3, $s3
/* 0A73A0 802E7BA0 00005012 */ mflo $t2
/* 0A73A4 802E7BA4 448A4000 */ mtc1 $t2, $f8
/* 0A73A8 802E7BA8 00000000 */ nop
/* 0A73AC 802E7BAC 468042A0 */ cvt.s.w $f10, $f8
/* 0A73B0 802E7BB0 1000FF0B */ b .L802017F0
/* 0A73B4 802E7BB4 E62A0028 */ swc1 $f10, 0x28($s1)
/* 0A73B8 802E7BB8 8E8B0090 */ lw $t3, 0x90($s4)
.L80201BCC:
/* 0A73BC 802E7BBC 30AC000F */ andi $t4, $a1, 0xf
/* 0A73C0 802E7BC0 016C6821 */ addu $t5, $t3, $t4
/* 0A73C4 802E7BC4 91AE0000 */ lbu $t6, ($t5)
/* 0A73C8 802E7BC8 1000FF05 */ b .L802017F0
/* 0A73CC 802E7BCC A22E0003 */ sb $t6, 3($s1)
.L80201BE0:
/* 0A73D0 802E7BD0 240100C0 */ li $at, 192
/* 0A73D4 802E7BD4 14A10008 */ bne $a1, $at, .L80201C08
/* 0A73D8 802E7BD8 30A300C0 */ andi $v1, $a1, 0xc0
/* 0A73DC 802E7BDC 0C0B9DB1 */ jal m64_read_compressed_u16
/* 0A73E0 802E7BE0 02002025 */ move $a0, $s0
/* 0A73E4 802E7BE4 922F0000 */ lbu $t7, ($s1)
/* 0A73E8 802E7BE8 A6220038 */ sh $v0, 0x38($s1)
/* 0A73EC 802E7BEC 35F80020 */ ori $t8, $t7, 0x20
/* 0A73F0 802E7BF0 10000125 */ b .L80202098
/* 0A73F4 802E7BF4 A2380000 */ sb $t8, ($s1)
.L80201C08:
/* 0A73F8 802E7BF8 92290000 */ lbu $t1, ($s1)
/* 0A73FC 802E7BFC 24010001 */ li $at, 1
/* 0A7400 802E7C00 3128FFDF */ andi $t0, $t1, 0xffdf
/* 0A7404 802E7C04 A2280000 */ sb $t0, ($s1)
/* 0A7408 802E7C08 8FAA0068 */ lw $t2, 0x68($sp)
/* 0A740C 802E7C0C 8D4B0000 */ lw $t3, ($t2)
/* 0A7410 802E7C10 000B6180 */ sll $t4, $t3, 6
/* 0A7414 802E7C14 000C6FC2 */ srl $t5, $t4, 0x1f
/* 0A7418 802E7C18 15A10038 */ bne $t5, $at, .L80201D0C
/* 0A741C 802E7C1C 00000000 */ nop
/* 0A7420 802E7C20 30A300C0 */ andi $v1, $a1, 0xc0
/* 0A7424 802E7C24 10600007 */ beqz $v1, .L80201C54
/* 0A7428 802E7C28 24010040 */ li $at, 64
/* 0A742C 802E7C2C 10610014 */ beq $v1, $at, .L80201C90
/* 0A7430 802E7C30 24010080 */ li $at, 128
/* 0A7434 802E7C34 1061001D */ beq $v1, $at, .L80201CBC
/* 0A7438 802E7C38 02602025 */ move $a0, $s3
/* 0A743C 802E7C3C 10000026 */ b .L80201CE8
/* 0A7440 802E7C40 8FA60034 */ lw $a2, 0x34($sp)
.L80201C54:
/* 0A7444 802E7C44 0C0B9DB1 */ jal m64_read_compressed_u16
/* 0A7448 802E7C48 02002025 */ move $a0, $s0
/* 0A744C 802E7C4C 8E030000 */ lw $v1, ($s0)
/* 0A7450 802E7C50 3053FFFF */ andi $s3, $v0, 0xffff
/* 0A7454 802E7C54 02602025 */ move $a0, $s3
/* 0A7458 802E7C58 90660000 */ lbu $a2, ($v1)
/* 0A745C 802E7C5C 246E0001 */ addiu $t6, $v1, 1
/* 0A7460 802E7C60 AE0E0000 */ sw $t6, ($s0)
/* 0A7464 802E7C64 91CF0000 */ lbu $t7, ($t6)
/* 0A7468 802E7C68 A22F0003 */ sb $t7, 3($s1)
/* 0A746C 802E7C6C 8E180000 */ lw $t8, ($s0)
/* 0A7470 802E7C70 27090001 */ addiu $t1, $t8, 1
/* 0A7474 802E7C74 AE090000 */ sw $t1, ($s0)
/* 0A7478 802E7C78 10000017 */ b .L80201CE8
/* 0A747C 802E7C7C A6220036 */ sh $v0, 0x36($s1)
.L80201C90:
/* 0A7480 802E7C80 0C0B9DB1 */ jal m64_read_compressed_u16
/* 0A7484 802E7C84 02002025 */ move $a0, $s0
/* 0A7488 802E7C88 8E030000 */ lw $v1, ($s0)
/* 0A748C 802E7C8C 3053FFFF */ andi $s3, $v0, 0xffff
/* 0A7490 802E7C90 02602025 */ move $a0, $s3
/* 0A7494 802E7C94 90660000 */ lbu $a2, ($v1)
/* 0A7498 802E7C98 24680001 */ addiu $t0, $v1, 1
/* 0A749C 802E7C9C AE080000 */ sw $t0, ($s0)
/* 0A74A0 802E7CA0 A2200003 */ sb $zero, 3($s1)
/* 0A74A4 802E7CA4 1000000C */ b .L80201CE8
/* 0A74A8 802E7CA8 A6220036 */ sh $v0, 0x36($s1)
.L80201CBC:
/* 0A74AC 802E7CAC 8E030000 */ lw $v1, ($s0)
/* 0A74B0 802E7CB0 96330036 */ lhu $s3, 0x36($s1)
/* 0A74B4 802E7CB4 90660000 */ lbu $a2, ($v1)
/* 0A74B8 802E7CB8 246A0001 */ addiu $t2, $v1, 1
/* 0A74BC 802E7CBC AE0A0000 */ sw $t2, ($s0)
/* 0A74C0 802E7CC0 914C0000 */ lbu $t4, ($t2)
/* 0A74C4 802E7CC4 02602025 */ move $a0, $s3
/* 0A74C8 802E7CC8 A22C0003 */ sb $t4, 3($s1)
/* 0A74CC 802E7CCC 8E0D0000 */ lw $t5, ($s0)
/* 0A74D0 802E7CD0 25AE0001 */ addiu $t6, $t5, 1
/* 0A74D4 802E7CD4 AE0E0000 */ sw $t6, ($s0)
.L80201CE8:
/* 0A74D8 802E7CD8 44868000 */ mtc1 $a2, $f16
/* 0A74DC 802E7CDC 325900C0 */ andi $t9, $s2, 0xc0
/* 0A74E0 802E7CE0 02599023 */ subu $s2, $s2, $t9
/* 0A74E4 802E7CE4 46808020 */ cvt.s.w $f0, $f16
/* 0A74E8 802E7CE8 324F00FF */ andi $t7, $s2, 0xff
/* 0A74EC 802E7CEC 01E09025 */ move $s2, $t7
/* 0A74F0 802E7CF0 46000482 */ mul.s $f18, $f0, $f0
/* 0A74F4 802E7CF4 10000018 */ b .L80201D68
/* 0A74F8 802E7CF8 E6320028 */ swc1 $f18, 0x28($s1)
.L80201D0C:
/* 0A74FC 802E7CFC 10600007 */ beqz $v1, .L80201D2C
/* 0A7500 802E7D00 24010040 */ li $at, 64
/* 0A7504 802E7D04 1061000B */ beq $v1, $at, .L80201D44
/* 0A7508 802E7D08 24010080 */ li $at, 128
/* 0A750C 802E7D0C 5061000D */ beql $v1, $at, .L80201D54
/* 0A7510 802E7D10 96330036 */ lhu $s3, 0x36($s1)
/* 0A7514 802E7D14 1000000C */ b .L80201D58
/* 0A7518 802E7D18 02602025 */ move $a0, $s3
.L80201D2C:
/* 0A751C 802E7D1C 0C0B9DB1 */ jal m64_read_compressed_u16
/* 0A7520 802E7D20 02002025 */ move $a0, $s0
/* 0A7524 802E7D24 3053FFFF */ andi $s3, $v0, 0xffff
/* 0A7528 802E7D28 A6220036 */ sh $v0, 0x36($s1)
/* 0A752C 802E7D2C 10000006 */ b .L80201D58
/* 0A7530 802E7D30 02602025 */ move $a0, $s3
.L80201D44:
/* 0A7534 802E7D34 96330034 */ lhu $s3, 0x34($s1)
/* 0A7538 802E7D38 10000003 */ b .L80201D58
/* 0A753C 802E7D3C 02602025 */ move $a0, $s3
/* 0A7540 802E7D40 96330036 */ lhu $s3, 0x36($s1)
.L80201D54:
/* 0A7544 802E7D44 02602025 */ move $a0, $s3
.L80201D58:
/* 0A7548 802E7D48 325800C0 */ andi $t8, $s2, 0xc0
/* 0A754C 802E7D4C 02589023 */ subu $s2, $s2, $t8
/* 0A7550 802E7D50 324900FF */ andi $t1, $s2, 0xff
/* 0A7554 802E7D54 01209025 */ move $s2, $t1
.L80201D68:
/* 0A7558 802E7D58 92280003 */ lbu $t0, 3($s1)
/* 0A755C 802E7D5C A6240038 */ sh $a0, 0x38($s1)
/* 0A7560 802E7D60 01040019 */ multu $t0, $a0
/* 0A7564 802E7D64 00005012 */ mflo $t2
/* 0A7568 802E7D68 000A5A03 */ sra $t3, $t2, 8
/* 0A756C 802E7D6C A62B003A */ sh $t3, 0x3a($s1)
/* 0A7570 802E7D70 8E8C0000 */ lw $t4, ($s4)
/* 0A7574 802E7D74 8FB90068 */ lw $t9, 0x68($sp)
/* 0A7578 802E7D78 8FA90068 */ lw $t1, 0x68($sp)
/* 0A757C 802E7D7C 000C7080 */ sll $t6, $t4, 2
/* 0A7580 802E7D80 05C10005 */ bgez $t6, .L80201DA8
/* 0A7584 802E7D84 8FAC0068 */ lw $t4, 0x68($sp)
/* 0A7588 802E7D88 932F0003 */ lbu $t7, 3($t9)
/* 0A758C 802E7D8C 31F80040 */ andi $t8, $t7, 0x40
/* 0A7590 802E7D90 57000007 */ bnezl $t8, .L80201DC0
/* 0A7594 802E7D94 922D0000 */ lbu $t5, ($s1)
.L80201DA8:
/* 0A7598 802E7D98 8D280000 */ lw $t0, ($t1)
/* 0A759C 802E7D9C 8FB90068 */ lw $t9, 0x68($sp)
/* 0A75A0 802E7DA0 000858C0 */ sll $t3, $t0, 3
/* 0A75A4 802E7DA4 05630006 */ bgezl $t3, .L80201DD0
/* 0A75A8 802E7DA8 92230001 */ lbu $v1, 1($s1)
/* 0A75AC 802E7DAC 922D0000 */ lbu $t5, ($s1)
.L80201DC0:
/* 0A75B0 802E7DB0 35AE0020 */ ori $t6, $t5, 0x20
/* 0A75B4 802E7DB4 100000B4 */ b .L80202098
/* 0A75B8 802E7DB8 A22E0000 */ sb $t6, ($s1)
/* 0A75BC 802E7DBC 92230001 */ lbu $v1, 1($s1)
.L80201DD0:
/* 0A75C0 802E7DC0 240100FF */ li $at, 255
/* 0A75C4 802E7DC4 14610002 */ bne $v1, $at, .L80201DE0
/* 0A75C8 802E7DC8 00601025 */ move $v0, $v1
/* 0A75CC 802E7DCC 8722001C */ lh $v0, 0x1c($t9)
.L80201DE0:
/* 0A75D0 802E7DD0 5440001D */ bnezl $v0, .L80201E58
/* 0A75D4 802E7DD4 868F000C */ lh $t7, 0xc($s4)
/* 0A75D8 802E7DD8 8FAF0068 */ lw $t7, 0x68($sp)
/* 0A75DC 802E7DDC 86280022 */ lh $t0, 0x22($s1)
/* 0A75E0 802E7DE0 85F8001E */ lh $t8, 0x1e($t7)
/* 0A75E4 802E7DE4 91E40006 */ lbu $a0, 6($t7)
/* 0A75E8 802E7DE8 02584821 */ addu $t1, $s2, $t8
/* 0A75EC 802E7DEC 01289021 */ addu $s2, $t1, $t0
/* 0A75F0 802E7DF0 0C0B93EE */ jal func_eu_802e4fb8
/* 0A75F4 802E7DF4 324500FF */ andi $a1, $s2, 0xff
/* 0A75F8 802E7DF8 14400005 */ bnez $v0, .L80201E20
/* 0A75FC 802E7DFC 24430004 */ addiu $v1, $v0, 4
/* 0A7600 802E7E00 922C0000 */ lbu $t4, ($s1)
/* 0A7604 802E7E04 358D0020 */ ori $t5, $t4, 0x20
/* 0A7608 802E7E08 1000009D */ b .L80202090
/* 0A760C 802E7E0C A22D0000 */ sb $t5, ($s1)
.L80201E20:
/* 0A7610 802E7E10 8C4E000C */ lw $t6, 0xc($v0)
/* 0A7614 802E7E14 8E380000 */ lw $t8, ($s1)
/* 0A7618 802E7E18 AE2E001C */ sw $t6, 0x1c($s1)
/* 0A761C 802E7E1C 90590000 */ lbu $t9, ($v0)
/* 0A7620 802E7E20 00184180 */ sll $t0, $t8, 6
/* 0A7624 802E7E24 05000003 */ bltz $t0, .L80201E44
/* 0A7628 802E7E28 A2390018 */ sb $t9, 0x18($s1)
/* 0A762C 802E7E2C 904A0001 */ lbu $t2, 1($v0)
/* 0A7630 802E7E30 A22A0005 */ sb $t2, 5($s1)
.L80201E44:
/* 0A7634 802E7E34 AE230048 */ sw $v1, 0x48($s1) # AudioBankSound
/* 0A7638 802E7E38 C4640004 */ lwc1 $f4, 4($v1) # AudioBankSound.tuning
/* 0A763C 802E7E3C 10000090 */ b .L80202090
/* 0A7640 802E7E40 E6240024 */ swc1 $f4, 0x24($s1)
/* 0A7644 802E7E44 868F000C */ lh $t7, 0xc($s4)
.L80201E58:
/* 0A7648 802E7E48 858D001E */ lh $t5, 0x1e($t4)
/* 0A764C 802E7E4C 86390022 */ lh $t9, 0x22($s1)
/* 0A7650 802E7E50 024F5821 */ addu $t3, $s2, $t7
/* 0A7654 802E7E54 016D7021 */ addu $t6, $t3, $t5
/* 0A7658 802E7E58 01D99021 */ addu $s2, $t6, $t9
/* 0A765C 802E7E5C 324500FF */ andi $a1, $s2, 0xff # a1 = s2 & 0xff
/* 0A7660 802E7E60 28A10080 */ slti $at, $a1, 0x80
/* 0A7664 802E7E64 14200005 */ bnez $at, .L80201E8C
/* 0A7668 802E7E68 00A09025 */ move $s2, $a1
/* 0A766C 802E7E6C 92280000 */ lbu $t0, ($s1)
/* 0A7670 802E7E70 350A0020 */ ori $t2, $t0, 0x20
/* 0A7674 802E7E74 10000082 */ b .L80202090
/* 0A7678 802E7E78 A22A0000 */ sb $t2, ($s1)
.L80201E8C:
/* 0A767C 802E7E7C 240100FF */ li $at, 255
/* 0A7680 802E7E80 14610003 */ bne $v1, $at, .L80201EA0
/* 0A7684 802E7E84 8FAF0068 */ lw $t7, 0x68($sp)
/* 0A7688 802E7E88 10000002 */ b .L80201EA4
/* 0A768C 802E7E8C 8DE40040 */ lw $a0, 0x40($t7) # SequenceChannel.Instrument
.L80201EA0:
/* 0A7690 802E7E90 8E240044 */ lw $a0, 0x44($s1) # SequenceChannelLayer.Instrument
.L80201EA4:
/* 0A7694 802E7E94 922C0008 */ lbu $t4, 8($s1) # SequenceChannelLayer.portamento
/* 0A7698 802E7E98 11800061 */ beqz $t4, .L80202030
/* 0A769C 802E7E9C 00000000 */ nop
/* 0A76A0 802E7EA0 92220004 */ lbu $v0, 4($s1) # SequenceChannelLayer.portamentoTargetNote
/* 0A76A4 802E7EA4 0045082A */ slt $at, $v0, $a1
/* 0A76A8 802E7EA8 10200003 */ beqz $at, .L80201EC8
/* 0A76AC 802E7EAC 00403025 */ move $a2, $v0 # arg1 = min(portamentoTargetNote, a1)
/* 0A76B0 802E7EB0 10000001 */ b .L80201EC8
/* 0A76B4 802E7EB4 00A03025 */ move $a2, $a1
.L80201EC8:
/* 0A76B8 802E7EB8 1080000A */ beqz $a0, .L80201EF4
/* 0A76BC 802E7EBC 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0A76C0 802E7EC0 0C0B9397 */ jal func_eu_802e4e5c
/* 0A76C4 802E7EC4 00C02825 */ move $a1, $a2
/* 0A76C8 802E7EC8 8E2B0048 */ lw $t3, 0x48($s1)
/* 0A76CC 802E7ECC 004B6826 */ xor $t5, $v0, $t3
/* 0A76D0 802E7ED0 2DAD0001 */ sltiu $t5, $t5, 1
/* 0A76D4 802E7ED4 AFAD0044 */ sw $t5, 0x44($sp)
/* 0A76D8 802E7ED8 AE220048 */ sw $v0, 0x48($s1)
/* 0A76DC 802E7EDC 10000003 */ b .L80201EFC
/* 0A76E0 802E7EE0 C4400004 */ lwc1 $f0, 4($v0)
.L80201EF4:
/* 0A76E4 802E7EE4 44810000 */ mtc1 $at, $f0
/* 0A76E8 802E7EE8 AE200048 */ sw $zero, 0x48($s1)
.L80201EFC:
/* 0A76EC 802E7EEC 3C038030 */ lui $v1, %hi(gNoteFrequencies) # $v1, 0x8030
/* 0A76F0 802E7EF0 92380004 */ lbu $t8, 4($s1)
/* 0A76F4 802E7EF4 24630AE8 */ addiu $v1, %lo(gNoteFrequencies) # addiu $v1, $v1, 0xae8
/* 0A76F8 802E7EF8 00127080 */ sll $t6, $s2, 2
/* 0A76FC 802E7EFC 006EC821 */ addu $t9, $v1, $t6
/* 0A7700 802E7F00 C7260000 */ lwc1 $f6, ($t9)
/* 0A7704 802E7F04 922A0008 */ lbu $t2, 8($s1)
/* 0A7708 802E7F08 00184880 */ sll $t1, $t8, 2
/* 0A770C 802E7F0C 00694021 */ addu $t0, $v1, $t1
/* 0A7710 802E7F10 C5080000 */ lwc1 $f8, ($t0)
/* 0A7714 802E7F14 46003082 */ mul.s $f2, $f6, $f0
/* 0A7718 802E7F18 2401FF7F */ li $at, -129
/* 0A771C 802E7F1C 01417824 */ and $t7, $t2, $at
/* 0A7720 802E7F20 25ECFFFF */ addiu $t4, $t7, -1
/* 0A7724 802E7F24 2D810005 */ sltiu $at, $t4, 5
/* 0A7728 802E7F28 46004302 */ mul.s $f12, $f8, $f0
/* 0A772C 802E7F2C 10200008 */ beqz $at, .L_EU_802E7F50
/* 0A7730 802E7F30 000C6080 */ sll $t4, $t4, 2
/* 0A7734 802E7F34 3C018030 */ lui $at, %hi(jtbl_EU_80306700)
/* 0A7738 802E7F38 002C0821 */ addu $at, $at, $t4
/* 0A773C 802E7F3C 8C2C6700 */ lw $t4, %lo(jtbl_EU_80306700)($at)
/* 0A7740 802E7F40 01800008 */ jr $t4
/* 0A7744 802E7F44 00000000 */ nop
glabel L_EU_802E7F48
/* 0A7748 802E7F48 10000002 */ b .L80201F64
/* 0A774C 802E7F4C 46006006 */ mov.s $f0, $f12
glabel L_EU_802E7F50
.L_EU_802E7F50:
/* 0A7750 802E7F50 46001006 */ mov.s $f0, $f2
.L80201F64:
/* 0A7754 802E7F54 46001283 */ div.s $f10, $f2, $f0
/* 0A7758 802E7F58 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0A775C 802E7F5C 44818000 */ mtc1 $at, $f16
/* 0A7760 802E7F60 26220008 */ addiu $v0, $s1, 8
/* 0A7764 802E7F64 3C0146FE */ li $at, 0x46FE0000 # 32512.000000
/* 0A7768 802E7F68 46105481 */ sub.s $f18, $f10, $f16
/* 0A776C 802E7F6C E452000C */ swc1 $f18, 0xc($v0)
/* 0A7770 802E7F70 922B0008 */ lbu $t3, 8($s1)
/* 0A7774 802E7F74 316D0080 */ andi $t5, $t3, 0x80
/* 0A7778 802E7F78 51A00017 */ beql $t5, $zero, .L80201FE8
/* 0A777C 802E7F7C 96280020 */ lhu $t0, 0x20($s1)
/* 0A7780 802E7F80 968E0008 */ lhu $t6, 8($s4)
/* 0A7784 802E7F84 3C188023 */ lui $t8, %hi(gTempoInternalToExternal) # $t8, 0x8023
/* 0A7788 802E7F88 8718980C */ lh $t8, %lo(gTempoInternalToExternal)($t8)
/* 0A778C 802E7F8C 448E2000 */ mtc1 $t6, $f4
/* 0A7790 802E7F90 86390038 */ lh $t9, 0x38($s1)
/* 0A7794 802E7F94 44814000 */ mtc1 $at, $f8
/* 0A7798 802E7F98 468021A0 */ cvt.s.w $f6, $f4
/* 0A779C 802E7F9C 44982000 */ mtc1 $t8, $f4
/* 0A77A0 802E7FA0 44998000 */ mtc1 $t9, $f16
/* 0A77A4 802E7FA4 96290020 */ lhu $t1, 0x20($s1)
/* 0A77A8 802E7FA8 468084A0 */ cvt.s.w $f18, $f16
/* 0A77AC 802E7FAC 46083282 */ mul.s $f10, $f6, $f8
/* 0A77B0 802E7FB0 44898000 */ mtc1 $t1, $f16
/* 0A77B4 802E7FB4 468021A0 */ cvt.s.w $f6, $f4
/* 0A77B8 802E7FB8 46808120 */ cvt.s.w $f4, $f16
/* 0A77BC 802E7FBC 46069202 */ mul.s $f8, $f18, $f6
/* 0A77C0 802E7FC0 00000000 */ nop
/* 0A77C4 802E7FC4 46044482 */ mul.s $f18, $f8, $f4
/* 0A77C8 802E7FC8 46125183 */ div.s $f6, $f10, $f18
/* 0A77CC 802E7FCC 10000009 */ b .L80202004
/* 0A77D0 802E7FD0 E4460008 */ swc1 $f6, 8($v0)
/* 0A77D4 802E7FD4 96280020 */ lhu $t0, 0x20($s1)
.L80201FE8:
/* 0A77D8 802E7FD8 3C0142FE */ li $at, 0x42FE0000 # 127.000000
/* 0A77DC 802E7FDC 44818000 */ mtc1 $at, $f16
/* 0A77E0 802E7FE0 44884000 */ mtc1 $t0, $f8
/* 0A77E4 802E7FE4 00000000 */ nop
/* 0A77E8 802E7FE8 46804120 */ cvt.s.w $f4, $f8
/* 0A77EC 802E7FEC 46048283 */ div.s $f10, $f16, $f4
/* 0A77F0 802E7FF0 E44A0008 */ swc1 $f10, 8($v0)
.L80202004:
/* 0A77F4 802E7FF4 44809000 */ mtc1 $zero, $f18
/* 0A77F8 802E7FF8 2401FF7F */ li $at, -129
/* 0A77FC 802E7FFC E4520004 */ swc1 $f18, 4($v0)
/* 0A7800 802E8000 922A0008 */ lbu $t2, 8($s1)
/* 0A7804 802E8004 E6200024 */ swc1 $f0, 0x24($s1)
/* 0A7808 802E8008 01417824 */ and $t7, $t2, $at
/* 0A780C 802E800C 24010005 */ li $at, 5
/* 0A7810 802E8010 55E1001C */ bnel $t7, $at, .L80202094
/* 0A7814 802E8014 86290038 */ lh $t1, 0x38($s1)
/* 0A7818 802E8018 10000019 */ b .L80202090
/* 0A781C 802E801C A2320004 */ sb $s2, 4($s1)
.L80202030:
/* 0A7820 802E8020 10800011 */ beqz $a0, .L80202078
/* 0A7824 802E8024 3C038030 */ lui $v1, %hi(gNoteFrequencies)
/* 0A7828 802E8028 0C0B9397 */ jal func_eu_802e4e5c
/* 0A782C 802E802C 00000000 */ nop
/* 0A7830 802E8030 8E2C0048 */ lw $t4, 0x48($s1)
/* 0A7834 802E8034 3C038030 */ lui $v1, %hi(gNoteFrequencies) # $v1, 0x8030
/* 0A7838 802E8038 24630AE8 */ addiu $v1, %lo(gNoteFrequencies) # addiu $v1, $v1, 0xae8
/* 0A783C 802E803C 004C5826 */ xor $t3, $v0, $t4
/* 0A7840 802E8040 2D6B0001 */ sltiu $t3, $t3, 1
/* 0A7844 802E8044 AFAB0044 */ sw $t3, 0x44($sp)
/* 0A7848 802E8048 AE220048 */ sw $v0, 0x48($s1)
/* 0A784C 802E804C 00126880 */ sll $t5, $s2, 2
/* 0A7850 802E8050 006D7021 */ addu $t6, $v1, $t5
/* 0A7854 802E8054 C5C60000 */ lwc1 $f6, ($t6)
/* 0A7858 802E8058 C4480004 */ lwc1 $f8, 4($v0)
/* 0A785C 802E805C 46083402 */ mul.s $f16, $f6, $f8
/* 0A7860 802E8060 10000007 */ b .L80202090
/* 0A7864 802E8064 E6300024 */ swc1 $f16, 0x24($s1)
.L80202078:
/* 0A7868 802E8068 24630AE8 */ addiu $v1, $v1, 0xae8
/* 0A786C 802E806C 0012C880 */ sll $t9, $s2, 2
/* 0A7870 802E8070 AE200048 */ sw $zero, 0x48($s1)
/* 0A7874 802E8074 0079C021 */ addu $t8, $v1, $t9
/* 0A7878 802E8078 C7040000 */ lwc1 $f4, ($t8)
/* 0A787C 802E807C E6240024 */ swc1 $f4, 0x24($s1)
.L80202090:
/* 0A7880 802E8080 86290038 */ lh $t1, 0x38($s1)
.L80202094:
/* 0A7884 802E8084 A629003C */ sh $t1, 0x3c($s1)
.L80202098:
/* 0A7888 802E8088 8E220000 */ lw $v0, ($s1)
/* 0A788C 802E808C 24010001 */ li $at, 1
/* 0A7890 802E8090 00024080 */ sll $t0, $v0, 2
/* 0A7894 802E8094 000857C2 */ srl $t2, $t0, 0x1f
/* 0A7898 802E8098 1541000B */ bne $t2, $at, .L802020D8
/* 0A789C 802E809C 000270C0 */ sll $t6, $v0, 3
/* 0A78A0 802E80A0 8E2F0040 */ lw $t7, 0x40($s1)
/* 0A78A4 802E80A4 000258C0 */ sll $t3, $v0, 3
/* 0A78A8 802E80A8 15E00003 */ bnez $t7, .L802020C8
/* 0A78AC 802E80AC 00000000 */ nop
/* 0A78B0 802E80B0 05630030 */ bgezl $t3, .L80202184
/* 0A78B4 802E80B4 8FBF002C */ lw $ra, 0x2c($sp)
.L802020C8:
/* 0A78B8 802E80B8 0C0B95B3 */ jal seq_channel_layer_note_decay
/* 0A78BC 802E80BC 02202025 */ move $a0, $s1
/* 0A78C0 802E80C0 1000002C */ b .L80202184
/* 0A78C4 802E80C4 8FBF002C */ lw $ra, 0x2c($sp)
.L802020D8:
/* 0A78C8 802E80C8 05C00003 */ bltz $t6, .L802020E8
/* 0A78CC 802E80CC 00009025 */ move $s2, $zero
/* 0A78D0 802E80D0 1000001A */ b .L8020214C
/* 0A78D4 802E80D4 24120001 */ li $s2, 1
.L802020E8:
/* 0A78D8 802E80D8 8E240040 */ lw $a0, 0x40($s1)
/* 0A78DC 802E80DC 10800005 */ beqz $a0, .L80202104
/* 0A78E0 802E80E0 00000000 */ nop
/* 0A78E4 802E80E4 92390002 */ lbu $t9, 2($s1)
/* 0A78E8 802E80E8 8FB80044 */ lw $t8, 0x44($sp)
/* 0A78EC 802E80EC 17200003 */ bnez $t9, .L8020210C
/* 0A78F0 802E80F0 00000000 */ nop
.L80202104:
/* 0A78F4 802E80F4 10000011 */ b .L8020214C
/* 0A78F8 802E80F8 24120001 */ li $s2, 1
.L8020210C:
/* 0A78FC 802E80FC 57000006 */ bnezl $t8, .L80202128
/* 0A7900 802E8100 8C890044 */ lw $t1, 0x44($a0)
/* 0A7904 802E8104 0C0B95B3 */ jal seq_channel_layer_note_decay
/* 0A7908 802E8108 02202025 */ move $a0, $s1
/* 0A790C 802E810C 1000000B */ b .L8020214C
/* 0A7910 802E8110 24120001 */ li $s2, 1
/* 0A7914 802E8114 8C890044 */ lw $t1, 0x44($a0)
.L80202128:
/* 0A7918 802E8118 52290004 */ beql $s1, $t1, .L8020213C
/* 0A791C 802E811C 8E280048 */ lw $t0, 0x48($s1)
/* 0A7920 802E8120 10000006 */ b .L8020214C
/* 0A7924 802E8124 24120001 */ li $s2, 1
/* 0A7928 802E8128 8E280048 */ lw $t0, 0x48($s1)
.L8020213C:
/* 0A792C 802E812C 15000003 */ bnez $t0, .L8020214C
/* 0A7930 802E8130 00000000 */ nop
/* 0A7934 802E8134 0C0B9604 */ jal init_synthetic_wave
/* 0A7938 802E8138 02202825 */ move $a1, $s1
.L8020214C:
/* 0A793C 802E813C 52400005 */ beql $s2, $zero, .L80202164
/* 0A7940 802E8140 8E240040 */ lw $a0, 0x40($s1)
/* 0A7944 802E8144 0C0B97FC */ jal alloc_note
/* 0A7948 802E8148 02202025 */ move $a0, $s1
/* 0A794C 802E814C AE220040 */ sw $v0, 0x40($s1)
/* 0A7950 802E8150 8E240040 */ lw $a0, 0x40($s1)
.L80202164:
/* 0A7954 802E8154 50800007 */ beql $a0, $zero, .L80202184
/* 0A7958 802E8158 8FBF002C */ lw $ra, 0x2c($sp)
/* 0A795C 802E815C 8C8A0044 */ lw $t2, 0x44($a0)
/* 0A7960 802E8160 562A0004 */ bnel $s1, $t2, .L80202184
/* 0A7964 802E8164 8FBF002C */ lw $ra, 0x2c($sp)
/* 0A7968 802E8168 0C0B9AA0 */ jal note_vibrato_init
/* 0A796C 802E816C 00000000 */ nop
.L80202180:
/* 0A7970 802E8170 8FBF002C */ lw $ra, 0x2c($sp)
.L80202184:
/* 0A7974 802E8174 8FB00018 */ lw $s0, 0x18($sp)
/* 0A7978 802E8178 8FB1001C */ lw $s1, 0x1c($sp)
/* 0A797C 802E817C 8FB20020 */ lw $s2, 0x20($sp)
/* 0A7980 802E8180 8FB30024 */ lw $s3, 0x24($sp)
/* 0A7984 802E8184 8FB40028 */ lw $s4, 0x28($sp)
/* 0A7988 802E8188 03E00008 */ jr $ra
/* 0A798C 802E818C 27BD0070 */ addiu $sp, $sp, 0x70