.include "macros.inc" .section .sbss .balign 4 .global sp sp: .skip 0x8 .section .text, "ax" .global vsUpdateBuffer vsUpdateBuffer: /* 803A9D7C 003A6CDC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803A9D80 003A6CE0 7C 08 02 A6 */ mflr r0 /* 803A9D84 003A6CE4 90 01 00 14 */ stw r0, 0x14(r1) /* 803A9D88 003A6CE8 93 E1 00 0C */ stw r31, 0xc(r1) /* 803A9D8C 003A6CEC 7C 7F 1B 78 */ mr r31, r3 /* 803A9D90 003A6CF0 93 C1 00 08 */ stw r30, 8(r1) /* 803A9D94 003A6CF4 81 03 00 04 */ lwz r8, 4(r3) /* 803A9D98 003A6CF8 7C 08 20 40 */ cmplw r8, r4 /* 803A9D9C 003A6CFC 41 82 01 C0 */ beq lbl_803A9F5C /* 803A9DA0 003A6D00 40 80 00 98 */ bge lbl_803A9E38 /* 803A9DA4 003A6D04 88 1F 00 02 */ lbz r0, 2(r31) /* 803A9DA8 003A6D08 2C 00 00 05 */ cmpwi r0, 5 /* 803A9DAC 003A6D0C 41 82 00 08 */ beq lbl_803A9DB4 /* 803A9DB0 003A6D10 48 00 01 AC */ b lbl_803A9F5C lbl_803A9DB4: /* 803A9DB4 003A6D14 3C A0 24 92 */ lis r5, 0x24924925@ha /* 803A9DB8 003A6D18 38 00 00 00 */ li r0, 0 /* 803A9DBC 003A6D1C 38 A5 49 25 */ addi r5, r5, 0x24924925@l /* 803A9DC0 003A6D20 3C 60 80 56 */ lis r3, vs@ha /* 803A9DC4 003A6D24 7C E5 40 16 */ mulhwu r7, r5, r8 /* 803A9DC8 003A6D28 38 A3 E3 10 */ addi r5, r3, vs@l /* 803A9DCC 003A6D2C 38 60 00 01 */ li r3, 1 /* 803A9DD0 003A6D30 7C C7 40 50 */ subf r6, r7, r8 /* 803A9DD4 003A6D34 54 C6 F8 7E */ srwi r6, r6, 1 /* 803A9DD8 003A6D38 7C C6 3A 14 */ add r6, r6, r7 /* 803A9DDC 003A6D3C 54 C6 00 38 */ rlwinm r6, r6, 0, 0, 0x1c /* 803A9DE0 003A6D40 90 DF 00 14 */ stw r6, 0x14(r31) /* 803A9DE4 003A6D44 80 DF 00 04 */ lwz r6, 4(r31) /* 803A9DE8 003A6D48 7C C6 20 50 */ subf r6, r6, r4 /* 803A9DEC 003A6D4C 38 9F 00 10 */ addi r4, r31, 0x10 /* 803A9DF0 003A6D50 90 DF 00 18 */ stw r6, 0x18(r31) /* 803A9DF4 003A6D54 90 1F 00 1C */ stw r0, 0x1c(r31) /* 803A9DF8 003A6D58 90 1F 00 20 */ stw r0, 0x20(r31) /* 803A9DFC 003A6D5C 81 85 09 4C */ lwz r12, 0x94c(r5) /* 803A9E00 003A6D60 7D 89 03 A6 */ mtctr r12 /* 803A9E04 003A6D64 4E 80 04 21 */ bctrl /* 803A9E08 003A6D68 28 03 00 00 */ cmplwi r3, 0 /* 803A9E0C 003A6D6C 41 82 01 50 */ beq lbl_803A9F5C /* 803A9E10 003A6D70 3C 80 80 56 */ lis r4, vs@ha /* 803A9E14 003A6D74 80 1F 00 04 */ lwz r0, 4(r31) /* 803A9E18 003A6D78 38 84 E3 10 */ addi r4, r4, vs@l /* 803A9E1C 003A6D7C 80 84 00 04 */ lwz r4, 4(r4) /* 803A9E20 003A6D80 7C 60 1A 14 */ add r3, r0, r3 /* 803A9E24 003A6D84 7C 03 23 96 */ divwu r0, r3, r4 /* 803A9E28 003A6D88 7C 00 21 D6 */ mullw r0, r0, r4 /* 803A9E2C 003A6D8C 7C 00 18 50 */ subf r0, r0, r3 /* 803A9E30 003A6D90 90 1F 00 04 */ stw r0, 4(r31) /* 803A9E34 003A6D94 48 00 01 28 */ b lbl_803A9F5C lbl_803A9E38: /* 803A9E38 003A6D98 28 04 00 00 */ cmplwi r4, 0 /* 803A9E3C 003A6D9C 40 82 00 94 */ bne lbl_803A9ED0 /* 803A9E40 003A6DA0 88 1F 00 02 */ lbz r0, 2(r31) /* 803A9E44 003A6DA4 2C 00 00 05 */ cmpwi r0, 5 /* 803A9E48 003A6DA8 41 82 00 08 */ beq lbl_803A9E50 /* 803A9E4C 003A6DAC 48 00 01 10 */ b lbl_803A9F5C lbl_803A9E50: /* 803A9E50 003A6DB0 3C 80 24 92 */ lis r4, 0x24924925@ha /* 803A9E54 003A6DB4 3C 60 80 56 */ lis r3, vs@ha /* 803A9E58 003A6DB8 38 84 49 25 */ addi r4, r4, 0x24924925@l /* 803A9E5C 003A6DBC 38 00 00 00 */ li r0, 0 /* 803A9E60 003A6DC0 7C C4 40 16 */ mulhwu r6, r4, r8 /* 803A9E64 003A6DC4 3B C3 E3 10 */ addi r30, r3, vs@l /* 803A9E68 003A6DC8 38 9F 00 10 */ addi r4, r31, 0x10 /* 803A9E6C 003A6DCC 38 60 00 01 */ li r3, 1 /* 803A9E70 003A6DD0 7C A6 40 50 */ subf r5, r6, r8 /* 803A9E74 003A6DD4 54 A5 F8 7E */ srwi r5, r5, 1 /* 803A9E78 003A6DD8 7C A5 32 14 */ add r5, r5, r6 /* 803A9E7C 003A6DDC 54 A5 00 38 */ rlwinm r5, r5, 0, 0, 0x1c /* 803A9E80 003A6DE0 90 BF 00 14 */ stw r5, 0x14(r31) /* 803A9E84 003A6DE4 80 DF 00 04 */ lwz r6, 4(r31) /* 803A9E88 003A6DE8 80 BE 00 04 */ lwz r5, 4(r30) /* 803A9E8C 003A6DEC 7C A6 28 50 */ subf r5, r6, r5 /* 803A9E90 003A6DF0 90 BF 00 18 */ stw r5, 0x18(r31) /* 803A9E94 003A6DF4 90 1F 00 1C */ stw r0, 0x1c(r31) /* 803A9E98 003A6DF8 90 1F 00 20 */ stw r0, 0x20(r31) /* 803A9E9C 003A6DFC 81 9E 09 4C */ lwz r12, 0x94c(r30) /* 803A9EA0 003A6E00 7D 89 03 A6 */ mtctr r12 /* 803A9EA4 003A6E04 4E 80 04 21 */ bctrl /* 803A9EA8 003A6E08 28 03 00 00 */ cmplwi r3, 0 /* 803A9EAC 003A6E0C 41 82 00 B0 */ beq lbl_803A9F5C /* 803A9EB0 003A6E10 80 1F 00 04 */ lwz r0, 4(r31) /* 803A9EB4 003A6E14 80 9E 00 04 */ lwz r4, 4(r30) /* 803A9EB8 003A6E18 7C 60 1A 14 */ add r3, r0, r3 /* 803A9EBC 003A6E1C 7C 03 23 96 */ divwu r0, r3, r4 /* 803A9EC0 003A6E20 7C 00 21 D6 */ mullw r0, r0, r4 /* 803A9EC4 003A6E24 7C 00 18 50 */ subf r0, r0, r3 /* 803A9EC8 003A6E28 90 1F 00 04 */ stw r0, 4(r31) /* 803A9ECC 003A6E2C 48 00 00 90 */ b lbl_803A9F5C lbl_803A9ED0: /* 803A9ED0 003A6E30 88 1F 00 02 */ lbz r0, 2(r31) /* 803A9ED4 003A6E34 2C 00 00 05 */ cmpwi r0, 5 /* 803A9ED8 003A6E38 41 82 00 08 */ beq lbl_803A9EE0 /* 803A9EDC 003A6E3C 48 00 00 80 */ b lbl_803A9F5C lbl_803A9EE0: /* 803A9EE0 003A6E40 3C A0 24 92 */ lis r5, 0x24924925@ha /* 803A9EE4 003A6E44 3C 60 80 56 */ lis r3, vs@ha /* 803A9EE8 003A6E48 38 A5 49 25 */ addi r5, r5, 0x24924925@l /* 803A9EEC 003A6E4C 38 00 00 00 */ li r0, 0 /* 803A9EF0 003A6E50 7C C5 40 16 */ mulhwu r6, r5, r8 /* 803A9EF4 003A6E54 3B C3 E3 10 */ addi r30, r3, vs@l /* 803A9EF8 003A6E58 38 60 00 01 */ li r3, 1 /* 803A9EFC 003A6E5C 7C A6 40 50 */ subf r5, r6, r8 /* 803A9F00 003A6E60 54 A5 F8 7E */ srwi r5, r5, 1 /* 803A9F04 003A6E64 7C A5 32 14 */ add r5, r5, r6 /* 803A9F08 003A6E68 54 A5 00 38 */ rlwinm r5, r5, 0, 0, 0x1c /* 803A9F0C 003A6E6C 90 BF 00 14 */ stw r5, 0x14(r31) /* 803A9F10 003A6E70 80 DF 00 04 */ lwz r6, 4(r31) /* 803A9F14 003A6E74 80 BE 00 04 */ lwz r5, 4(r30) /* 803A9F18 003A6E78 7C A6 28 50 */ subf r5, r6, r5 /* 803A9F1C 003A6E7C 90 BF 00 18 */ stw r5, 0x18(r31) /* 803A9F20 003A6E80 90 1F 00 1C */ stw r0, 0x1c(r31) /* 803A9F24 003A6E84 90 9F 00 20 */ stw r4, 0x20(r31) /* 803A9F28 003A6E88 38 9F 00 10 */ addi r4, r31, 0x10 /* 803A9F2C 003A6E8C 81 9E 09 4C */ lwz r12, 0x94c(r30) /* 803A9F30 003A6E90 7D 89 03 A6 */ mtctr r12 /* 803A9F34 003A6E94 4E 80 04 21 */ bctrl /* 803A9F38 003A6E98 28 03 00 00 */ cmplwi r3, 0 /* 803A9F3C 003A6E9C 41 82 00 20 */ beq lbl_803A9F5C /* 803A9F40 003A6EA0 80 1F 00 04 */ lwz r0, 4(r31) /* 803A9F44 003A6EA4 80 9E 00 04 */ lwz r4, 4(r30) /* 803A9F48 003A6EA8 7C 60 1A 14 */ add r3, r0, r3 /* 803A9F4C 003A6EAC 7C 03 23 96 */ divwu r0, r3, r4 /* 803A9F50 003A6EB0 7C 00 21 D6 */ mullw r0, r0, r4 /* 803A9F54 003A6EB4 7C 00 18 50 */ subf r0, r0, r3 /* 803A9F58 003A6EB8 90 1F 00 04 */ stw r0, 4(r31) lbl_803A9F5C: /* 803A9F5C 003A6EBC 80 01 00 14 */ lwz r0, 0x14(r1) /* 803A9F60 003A6EC0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 803A9F64 003A6EC4 83 C1 00 08 */ lwz r30, 8(r1) /* 803A9F68 003A6EC8 7C 08 03 A6 */ mtlr r0 /* 803A9F6C 003A6ECC 38 21 00 10 */ addi r1, r1, 0x10 /* 803A9F70 003A6ED0 4E 80 00 20 */ blr .global vsSampleUpdates vsSampleUpdates: /* 803A9F74 003A6ED4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 803A9F78 003A6ED8 7C 08 02 A6 */ mflr r0 /* 803A9F7C 003A6EDC 90 01 00 24 */ stw r0, 0x24(r1) /* 803A9F80 003A6EE0 39 61 00 20 */ addi r11, r1, 0x20 /* 803A9F84 003A6EE4 4B FD FA F5 */ bl _savegpr_26 /* 803A9F88 003A6EE8 3C 60 80 56 */ lis r3, vs@ha /* 803A9F8C 003A6EEC 3B E3 E3 10 */ addi r31, r3, vs@l /* 803A9F90 003A6EF0 80 1F 09 4C */ lwz r0, 0x94c(r31) /* 803A9F94 003A6EF4 28 00 00 00 */ cmplwi r0, 0 /* 803A9F98 003A6EF8 41 82 01 D4 */ beq lbl_803AA16C /* 803A9F9C 003A6EFC 3B A0 00 00 */ li r29, 0 /* 803A9FA0 003A6F00 7F FE FB 78 */ mr r30, r31 lbl_803A9FA4: /* 803A9FA4 003A6F04 88 1E 09 08 */ lbz r0, 0x908(r30) /* 803A9FA8 003A6F08 28 00 00 FF */ cmplwi r0, 0xff /* 803A9FAC 003A6F0C 41 82 01 B0 */ beq lbl_803AA15C /* 803A9FB0 003A6F10 7F A3 EB 78 */ mr r3, r29 /* 803A9FB4 003A6F14 48 00 95 F5 */ bl hwGetVirtualSampleState /* 803A9FB8 003A6F18 28 03 00 00 */ cmplwi r3, 0 /* 803A9FBC 003A6F1C 41 82 01 A0 */ beq lbl_803AA15C /* 803A9FC0 003A6F20 88 9E 09 08 */ lbz r4, 0x908(r30) /* 803A9FC4 003A6F24 3C 60 80 56 */ lis r3, vs@ha /* 803A9FC8 003A6F28 38 03 E3 10 */ addi r0, r3, vs@l /* 803A9FCC 003A6F2C 7F A3 EB 78 */ mr r3, r29 /* 803A9FD0 003A6F30 1C 84 00 24 */ mulli r4, r4, 0x24 /* 803A9FD4 003A6F34 7C 80 22 14 */ add r4, r0, r4 /* 803A9FD8 003A6F38 3B 64 00 08 */ addi r27, r4, 8 /* 803A9FDC 003A6F3C 48 00 9B 95 */ bl hwGetPos /* 803A9FE0 003A6F40 88 1B 00 02 */ lbz r0, 2(r27) /* 803A9FE4 003A6F44 7C 7C 1B 78 */ mr r28, r3 /* 803A9FE8 003A6F48 28 00 00 05 */ cmplwi r0, 5 /* 803A9FEC 003A6F4C 40 82 00 28 */ bne lbl_803AA014 /* 803A9FF0 003A6F50 3C 60 24 92 */ lis r3, 0x24924925@ha /* 803A9FF4 003A6F54 38 03 49 25 */ addi r0, r3, 0x24924925@l /* 803A9FF8 003A6F58 7C 60 E0 16 */ mulhwu r3, r0, r28 /* 803A9FFC 003A6F5C 7C 03 E0 50 */ subf r0, r3, r28 /* 803AA000 003A6F60 54 00 F8 7E */ srwi r0, r0, 1 /* 803AA004 003A6F64 7C 00 1A 14 */ add r0, r0, r3 /* 803AA008 003A6F68 54 00 E8 FE */ srwi r0, r0, 3 /* 803AA00C 003A6F6C 1F 40 00 0E */ mulli r26, r0, 0xe /* 803AA010 003A6F70 48 00 00 08 */ b lbl_803AA018 lbl_803AA014: /* 803AA014 003A6F74 7F 9A E3 78 */ mr r26, r28 lbl_803AA018: /* 803AA018 003A6F78 88 1B 00 00 */ lbz r0, 0(r27) /* 803AA01C 003A6F7C 2C 00 00 01 */ cmpwi r0, 1 /* 803AA020 003A6F80 41 82 00 14 */ beq lbl_803AA034 /* 803AA024 003A6F84 41 80 01 38 */ blt lbl_803AA15C /* 803AA028 003A6F88 2C 00 00 04 */ cmpwi r0, 4 /* 803AA02C 003A6F8C 40 80 01 30 */ bge lbl_803AA15C /* 803AA030 003A6F90 48 00 00 14 */ b lbl_803AA044 lbl_803AA034: /* 803AA034 003A6F94 7F 63 DB 78 */ mr r3, r27 /* 803AA038 003A6F98 7F 44 D3 78 */ mr r4, r26 /* 803AA03C 003A6F9C 4B FF FD 41 */ bl vsUpdateBuffer /* 803AA040 003A6FA0 48 00 01 1C */ b lbl_803AA15C lbl_803AA044: /* 803AA044 003A6FA4 88 7B 00 03 */ lbz r3, 3(r27) /* 803AA048 003A6FA8 48 00 9E E1 */ bl hwGetVirtualSampleID /* 803AA04C 003A6FAC A0 9B 00 12 */ lhz r4, 0x12(r27) /* 803AA050 003A6FB0 88 1B 00 03 */ lbz r0, 3(r27) /* 803AA054 003A6FB4 50 80 42 2E */ rlwimi r0, r4, 8, 8, 0x17 /* 803AA058 003A6FB8 7C 00 18 40 */ cmplw r0, r3 /* 803AA05C 003A6FBC 40 82 00 E0 */ bne lbl_803AA13C /* 803AA060 003A6FC0 7F 63 DB 78 */ mr r3, r27 /* 803AA064 003A6FC4 7F 44 D3 78 */ mr r4, r26 /* 803AA068 003A6FC8 4B FF FD 15 */ bl vsUpdateBuffer /* 803AA06C 003A6FCC 80 9B 00 0C */ lwz r4, 0xc(r27) /* 803AA070 003A6FD0 7C 1C 20 40 */ cmplw r28, r4 /* 803AA074 003A6FD4 41 80 00 18 */ blt lbl_803AA08C /* 803AA078 003A6FD8 80 1B 00 08 */ lwz r0, 8(r27) /* 803AA07C 003A6FDC 7C 64 E0 50 */ subf r3, r4, r28 /* 803AA080 003A6FE0 7C 03 00 50 */ subf r0, r3, r0 /* 803AA084 003A6FE4 90 1B 00 08 */ stw r0, 8(r27) /* 803AA088 003A6FE8 48 00 00 1C */ b lbl_803AA0A4 lbl_803AA08C: /* 803AA08C 003A6FEC 80 7F 00 04 */ lwz r3, 4(r31) /* 803AA090 003A6FF0 7C 9C 20 50 */ subf r4, r28, r4 /* 803AA094 003A6FF4 80 1B 00 08 */ lwz r0, 8(r27) /* 803AA098 003A6FF8 7C 64 18 50 */ subf r3, r4, r3 /* 803AA09C 003A6FFC 7C 03 00 50 */ subf r0, r3, r0 /* 803AA0A0 003A7000 90 1B 00 08 */ stw r0, 8(r27) lbl_803AA0A4: /* 803AA0A4 003A7004 93 9B 00 0C */ stw r28, 0xc(r27) /* 803AA0A8 003A7008 80 AD AE 78 */ lwz r5, synthVoice@sda21(r13) /* 803AA0AC 003A700C 88 7B 00 03 */ lbz r3, 3(r27) /* 803AA0B0 003A7010 80 1B 00 08 */ lwz r0, 8(r27) /* 803AA0B4 003A7014 1C 83 04 04 */ mulli r4, r3, 0x404 /* 803AA0B8 003A7018 38 84 02 06 */ addi r4, r4, 0x206 /* 803AA0BC 003A701C 7C 85 22 2E */ lhzx r4, r5, r4 /* 803AA0C0 003A7020 1C 84 00 A0 */ mulli r4, r4, 0xa0 /* 803AA0C4 003A7024 38 84 0F FF */ addi r4, r4, 0xfff /* 803AA0C8 003A7028 7C 84 66 70 */ srawi r4, r4, 0xc /* 803AA0CC 003A702C 7C 84 01 94 */ addze r4, r4 /* 803AA0D0 003A7030 7C 04 00 00 */ cmpw r4, r0 /* 803AA0D4 003A7034 40 81 00 88 */ ble lbl_803AA15C /* 803AA0D8 003A7038 48 00 9E 79 */ bl hwVoiceInStartup /* 803AA0DC 003A703C 28 03 00 00 */ cmplwi r3, 0 /* 803AA0E0 003A7040 40 82 00 38 */ bne lbl_803AA118 /* 803AA0E4 003A7044 88 1B 00 00 */ lbz r0, 0(r27) /* 803AA0E8 003A7048 28 00 00 02 */ cmplwi r0, 2 /* 803AA0EC 003A704C 40 82 00 24 */ bne lbl_803AA110 /* 803AA0F0 003A7050 88 7B 00 03 */ lbz r3, 3(r27) /* 803AA0F4 003A7054 48 00 92 99 */ bl hwBreak /* 803AA0F8 003A7058 88 1B 00 03 */ lbz r0, 3(r27) /* 803AA0FC 003A705C 80 6D AE 78 */ lwz r3, synthVoice@sda21(r13) /* 803AA100 003A7060 1C 00 04 04 */ mulli r0, r0, 0x404 /* 803AA104 003A7064 7C 63 02 14 */ add r3, r3, r0 /* 803AA108 003A7068 4B FF CB 6D */ bl macSampleEndNotify /* 803AA10C 003A706C 48 00 00 0C */ b lbl_803AA118 lbl_803AA110: /* 803AA110 003A7070 88 7B 00 03 */ lbz r3, 3(r27) /* 803AA114 003A7074 4B FF E9 09 */ bl voiceKill lbl_803AA118: /* 803AA118 003A7078 38 00 00 00 */ li r0, 0 /* 803AA11C 003A707C 3C 60 80 56 */ lis r3, vs@ha /* 803AA120 003A7080 98 1B 00 00 */ stb r0, 0(r27) /* 803AA124 003A7084 38 03 E3 10 */ addi r0, r3, vs@l /* 803AA128 003A7088 38 80 00 FF */ li r4, 0xff /* 803AA12C 003A708C 88 7B 00 03 */ lbz r3, 3(r27) /* 803AA130 003A7090 7C 60 1A 14 */ add r3, r0, r3 /* 803AA134 003A7094 98 83 09 08 */ stb r4, 0x908(r3) /* 803AA138 003A7098 48 00 00 24 */ b lbl_803AA15C lbl_803AA13C: /* 803AA13C 003A709C 38 00 00 00 */ li r0, 0 /* 803AA140 003A70A0 3C 60 80 56 */ lis r3, vs@ha /* 803AA144 003A70A4 98 1B 00 00 */ stb r0, 0(r27) /* 803AA148 003A70A8 38 03 E3 10 */ addi r0, r3, vs@l /* 803AA14C 003A70AC 38 80 00 FF */ li r4, 0xff /* 803AA150 003A70B0 88 7B 00 03 */ lbz r3, 3(r27) /* 803AA154 003A70B4 7C 60 1A 14 */ add r3, r0, r3 /* 803AA158 003A70B8 98 83 09 08 */ stb r4, 0x908(r3) lbl_803AA15C: /* 803AA15C 003A70BC 3B BD 00 01 */ addi r29, r29, 1 /* 803AA160 003A70C0 3B DE 00 01 */ addi r30, r30, 1 /* 803AA164 003A70C4 28 1D 00 40 */ cmplwi r29, 0x40 /* 803AA168 003A70C8 41 80 FE 3C */ blt lbl_803A9FA4 lbl_803AA16C: /* 803AA16C 003A70CC 39 61 00 20 */ addi r11, r1, 0x20 /* 803AA170 003A70D0 4B FD F9 55 */ bl _restgpr_26 /* 803AA174 003A70D4 80 01 00 24 */ lwz r0, 0x24(r1) /* 803AA178 003A70D8 7C 08 03 A6 */ mtlr r0 /* 803AA17C 003A70DC 38 21 00 20 */ addi r1, r1, 0x20 /* 803AA180 003A70E0 4E 80 00 20 */ blr .global dataInitStack dataInitStack: /* 803AA184 003A70E4 38 00 00 00 */ li r0, 0 /* 803AA188 003A70E8 B0 0D AF 18 */ sth r0, sp@sda21(r13) /* 803AA18C 003A70EC 4E 80 00 20 */ blr .global ScanIDList ScanIDList: /* 803AA190 003A70F0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803AA194 003A70F4 7C 08 02 A6 */ mflr r0 /* 803AA198 003A70F8 90 01 00 14 */ stw r0, 0x14(r1) /* 803AA19C 003A70FC 54 A0 06 3E */ clrlwi r0, r5, 0x18 /* 803AA1A0 003A7100 2C 00 00 02 */ cmpwi r0, 2 /* 803AA1A4 003A7104 41 82 00 A4 */ beq lbl_803AA248 /* 803AA1A8 003A7108 40 80 00 14 */ bge lbl_803AA1BC /* 803AA1AC 003A710C 2C 00 00 00 */ cmpwi r0, 0 /* 803AA1B0 003A7110 41 82 00 1C */ beq lbl_803AA1CC /* 803AA1B4 003A7114 40 80 02 34 */ bge lbl_803AA3E8 /* 803AA1B8 003A7118 48 00 02 44 */ b lbl_803AA3FC lbl_803AA1BC: /* 803AA1BC 003A711C 2C 00 00 04 */ cmpwi r0, 4 /* 803AA1C0 003A7120 41 82 01 AC */ beq lbl_803AA36C /* 803AA1C4 003A7124 40 80 02 38 */ bge lbl_803AA3FC /* 803AA1C8 003A7128 48 00 01 0C */ b lbl_803AA2D4 lbl_803AA1CC: /* 803AA1CC 003A712C 28 06 00 00 */ cmplwi r6, 0 /* 803AA1D0 003A7130 40 82 00 70 */ bne lbl_803AA240 /* 803AA1D4 003A7134 28 04 00 00 */ cmplwi r4, 0 /* 803AA1D8 003A7138 40 82 00 0C */ bne lbl_803AA1E4 /* 803AA1DC 003A713C 38 C0 00 00 */ li r6, 0 /* 803AA1E0 003A7140 48 00 00 40 */ b lbl_803AA220 lbl_803AA1E4: /* 803AA1E4 003A7144 80 04 00 00 */ lwz r0, 0(r4) /* 803AA1E8 003A7148 54 65 04 3E */ clrlwi r5, r3, 0x10 /* 803AA1EC 003A714C 7C C4 02 14 */ add r6, r4, r0 /* 803AA1F0 003A7150 48 00 00 1C */ b lbl_803AA20C lbl_803AA1F4: /* 803AA1F4 003A7154 A0 06 00 04 */ lhz r0, 4(r6) /* 803AA1F8 003A7158 7C 00 28 40 */ cmplw r0, r5 /* 803AA1FC 003A715C 40 82 00 08 */ bne lbl_803AA204 /* 803AA200 003A7160 48 00 00 20 */ b lbl_803AA220 lbl_803AA204: /* 803AA204 003A7164 80 06 00 00 */ lwz r0, 0(r6) /* 803AA208 003A7168 7C C6 02 14 */ add r6, r6, r0 lbl_803AA20C: /* 803AA20C 003A716C 80 86 00 00 */ lwz r4, 0(r6) /* 803AA210 003A7170 3C 04 00 01 */ addis r0, r4, 1 /* 803AA214 003A7174 28 00 FF FF */ cmplwi r0, 0xffff /* 803AA218 003A7178 40 82 FF DC */ bne lbl_803AA1F4 /* 803AA21C 003A717C 38 C0 00 00 */ li r6, 0 lbl_803AA220: /* 803AA220 003A7180 28 06 00 00 */ cmplwi r6, 0 /* 803AA224 003A7184 41 82 00 10 */ beq lbl_803AA234 /* 803AA228 003A7188 38 86 00 08 */ addi r4, r6, 8 /* 803AA22C 003A718C 4B FF 7D 39 */ bl dataInsertMacro /* 803AA230 003A7190 48 00 01 CC */ b lbl_803AA3FC lbl_803AA234: /* 803AA234 003A7194 38 80 00 00 */ li r4, 0 /* 803AA238 003A7198 4B FF 7D 2D */ bl dataInsertMacro /* 803AA23C 003A719C 48 00 01 C0 */ b lbl_803AA3FC lbl_803AA240: /* 803AA240 003A71A0 4B FF 80 29 */ bl dataRemoveMacro /* 803AA244 003A71A4 48 00 01 B8 */ b lbl_803AA3FC lbl_803AA248: /* 803AA248 003A71A8 28 06 00 00 */ cmplwi r6, 0 /* 803AA24C 003A71AC 40 82 00 7C */ bne lbl_803AA2C8 /* 803AA250 003A71B0 28 04 00 00 */ cmplwi r4, 0 /* 803AA254 003A71B4 40 82 00 0C */ bne lbl_803AA260 /* 803AA258 003A71B8 38 C0 00 00 */ li r6, 0 /* 803AA25C 003A71BC 48 00 00 44 */ b lbl_803AA2A0 lbl_803AA260: /* 803AA260 003A71C0 80 04 00 08 */ lwz r0, 8(r4) /* 803AA264 003A71C4 60 65 40 00 */ ori r5, r3, 0x4000 /* 803AA268 003A71C8 54 A5 04 3E */ clrlwi r5, r5, 0x10 /* 803AA26C 003A71CC 7C C4 02 14 */ add r6, r4, r0 /* 803AA270 003A71D0 48 00 00 1C */ b lbl_803AA28C lbl_803AA274: /* 803AA274 003A71D4 A0 06 00 04 */ lhz r0, 4(r6) /* 803AA278 003A71D8 7C 00 28 40 */ cmplw r0, r5 /* 803AA27C 003A71DC 40 82 00 08 */ bne lbl_803AA284 /* 803AA280 003A71E0 48 00 00 20 */ b lbl_803AA2A0 lbl_803AA284: /* 803AA284 003A71E4 80 06 00 00 */ lwz r0, 0(r6) /* 803AA288 003A71E8 7C C6 02 14 */ add r6, r6, r0 lbl_803AA28C: /* 803AA28C 003A71EC 80 86 00 00 */ lwz r4, 0(r6) /* 803AA290 003A71F0 3C 04 00 01 */ addis r0, r4, 1 /* 803AA294 003A71F4 28 00 FF FF */ cmplwi r0, 0xffff /* 803AA298 003A71F8 40 82 FF DC */ bne lbl_803AA274 /* 803AA29C 003A71FC 38 C0 00 00 */ li r6, 0 lbl_803AA2A0: /* 803AA2A0 003A7200 28 06 00 00 */ cmplwi r6, 0 /* 803AA2A4 003A7204 41 82 00 14 */ beq lbl_803AA2B8 /* 803AA2A8 003A7208 60 63 40 00 */ ori r3, r3, 0x4000 /* 803AA2AC 003A720C 38 86 00 08 */ addi r4, r6, 8 /* 803AA2B0 003A7210 4B FF 69 85 */ bl dataInsertKeymap /* 803AA2B4 003A7214 48 00 01 48 */ b lbl_803AA3FC lbl_803AA2B8: /* 803AA2B8 003A7218 60 63 40 00 */ ori r3, r3, 0x4000 /* 803AA2BC 003A721C 38 80 00 00 */ li r4, 0 /* 803AA2C0 003A7220 4B FF 69 75 */ bl dataInsertKeymap /* 803AA2C4 003A7224 48 00 01 38 */ b lbl_803AA3FC lbl_803AA2C8: /* 803AA2C8 003A7228 60 63 40 00 */ ori r3, r3, 0x4000 /* 803AA2CC 003A722C 4B FF 6B 59 */ bl dataRemoveKeymap /* 803AA2D0 003A7230 48 00 01 2C */ b lbl_803AA3FC lbl_803AA2D4: /* 803AA2D4 003A7234 28 06 00 00 */ cmplwi r6, 0 /* 803AA2D8 003A7238 40 82 00 88 */ bne lbl_803AA360 /* 803AA2DC 003A723C 28 04 00 00 */ cmplwi r4, 0 /* 803AA2E0 003A7240 40 82 00 0C */ bne lbl_803AA2EC /* 803AA2E4 003A7244 38 C0 00 00 */ li r6, 0 /* 803AA2E8 003A7248 48 00 00 44 */ b lbl_803AA32C lbl_803AA2EC: /* 803AA2EC 003A724C 80 04 00 0C */ lwz r0, 0xc(r4) /* 803AA2F0 003A7250 60 65 80 00 */ ori r5, r3, 0x8000 /* 803AA2F4 003A7254 54 A5 04 3E */ clrlwi r5, r5, 0x10 /* 803AA2F8 003A7258 7C C4 02 14 */ add r6, r4, r0 /* 803AA2FC 003A725C 48 00 00 1C */ b lbl_803AA318 lbl_803AA300: /* 803AA300 003A7260 A0 06 00 04 */ lhz r0, 4(r6) /* 803AA304 003A7264 7C 00 28 40 */ cmplw r0, r5 /* 803AA308 003A7268 40 82 00 08 */ bne lbl_803AA310 /* 803AA30C 003A726C 48 00 00 20 */ b lbl_803AA32C lbl_803AA310: /* 803AA310 003A7270 80 06 00 00 */ lwz r0, 0(r6) /* 803AA314 003A7274 7C C6 02 14 */ add r6, r6, r0 lbl_803AA318: /* 803AA318 003A7278 80 86 00 00 */ lwz r4, 0(r6) /* 803AA31C 003A727C 3C 04 00 01 */ addis r0, r4, 1 /* 803AA320 003A7280 28 00 FF FF */ cmplwi r0, 0xffff /* 803AA324 003A7284 40 82 FF DC */ bne lbl_803AA300 /* 803AA328 003A7288 38 C0 00 00 */ li r6, 0 lbl_803AA32C: /* 803AA32C 003A728C 28 06 00 00 */ cmplwi r6, 0 /* 803AA330 003A7290 41 82 00 1C */ beq lbl_803AA34C /* 803AA334 003A7294 80 06 00 08 */ lwz r0, 8(r6) /* 803AA338 003A7298 60 63 80 00 */ ori r3, r3, 0x8000 /* 803AA33C 003A729C 38 86 00 0C */ addi r4, r6, 0xc /* 803AA340 003A72A0 54 05 04 3E */ clrlwi r5, r0, 0x10 /* 803AA344 003A72A4 4B FF 6C 5D */ bl dataInsertLayer /* 803AA348 003A72A8 48 00 00 B4 */ b lbl_803AA3FC lbl_803AA34C: /* 803AA34C 003A72AC 60 63 80 00 */ ori r3, r3, 0x8000 /* 803AA350 003A72B0 38 80 00 00 */ li r4, 0 /* 803AA354 003A72B4 38 A0 00 00 */ li r5, 0 /* 803AA358 003A72B8 4B FF 6C 49 */ bl dataInsertLayer /* 803AA35C 003A72BC 48 00 00 A0 */ b lbl_803AA3FC lbl_803AA360: /* 803AA360 003A72C0 60 63 80 00 */ ori r3, r3, 0x8000 /* 803AA364 003A72C4 4B FF 6E 85 */ bl dataRemoveLayer /* 803AA368 003A72C8 48 00 00 94 */ b lbl_803AA3FC lbl_803AA36C: /* 803AA36C 003A72CC 28 06 00 00 */ cmplwi r6, 0 /* 803AA370 003A72D0 40 82 00 70 */ bne lbl_803AA3E0 /* 803AA374 003A72D4 28 04 00 00 */ cmplwi r4, 0 /* 803AA378 003A72D8 40 82 00 0C */ bne lbl_803AA384 /* 803AA37C 003A72DC 38 C0 00 00 */ li r6, 0 /* 803AA380 003A72E0 48 00 00 40 */ b lbl_803AA3C0 lbl_803AA384: /* 803AA384 003A72E4 80 04 00 04 */ lwz r0, 4(r4) /* 803AA388 003A72E8 54 65 04 3E */ clrlwi r5, r3, 0x10 /* 803AA38C 003A72EC 7C C4 02 14 */ add r6, r4, r0 /* 803AA390 003A72F0 48 00 00 1C */ b lbl_803AA3AC lbl_803AA394: /* 803AA394 003A72F4 A0 06 00 04 */ lhz r0, 4(r6) /* 803AA398 003A72F8 7C 00 28 40 */ cmplw r0, r5 /* 803AA39C 003A72FC 40 82 00 08 */ bne lbl_803AA3A4 /* 803AA3A0 003A7300 48 00 00 20 */ b lbl_803AA3C0 lbl_803AA3A4: /* 803AA3A4 003A7304 80 06 00 00 */ lwz r0, 0(r6) /* 803AA3A8 003A7308 7C C6 02 14 */ add r6, r6, r0 lbl_803AA3AC: /* 803AA3AC 003A730C 80 86 00 00 */ lwz r4, 0(r6) /* 803AA3B0 003A7310 3C 04 00 01 */ addis r0, r4, 1 /* 803AA3B4 003A7314 28 00 FF FF */ cmplwi r0, 0xffff /* 803AA3B8 003A7318 40 82 FF DC */ bne lbl_803AA394 /* 803AA3BC 003A731C 38 C0 00 00 */ li r6, 0 lbl_803AA3C0: /* 803AA3C0 003A7320 28 06 00 00 */ cmplwi r6, 0 /* 803AA3C4 003A7324 41 82 00 10 */ beq lbl_803AA3D4 /* 803AA3C8 003A7328 38 86 00 08 */ addi r4, r6, 8 /* 803AA3CC 003A732C 4B FF 6F E1 */ bl dataInsertCurve /* 803AA3D0 003A7330 48 00 00 2C */ b lbl_803AA3FC lbl_803AA3D4: /* 803AA3D4 003A7334 38 80 00 00 */ li r4, 0 /* 803AA3D8 003A7338 4B FF 6F D5 */ bl dataInsertCurve /* 803AA3DC 003A733C 48 00 00 20 */ b lbl_803AA3FC lbl_803AA3E0: /* 803AA3E0 003A7340 4B FF 71 D1 */ bl dataRemoveCurve /* 803AA3E4 003A7344 48 00 00 18 */ b lbl_803AA3FC lbl_803AA3E8: /* 803AA3E8 003A7348 28 06 00 00 */ cmplwi r6, 0 /* 803AA3EC 003A734C 40 82 00 0C */ bne lbl_803AA3F8 /* 803AA3F0 003A7350 4B FF 77 8D */ bl dataAddSampleReference /* 803AA3F4 003A7354 48 00 00 08 */ b lbl_803AA3FC lbl_803AA3F8: /* 803AA3F8 003A7358 4B FF 78 5D */ bl dataRemoveSampleReference lbl_803AA3FC: /* 803AA3FC 003A735C 80 01 00 14 */ lwz r0, 0x14(r1) /* 803AA400 003A7360 7C 08 03 A6 */ mtlr r0 /* 803AA404 003A7364 38 21 00 10 */ addi r1, r1, 0x10 /* 803AA408 003A7368 4E 80 00 20 */ blr .global sndSetSampleDataUploadCallback sndSetSampleDataUploadCallback: /* 803AA40C 003A736C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803AA410 003A7370 7C 08 02 A6 */ mflr r0 /* 803AA414 003A7374 90 01 00 14 */ stw r0, 0x14(r1) /* 803AA418 003A7378 48 00 9A 29 */ bl hwSetSaveSampleCallback /* 803AA41C 003A737C 80 01 00 14 */ lwz r0, 0x14(r1) /* 803AA420 003A7380 7C 08 03 A6 */ mtlr r0 /* 803AA424 003A7384 38 21 00 10 */ addi r1, r1, 0x10 /* 803AA428 003A7388 4E 80 00 20 */ blr .global sndPushGroup sndPushGroup: /* 803AA42C 003A738C 94 21 FF D0 */ stwu r1, -0x30(r1) /* 803AA430 003A7390 7C 08 02 A6 */ mflr r0 /* 803AA434 003A7394 90 01 00 34 */ stw r0, 0x34(r1) /* 803AA438 003A7398 39 61 00 30 */ addi r11, r1, 0x30 /* 803AA43C 003A739C 4B FD F6 39 */ bl _savegpr_25 /* 803AA440 003A73A0 88 0D AE 48 */ lbz r0, sndActive@sda21(r13) /* 803AA444 003A73A4 7C 7B 1B 78 */ mr r27, r3 /* 803AA448 003A73A8 7C 9C 23 78 */ mr r28, r4 /* 803AA44C 003A73AC 7C DD 33 78 */ mr r29, r6 /* 803AA450 003A73B0 28 00 00 00 */ cmplwi r0, 0 /* 803AA454 003A73B4 7C FE 3B 78 */ mr r30, r7 /* 803AA458 003A73B8 41 82 02 E4 */ beq lbl_803AA73C /* 803AA45C 003A73BC A8 CD AF 18 */ lha r6, sp@sda21(r13) /* 803AA460 003A73C0 2C 06 00 80 */ cmpwi r6, 0x80 /* 803AA464 003A73C4 40 80 02 D8 */ bge lbl_803AA73C /* 803AA468 003A73C8 7F 7F DB 78 */ mr r31, r27 /* 803AA46C 003A73CC 57 84 04 3E */ clrlwi r4, r28, 0x10 /* 803AA470 003A73D0 48 00 02 BC */ b lbl_803AA72C lbl_803AA474: /* 803AA474 003A73D4 A0 1F 00 04 */ lhz r0, 4(r31) /* 803AA478 003A73D8 7C 00 20 40 */ cmplw r0, r4 /* 803AA47C 003A73DC 40 82 02 A8 */ bne lbl_803AA724 /* 803AA480 003A73E0 1C 06 00 0C */ mulli r0, r6, 0xc /* 803AA484 003A73E4 3C 80 80 56 */ lis r4, gs@ha /* 803AA488 003A73E8 7C A3 2B 78 */ mr r3, r5 /* 803AA48C 003A73EC 38 84 EC 60 */ addi r4, r4, gs@l /* 803AA490 003A73F0 7F E4 01 2E */ stwx r31, r4, r0 /* 803AA494 003A73F4 7C 84 02 14 */ add r4, r4, r0 /* 803AA498 003A73F8 93 64 00 08 */ stw r27, 8(r4) /* 803AA49C 003A73FC 93 A4 00 04 */ stw r29, 4(r4) /* 803AA4A0 003A7400 80 1F 00 0C */ lwz r0, 0xc(r31) /* 803AA4A4 003A7404 7F 3B 02 14 */ add r25, r27, r0 /* 803AA4A8 003A7408 48 00 98 61 */ bl hwTransAddr /* 803AA4AC 003A740C 7C 64 1B 78 */ mr r4, r3 /* 803AA4B0 003A7410 7F A3 EB 78 */ mr r3, r29 /* 803AA4B4 003A7414 4B FF 72 79 */ bl dataInsertSDir /* 803AA4B8 003A7418 28 03 00 00 */ cmplwi r3, 0 /* 803AA4BC 003A741C 41 82 00 6C */ beq lbl_803AA528 /* 803AA4C0 003A7420 48 00 00 5C */ b lbl_803AA51C lbl_803AA4C4: /* 803AA4C4 003A7424 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 /* 803AA4C8 003A7428 41 82 00 3C */ beq lbl_803AA504 /* 803AA4CC 003A742C 54 7A 04 BE */ clrlwi r26, r3, 0x12 /* 803AA4D0 003A7430 48 00 00 1C */ b lbl_803AA4EC lbl_803AA4D4: /* 803AA4D4 003A7434 7F 43 D3 78 */ mr r3, r26 /* 803AA4D8 003A7438 7F A4 EB 78 */ mr r4, r29 /* 803AA4DC 003A743C 38 A0 00 01 */ li r5, 1 /* 803AA4E0 003A7440 38 C0 00 00 */ li r6, 0 /* 803AA4E4 003A7444 4B FF FC AD */ bl ScanIDList /* 803AA4E8 003A7448 3B 5A 00 01 */ addi r26, r26, 1 lbl_803AA4EC: /* 803AA4EC 003A744C A0 19 00 02 */ lhz r0, 2(r25) /* 803AA4F0 003A7450 57 43 04 3E */ clrlwi r3, r26, 0x10 /* 803AA4F4 003A7454 7C 03 00 40 */ cmplw r3, r0 /* 803AA4F8 003A7458 40 81 FF DC */ ble lbl_803AA4D4 /* 803AA4FC 003A745C 3B 39 00 04 */ addi r25, r25, 4 /* 803AA500 003A7460 48 00 00 1C */ b lbl_803AA51C lbl_803AA504: /* 803AA504 003A7464 A0 79 00 00 */ lhz r3, 0(r25) /* 803AA508 003A7468 7F A4 EB 78 */ mr r4, r29 /* 803AA50C 003A746C 38 A0 00 01 */ li r5, 1 /* 803AA510 003A7470 38 C0 00 00 */ li r6, 0 /* 803AA514 003A7474 3B 39 00 02 */ addi r25, r25, 2 /* 803AA518 003A7478 4B FF FC 79 */ bl ScanIDList lbl_803AA51C: /* 803AA51C 003A747C A0 79 00 00 */ lhz r3, 0(r25) /* 803AA520 003A7480 28 03 FF FF */ cmplwi r3, 0xffff /* 803AA524 003A7484 40 82 FF A0 */ bne lbl_803AA4C4 lbl_803AA528: /* 803AA528 003A7488 80 1F 00 08 */ lwz r0, 8(r31) /* 803AA52C 003A748C 7F 5B 02 14 */ add r26, r27, r0 /* 803AA530 003A7490 48 00 00 5C */ b lbl_803AA58C lbl_803AA534: /* 803AA534 003A7494 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 /* 803AA538 003A7498 41 82 00 3C */ beq lbl_803AA574 /* 803AA53C 003A749C 54 79 04 BE */ clrlwi r25, r3, 0x12 /* 803AA540 003A74A0 48 00 00 1C */ b lbl_803AA55C lbl_803AA544: /* 803AA544 003A74A4 7F 23 CB 78 */ mr r3, r25 /* 803AA548 003A74A8 7F C4 F3 78 */ mr r4, r30 /* 803AA54C 003A74AC 38 A0 00 00 */ li r5, 0 /* 803AA550 003A74B0 38 C0 00 00 */ li r6, 0 /* 803AA554 003A74B4 4B FF FC 3D */ bl ScanIDList /* 803AA558 003A74B8 3B 39 00 01 */ addi r25, r25, 1 lbl_803AA55C: /* 803AA55C 003A74BC A0 1A 00 02 */ lhz r0, 2(r26) /* 803AA560 003A74C0 57 23 04 3E */ clrlwi r3, r25, 0x10 /* 803AA564 003A74C4 7C 03 00 40 */ cmplw r3, r0 /* 803AA568 003A74C8 40 81 FF DC */ ble lbl_803AA544 /* 803AA56C 003A74CC 3B 5A 00 04 */ addi r26, r26, 4 /* 803AA570 003A74D0 48 00 00 1C */ b lbl_803AA58C lbl_803AA574: /* 803AA574 003A74D4 A0 7A 00 00 */ lhz r3, 0(r26) /* 803AA578 003A74D8 7F C4 F3 78 */ mr r4, r30 /* 803AA57C 003A74DC 38 A0 00 00 */ li r5, 0 /* 803AA580 003A74E0 38 C0 00 00 */ li r6, 0 /* 803AA584 003A74E4 3B 5A 00 02 */ addi r26, r26, 2 /* 803AA588 003A74E8 4B FF FC 09 */ bl ScanIDList lbl_803AA58C: /* 803AA58C 003A74EC A0 7A 00 00 */ lhz r3, 0(r26) /* 803AA590 003A74F0 28 03 FF FF */ cmplwi r3, 0xffff /* 803AA594 003A74F4 40 82 FF A0 */ bne lbl_803AA534 /* 803AA598 003A74F8 80 1F 00 10 */ lwz r0, 0x10(r31) /* 803AA59C 003A74FC 7F 5B 02 14 */ add r26, r27, r0 /* 803AA5A0 003A7500 48 00 00 5C */ b lbl_803AA5FC lbl_803AA5A4: /* 803AA5A4 003A7504 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 /* 803AA5A8 003A7508 41 82 00 3C */ beq lbl_803AA5E4 /* 803AA5AC 003A750C 54 79 04 BE */ clrlwi r25, r3, 0x12 /* 803AA5B0 003A7510 48 00 00 1C */ b lbl_803AA5CC lbl_803AA5B4: /* 803AA5B4 003A7514 7F 23 CB 78 */ mr r3, r25 /* 803AA5B8 003A7518 7F C4 F3 78 */ mr r4, r30 /* 803AA5BC 003A751C 38 A0 00 04 */ li r5, 4 /* 803AA5C0 003A7520 38 C0 00 00 */ li r6, 0 /* 803AA5C4 003A7524 4B FF FB CD */ bl ScanIDList /* 803AA5C8 003A7528 3B 39 00 01 */ addi r25, r25, 1 lbl_803AA5CC: /* 803AA5CC 003A752C A0 1A 00 02 */ lhz r0, 2(r26) /* 803AA5D0 003A7530 57 23 04 3E */ clrlwi r3, r25, 0x10 /* 803AA5D4 003A7534 7C 03 00 40 */ cmplw r3, r0 /* 803AA5D8 003A7538 40 81 FF DC */ ble lbl_803AA5B4 /* 803AA5DC 003A753C 3B 5A 00 04 */ addi r26, r26, 4 /* 803AA5E0 003A7540 48 00 00 1C */ b lbl_803AA5FC lbl_803AA5E4: /* 803AA5E4 003A7544 A0 7A 00 00 */ lhz r3, 0(r26) /* 803AA5E8 003A7548 7F C4 F3 78 */ mr r4, r30 /* 803AA5EC 003A754C 38 A0 00 04 */ li r5, 4 /* 803AA5F0 003A7550 38 C0 00 00 */ li r6, 0 /* 803AA5F4 003A7554 3B 5A 00 02 */ addi r26, r26, 2 /* 803AA5F8 003A7558 4B FF FB 99 */ bl ScanIDList lbl_803AA5FC: /* 803AA5FC 003A755C A0 7A 00 00 */ lhz r3, 0(r26) /* 803AA600 003A7560 28 03 FF FF */ cmplwi r3, 0xffff /* 803AA604 003A7564 40 82 FF A0 */ bne lbl_803AA5A4 /* 803AA608 003A7568 80 1F 00 14 */ lwz r0, 0x14(r31) /* 803AA60C 003A756C 7F 5B 02 14 */ add r26, r27, r0 /* 803AA610 003A7570 48 00 00 5C */ b lbl_803AA66C lbl_803AA614: /* 803AA614 003A7574 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 /* 803AA618 003A7578 41 82 00 3C */ beq lbl_803AA654 /* 803AA61C 003A757C 54 79 04 BE */ clrlwi r25, r3, 0x12 /* 803AA620 003A7580 48 00 00 1C */ b lbl_803AA63C lbl_803AA624: /* 803AA624 003A7584 7F 23 CB 78 */ mr r3, r25 /* 803AA628 003A7588 7F C4 F3 78 */ mr r4, r30 /* 803AA62C 003A758C 38 A0 00 02 */ li r5, 2 /* 803AA630 003A7590 38 C0 00 00 */ li r6, 0 /* 803AA634 003A7594 4B FF FB 5D */ bl ScanIDList /* 803AA638 003A7598 3B 39 00 01 */ addi r25, r25, 1 lbl_803AA63C: /* 803AA63C 003A759C A0 1A 00 02 */ lhz r0, 2(r26) /* 803AA640 003A75A0 57 23 04 3E */ clrlwi r3, r25, 0x10 /* 803AA644 003A75A4 7C 03 00 40 */ cmplw r3, r0 /* 803AA648 003A75A8 40 81 FF DC */ ble lbl_803AA624 /* 803AA64C 003A75AC 3B 5A 00 04 */ addi r26, r26, 4 /* 803AA650 003A75B0 48 00 00 1C */ b lbl_803AA66C lbl_803AA654: /* 803AA654 003A75B4 A0 7A 00 00 */ lhz r3, 0(r26) /* 803AA658 003A75B8 7F C4 F3 78 */ mr r4, r30 /* 803AA65C 003A75BC 38 A0 00 02 */ li r5, 2 /* 803AA660 003A75C0 38 C0 00 00 */ li r6, 0 /* 803AA664 003A75C4 3B 5A 00 02 */ addi r26, r26, 2 /* 803AA668 003A75C8 4B FF FB 29 */ bl ScanIDList lbl_803AA66C: /* 803AA66C 003A75CC A0 7A 00 00 */ lhz r3, 0(r26) /* 803AA670 003A75D0 28 03 FF FF */ cmplwi r3, 0xffff /* 803AA674 003A75D4 40 82 FF A0 */ bne lbl_803AA614 /* 803AA678 003A75D8 80 1F 00 18 */ lwz r0, 0x18(r31) /* 803AA67C 003A75DC 7F 5B 02 14 */ add r26, r27, r0 /* 803AA680 003A75E0 48 00 00 5C */ b lbl_803AA6DC lbl_803AA684: /* 803AA684 003A75E4 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 /* 803AA688 003A75E8 41 82 00 3C */ beq lbl_803AA6C4 /* 803AA68C 003A75EC 54 79 04 BE */ clrlwi r25, r3, 0x12 /* 803AA690 003A75F0 48 00 00 1C */ b lbl_803AA6AC lbl_803AA694: /* 803AA694 003A75F4 7F 23 CB 78 */ mr r3, r25 /* 803AA698 003A75F8 7F C4 F3 78 */ mr r4, r30 /* 803AA69C 003A75FC 38 A0 00 03 */ li r5, 3 /* 803AA6A0 003A7600 38 C0 00 00 */ li r6, 0 /* 803AA6A4 003A7604 4B FF FA ED */ bl ScanIDList /* 803AA6A8 003A7608 3B 39 00 01 */ addi r25, r25, 1 lbl_803AA6AC: /* 803AA6AC 003A760C A0 1A 00 02 */ lhz r0, 2(r26) /* 803AA6B0 003A7610 57 23 04 3E */ clrlwi r3, r25, 0x10 /* 803AA6B4 003A7614 7C 03 00 40 */ cmplw r3, r0 /* 803AA6B8 003A7618 40 81 FF DC */ ble lbl_803AA694 /* 803AA6BC 003A761C 3B 5A 00 04 */ addi r26, r26, 4 /* 803AA6C0 003A7620 48 00 00 1C */ b lbl_803AA6DC lbl_803AA6C4: /* 803AA6C4 003A7624 A0 7A 00 00 */ lhz r3, 0(r26) /* 803AA6C8 003A7628 7F C4 F3 78 */ mr r4, r30 /* 803AA6CC 003A762C 38 A0 00 03 */ li r5, 3 /* 803AA6D0 003A7630 38 C0 00 00 */ li r6, 0 /* 803AA6D4 003A7634 3B 5A 00 02 */ addi r26, r26, 2 /* 803AA6D8 003A7638 4B FF FA B9 */ bl ScanIDList lbl_803AA6DC: /* 803AA6DC 003A763C A0 7A 00 00 */ lhz r3, 0(r26) /* 803AA6E0 003A7640 28 03 FF FF */ cmplwi r3, 0xffff /* 803AA6E4 003A7644 40 82 FF A0 */ bne lbl_803AA684 /* 803AA6E8 003A7648 A0 1F 00 06 */ lhz r0, 6(r31) /* 803AA6EC 003A764C 28 00 00 01 */ cmplwi r0, 1 /* 803AA6F0 003A7650 40 82 00 1C */ bne lbl_803AA70C /* 803AA6F4 003A7654 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 803AA6F8 003A7658 7F 83 E3 78 */ mr r3, r28 /* 803AA6FC 003A765C 7C 9B 02 14 */ add r4, r27, r0 /* 803AA700 003A7660 A0 A4 00 00 */ lhz r5, 0(r4) /* 803AA704 003A7664 38 84 00 04 */ addi r4, r4, 4 /* 803AA708 003A7668 4B FF 75 E5 */ bl dataInsertFX lbl_803AA70C: /* 803AA70C 003A766C 48 00 97 D9 */ bl hwSyncSampleMem /* 803AA710 003A7670 A8 8D AF 18 */ lha r4, sp@sda21(r13) /* 803AA714 003A7674 38 60 00 01 */ li r3, 1 /* 803AA718 003A7678 38 04 00 01 */ addi r0, r4, 1 /* 803AA71C 003A767C B0 0D AF 18 */ sth r0, sp@sda21(r13) /* 803AA720 003A7680 48 00 00 20 */ b lbl_803AA740 lbl_803AA724: /* 803AA724 003A7684 80 1F 00 00 */ lwz r0, 0(r31) /* 803AA728 003A7688 7F FB 02 14 */ add r31, r27, r0 lbl_803AA72C: /* 803AA72C 003A768C 80 7F 00 00 */ lwz r3, 0(r31) /* 803AA730 003A7690 3C 03 00 01 */ addis r0, r3, 1 /* 803AA734 003A7694 28 00 FF FF */ cmplwi r0, 0xffff /* 803AA738 003A7698 40 82 FD 3C */ bne lbl_803AA474 lbl_803AA73C: /* 803AA73C 003A769C 38 60 00 00 */ li r3, 0 lbl_803AA740: /* 803AA740 003A76A0 39 61 00 30 */ addi r11, r1, 0x30 /* 803AA744 003A76A4 4B FD F3 7D */ bl _restgpr_25 /* 803AA748 003A76A8 80 01 00 34 */ lwz r0, 0x34(r1) /* 803AA74C 003A76AC 7C 08 03 A6 */ mtlr r0 /* 803AA750 003A76B0 38 21 00 30 */ addi r1, r1, 0x30 /* 803AA754 003A76B4 4E 80 00 20 */ blr .global sndPopGroup sndPopGroup: /* 803AA758 003A76B8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 803AA75C 003A76BC 7C 08 02 A6 */ mflr r0 /* 803AA760 003A76C0 90 01 00 24 */ stw r0, 0x24(r1) /* 803AA764 003A76C4 39 61 00 20 */ addi r11, r1, 0x20 /* 803AA768 003A76C8 4B FD F3 11 */ bl _savegpr_26 /* 803AA76C 003A76CC A8 AD AF 18 */ lha r5, sp@sda21(r13) /* 803AA770 003A76D0 3C 60 80 56 */ lis r3, gs@ha /* 803AA774 003A76D4 38 83 EC 60 */ addi r4, r3, gs@l /* 803AA778 003A76D8 38 65 FF FF */ addi r3, r5, -1 /* 803AA77C 003A76DC 7C 60 07 34 */ extsh r0, r3 /* 803AA780 003A76E0 B0 6D AF 18 */ sth r3, sp@sda21(r13) /* 803AA784 003A76E4 1C 00 00 0C */ mulli r0, r0, 0xc /* 803AA788 003A76E8 7C 64 02 14 */ add r3, r4, r0 /* 803AA78C 003A76EC 7F E4 00 2E */ lwzx r31, r4, r0 /* 803AA790 003A76F0 83 C3 00 08 */ lwz r30, 8(r3) /* 803AA794 003A76F4 83 43 00 04 */ lwz r26, 4(r3) /* 803AA798 003A76F8 48 00 A9 25 */ bl hwDisableIrq /* 803AA79C 003A76FC A0 1F 00 06 */ lhz r0, 6(r31) /* 803AA7A0 003A7700 28 00 00 01 */ cmplwi r0, 1 /* 803AA7A4 003A7704 40 82 00 1C */ bne lbl_803AA7C0 /* 803AA7A8 003A7708 80 1F 00 1C */ lwz r0, 0x1c(r31) /* 803AA7AC 003A770C 7C 7E 02 14 */ add r3, r30, r0 /* 803AA7B0 003A7710 A0 83 00 00 */ lhz r4, 0(r3) /* 803AA7B4 003A7714 38 63 00 04 */ addi r3, r3, 4 /* 803AA7B8 003A7718 48 00 50 B5 */ bl s3dKillEmitterByFXID /* 803AA7BC 003A771C 48 00 00 0C */ b lbl_803AA7C8 lbl_803AA7C0: /* 803AA7C0 003A7720 A0 7F 00 04 */ lhz r3, 4(r31) /* 803AA7C4 003A7724 4B FE B6 29 */ bl seqKillInstancesByGroupID lbl_803AA7C8: /* 803AA7C8 003A7728 80 1F 00 08 */ lwz r0, 8(r31) /* 803AA7CC 003A772C 7C 7E 02 14 */ add r3, r30, r0 /* 803AA7D0 003A7730 4B FF E5 45 */ bl synthKillVoicesByMacroReferences /* 803AA7D4 003A7734 48 00 A8 B1 */ bl hwEnableIrq /* 803AA7D8 003A7738 80 1F 00 0C */ lwz r0, 0xc(r31) /* 803AA7DC 003A773C 7F BE 02 14 */ add r29, r30, r0 /* 803AA7E0 003A7740 A0 1D 00 00 */ lhz r0, 0(r29) /* 803AA7E4 003A7744 28 00 FF FF */ cmplwi r0, 0xffff /* 803AA7E8 003A7748 41 82 00 B4 */ beq lbl_803AA89C /* 803AA7EC 003A774C 7F BC EB 78 */ mr r28, r29 /* 803AA7F0 003A7750 48 00 00 08 */ b lbl_803AA7F8 lbl_803AA7F4: /* 803AA7F4 003A7754 3B 9C 00 02 */ addi r28, r28, 2 lbl_803AA7F8: /* 803AA7F8 003A7758 A0 1C 00 00 */ lhz r0, 0(r28) /* 803AA7FC 003A775C 28 00 FF FF */ cmplwi r0, 0xffff /* 803AA800 003A7760 40 82 FF F4 */ bne lbl_803AA7F4 /* 803AA804 003A7764 3B 9C FF FE */ addi r28, r28, -2 /* 803AA808 003A7768 48 00 00 8C */ b lbl_803AA894 lbl_803AA80C: /* 803AA80C 003A776C 7C 1C E8 40 */ cmplw r28, r29 /* 803AA810 003A7770 41 82 00 6C */ beq lbl_803AA87C /* 803AA814 003A7774 A0 1C FF FE */ lhz r0, -2(r28) /* 803AA818 003A7778 54 00 04 21 */ rlwinm. r0, r0, 0, 0x10, 0x10 /* 803AA81C 003A777C 41 82 00 44 */ beq lbl_803AA860 /* 803AA820 003A7780 A0 1C 00 00 */ lhz r0, 0(r28) /* 803AA824 003A7784 7C 1B 07 34 */ extsh r27, r0 /* 803AA828 003A7788 48 00 00 1C */ b lbl_803AA844 lbl_803AA82C: /* 803AA82C 003A778C 57 63 04 3E */ clrlwi r3, r27, 0x10 /* 803AA830 003A7790 38 80 00 00 */ li r4, 0 /* 803AA834 003A7794 38 A0 00 01 */ li r5, 1 /* 803AA838 003A7798 38 C0 00 01 */ li r6, 1 /* 803AA83C 003A779C 4B FF F9 55 */ bl ScanIDList /* 803AA840 003A77A0 3B 7B FF FF */ addi r27, r27, -1 lbl_803AA844: /* 803AA844 003A77A4 A0 1C FF FE */ lhz r0, -2(r28) /* 803AA848 003A77A8 7F 63 07 34 */ extsh r3, r27 /* 803AA84C 003A77AC 54 00 04 BE */ clrlwi r0, r0, 0x12 /* 803AA850 003A77B0 7C 03 00 00 */ cmpw r3, r0 /* 803AA854 003A77B4 40 80 FF D8 */ bge lbl_803AA82C /* 803AA858 003A77B8 3B 9C FF FC */ addi r28, r28, -4 /* 803AA85C 003A77BC 48 00 00 38 */ b lbl_803AA894 lbl_803AA860: /* 803AA860 003A77C0 A0 7C 00 00 */ lhz r3, 0(r28) /* 803AA864 003A77C4 38 80 00 00 */ li r4, 0 /* 803AA868 003A77C8 38 A0 00 01 */ li r5, 1 /* 803AA86C 003A77CC 38 C0 00 01 */ li r6, 1 /* 803AA870 003A77D0 4B FF F9 21 */ bl ScanIDList /* 803AA874 003A77D4 3B 9C FF FE */ addi r28, r28, -2 /* 803AA878 003A77D8 48 00 00 1C */ b lbl_803AA894 lbl_803AA87C: /* 803AA87C 003A77DC A0 7C 00 00 */ lhz r3, 0(r28) /* 803AA880 003A77E0 38 80 00 00 */ li r4, 0 /* 803AA884 003A77E4 38 A0 00 01 */ li r5, 1 /* 803AA888 003A77E8 38 C0 00 01 */ li r6, 1 /* 803AA88C 003A77EC 4B FF F9 05 */ bl ScanIDList /* 803AA890 003A77F0 3B 9C FF FE */ addi r28, r28, -2 lbl_803AA894: /* 803AA894 003A77F4 7C 1C E8 40 */ cmplw r28, r29 /* 803AA898 003A77F8 40 80 FF 74 */ bge lbl_803AA80C lbl_803AA89C: /* 803AA89C 003A77FC 7F 43 D3 78 */ mr r3, r26 /* 803AA8A0 003A7800 4B FF 70 15 */ bl dataRemoveSDir /* 803AA8A4 003A7804 80 1F 00 08 */ lwz r0, 8(r31) /* 803AA8A8 003A7808 7F 9E 02 14 */ add r28, r30, r0 /* 803AA8AC 003A780C 48 00 00 5C */ b lbl_803AA908 lbl_803AA8B0: /* 803AA8B0 003A7810 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 /* 803AA8B4 003A7814 41 82 00 3C */ beq lbl_803AA8F0 /* 803AA8B8 003A7818 54 7B 04 BE */ clrlwi r27, r3, 0x12 /* 803AA8BC 003A781C 48 00 00 1C */ b lbl_803AA8D8 lbl_803AA8C0: /* 803AA8C0 003A7820 7F 63 DB 78 */ mr r3, r27 /* 803AA8C4 003A7824 38 80 00 00 */ li r4, 0 /* 803AA8C8 003A7828 38 A0 00 00 */ li r5, 0 /* 803AA8CC 003A782C 38 C0 00 01 */ li r6, 1 /* 803AA8D0 003A7830 4B FF F8 C1 */ bl ScanIDList /* 803AA8D4 003A7834 3B 7B 00 01 */ addi r27, r27, 1 lbl_803AA8D8: /* 803AA8D8 003A7838 A0 1C 00 02 */ lhz r0, 2(r28) /* 803AA8DC 003A783C 57 63 04 3E */ clrlwi r3, r27, 0x10 /* 803AA8E0 003A7840 7C 03 00 40 */ cmplw r3, r0 /* 803AA8E4 003A7844 40 81 FF DC */ ble lbl_803AA8C0 /* 803AA8E8 003A7848 3B 9C 00 04 */ addi r28, r28, 4 /* 803AA8EC 003A784C 48 00 00 1C */ b lbl_803AA908 lbl_803AA8F0: /* 803AA8F0 003A7850 A0 7C 00 00 */ lhz r3, 0(r28) /* 803AA8F4 003A7854 38 80 00 00 */ li r4, 0 /* 803AA8F8 003A7858 38 A0 00 00 */ li r5, 0 /* 803AA8FC 003A785C 38 C0 00 01 */ li r6, 1 /* 803AA900 003A7860 3B 9C 00 02 */ addi r28, r28, 2 /* 803AA904 003A7864 4B FF F8 8D */ bl ScanIDList lbl_803AA908: /* 803AA908 003A7868 A0 7C 00 00 */ lhz r3, 0(r28) /* 803AA90C 003A786C 28 03 FF FF */ cmplwi r3, 0xffff /* 803AA910 003A7870 40 82 FF A0 */ bne lbl_803AA8B0 /* 803AA914 003A7874 80 1F 00 10 */ lwz r0, 0x10(r31) /* 803AA918 003A7878 7F 9E 02 14 */ add r28, r30, r0 /* 803AA91C 003A787C 48 00 00 5C */ b lbl_803AA978 lbl_803AA920: /* 803AA920 003A7880 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 /* 803AA924 003A7884 41 82 00 3C */ beq lbl_803AA960 /* 803AA928 003A7888 54 7B 04 BE */ clrlwi r27, r3, 0x12 /* 803AA92C 003A788C 48 00 00 1C */ b lbl_803AA948 lbl_803AA930: /* 803AA930 003A7890 7F 63 DB 78 */ mr r3, r27 /* 803AA934 003A7894 38 80 00 00 */ li r4, 0 /* 803AA938 003A7898 38 A0 00 04 */ li r5, 4 /* 803AA93C 003A789C 38 C0 00 01 */ li r6, 1 /* 803AA940 003A78A0 4B FF F8 51 */ bl ScanIDList /* 803AA944 003A78A4 3B 7B 00 01 */ addi r27, r27, 1 lbl_803AA948: /* 803AA948 003A78A8 A0 1C 00 02 */ lhz r0, 2(r28) /* 803AA94C 003A78AC 57 63 04 3E */ clrlwi r3, r27, 0x10 /* 803AA950 003A78B0 7C 03 00 40 */ cmplw r3, r0 /* 803AA954 003A78B4 40 81 FF DC */ ble lbl_803AA930 /* 803AA958 003A78B8 3B 9C 00 04 */ addi r28, r28, 4 /* 803AA95C 003A78BC 48 00 00 1C */ b lbl_803AA978 lbl_803AA960: /* 803AA960 003A78C0 A0 7C 00 00 */ lhz r3, 0(r28) /* 803AA964 003A78C4 38 80 00 00 */ li r4, 0 /* 803AA968 003A78C8 38 A0 00 04 */ li r5, 4 /* 803AA96C 003A78CC 38 C0 00 01 */ li r6, 1 /* 803AA970 003A78D0 3B 9C 00 02 */ addi r28, r28, 2 /* 803AA974 003A78D4 4B FF F8 1D */ bl ScanIDList lbl_803AA978: /* 803AA978 003A78D8 A0 7C 00 00 */ lhz r3, 0(r28) /* 803AA97C 003A78DC 28 03 FF FF */ cmplwi r3, 0xffff /* 803AA980 003A78E0 40 82 FF A0 */ bne lbl_803AA920 /* 803AA984 003A78E4 80 1F 00 14 */ lwz r0, 0x14(r31) /* 803AA988 003A78E8 7F 9E 02 14 */ add r28, r30, r0 /* 803AA98C 003A78EC 48 00 00 5C */ b lbl_803AA9E8 lbl_803AA990: /* 803AA990 003A78F0 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 /* 803AA994 003A78F4 41 82 00 3C */ beq lbl_803AA9D0 /* 803AA998 003A78F8 54 7B 04 BE */ clrlwi r27, r3, 0x12 /* 803AA99C 003A78FC 48 00 00 1C */ b lbl_803AA9B8 lbl_803AA9A0: /* 803AA9A0 003A7900 7F 63 DB 78 */ mr r3, r27 /* 803AA9A4 003A7904 38 80 00 00 */ li r4, 0 /* 803AA9A8 003A7908 38 A0 00 02 */ li r5, 2 /* 803AA9AC 003A790C 38 C0 00 01 */ li r6, 1 /* 803AA9B0 003A7910 4B FF F7 E1 */ bl ScanIDList /* 803AA9B4 003A7914 3B 7B 00 01 */ addi r27, r27, 1 lbl_803AA9B8: /* 803AA9B8 003A7918 A0 1C 00 02 */ lhz r0, 2(r28) /* 803AA9BC 003A791C 57 63 04 3E */ clrlwi r3, r27, 0x10 /* 803AA9C0 003A7920 7C 03 00 40 */ cmplw r3, r0 /* 803AA9C4 003A7924 40 81 FF DC */ ble lbl_803AA9A0 /* 803AA9C8 003A7928 3B 9C 00 04 */ addi r28, r28, 4 /* 803AA9CC 003A792C 48 00 00 1C */ b lbl_803AA9E8 lbl_803AA9D0: /* 803AA9D0 003A7930 A0 7C 00 00 */ lhz r3, 0(r28) /* 803AA9D4 003A7934 38 80 00 00 */ li r4, 0 /* 803AA9D8 003A7938 38 A0 00 02 */ li r5, 2 /* 803AA9DC 003A793C 38 C0 00 01 */ li r6, 1 /* 803AA9E0 003A7940 3B 9C 00 02 */ addi r28, r28, 2 /* 803AA9E4 003A7944 4B FF F7 AD */ bl ScanIDList lbl_803AA9E8: /* 803AA9E8 003A7948 A0 7C 00 00 */ lhz r3, 0(r28) /* 803AA9EC 003A794C 28 03 FF FF */ cmplwi r3, 0xffff /* 803AA9F0 003A7950 40 82 FF A0 */ bne lbl_803AA990 /* 803AA9F4 003A7954 80 1F 00 18 */ lwz r0, 0x18(r31) /* 803AA9F8 003A7958 7F 9E 02 14 */ add r28, r30, r0 /* 803AA9FC 003A795C 48 00 00 5C */ b lbl_803AAA58 lbl_803AAA00: /* 803AAA00 003A7960 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 /* 803AAA04 003A7964 41 82 00 3C */ beq lbl_803AAA40 /* 803AAA08 003A7968 54 7B 04 BE */ clrlwi r27, r3, 0x12 /* 803AAA0C 003A796C 48 00 00 1C */ b lbl_803AAA28 lbl_803AAA10: /* 803AAA10 003A7970 7F 63 DB 78 */ mr r3, r27 /* 803AAA14 003A7974 38 80 00 00 */ li r4, 0 /* 803AAA18 003A7978 38 A0 00 03 */ li r5, 3 /* 803AAA1C 003A797C 38 C0 00 01 */ li r6, 1 /* 803AAA20 003A7980 4B FF F7 71 */ bl ScanIDList /* 803AAA24 003A7984 3B 7B 00 01 */ addi r27, r27, 1 lbl_803AAA28: /* 803AAA28 003A7988 A0 1C 00 02 */ lhz r0, 2(r28) /* 803AAA2C 003A798C 57 63 04 3E */ clrlwi r3, r27, 0x10 /* 803AAA30 003A7990 7C 03 00 40 */ cmplw r3, r0 /* 803AAA34 003A7994 40 81 FF DC */ ble lbl_803AAA10 /* 803AAA38 003A7998 3B 9C 00 04 */ addi r28, r28, 4 /* 803AAA3C 003A799C 48 00 00 1C */ b lbl_803AAA58 lbl_803AAA40: /* 803AAA40 003A79A0 A0 7C 00 00 */ lhz r3, 0(r28) /* 803AAA44 003A79A4 38 80 00 00 */ li r4, 0 /* 803AAA48 003A79A8 38 A0 00 03 */ li r5, 3 /* 803AAA4C 003A79AC 38 C0 00 01 */ li r6, 1 /* 803AAA50 003A79B0 3B 9C 00 02 */ addi r28, r28, 2 /* 803AAA54 003A79B4 4B FF F7 3D */ bl ScanIDList lbl_803AAA58: /* 803AAA58 003A79B8 A0 7C 00 00 */ lhz r3, 0(r28) /* 803AAA5C 003A79BC 28 03 FF FF */ cmplwi r3, 0xffff /* 803AAA60 003A79C0 40 82 FF A0 */ bne lbl_803AAA00 /* 803AAA64 003A79C4 A0 1F 00 06 */ lhz r0, 6(r31) /* 803AAA68 003A79C8 28 00 00 01 */ cmplwi r0, 1 /* 803AAA6C 003A79CC 40 82 00 0C */ bne lbl_803AAA78 /* 803AAA70 003A79D0 A0 7F 00 04 */ lhz r3, 4(r31) /* 803AAA74 003A79D4 4B FF 73 95 */ bl dataRemoveFX lbl_803AAA78: /* 803AAA78 003A79D8 38 60 00 01 */ li r3, 1 /* 803AAA7C 003A79DC 39 61 00 20 */ addi r11, r1, 0x20 /* 803AAA80 003A79E0 4B FD F0 45 */ bl _restgpr_26 /* 803AAA84 003A79E4 80 01 00 24 */ lwz r0, 0x24(r1) /* 803AAA88 003A79E8 7C 08 03 A6 */ mtlr r0 /* 803AAA8C 003A79EC 38 21 00 20 */ addi r1, r1, 0x20 /* 803AAA90 003A79F0 4E 80 00 20 */ blr .global sndSeqPlaySong sndSeqPlaySong: /* 803AAA94 003A79F4 94 21 FF D0 */ stwu r1, -0x30(r1) /* 803AAA98 003A79F8 7C 08 02 A6 */ mflr r0 /* 803AAA9C 003A79FC 90 01 00 34 */ stw r0, 0x34(r1) /* 803AAAA0 003A7A00 39 61 00 30 */ addi r11, r1, 0x30 /* 803AAAA4 003A7A04 4B FD EF D1 */ bl _savegpr_25 /* 803AAAA8 003A7A08 A8 0D AF 18 */ lha r0, sp@sda21(r13) /* 803AAAAC 003A7A0C 3D 20 80 56 */ lis r9, gs@ha /* 803AAAB0 003A7A10 7C BD 2B 78 */ mr r29, r5 /* 803AAAB4 003A7A14 7C DE 33 78 */ mr r30, r6 /* 803AAAB8 003A7A18 7C 7C 1B 78 */ mr r28, r3 /* 803AAABC 003A7A1C 39 29 EC 60 */ addi r9, r9, gs@l /* 803AAAC0 003A7A20 7D 1F 43 78 */ mr r31, r8 /* 803AAAC4 003A7A24 54 65 04 3E */ clrlwi r5, r3, 0x10 /* 803AAAC8 003A7A28 38 C0 00 00 */ li r6, 0 /* 803AAACC 003A7A2C 7C 09 03 A6 */ mtctr r0 /* 803AAAD0 003A7A30 2C 00 00 00 */ cmpwi r0, 0 /* 803AAAD4 003A7A34 40 81 00 F0 */ ble lbl_803AABC4 lbl_803AAAD8: /* 803AAAD8 003A7A38 80 69 00 00 */ lwz r3, 0(r9) /* 803AAADC 003A7A3C A0 03 00 04 */ lhz r0, 4(r3) /* 803AAAE0 003A7A40 7C 05 00 40 */ cmplw r5, r0 /* 803AAAE4 003A7A44 40 82 00 D4 */ bne lbl_803AABB8 /* 803AAAE8 003A7A48 1C A6 00 0C */ mulli r5, r6, 0xc /* 803AAAEC 003A7A4C 3C 60 80 56 */ lis r3, gs@ha /* 803AAAF0 003A7A50 38 63 EC 60 */ addi r3, r3, gs@l /* 803AAAF4 003A7A54 7C C3 28 2E */ lwzx r6, r3, r5 /* 803AAAF8 003A7A58 A0 06 00 06 */ lhz r0, 6(r6) /* 803AAAFC 003A7A5C 28 00 00 00 */ cmplwi r0, 0 /* 803AAB00 003A7A60 40 82 00 B0 */ bne lbl_803AABB0 /* 803AAB04 003A7A64 7C 63 2A 14 */ add r3, r3, r5 /* 803AAB08 003A7A68 80 A6 00 1C */ lwz r5, 0x1c(r6) /* 803AAB0C 003A7A6C 81 03 00 08 */ lwz r8, 8(r3) /* 803AAB10 003A7A70 54 80 04 3E */ clrlwi r0, r4, 0x10 /* 803AAB14 003A7A74 80 86 00 20 */ lwz r4, 0x20(r6) /* 803AAB18 003A7A78 80 66 00 24 */ lwz r3, 0x24(r6) /* 803AAB1C 003A7A7C 7F 68 2A 14 */ add r27, r8, r5 /* 803AAB20 003A7A80 7F 48 22 14 */ add r26, r8, r4 /* 803AAB24 003A7A84 7F 28 1A 14 */ add r25, r8, r3 /* 803AAB28 003A7A88 48 00 00 74 */ b lbl_803AAB9C lbl_803AAB2C: /* 803AAB2C 003A7A8C 7C 03 00 40 */ cmplw r3, r0 /* 803AAB30 003A7A90 40 82 00 68 */ bne lbl_803AAB98 /* 803AAB34 003A7A94 54 E0 06 3F */ clrlwi. r0, r7, 0x18 /* 803AAB38 003A7A98 41 82 00 2C */ beq lbl_803AAB64 /* 803AAB3C 003A7A9C 7F 63 DB 78 */ mr r3, r27 /* 803AAB40 003A7AA0 7F 44 D3 78 */ mr r4, r26 /* 803AAB44 003A7AA4 7F 25 CB 78 */ mr r5, r25 /* 803AAB48 003A7AA8 7F A6 EB 78 */ mr r6, r29 /* 803AAB4C 003A7AAC 7F C7 F3 78 */ mr r7, r30 /* 803AAB50 003A7AB0 7F E8 FB 78 */ mr r8, r31 /* 803AAB54 003A7AB4 7F 89 E3 78 */ mr r9, r28 /* 803AAB58 003A7AB8 4B FE A2 41 */ bl seqStartPlay /* 803AAB5C 003A7ABC 7C 79 1B 78 */ mr r25, r3 /* 803AAB60 003A7AC0 48 00 00 30 */ b lbl_803AAB90 lbl_803AAB64: /* 803AAB64 003A7AC4 48 00 A5 59 */ bl hwDisableIrq /* 803AAB68 003A7AC8 7F 63 DB 78 */ mr r3, r27 /* 803AAB6C 003A7ACC 7F 44 D3 78 */ mr r4, r26 /* 803AAB70 003A7AD0 7F 25 CB 78 */ mr r5, r25 /* 803AAB74 003A7AD4 7F A6 EB 78 */ mr r6, r29 /* 803AAB78 003A7AD8 7F C7 F3 78 */ mr r7, r30 /* 803AAB7C 003A7ADC 7F E8 FB 78 */ mr r8, r31 /* 803AAB80 003A7AE0 7F 89 E3 78 */ mr r9, r28 /* 803AAB84 003A7AE4 4B FE A2 15 */ bl seqStartPlay /* 803AAB88 003A7AE8 7C 79 1B 78 */ mr r25, r3 /* 803AAB8C 003A7AEC 48 00 A4 F9 */ bl hwEnableIrq lbl_803AAB90: /* 803AAB90 003A7AF0 7F 23 CB 78 */ mr r3, r25 /* 803AAB94 003A7AF4 48 00 00 34 */ b lbl_803AABC8 lbl_803AAB98: /* 803AAB98 003A7AF8 3B 39 00 54 */ addi r25, r25, 0x54 lbl_803AAB9C: /* 803AAB9C 003A7AFC A0 79 00 00 */ lhz r3, 0(r25) /* 803AABA0 003A7B00 28 03 FF FF */ cmplwi r3, 0xffff /* 803AABA4 003A7B04 40 82 FF 88 */ bne lbl_803AAB2C /* 803AABA8 003A7B08 38 60 FF FF */ li r3, -1 /* 803AABAC 003A7B0C 48 00 00 1C */ b lbl_803AABC8 lbl_803AABB0: /* 803AABB0 003A7B10 38 60 FF FF */ li r3, -1 /* 803AABB4 003A7B14 48 00 00 14 */ b lbl_803AABC8 lbl_803AABB8: /* 803AABB8 003A7B18 39 29 00 0C */ addi r9, r9, 0xc /* 803AABBC 003A7B1C 38 C6 00 01 */ addi r6, r6, 1 /* 803AABC0 003A7B20 42 00 FF 18 */ bdnz lbl_803AAAD8 lbl_803AABC4: /* 803AABC4 003A7B24 38 60 FF FF */ li r3, -1 lbl_803AABC8: /* 803AABC8 003A7B28 39 61 00 30 */ addi r11, r1, 0x30 /* 803AABCC 003A7B2C 4B FD EE F5 */ bl _restgpr_25 /* 803AABD0 003A7B30 80 01 00 34 */ lwz r0, 0x34(r1) /* 803AABD4 003A7B34 7C 08 03 A6 */ mtlr r0 /* 803AABD8 003A7B38 38 21 00 30 */ addi r1, r1, 0x30 /* 803AABDC 003A7B3C 4E 80 00 20 */ blr .global sndSeqPlayEx sndSeqPlayEx: /* 803AABE0 003A7B40 94 21 FF D0 */ stwu r1, -0x30(r1) /* 803AABE4 003A7B44 7C 08 02 A6 */ mflr r0 /* 803AABE8 003A7B48 90 01 00 34 */ stw r0, 0x34(r1) /* 803AABEC 003A7B4C 39 61 00 30 */ addi r11, r1, 0x30 /* 803AABF0 003A7B50 4B FD EE 85 */ bl _savegpr_25 /* 803AABF4 003A7B54 A8 0D AF 18 */ lha r0, sp@sda21(r13) /* 803AABF8 003A7B58 3D 00 80 56 */ lis r8, gs@ha /* 803AABFC 003A7B5C 7C BD 2B 78 */ mr r29, r5 /* 803AAC00 003A7B60 7C DE 33 78 */ mr r30, r6 /* 803AAC04 003A7B64 7C 7C 1B 78 */ mr r28, r3 /* 803AAC08 003A7B68 39 08 EC 60 */ addi r8, r8, gs@l /* 803AAC0C 003A7B6C 7C FF 3B 78 */ mr r31, r7 /* 803AAC10 003A7B70 54 65 04 3E */ clrlwi r5, r3, 0x10 /* 803AAC14 003A7B74 38 C0 00 00 */ li r6, 0 /* 803AAC18 003A7B78 7C 09 03 A6 */ mtctr r0 /* 803AAC1C 003A7B7C 2C 00 00 00 */ cmpwi r0, 0 /* 803AAC20 003A7B80 40 81 00 BC */ ble lbl_803AACDC lbl_803AAC24: /* 803AAC24 003A7B84 80 68 00 00 */ lwz r3, 0(r8) /* 803AAC28 003A7B88 A0 03 00 04 */ lhz r0, 4(r3) /* 803AAC2C 003A7B8C 7C 05 00 40 */ cmplw r5, r0 /* 803AAC30 003A7B90 40 82 00 A0 */ bne lbl_803AACD0 /* 803AAC34 003A7B94 1C A6 00 0C */ mulli r5, r6, 0xc /* 803AAC38 003A7B98 3C 60 80 56 */ lis r3, gs@ha /* 803AAC3C 003A7B9C 38 63 EC 60 */ addi r3, r3, gs@l /* 803AAC40 003A7BA0 7C C3 28 2E */ lwzx r6, r3, r5 /* 803AAC44 003A7BA4 A0 06 00 06 */ lhz r0, 6(r6) /* 803AAC48 003A7BA8 28 00 00 00 */ cmplwi r0, 0 /* 803AAC4C 003A7BAC 40 82 00 7C */ bne lbl_803AACC8 /* 803AAC50 003A7BB0 7C 63 2A 14 */ add r3, r3, r5 /* 803AAC54 003A7BB4 80 A6 00 1C */ lwz r5, 0x1c(r6) /* 803AAC58 003A7BB8 80 E3 00 08 */ lwz r7, 8(r3) /* 803AAC5C 003A7BBC 54 80 04 3E */ clrlwi r0, r4, 0x10 /* 803AAC60 003A7BC0 80 86 00 20 */ lwz r4, 0x20(r6) /* 803AAC64 003A7BC4 80 66 00 24 */ lwz r3, 0x24(r6) /* 803AAC68 003A7BC8 7F 27 2A 14 */ add r25, r7, r5 /* 803AAC6C 003A7BCC 7F 47 22 14 */ add r26, r7, r4 /* 803AAC70 003A7BD0 7F 67 1A 14 */ add r27, r7, r3 /* 803AAC74 003A7BD4 48 00 00 40 */ b lbl_803AACB4 lbl_803AAC78: /* 803AAC78 003A7BD8 7C 03 00 40 */ cmplw r3, r0 /* 803AAC7C 003A7BDC 40 82 00 34 */ bne lbl_803AACB0 /* 803AAC80 003A7BE0 48 00 A4 3D */ bl hwDisableIrq /* 803AAC84 003A7BE4 7F 23 CB 78 */ mr r3, r25 /* 803AAC88 003A7BE8 7F 44 D3 78 */ mr r4, r26 /* 803AAC8C 003A7BEC 7F 65 DB 78 */ mr r5, r27 /* 803AAC90 003A7BF0 7F A6 EB 78 */ mr r6, r29 /* 803AAC94 003A7BF4 7F C7 F3 78 */ mr r7, r30 /* 803AAC98 003A7BF8 7F E8 FB 78 */ mr r8, r31 /* 803AAC9C 003A7BFC 7F 89 E3 78 */ mr r9, r28 /* 803AACA0 003A7C00 4B FE A0 F9 */ bl seqStartPlay /* 803AACA4 003A7C04 7C 7C 1B 78 */ mr r28, r3 /* 803AACA8 003A7C08 48 00 A3 DD */ bl hwEnableIrq /* 803AACAC 003A7C0C 48 00 00 34 */ b lbl_803AACE0 lbl_803AACB0: /* 803AACB0 003A7C10 3B 7B 00 54 */ addi r27, r27, 0x54 lbl_803AACB4: /* 803AACB4 003A7C14 A0 7B 00 00 */ lhz r3, 0(r27) /* 803AACB8 003A7C18 28 03 FF FF */ cmplwi r3, 0xffff /* 803AACBC 003A7C1C 40 82 FF BC */ bne lbl_803AAC78 /* 803AACC0 003A7C20 3B 80 FF FF */ li r28, -1 /* 803AACC4 003A7C24 48 00 00 1C */ b lbl_803AACE0 lbl_803AACC8: /* 803AACC8 003A7C28 3B 80 FF FF */ li r28, -1 /* 803AACCC 003A7C2C 48 00 00 14 */ b lbl_803AACE0 lbl_803AACD0: /* 803AACD0 003A7C30 39 08 00 0C */ addi r8, r8, 0xc /* 803AACD4 003A7C34 38 C6 00 01 */ addi r6, r6, 1 /* 803AACD8 003A7C38 42 00 FF 4C */ bdnz lbl_803AAC24 lbl_803AACDC: /* 803AACDC 003A7C3C 3B 80 FF FF */ li r28, -1 lbl_803AACE0: /* 803AACE0 003A7C40 7F 83 E3 78 */ mr r3, r28 /* 803AACE4 003A7C44 39 61 00 30 */ addi r11, r1, 0x30 /* 803AACE8 003A7C48 4B FD ED D9 */ bl _restgpr_25 /* 803AACEC 003A7C4C 80 01 00 34 */ lwz r0, 0x34(r1) /* 803AACF0 003A7C50 7C 08 03 A6 */ mtlr r0 /* 803AACF4 003A7C54 38 21 00 30 */ addi r1, r1, 0x30 /* 803AACF8 003A7C58 4E 80 00 20 */ blr