prime/asm/musyx/synthmacros.s

5421 lines
267 KiB
ArmAsm

.include "macros.inc"
.section .bss
.global "newsmp$473"
"newsmp$473":
.skip 0x20
.section .sbss
"cstep$1643":
.skip 0x8
macRealTime:
.skip 0x8
macTimeQueueRoot:
.skip 0x4
macActiveMacroRoot:
.skip 0x4
DebugMacroSteps:
.skip 0x8
.section .text, "ax"
.global mcmdWait
mcmdWait:
/* 803A29C4 0039F924 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A29C8 0039F928 7C 08 02 A6 */ mflr r0
/* 803A29CC 0039F92C 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A29D0 0039F930 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803A29D4 0039F934 7C 9F 23 78 */ mr r31, r4
/* 803A29D8 0039F938 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803A29DC 0039F93C 7C 7E 1B 78 */ mr r30, r3
/* 803A29E0 0039F940 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803A29E4 0039F944 93 81 00 10 */ stw r28, 0x10(r1)
/* 803A29E8 0039F948 80 04 00 04 */ lwz r0, 4(r4)
/* 803A29EC 0039F94C 54 00 84 3F */ rlwinm. r0, r0, 0x10, 0x10, 0x1f
/* 803A29F0 0039F950 90 01 00 08 */ stw r0, 8(r1)
/* 803A29F4 0039F954 41 82 02 9C */ beq lbl_803A2C90
/* 803A29F8 0039F958 80 1F 00 00 */ lwz r0, 0(r31)
/* 803A29FC 0039F95C 54 00 C7 FF */ rlwinm. r0, r0, 0x18, 0x1f, 0x1f
/* 803A2A00 0039F960 41 82 00 6C */ beq lbl_803A2A6C
/* 803A2A04 0039F964 80 BE 01 14 */ lwz r5, 0x114(r30)
/* 803A2A08 0039F968 38 80 00 00 */ li r4, 0
/* 803A2A0C 0039F96C 80 DE 01 18 */ lwz r6, 0x118(r30)
/* 803A2A10 0039F970 38 60 00 08 */ li r3, 8
/* 803A2A14 0039F974 7C A0 20 38 */ and r0, r5, r4
/* 803A2A18 0039F978 7C C3 18 38 */ and r3, r6, r3
/* 803A2A1C 0039F97C 7C 63 22 78 */ xor r3, r3, r4
/* 803A2A20 0039F980 7C 00 22 78 */ xor r0, r0, r4
/* 803A2A24 0039F984 7C 60 03 79 */ or. r0, r3, r0
/* 803A2A28 0039F988 41 82 00 34 */ beq lbl_803A2A5C
/* 803A2A2C 0039F98C 38 00 01 00 */ li r0, 0x100
/* 803A2A30 0039F990 7C C3 20 38 */ and r3, r6, r4
/* 803A2A34 0039F994 7C A0 00 38 */ and r0, r5, r0
/* 803A2A38 0039F998 7C 63 22 78 */ xor r3, r3, r4
/* 803A2A3C 0039F99C 7C 00 22 78 */ xor r0, r0, r4
/* 803A2A40 0039F9A0 7C 60 03 79 */ or. r0, r3, r0
/* 803A2A44 0039F9A4 40 82 00 0C */ bne lbl_803A2A50
/* 803A2A48 0039F9A8 38 60 00 00 */ li r3, 0
/* 803A2A4C 0039F9AC 48 00 02 48 */ b lbl_803A2C94
lbl_803A2A50:
/* 803A2A50 0039F9B0 90 DE 01 18 */ stw r6, 0x118(r30)
/* 803A2A54 0039F9B4 60 A0 04 00 */ ori r0, r5, 0x400
/* 803A2A58 0039F9B8 90 1E 01 14 */ stw r0, 0x114(r30)
lbl_803A2A5C:
/* 803A2A5C 0039F9BC 80 1E 01 18 */ lwz r0, 0x118(r30)
/* 803A2A60 0039F9C0 60 00 00 04 */ ori r0, r0, 4
/* 803A2A64 0039F9C4 90 1E 01 18 */ stw r0, 0x118(r30)
/* 803A2A68 0039F9C8 48 00 00 24 */ b lbl_803A2A8C
lbl_803A2A6C:
/* 803A2A6C 0039F9CC 80 BE 01 18 */ lwz r5, 0x118(r30)
/* 803A2A70 0039F9D0 38 00 FF FB */ li r0, -5
/* 803A2A74 0039F9D4 80 9E 01 14 */ lwz r4, 0x114(r30)
/* 803A2A78 0039F9D8 38 60 FF FF */ li r3, -1
/* 803A2A7C 0039F9DC 7C A0 00 38 */ and r0, r5, r0
/* 803A2A80 0039F9E0 90 1E 01 18 */ stw r0, 0x118(r30)
/* 803A2A84 0039F9E4 7C 80 18 38 */ and r0, r4, r3
/* 803A2A88 0039F9E8 90 1E 01 14 */ stw r0, 0x114(r30)
lbl_803A2A8C:
/* 803A2A8C 0039F9EC 80 1F 00 00 */ lwz r0, 0(r31)
/* 803A2A90 0039F9F0 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f
/* 803A2A94 0039F9F4 41 82 00 5C */ beq lbl_803A2AF0
/* 803A2A98 0039F9F8 80 1E 01 14 */ lwz r0, 0x114(r30)
/* 803A2A9C 0039F9FC 38 80 00 00 */ li r4, 0
/* 803A2AA0 0039FA00 80 BE 01 18 */ lwz r5, 0x118(r30)
/* 803A2AA4 0039FA04 38 60 00 20 */ li r3, 0x20
/* 803A2AA8 0039FA08 7C 00 20 38 */ and r0, r0, r4
/* 803A2AAC 0039FA0C 7C A3 18 38 */ and r3, r5, r3
/* 803A2AB0 0039FA10 7C 63 22 78 */ xor r3, r3, r4
/* 803A2AB4 0039FA14 7C 00 22 78 */ xor r0, r0, r4
/* 803A2AB8 0039FA18 7C 60 03 79 */ or. r0, r3, r0
/* 803A2ABC 0039FA1C 40 82 00 20 */ bne lbl_803A2ADC
/* 803A2AC0 0039FA20 80 1E 00 F4 */ lwz r0, 0xf4(r30)
/* 803A2AC4 0039FA24 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 803A2AC8 0039FA28 48 01 06 D5 */ bl hwIsActive
/* 803A2ACC 0039FA2C 28 03 00 00 */ cmplwi r3, 0
/* 803A2AD0 0039FA30 40 82 00 0C */ bne lbl_803A2ADC
/* 803A2AD4 0039FA34 38 60 00 00 */ li r3, 0
/* 803A2AD8 0039FA38 48 00 01 BC */ b lbl_803A2C94
lbl_803A2ADC:
/* 803A2ADC 0039FA3C 80 9E 01 18 */ lwz r4, 0x118(r30)
/* 803A2AE0 0039FA40 3C 00 00 04 */ lis r0, 4
/* 803A2AE4 0039FA44 7C 80 03 78 */ or r0, r4, r0
/* 803A2AE8 0039FA48 90 1E 01 18 */ stw r0, 0x118(r30)
/* 803A2AEC 0039FA4C 48 00 00 28 */ b lbl_803A2B14
lbl_803A2AF0:
/* 803A2AF0 0039FA50 3C 60 FF FC */ lis r3, 0xFFFBFFFF@ha
/* 803A2AF4 0039FA54 80 BE 01 18 */ lwz r5, 0x118(r30)
/* 803A2AF8 0039FA58 38 03 FF FF */ addi r0, r3, 0xFFFBFFFF@l
/* 803A2AFC 0039FA5C 80 9E 01 14 */ lwz r4, 0x114(r30)
/* 803A2B00 0039FA60 7C A0 00 38 */ and r0, r5, r0
/* 803A2B04 0039FA64 38 60 FF FF */ li r3, -1
/* 803A2B08 0039FA68 90 1E 01 18 */ stw r0, 0x118(r30)
/* 803A2B0C 0039FA6C 7C 80 18 38 */ and r0, r4, r3
/* 803A2B10 0039FA70 90 1E 01 14 */ stw r0, 0x114(r30)
lbl_803A2B14:
/* 803A2B14 0039FA74 80 1F 00 00 */ lwz r0, 0(r31)
/* 803A2B18 0039FA78 54 00 87 FF */ rlwinm. r0, r0, 0x10, 0x1f, 0x1f
/* 803A2B1C 0039FA7C 41 82 00 20 */ beq lbl_803A2B3C
/* 803A2B20 0039FA80 48 01 02 81 */ bl sndRand
/* 803A2B24 0039FA84 80 81 00 08 */ lwz r4, 8(r1)
/* 803A2B28 0039FA88 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 803A2B2C 0039FA8C 7C 03 23 96 */ divwu r0, r3, r4
/* 803A2B30 0039FA90 7C 00 21 D6 */ mullw r0, r0, r4
/* 803A2B34 0039FA94 7C 00 18 50 */ subf r0, r0, r3
/* 803A2B38 0039FA98 90 01 00 08 */ stw r0, 8(r1)
lbl_803A2B3C:
/* 803A2B3C 0039FA9C 80 01 00 08 */ lwz r0, 8(r1)
/* 803A2B40 0039FAA0 28 00 FF FF */ cmplwi r0, 0xffff
/* 803A2B44 0039FAA4 41 82 00 F4 */ beq lbl_803A2C38
/* 803A2B48 0039FAA8 80 1F 00 04 */ lwz r0, 4(r31)
/* 803A2B4C 0039FAAC 54 1C C7 FF */ rlwinm. r28, r0, 0x18, 0x1f, 0x1f
/* 803A2B50 0039FAB0 41 82 00 10 */ beq lbl_803A2B60
/* 803A2B54 0039FAB4 38 61 00 08 */ addi r3, r1, 8
/* 803A2B58 0039FAB8 48 01 03 95 */ bl sndConvertMs
/* 803A2B5C 0039FABC 48 00 00 10 */ b lbl_803A2B6C
lbl_803A2B60:
/* 803A2B60 0039FAC0 7F C4 F3 78 */ mr r4, r30
/* 803A2B64 0039FAC4 38 61 00 08 */ addi r3, r1, 8
/* 803A2B68 0039FAC8 48 01 03 95 */ bl sndConvertTicks
lbl_803A2B6C:
/* 803A2B6C 0039FACC 28 1C 00 00 */ cmplwi r28, 0
/* 803A2B70 0039FAD0 41 82 00 50 */ beq lbl_803A2BC0
/* 803A2B74 0039FAD4 80 1F 00 04 */ lwz r0, 4(r31)
/* 803A2B78 0039FAD8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 803A2B7C 0039FADC 41 82 00 24 */ beq lbl_803A2BA0
/* 803A2B80 0039FAE0 80 9E 00 94 */ lwz r4, 0x94(r30)
/* 803A2B84 0039FAE4 80 01 00 08 */ lwz r0, 8(r1)
/* 803A2B88 0039FAE8 80 7E 00 90 */ lwz r3, 0x90(r30)
/* 803A2B8C 0039FAEC 7C 04 00 14 */ addc r0, r4, r0
/* 803A2B90 0039FAF0 90 1E 00 9C */ stw r0, 0x9c(r30)
/* 803A2B94 0039FAF4 7C 03 01 94 */ addze r0, r3
/* 803A2B98 0039FAF8 90 1E 00 98 */ stw r0, 0x98(r30)
/* 803A2B9C 0039FAFC 48 00 00 60 */ b lbl_803A2BFC
lbl_803A2BA0:
/* 803A2BA0 0039FB00 80 8D AE EC */ lwz r4, macRealTime+4@sda21(r13)
/* 803A2BA4 0039FB04 80 01 00 08 */ lwz r0, 8(r1)
/* 803A2BA8 0039FB08 80 6D AE E8 */ lwz r3, macRealTime@sda21(r13)
/* 803A2BAC 0039FB0C 7C 04 00 14 */ addc r0, r4, r0
/* 803A2BB0 0039FB10 90 1E 00 9C */ stw r0, 0x9c(r30)
/* 803A2BB4 0039FB14 7C 03 01 94 */ addze r0, r3
/* 803A2BB8 0039FB18 90 1E 00 98 */ stw r0, 0x98(r30)
/* 803A2BBC 0039FB1C 48 00 00 40 */ b lbl_803A2BFC
lbl_803A2BC0:
/* 803A2BC0 0039FB20 80 1F 00 04 */ lwz r0, 4(r31)
/* 803A2BC4 0039FB24 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 803A2BC8 0039FB28 41 82 00 18 */ beq lbl_803A2BE0
/* 803A2BCC 0039FB2C 80 61 00 08 */ lwz r3, 8(r1)
/* 803A2BD0 0039FB30 38 00 00 00 */ li r0, 0
/* 803A2BD4 0039FB34 90 7E 00 9C */ stw r3, 0x9c(r30)
/* 803A2BD8 0039FB38 90 1E 00 98 */ stw r0, 0x98(r30)
/* 803A2BDC 0039FB3C 48 00 00 20 */ b lbl_803A2BFC
lbl_803A2BE0:
/* 803A2BE0 0039FB40 80 9E 00 A4 */ lwz r4, 0xa4(r30)
/* 803A2BE4 0039FB44 80 01 00 08 */ lwz r0, 8(r1)
/* 803A2BE8 0039FB48 80 7E 00 A0 */ lwz r3, 0xa0(r30)
/* 803A2BEC 0039FB4C 7C 04 00 14 */ addc r0, r4, r0
/* 803A2BF0 0039FB50 90 1E 00 9C */ stw r0, 0x9c(r30)
/* 803A2BF4 0039FB54 7C 03 01 94 */ addze r0, r3
/* 803A2BF8 0039FB58 90 1E 00 98 */ stw r0, 0x98(r30)
lbl_803A2BFC:
/* 803A2BFC 0039FB5C 80 BE 00 9C */ lwz r5, 0x9c(r30)
/* 803A2C00 0039FB60 80 0D AE EC */ lwz r0, macRealTime+4@sda21(r13)
/* 803A2C04 0039FB64 80 9E 00 98 */ lwz r4, 0x98(r30)
/* 803A2C08 0039FB68 80 6D AE E8 */ lwz r3, macRealTime@sda21(r13)
/* 803A2C0C 0039FB6C 7C 05 00 10 */ subfc r0, r5, r0
/* 803A2C10 0039FB70 7C 04 19 10 */ subfe r0, r4, r3
/* 803A2C14 0039FB74 7C 1D E9 10 */ subfe r0, r29, r29
/* 803A2C18 0039FB78 7C 00 00 D1 */ neg. r0, r0
/* 803A2C1C 0039FB7C 40 82 00 28 */ bne lbl_803A2C44
/* 803A2C20 0039FB80 90 BE 00 A4 */ stw r5, 0xa4(r30)
/* 803A2C24 0039FB84 38 00 00 00 */ li r0, 0
/* 803A2C28 0039FB88 90 9E 00 A0 */ stw r4, 0xa0(r30)
/* 803A2C2C 0039FB8C 90 1E 00 9C */ stw r0, 0x9c(r30)
/* 803A2C30 0039FB90 90 1E 00 98 */ stw r0, 0x98(r30)
/* 803A2C34 0039FB94 48 00 00 10 */ b lbl_803A2C44
lbl_803A2C38:
/* 803A2C38 0039FB98 38 00 FF FF */ li r0, -1
/* 803A2C3C 0039FB9C 90 1E 00 9C */ stw r0, 0x9c(r30)
/* 803A2C40 0039FBA0 90 1E 00 98 */ stw r0, 0x98(r30)
lbl_803A2C44:
/* 803A2C44 0039FBA4 80 9E 00 98 */ lwz r4, 0x98(r30)
/* 803A2C48 0039FBA8 38 60 00 00 */ li r3, 0
/* 803A2C4C 0039FBAC 80 BE 00 9C */ lwz r5, 0x9c(r30)
/* 803A2C50 0039FBB0 7C 80 1A 78 */ xor r0, r4, r3
/* 803A2C54 0039FBB4 7C A3 1A 78 */ xor r3, r5, r3
/* 803A2C58 0039FBB8 7C 60 03 79 */ or. r0, r3, r0
/* 803A2C5C 0039FBBC 41 82 00 34 */ beq lbl_803A2C90
/* 803A2C60 0039FBC0 38 00 FF FF */ li r0, -1
/* 803A2C64 0039FBC4 7C A3 02 78 */ xor r3, r5, r0
/* 803A2C68 0039FBC8 7C 80 02 78 */ xor r0, r4, r0
/* 803A2C6C 0039FBCC 7C 60 03 79 */ or. r0, r3, r0
/* 803A2C70 0039FBD0 41 82 00 0C */ beq lbl_803A2C7C
/* 803A2C74 0039FBD4 7F C3 F3 78 */ mr r3, r30
/* 803A2C78 0039FBD8 48 00 42 A1 */ bl TimeQueueAdd
lbl_803A2C7C:
/* 803A2C7C 0039FBDC 7F C3 F3 78 */ mr r3, r30
/* 803A2C80 0039FBE0 38 80 00 01 */ li r4, 1
/* 803A2C84 0039FBE4 48 00 44 41 */ bl macMakeInactive
/* 803A2C88 0039FBE8 38 60 00 01 */ li r3, 1
/* 803A2C8C 0039FBEC 48 00 00 08 */ b lbl_803A2C94
lbl_803A2C90:
/* 803A2C90 0039FBF0 38 60 00 00 */ li r3, 0
lbl_803A2C94:
/* 803A2C94 0039FBF4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A2C98 0039FBF8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803A2C9C 0039FBFC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803A2CA0 0039FC00 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803A2CA4 0039FC04 83 81 00 10 */ lwz r28, 0x10(r1)
/* 803A2CA8 0039FC08 7C 08 03 A6 */ mtlr r0
/* 803A2CAC 0039FC0C 38 21 00 20 */ addi r1, r1, 0x20
/* 803A2CB0 0039FC10 4E 80 00 20 */ blr
.global mcmdGosub
mcmdGosub:
/* 803A2CB4 0039FC14 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A2CB8 0039FC18 7C 08 02 A6 */ mflr r0
/* 803A2CBC 0039FC1C 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A2CC0 0039FC20 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A2CC4 0039FC24 7C 9F 23 78 */ mr r31, r4
/* 803A2CC8 0039FC28 93 C1 00 08 */ stw r30, 8(r1)
/* 803A2CCC 0039FC2C 7C 7E 1B 78 */ mr r30, r3
/* 803A2CD0 0039FC30 80 04 00 00 */ lwz r0, 0(r4)
/* 803A2CD4 0039FC34 54 03 84 3E */ srwi r3, r0, 0x10
/* 803A2CD8 0039FC38 4B FF F8 25 */ bl dataGetMacro
/* 803A2CDC 0039FC3C 28 03 00 00 */ cmplwi r3, 0
/* 803A2CE0 0039FC40 41 82 00 78 */ beq lbl_803A2D58
/* 803A2CE4 0039FC44 88 9E 00 8D */ lbz r4, 0x8d(r30)
/* 803A2CE8 0039FC48 38 04 00 01 */ addi r0, r4, 1
/* 803A2CEC 0039FC4C 54 00 07 BE */ clrlwi r0, r0, 0x1e
/* 803A2CF0 0039FC50 98 1E 00 8D */ stb r0, 0x8d(r30)
/* 803A2CF4 0039FC54 88 1E 00 8D */ lbz r0, 0x8d(r30)
/* 803A2CF8 0039FC58 80 BE 00 34 */ lwz r5, 0x34(r30)
/* 803A2CFC 0039FC5C 54 00 18 38 */ slwi r0, r0, 3
/* 803A2D00 0039FC60 7C 9E 02 14 */ add r4, r30, r0
/* 803A2D04 0039FC64 90 A4 00 6C */ stw r5, 0x6c(r4)
/* 803A2D08 0039FC68 88 1E 00 8D */ lbz r0, 0x8d(r30)
/* 803A2D0C 0039FC6C 80 BE 00 38 */ lwz r5, 0x38(r30)
/* 803A2D10 0039FC70 54 00 18 38 */ slwi r0, r0, 3
/* 803A2D14 0039FC74 7C 9E 02 14 */ add r4, r30, r0
/* 803A2D18 0039FC78 90 A4 00 70 */ stw r5, 0x70(r4)
/* 803A2D1C 0039FC7C 88 9E 00 8C */ lbz r4, 0x8c(r30)
/* 803A2D20 0039FC80 38 84 00 01 */ addi r4, r4, 1
/* 803A2D24 0039FC84 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 803A2D28 0039FC88 98 9E 00 8C */ stb r4, 0x8c(r30)
/* 803A2D2C 0039FC8C 28 00 00 04 */ cmplwi r0, 4
/* 803A2D30 0039FC90 40 81 00 0C */ ble lbl_803A2D3C
/* 803A2D34 0039FC94 38 00 00 04 */ li r0, 4
/* 803A2D38 0039FC98 98 1E 00 8C */ stb r0, 0x8c(r30)
lbl_803A2D3C:
/* 803A2D3C 0039FC9C 90 7E 00 34 */ stw r3, 0x34(r30)
/* 803A2D40 0039FCA0 80 1F 00 04 */ lwz r0, 4(r31)
/* 803A2D44 0039FCA4 54 00 1B 78 */ rlwinm r0, r0, 3, 0xd, 0x1c
/* 803A2D48 0039FCA8 7C 03 02 14 */ add r0, r3, r0
/* 803A2D4C 0039FCAC 38 60 00 00 */ li r3, 0
/* 803A2D50 0039FCB0 90 1E 00 38 */ stw r0, 0x38(r30)
/* 803A2D54 0039FCB4 48 00 00 18 */ b lbl_803A2D6C
lbl_803A2D58:
/* 803A2D58 0039FCB8 7F C3 F3 78 */ mr r3, r30
/* 803A2D5C 0039FCBC 48 00 49 E5 */ bl vidRemoveVoiceReferences
/* 803A2D60 0039FCC0 7F C3 F3 78 */ mr r3, r30
/* 803A2D64 0039FCC4 48 00 55 41 */ bl voiceFree
/* 803A2D68 0039FCC8 38 60 00 01 */ li r3, 1
lbl_803A2D6C:
/* 803A2D6C 0039FCCC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A2D70 0039FCD0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A2D74 0039FCD4 83 C1 00 08 */ lwz r30, 8(r1)
/* 803A2D78 0039FCD8 7C 08 03 A6 */ mtlr r0
/* 803A2D7C 0039FCDC 38 21 00 10 */ addi r1, r1, 0x10
/* 803A2D80 0039FCE0 4E 80 00 20 */ blr
.global mcmdLoop
mcmdLoop:
/* 803A2D84 0039FCE4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A2D88 0039FCE8 7C 08 02 A6 */ mflr r0
/* 803A2D8C 0039FCEC 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A2D90 0039FCF0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A2D94 0039FCF4 7C 9F 23 78 */ mr r31, r4
/* 803A2D98 0039FCF8 93 C1 00 08 */ stw r30, 8(r1)
/* 803A2D9C 0039FCFC 7C 7E 1B 78 */ mr r30, r3
/* 803A2DA0 0039FD00 A0 03 00 AA */ lhz r0, 0xaa(r3)
/* 803A2DA4 0039FD04 28 00 00 00 */ cmplwi r0, 0
/* 803A2DA8 0039FD08 40 82 00 58 */ bne lbl_803A2E00
/* 803A2DAC 0039FD0C 80 1F 00 00 */ lwz r0, 0(r31)
/* 803A2DB0 0039FD10 54 00 87 FF */ rlwinm. r0, r0, 0x10, 0x1f, 0x1f
/* 803A2DB4 0039FD14 41 82 00 28 */ beq lbl_803A2DDC
/* 803A2DB8 0039FD18 48 00 FF E9 */ bl sndRand
/* 803A2DBC 0039FD1C 80 1F 00 04 */ lwz r0, 4(r31)
/* 803A2DC0 0039FD20 54 64 04 3E */ clrlwi r4, r3, 0x10
/* 803A2DC4 0039FD24 54 03 84 3E */ srwi r3, r0, 0x10
/* 803A2DC8 0039FD28 7C 04 1B D6 */ divw r0, r4, r3
/* 803A2DCC 0039FD2C 7C 00 19 D6 */ mullw r0, r0, r3
/* 803A2DD0 0039FD30 7C 00 20 50 */ subf r0, r0, r4
/* 803A2DD4 0039FD34 B0 1E 00 AA */ sth r0, 0xaa(r30)
/* 803A2DD8 0039FD38 48 00 00 10 */ b lbl_803A2DE8
lbl_803A2DDC:
/* 803A2DDC 0039FD3C 80 1F 00 04 */ lwz r0, 4(r31)
/* 803A2DE0 0039FD40 54 00 84 3E */ srwi r0, r0, 0x10
/* 803A2DE4 0039FD44 B0 1E 00 AA */ sth r0, 0xaa(r30)
lbl_803A2DE8:
/* 803A2DE8 0039FD48 A0 7E 00 AA */ lhz r3, 0xaa(r30)
/* 803A2DEC 0039FD4C 28 03 FF FF */ cmplwi r3, 0xffff
/* 803A2DF0 0039FD50 41 82 00 2C */ beq lbl_803A2E1C
/* 803A2DF4 0039FD54 38 03 00 01 */ addi r0, r3, 1
/* 803A2DF8 0039FD58 B0 1E 00 AA */ sth r0, 0xaa(r30)
/* 803A2DFC 0039FD5C 48 00 00 0C */ b lbl_803A2E08
lbl_803A2E00:
/* 803A2E00 0039FD60 28 00 FF FF */ cmplwi r0, 0xffff
/* 803A2E04 0039FD64 41 82 00 18 */ beq lbl_803A2E1C
lbl_803A2E08:
/* 803A2E08 0039FD68 A0 7E 00 AA */ lhz r3, 0xaa(r30)
/* 803A2E0C 0039FD6C 38 63 FF FF */ addi r3, r3, -1
/* 803A2E10 0039FD70 54 60 04 3F */ clrlwi. r0, r3, 0x10
/* 803A2E14 0039FD74 B0 7E 00 AA */ sth r3, 0xaa(r30)
/* 803A2E18 0039FD78 41 82 00 A8 */ beq lbl_803A2EC0
lbl_803A2E1C:
/* 803A2E1C 0039FD7C 80 FF 00 00 */ lwz r7, 0(r31)
/* 803A2E20 0039FD80 54 E0 C7 FF */ rlwinm. r0, r7, 0x18, 0x1f, 0x1f
/* 803A2E24 0039FD84 41 82 00 38 */ beq lbl_803A2E5C
/* 803A2E28 0039FD88 80 7E 01 14 */ lwz r3, 0x114(r30)
/* 803A2E2C 0039FD8C 38 00 01 00 */ li r0, 0x100
/* 803A2E30 0039FD90 80 DE 01 18 */ lwz r6, 0x118(r30)
/* 803A2E34 0039FD94 38 A0 00 08 */ li r5, 8
/* 803A2E38 0039FD98 7C 60 00 38 */ and r0, r3, r0
/* 803A2E3C 0039FD9C 38 80 00 00 */ li r4, 0
/* 803A2E40 0039FDA0 7C C3 28 38 */ and r3, r6, r5
/* 803A2E44 0039FDA4 7C 63 2A 78 */ xor r3, r3, r5
/* 803A2E48 0039FDA8 7C 00 22 78 */ xor r0, r0, r4
/* 803A2E4C 0039FDAC 7C 60 03 79 */ or. r0, r3, r0
/* 803A2E50 0039FDB0 40 82 00 0C */ bne lbl_803A2E5C
/* 803A2E54 0039FDB4 B0 9E 00 AA */ sth r4, 0xaa(r30)
/* 803A2E58 0039FDB8 48 00 00 68 */ b lbl_803A2EC0
lbl_803A2E5C:
/* 803A2E5C 0039FDBC 54 E0 47 FF */ rlwinm. r0, r7, 8, 0x1f, 0x1f
/* 803A2E60 0039FDC0 41 82 00 4C */ beq lbl_803A2EAC
/* 803A2E64 0039FDC4 80 1E 01 14 */ lwz r0, 0x114(r30)
/* 803A2E68 0039FDC8 38 80 00 00 */ li r4, 0
/* 803A2E6C 0039FDCC 80 BE 01 18 */ lwz r5, 0x118(r30)
/* 803A2E70 0039FDD0 38 60 00 20 */ li r3, 0x20
/* 803A2E74 0039FDD4 7C 00 20 38 */ and r0, r0, r4
/* 803A2E78 0039FDD8 7C A3 18 38 */ and r3, r5, r3
/* 803A2E7C 0039FDDC 7C 63 22 78 */ xor r3, r3, r4
/* 803A2E80 0039FDE0 7C 00 22 78 */ xor r0, r0, r4
/* 803A2E84 0039FDE4 7C 60 03 79 */ or. r0, r3, r0
/* 803A2E88 0039FDE8 40 82 00 24 */ bne lbl_803A2EAC
/* 803A2E8C 0039FDEC 80 1E 00 F4 */ lwz r0, 0xf4(r30)
/* 803A2E90 0039FDF0 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 803A2E94 0039FDF4 48 01 03 09 */ bl hwIsActive
/* 803A2E98 0039FDF8 28 03 00 00 */ cmplwi r3, 0
/* 803A2E9C 0039FDFC 40 82 00 10 */ bne lbl_803A2EAC
/* 803A2EA0 0039FE00 38 00 00 00 */ li r0, 0
/* 803A2EA4 0039FE04 B0 1E 00 AA */ sth r0, 0xaa(r30)
/* 803A2EA8 0039FE08 48 00 00 18 */ b lbl_803A2EC0
lbl_803A2EAC:
/* 803A2EAC 0039FE0C 80 1F 00 04 */ lwz r0, 4(r31)
/* 803A2EB0 0039FE10 80 7E 00 34 */ lwz r3, 0x34(r30)
/* 803A2EB4 0039FE14 54 00 1B 78 */ rlwinm r0, r0, 3, 0xd, 0x1c
/* 803A2EB8 0039FE18 7C 03 02 14 */ add r0, r3, r0
/* 803A2EBC 0039FE1C 90 1E 00 38 */ stw r0, 0x38(r30)
lbl_803A2EC0:
/* 803A2EC0 0039FE20 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A2EC4 0039FE24 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A2EC8 0039FE28 83 C1 00 08 */ lwz r30, 8(r1)
/* 803A2ECC 0039FE2C 7C 08 03 A6 */ mtlr r0
/* 803A2ED0 0039FE30 38 21 00 10 */ addi r1, r1, 0x10
/* 803A2ED4 0039FE34 4E 80 00 20 */ blr
.global sub_803a2ed8
sub_803a2ed8:
/* 803A2ED8 0039FE38 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803A2EDC 0039FE3C 7C 08 02 A6 */ mflr r0
/* 803A2EE0 0039FE40 90 01 00 34 */ stw r0, 0x34(r1)
/* 803A2EE4 0039FE44 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 803A2EE8 0039FE48 7C 7F 1B 78 */ mr r31, r3
/* 803A2EEC 0039FE4C 80 04 00 00 */ lwz r0, 0(r4)
/* 803A2EF0 0039FE50 88 63 01 2F */ lbz r3, 0x12f(r3)
/* 803A2EF4 0039FE54 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
/* 803A2EF8 0039FE58 7C 00 07 74 */ extsb r0, r0
/* 803A2EFC 0039FE5C 7C 03 02 15 */ add. r0, r3, r0
/* 803A2F00 0039FE60 40 80 00 0C */ bge lbl_803A2F0C
/* 803A2F04 0039FE64 38 A0 00 00 */ li r5, 0
/* 803A2F08 0039FE68 48 00 00 14 */ b lbl_803A2F1C
lbl_803A2F0C:
/* 803A2F0C 0039FE6C 2C 00 00 7F */ cmpwi r0, 0x7f
/* 803A2F10 0039FE70 38 A0 00 7F */ li r5, 0x7f
/* 803A2F14 0039FE74 41 81 00 08 */ bgt lbl_803A2F1C
/* 803A2F18 0039FE78 7C 05 03 78 */ mr r5, r0
lbl_803A2F1C:
/* 803A2F1C 0039FE7C 88 1F 01 1D */ lbz r0, 0x11d(r31)
/* 803A2F20 0039FE80 28 00 00 00 */ cmplwi r0, 0
/* 803A2F24 0039FE84 41 82 00 08 */ beq lbl_803A2F2C
/* 803A2F28 0039FE88 60 A5 00 80 */ ori r5, r5, 0x80
lbl_803A2F2C:
/* 803A2F2C 0039FE8C 38 60 00 01 */ li r3, 1
/* 803A2F30 0039FE90 38 00 00 00 */ li r0, 0
/* 803A2F34 0039FE94 98 7F 01 1C */ stb r3, 0x11c(r31)
/* 803A2F38 0039FE98 54 A7 06 3E */ clrlwi r7, r5, 0x18
/* 803A2F3C 0039FE9C 81 04 00 04 */ lwz r8, 4(r4)
/* 803A2F40 0039FEA0 88 DF 01 22 */ lbz r6, 0x122(r31)
/* 803A2F44 0039FEA4 55 03 04 3E */ clrlwi r3, r8, 0x10
/* 803A2F48 0039FEA8 55 05 46 3E */ srwi r5, r8, 0x18
/* 803A2F4C 0039FEAC 90 C1 00 08 */ stw r6, 8(r1)
/* 803A2F50 0039FEB0 88 DF 01 23 */ lbz r6, 0x123(r31)
/* 803A2F54 0039FEB4 90 C1 00 0C */ stw r6, 0xc(r1)
/* 803A2F58 0039FEB8 90 61 00 10 */ stw r3, 0x10(r1)
/* 803A2F5C 0039FEBC 88 7F 01 20 */ lbz r3, 0x120(r31)
/* 803A2F60 0039FEC0 90 61 00 14 */ stw r3, 0x14(r1)
/* 803A2F64 0039FEC4 90 01 00 18 */ stw r0, 0x18(r1)
/* 803A2F68 0039FEC8 88 1F 01 1E */ lbz r0, 0x11e(r31)
/* 803A2F6C 0039FECC 90 01 00 1C */ stw r0, 0x1c(r1)
/* 803A2F70 0039FED0 88 1F 01 1F */ lbz r0, 0x11f(r31)
/* 803A2F74 0039FED4 90 01 00 20 */ stw r0, 0x20(r1)
/* 803A2F78 0039FED8 88 1F 01 93 */ lbz r0, 0x193(r31)
/* 803A2F7C 0039FEDC 7C 00 00 34 */ cntlzw r0, r0
/* 803A2F80 0039FEE0 54 00 D9 7E */ srwi r0, r0, 5
/* 803A2F84 0039FEE4 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A2F88 0039FEE8 80 64 00 00 */ lwz r3, 0(r4)
/* 803A2F8C 0039FEEC 55 04 86 3E */ rlwinm r4, r8, 0x10, 0x18, 0x1f
/* 803A2F90 0039FEF0 81 1F 01 54 */ lwz r8, 0x154(r31)
/* 803A2F94 0039FEF4 80 1F 01 70 */ lwz r0, 0x170(r31)
/* 803A2F98 0039FEF8 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A2F9C 0039FEFC A0 DF 01 00 */ lhz r6, 0x100(r31)
/* 803A2FA0 0039FF00 55 08 86 3E */ rlwinm r8, r8, 0x10, 0x18, 0x1f
/* 803A2FA4 0039FF04 89 5F 01 21 */ lbz r10, 0x121(r31)
/* 803A2FA8 0039FF08 54 09 86 3E */ rlwinm r9, r0, 0x10, 0x18, 0x1f
/* 803A2FAC 0039FF0C 48 00 42 15 */ bl sub_803a71c0
/* 803A2FB0 0039FF10 3C 03 00 01 */ addis r0, r3, 1
/* 803A2FB4 0039FF14 38 80 00 00 */ li r4, 0
/* 803A2FB8 0039FF18 28 00 FF FF */ cmplwi r0, 0xffff
/* 803A2FBC 0039FF1C 98 9F 01 1C */ stb r4, 0x11c(r31)
/* 803A2FC0 0039FF20 41 82 00 88 */ beq lbl_803A3048
/* 803A2FC4 0039FF24 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 803A2FC8 0039FF28 80 8D AE 78 */ lwz r4, synthVoice@sda21(r13)
/* 803A2FCC 0039FF2C 1C C0 04 04 */ mulli r6, r0, 0x404
/* 803A2FD0 0039FF30 7C 84 32 14 */ add r4, r4, r6
/* 803A2FD4 0039FF34 80 84 00 F8 */ lwz r4, 0xf8(r4)
/* 803A2FD8 0039FF38 80 04 00 08 */ lwz r0, 8(r4)
/* 803A2FDC 0039FF3C 90 1F 01 08 */ stw r0, 0x108(r31)
/* 803A2FE0 0039FF40 80 0D AE 78 */ lwz r0, synthVoice@sda21(r13)
/* 803A2FE4 0039FF44 80 BF 00 F4 */ lwz r5, 0xf4(r31)
/* 803A2FE8 0039FF48 7C 80 32 14 */ add r4, r0, r6
/* 803A2FEC 0039FF4C 90 A4 00 F0 */ stw r5, 0xf0(r4)
/* 803A2FF0 0039FF50 80 BF 00 EC */ lwz r5, 0xec(r31)
/* 803A2FF4 0039FF54 3C 05 00 01 */ addis r0, r5, 1
/* 803A2FF8 0039FF58 28 00 FF FF */ cmplwi r0, 0xffff
/* 803A2FFC 0039FF5C 41 82 00 28 */ beq lbl_803A3024
/* 803A3000 0039FF60 80 0D AE 78 */ lwz r0, synthVoice@sda21(r13)
/* 803A3004 0039FF64 7C 80 32 14 */ add r4, r0, r6
/* 803A3008 0039FF68 90 A4 00 EC */ stw r5, 0xec(r4)
/* 803A300C 0039FF6C 80 1F 00 EC */ lwz r0, 0xec(r31)
/* 803A3010 0039FF70 80 8D AE 78 */ lwz r4, synthVoice@sda21(r13)
/* 803A3014 0039FF74 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 803A3018 0039FF78 1C 00 04 04 */ mulli r0, r0, 0x404
/* 803A301C 0039FF7C 7C 84 02 14 */ add r4, r4, r0
/* 803A3020 0039FF80 90 64 00 F0 */ stw r3, 0xf0(r4)
lbl_803A3024:
/* 803A3024 0039FF84 90 7F 00 EC */ stw r3, 0xec(r31)
/* 803A3028 0039FF88 88 1F 01 1D */ lbz r0, 0x11d(r31)
/* 803A302C 0039FF8C 28 00 00 00 */ cmplwi r0, 0
/* 803A3030 0039FF90 41 82 00 20 */ beq lbl_803A3050
/* 803A3034 0039FF94 80 0D AE 78 */ lwz r0, synthVoice@sda21(r13)
/* 803A3038 0039FF98 7F E4 FB 78 */ mr r4, r31
/* 803A303C 0039FF9C 7C 60 32 14 */ add r3, r0, r6
/* 803A3040 0039FFA0 4B FF 82 9D */ bl synthFXCloneMidiSetup
/* 803A3044 0039FFA4 48 00 00 0C */ b lbl_803A3050
lbl_803A3048:
/* 803A3048 0039FFA8 38 00 FF FF */ li r0, -1
/* 803A304C 0039FFAC 90 1F 01 08 */ stw r0, 0x108(r31)
lbl_803A3050:
/* 803A3050 0039FFB0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803A3054 0039FFB4 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 803A3058 0039FFB8 7C 08 03 A6 */ mtlr r0
/* 803A305C 0039FFBC 38 21 00 30 */ addi r1, r1, 0x30
/* 803A3060 0039FFC0 4E 80 00 20 */ blr
.global mcmdAddKey
mcmdAddKey:
/* 803A3064 0039FFC4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A3068 0039FFC8 7C 08 02 A6 */ mflr r0
/* 803A306C 0039FFCC 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A3070 0039FFD0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A3074 0039FFD4 7C 9F 23 78 */ mr r31, r4
/* 803A3078 0039FFD8 93 C1 00 08 */ stw r30, 8(r1)
/* 803A307C 0039FFDC 7C 7E 1B 78 */ mr r30, r3
/* 803A3080 0039FFE0 80 64 00 00 */ lwz r3, 0(r4)
/* 803A3084 0039FFE4 54 60 46 3F */ rlwinm. r0, r3, 8, 0x18, 0x1f
/* 803A3088 0039FFE8 40 82 00 1C */ bne lbl_803A30A4
/* 803A308C 0039FFEC 54 60 C6 3E */ rlwinm r0, r3, 0x18, 0x18, 0x1f
/* 803A3090 0039FFF0 A0 7E 01 2C */ lhz r3, 0x12c(r30)
/* 803A3094 0039FFF4 7C 00 07 74 */ extsb r0, r0
/* 803A3098 0039FFF8 7C 03 02 14 */ add r0, r3, r0
/* 803A309C 0039FFFC B0 1E 01 2C */ sth r0, 0x12c(r30)
/* 803A30A0 003A0000 48 00 00 18 */ b lbl_803A30B8
lbl_803A30A4:
/* 803A30A4 003A0004 54 60 C6 3E */ rlwinm r0, r3, 0x18, 0x18, 0x1f
/* 803A30A8 003A0008 88 7E 01 2F */ lbz r3, 0x12f(r30)
/* 803A30AC 003A000C 7C 00 07 74 */ extsb r0, r0
/* 803A30B0 003A0010 7C 03 02 14 */ add r0, r3, r0
/* 803A30B4 003A0014 B0 1E 01 2C */ sth r0, 0x12c(r30)
lbl_803A30B8:
/* 803A30B8 003A0018 A0 7E 01 2C */ lhz r3, 0x12c(r30)
/* 803A30BC 003A001C 7C 60 07 35 */ extsh. r0, r3
/* 803A30C0 003A0020 40 80 00 0C */ bge lbl_803A30CC
/* 803A30C4 003A0024 38 00 00 00 */ li r0, 0
/* 803A30C8 003A0028 48 00 00 14 */ b lbl_803A30DC
lbl_803A30CC:
/* 803A30CC 003A002C 28 03 00 7F */ cmplwi r3, 0x7f
/* 803A30D0 003A0030 38 00 00 7F */ li r0, 0x7f
/* 803A30D4 003A0034 41 81 00 08 */ bgt lbl_803A30DC
/* 803A30D8 003A0038 7C 60 1B 78 */ mr r0, r3
lbl_803A30DC:
/* 803A30DC 003A003C B0 1E 01 2C */ sth r0, 0x12c(r30)
/* 803A30E0 003A0040 7F C3 F3 78 */ mr r3, r30
/* 803A30E4 003A0044 80 1F 00 00 */ lwz r0, 0(r31)
/* 803A30E8 003A0048 54 00 84 3E */ srwi r0, r0, 0x10
/* 803A30EC 003A004C 98 1E 01 2E */ stb r0, 0x12e(r30)
/* 803A30F0 003A0050 48 00 5D 81 */ bl voiceIsLastStarted
/* 803A30F4 003A0054 28 03 00 00 */ cmplwi r3, 0
/* 803A30F8 003A0058 41 82 00 18 */ beq lbl_803A3110
/* 803A30FC 003A005C A0 1E 01 2C */ lhz r0, 0x12c(r30)
/* 803A3100 003A0060 88 7E 01 21 */ lbz r3, 0x121(r30)
/* 803A3104 003A0064 88 9E 01 22 */ lbz r4, 0x122(r30)
/* 803A3108 003A0068 54 05 06 3E */ clrlwi r5, r0, 0x18
/* 803A310C 003A006C 48 00 EC E1 */ bl inpSetMidiLastNote
lbl_803A3110:
/* 803A3110 003A0070 38 00 00 04 */ li r0, 4
/* 803A3114 003A0074 7F C3 F3 78 */ mr r3, r30
/* 803A3118 003A0078 90 1F 00 00 */ stw r0, 0(r31)
/* 803A311C 003A007C 7F E4 FB 78 */ mr r4, r31
/* 803A3120 003A0080 4B FF F8 A5 */ bl mcmdWait
/* 803A3124 003A0084 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A3128 003A0088 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A312C 003A008C 83 C1 00 08 */ lwz r30, 8(r1)
/* 803A3130 003A0090 7C 08 03 A6 */ mtlr r0
/* 803A3134 003A0094 38 21 00 10 */ addi r1, r1, 0x10
/* 803A3138 003A0098 4E 80 00 20 */ blr
.global sub_803a313c
sub_803a313c:
/* 803A313C 003A009C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A3140 003A00A0 7C 08 02 A6 */ mflr r0
/* 803A3144 003A00A4 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A3148 003A00A8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803A314C 003A00AC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803A3150 003A00B0 7C 7E 1B 78 */ mr r30, r3
/* 803A3154 003A00B4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803A3158 003A00B8 7C 9D 23 78 */ mr r29, r4
/* 803A315C 003A00BC 3C 80 80 56 */ lis r4, "newsmp$473"@ha
/* 803A3160 003A00C0 80 1D 00 00 */ lwz r0, 0(r29)
/* 803A3164 003A00C4 38 84 D3 30 */ addi r4, r4, "newsmp$473"@l
/* 803A3168 003A00C8 54 1F C4 3E */ rlwinm r31, r0, 0x18, 0x10, 0x1f
/* 803A316C 003A00CC 7F E3 FB 78 */ mr r3, r31
/* 803A3170 003A00D0 4B FF F4 29 */ bl sub_803a2598
/* 803A3174 003A00D4 2C 03 00 00 */ cmpwi r3, 0
/* 803A3178 003A00D8 40 82 01 A4 */ bne lbl_803A331C
/* 803A317C 003A00DC 80 1D 00 00 */ lwz r0, 0(r29)
/* 803A3180 003A00E0 54 00 46 3E */ srwi r0, r0, 0x18
/* 803A3184 003A00E4 2C 00 00 01 */ cmpwi r0, 1
/* 803A3188 003A00E8 41 82 00 34 */ beq lbl_803A31BC
/* 803A318C 003A00EC 40 80 00 10 */ bge lbl_803A319C
/* 803A3190 003A00F0 2C 00 00 00 */ cmpwi r0, 0
/* 803A3194 003A00F4 40 80 00 14 */ bge lbl_803A31A8
/* 803A3198 003A00F8 48 00 00 A4 */ b lbl_803A323C
lbl_803A319C:
/* 803A319C 003A00FC 2C 00 00 03 */ cmpwi r0, 3
/* 803A31A0 003A0100 40 80 00 9C */ bge lbl_803A323C
/* 803A31A4 003A0104 48 00 00 5C */ b lbl_803A3200
lbl_803A31A8:
/* 803A31A8 003A0108 3C 60 80 56 */ lis r3, "newsmp$473"@ha
/* 803A31AC 003A010C 80 1D 00 04 */ lwz r0, 4(r29)
/* 803A31B0 003A0110 38 63 D3 30 */ addi r3, r3, "newsmp$473"@l
/* 803A31B4 003A0114 90 03 00 0C */ stw r0, 0xc(r3)
/* 803A31B8 003A0118 48 00 00 94 */ b lbl_803A324C
lbl_803A31BC:
/* 803A31BC 003A011C 80 BE 01 54 */ lwz r5, 0x154(r30)
/* 803A31C0 003A0120 3C 80 02 04 */ lis r4, 0x02040811@ha
/* 803A31C4 003A0124 3C 60 80 56 */ lis r3, "newsmp$473"@ha
/* 803A31C8 003A0128 80 1D 00 04 */ lwz r0, 4(r29)
/* 803A31CC 003A012C 54 A5 84 3E */ srwi r5, r5, 0x10
/* 803A31D0 003A0130 38 C4 08 11 */ addi r6, r4, 0x02040811@l
/* 803A31D4 003A0134 20 85 00 7F */ subfic r4, r5, 0x7f
/* 803A31D8 003A0138 38 63 D3 30 */ addi r3, r3, "newsmp$473"@l
/* 803A31DC 003A013C 54 84 06 3E */ clrlwi r4, r4, 0x18
/* 803A31E0 003A0140 7C 00 21 D6 */ mullw r0, r0, r4
/* 803A31E4 003A0144 7C 86 00 16 */ mulhwu r4, r6, r0
/* 803A31E8 003A0148 7C 04 00 50 */ subf r0, r4, r0
/* 803A31EC 003A014C 54 00 F8 7E */ srwi r0, r0, 1
/* 803A31F0 003A0150 7C 00 22 14 */ add r0, r0, r4
/* 803A31F4 003A0154 54 00 D1 BE */ srwi r0, r0, 6
/* 803A31F8 003A0158 90 03 00 0C */ stw r0, 0xc(r3)
/* 803A31FC 003A015C 48 00 00 50 */ b lbl_803A324C
lbl_803A3200:
/* 803A3200 003A0160 80 BE 01 54 */ lwz r5, 0x154(r30)
/* 803A3204 003A0164 3C 80 02 04 */ lis r4, 0x02040811@ha
/* 803A3208 003A0168 80 1D 00 04 */ lwz r0, 4(r29)
/* 803A320C 003A016C 3C 60 80 56 */ lis r3, "newsmp$473"@ha
/* 803A3210 003A0170 54 A5 86 3E */ rlwinm r5, r5, 0x10, 0x18, 0x1f
/* 803A3214 003A0174 38 84 08 11 */ addi r4, r4, 0x02040811@l
/* 803A3218 003A0178 7C 00 29 D6 */ mullw r0, r0, r5
/* 803A321C 003A017C 38 63 D3 30 */ addi r3, r3, "newsmp$473"@l
/* 803A3220 003A0180 7C 84 00 16 */ mulhwu r4, r4, r0
/* 803A3224 003A0184 7C 04 00 50 */ subf r0, r4, r0
/* 803A3228 003A0188 54 00 F8 7E */ srwi r0, r0, 1
/* 803A322C 003A018C 7C 00 22 14 */ add r0, r0, r4
/* 803A3230 003A0190 54 00 D1 BE */ srwi r0, r0, 6
/* 803A3234 003A0194 90 03 00 0C */ stw r0, 0xc(r3)
/* 803A3238 003A0198 48 00 00 14 */ b lbl_803A324C
lbl_803A323C:
/* 803A323C 003A019C 3C 60 80 56 */ lis r3, "newsmp$473"@ha
/* 803A3240 003A01A0 38 00 00 00 */ li r0, 0
/* 803A3244 003A01A4 38 63 D3 30 */ addi r3, r3, "newsmp$473"@l
/* 803A3248 003A01A8 90 03 00 0C */ stw r0, 0xc(r3)
lbl_803A324C:
/* 803A324C 003A01AC 3C 60 80 56 */ lis r3, "newsmp$473"@ha
/* 803A3250 003A01B0 38 63 D3 30 */ addi r3, r3, "newsmp$473"@l
/* 803A3254 003A01B4 80 03 00 0C */ lwz r0, 0xc(r3)
/* 803A3258 003A01B8 80 83 00 10 */ lwz r4, 0x10(r3)
/* 803A325C 003A01BC 7C 00 20 40 */ cmplw r0, r4
/* 803A3260 003A01C0 41 80 00 0C */ blt lbl_803A326C
/* 803A3264 003A01C4 38 04 FF FF */ addi r0, r4, -1
/* 803A3268 003A01C8 90 03 00 0C */ stw r0, 0xc(r3)
lbl_803A326C:
/* 803A326C 003A01CC 80 9E 01 14 */ lwz r4, 0x114(r30)
/* 803A3270 003A01D0 39 40 00 00 */ li r10, 0
/* 803A3274 003A01D4 38 60 08 00 */ li r3, 0x800
/* 803A3278 003A01D8 80 BE 01 18 */ lwz r5, 0x118(r30)
/* 803A327C 003A01DC 38 00 01 00 */ li r0, 0x100
/* 803A3280 003A01E0 7C 86 50 38 */ and r6, r4, r10
/* 803A3284 003A01E4 7C 83 18 38 */ and r3, r4, r3
/* 803A3288 003A01E8 80 9E 01 10 */ lwz r4, 0x110(r30)
/* 803A328C 003A01EC 7C A9 00 38 */ and r9, r5, r0
/* 803A3290 003A01F0 7C A0 50 38 */ and r0, r5, r10
/* 803A3294 003A01F4 54 87 8B FE */ srwi r7, r4, 0xf
/* 803A3298 003A01F8 89 7E 01 0C */ lbz r11, 0x10c(r30)
/* 803A329C 003A01FC 7D 24 52 78 */ xor r4, r9, r10
/* 803A32A0 003A0200 7C C6 52 78 */ xor r6, r6, r10
/* 803A32A4 003A0204 7C 86 33 78 */ or r6, r4, r6
/* 803A32A8 003A0208 3C A0 80 56 */ lis r5, "newsmp$473"@ha
/* 803A32AC 003A020C 7C C6 00 34 */ cntlzw r6, r6
/* 803A32B0 003A0210 7C 00 52 78 */ xor r0, r0, r10
/* 803A32B4 003A0214 7C 69 52 78 */ xor r9, r3, r10
/* 803A32B8 003A0218 81 1E 00 F4 */ lwz r8, 0xf4(r30)
/* 803A32BC 003A021C 7C 09 4B 78 */ or r9, r0, r9
/* 803A32C0 003A0220 89 5E 01 93 */ lbz r10, 0x193(r30)
/* 803A32C4 003A0224 7D 29 00 34 */ cntlzw r9, r9
/* 803A32C8 003A0228 38 A5 D3 30 */ addi r5, r5, "newsmp$473"@l
/* 803A32CC 003A022C 7F E4 FB 78 */ mr r4, r31
/* 803A32D0 003A0230 54 C6 D9 7E */ srwi r6, r6, 5
/* 803A32D4 003A0234 55 03 06 3E */ clrlwi r3, r8, 0x18
/* 803A32D8 003A0238 55 29 D9 7E */ srwi r9, r9, 5
/* 803A32DC 003A023C 51 67 C0 0E */ rlwimi r7, r11, 0x18, 0, 7
/* 803A32E0 003A0240 48 00 FE F9 */ bl hwInitSamplePlayback
/* 803A32E4 003A0244 3C 60 80 56 */ lis r3, "newsmp$473"@ha
/* 803A32E8 003A0248 80 03 D3 30 */ lwz r0, "newsmp$473"@l(r3)
/* 803A32EC 003A024C 90 1E 01 24 */ stw r0, 0x124(r30)
/* 803A32F0 003A0250 80 7E 01 28 */ lwz r3, 0x128(r30)
/* 803A32F4 003A0254 3C 03 00 01 */ addis r0, r3, 1
/* 803A32F8 003A0258 28 00 FF FF */ cmplwi r0, 0xffff
/* 803A32FC 003A025C 41 82 00 0C */ beq lbl_803A3308
/* 803A3300 003A0260 7F C3 F3 78 */ mr r3, r30
/* 803A3304 003A0264 48 00 01 B1 */ bl DoSetPitch
lbl_803A3308:
/* 803A3308 003A0268 80 1E 01 18 */ lwz r0, 0x118(r30)
/* 803A330C 003A026C 7F C3 F3 78 */ mr r3, r30
/* 803A3310 003A0270 60 00 00 20 */ ori r0, r0, 0x20
/* 803A3314 003A0274 90 1E 01 18 */ stw r0, 0x118(r30)
/* 803A3318 003A0278 4B FF 77 C9 */ bl sub_8039aae0
lbl_803A331C:
/* 803A331C 003A027C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A3320 003A0280 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803A3324 003A0284 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803A3328 003A0288 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803A332C 003A028C 7C 08 03 A6 */ mtlr r0
/* 803A3330 003A0290 38 21 00 20 */ addi r1, r1, 0x20
/* 803A3334 003A0294 4E 80 00 20 */ blr
.global mcmdVibrato
mcmdVibrato:
/* 803A3338 003A0298 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A333C 003A029C 7C 08 02 A6 */ mflr r0
/* 803A3340 003A02A0 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A3344 003A02A4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803A3348 003A02A8 7C 9F 23 78 */ mr r31, r4
/* 803A334C 003A02AC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803A3350 003A02B0 7C 7E 1B 78 */ mr r30, r3
/* 803A3354 003A02B4 80 04 00 00 */ lwz r0, 0(r4)
/* 803A3358 003A02B8 54 00 47 BF */ rlwinm. r0, r0, 8, 0x1e, 0x1f
/* 803A335C 003A02BC 41 82 00 14 */ beq lbl_803A3370
/* 803A3360 003A02C0 80 1E 01 18 */ lwz r0, 0x118(r30)
/* 803A3364 003A02C4 60 00 40 00 */ ori r0, r0, 0x4000
/* 803A3368 003A02C8 90 1E 01 18 */ stw r0, 0x118(r30)
/* 803A336C 003A02CC 48 00 00 24 */ b lbl_803A3390
lbl_803A3370:
/* 803A3370 003A02D0 80 BE 01 18 */ lwz r5, 0x118(r30)
/* 803A3374 003A02D4 38 00 BF FF */ li r0, -16385
/* 803A3378 003A02D8 80 9E 01 14 */ lwz r4, 0x114(r30)
/* 803A337C 003A02DC 38 60 FF FF */ li r3, -1
/* 803A3380 003A02E0 7C A0 00 38 */ and r0, r5, r0
/* 803A3384 003A02E4 90 1E 01 18 */ stw r0, 0x118(r30)
/* 803A3388 003A02E8 7C 80 18 38 */ and r0, r4, r3
/* 803A338C 003A02EC 90 1E 01 14 */ stw r0, 0x114(r30)
lbl_803A3390:
/* 803A3390 003A02F0 80 1F 00 04 */ lwz r0, 4(r31)
/* 803A3394 003A02F4 54 00 84 3E */ srwi r0, r0, 0x10
/* 803A3398 003A02F8 90 01 00 08 */ stw r0, 8(r1)
/* 803A339C 003A02FC 80 1F 00 04 */ lwz r0, 4(r31)
/* 803A33A0 003A0300 54 00 C7 FF */ rlwinm. r0, r0, 0x18, 0x1f, 0x1f
/* 803A33A4 003A0304 41 82 00 10 */ beq lbl_803A33B4
/* 803A33A8 003A0308 38 61 00 08 */ addi r3, r1, 8
/* 803A33AC 003A030C 48 00 FB 41 */ bl sndConvertMs
/* 803A33B0 003A0310 48 00 00 10 */ b lbl_803A33C0
lbl_803A33B4:
/* 803A33B4 003A0314 7F C4 F3 78 */ mr r4, r30
/* 803A33B8 003A0318 38 61 00 08 */ addi r3, r1, 8
/* 803A33BC 003A031C 48 00 FB 41 */ bl sndConvertTicks
lbl_803A33C0:
/* 803A33C0 003A0320 80 01 00 08 */ lwz r0, 8(r1)
/* 803A33C4 003A0324 28 00 00 00 */ cmplwi r0, 0
/* 803A33C8 003A0328 41 82 00 B4 */ beq lbl_803A347C
/* 803A33CC 003A032C 80 1E 01 18 */ lwz r0, 0x118(r30)
/* 803A33D0 003A0330 60 00 20 00 */ ori r0, r0, 0x2000
/* 803A33D4 003A0334 90 1E 01 18 */ stw r0, 0x118(r30)
/* 803A33D8 003A0338 80 01 00 08 */ lwz r0, 8(r1)
/* 803A33DC 003A033C 90 1E 01 44 */ stw r0, 0x144(r30)
/* 803A33E0 003A0340 80 1F 00 00 */ lwz r0, 0(r31)
/* 803A33E4 003A0344 54 03 C2 3E */ srwi r3, r0, 8
/* 803A33E8 003A0348 54 00 84 3E */ srwi r0, r0, 0x10
/* 803A33EC 003A034C 7C 64 07 75 */ extsb. r4, r3
/* 803A33F0 003A0350 7C 03 07 74 */ extsb r3, r0
/* 803A33F4 003A0354 40 80 00 34 */ bge lbl_803A3428
/* 803A33F8 003A0358 7C 60 07 75 */ extsb. r0, r3
/* 803A33FC 003A035C 40 80 00 10 */ bge lbl_803A340C
/* 803A3400 003A0360 7C 03 00 D0 */ neg r0, r3
/* 803A3404 003A0364 98 1E 01 41 */ stb r0, 0x141(r30)
/* 803A3408 003A0368 48 00 00 08 */ b lbl_803A3410
lbl_803A340C:
/* 803A340C 003A036C 98 7E 01 41 */ stb r3, 0x141(r30)
lbl_803A3410:
/* 803A3410 003A0370 7C 04 00 D0 */ neg r0, r4
/* 803A3414 003A0374 98 1E 01 40 */ stb r0, 0x140(r30)
/* 803A3418 003A0378 80 1E 01 44 */ lwz r0, 0x144(r30)
/* 803A341C 003A037C 54 00 F8 7E */ srwi r0, r0, 1
/* 803A3420 003A0380 90 1E 01 48 */ stw r0, 0x148(r30)
/* 803A3424 003A0384 48 00 00 78 */ b lbl_803A349C
lbl_803A3428:
/* 803A3428 003A0388 7C 60 07 75 */ extsb. r0, r3
/* 803A342C 003A038C 40 80 00 3C */ bge lbl_803A3468
/* 803A3430 003A0390 7C 80 07 75 */ extsb. r0, r4
/* 803A3434 003A0394 40 82 00 1C */ bne lbl_803A3450
/* 803A3438 003A0398 7C 03 00 D0 */ neg r0, r3
/* 803A343C 003A039C 98 1E 01 41 */ stb r0, 0x141(r30)
/* 803A3440 003A03A0 80 1E 01 44 */ lwz r0, 0x144(r30)
/* 803A3444 003A03A4 54 00 F8 7E */ srwi r0, r0, 1
/* 803A3448 003A03A8 90 1E 01 48 */ stw r0, 0x148(r30)
/* 803A344C 003A03AC 48 00 00 28 */ b lbl_803A3474
lbl_803A3450:
/* 803A3450 003A03B0 20 63 00 64 */ subfic r3, r3, 0x64
/* 803A3454 003A03B4 38 00 00 00 */ li r0, 0
/* 803A3458 003A03B8 98 7E 01 41 */ stb r3, 0x141(r30)
/* 803A345C 003A03BC 38 84 FF FF */ addi r4, r4, -1
/* 803A3460 003A03C0 90 1E 01 48 */ stw r0, 0x148(r30)
/* 803A3464 003A03C4 48 00 00 10 */ b lbl_803A3474
lbl_803A3468:
/* 803A3468 003A03C8 98 7E 01 41 */ stb r3, 0x141(r30)
/* 803A346C 003A03CC 38 00 00 00 */ li r0, 0
/* 803A3470 003A03D0 90 1E 01 48 */ stw r0, 0x148(r30)
lbl_803A3474:
/* 803A3474 003A03D4 98 9E 01 40 */ stb r4, 0x140(r30)
/* 803A3478 003A03D8 48 00 00 24 */ b lbl_803A349C
lbl_803A347C:
/* 803A347C 003A03DC 80 BE 01 18 */ lwz r5, 0x118(r30)
/* 803A3480 003A03E0 38 00 DF FF */ li r0, -8193
/* 803A3484 003A03E4 80 9E 01 14 */ lwz r4, 0x114(r30)
/* 803A3488 003A03E8 38 60 FF FF */ li r3, -1
/* 803A348C 003A03EC 7C A0 00 38 */ and r0, r5, r0
/* 803A3490 003A03F0 90 1E 01 18 */ stw r0, 0x118(r30)
/* 803A3494 003A03F4 7C 80 18 38 */ and r0, r4, r3
/* 803A3498 003A03F8 90 1E 01 14 */ stw r0, 0x114(r30)
lbl_803A349C:
/* 803A349C 003A03FC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A34A0 003A0400 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803A34A4 003A0404 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803A34A8 003A0408 7C 08 03 A6 */ mtlr r0
/* 803A34AC 003A040C 38 21 00 20 */ addi r1, r1, 0x20
/* 803A34B0 003A0410 4E 80 00 20 */ blr
.global DoSetPitch
DoSetPitch:
/* 803A34B4 003A0414 80 03 01 28 */ lwz r0, 0x128(r3)
/* 803A34B8 003A0418 80 A3 01 24 */ lwz r5, 0x124(r3)
/* 803A34BC 003A041C 54 06 02 3E */ clrlwi r6, r0, 8
/* 803A34C0 003A0420 54 A7 02 3E */ clrlwi r7, r5, 8
/* 803A34C4 003A0424 7C 07 30 40 */ cmplw r7, r6
/* 803A34C8 003A0428 40 82 00 18 */ bne lbl_803A34E0
/* 803A34CC 003A042C 54 A4 46 3E */ srwi r4, r5, 0x18
/* 803A34D0 003A0430 38 00 00 00 */ li r0, 0
/* 803A34D4 003A0434 B0 83 01 2C */ sth r4, 0x12c(r3)
/* 803A34D8 003A0438 98 03 01 2E */ stb r0, 0x12e(r3)
/* 803A34DC 003A043C 4E 80 00 20 */ blr
lbl_803A34E0:
/* 803A34E0 003A0440 40 80 00 B0 */ bge lbl_803A3590
/* 803A34E4 003A0444 54 C4 60 26 */ slwi r4, r6, 0xc
/* 803A34E8 003A0448 38 00 00 0B */ li r0, 0xb
/* 803A34EC 003A044C 7C C4 3B 96 */ divwu r6, r4, r7
/* 803A34F0 003A0450 39 40 00 00 */ li r10, 0
/* 803A34F4 003A0454 38 80 00 01 */ li r4, 1
/* 803A34F8 003A0458 54 C7 A3 3E */ srwi r7, r6, 0xc
/* 803A34FC 003A045C 7C 09 03 A6 */ mtctr r0
lbl_803A3500:
/* 803A3500 003A0460 38 0A 00 01 */ addi r0, r10, 1
/* 803A3504 003A0464 7C 80 00 30 */ slw r0, r4, r0
/* 803A3508 003A0468 7C 07 00 40 */ cmplw r7, r0
/* 803A350C 003A046C 41 80 00 0C */ blt lbl_803A3518
/* 803A3510 003A0470 39 4A 00 01 */ addi r10, r10, 1
/* 803A3514 003A0474 42 00 FF EC */ bdnz lbl_803A3500
lbl_803A3518:
/* 803A3518 003A0478 38 00 00 01 */ li r0, 1
/* 803A351C 003A047C 3C 80 80 3F */ lis r4, lbl_803F2FD8@ha
/* 803A3520 003A0480 7C 00 50 30 */ slw r0, r0, r10
/* 803A3524 003A0484 39 20 00 0B */ li r9, 0xb
/* 803A3528 003A0488 7D 06 03 96 */ divwu r8, r6, r0
/* 803A352C 003A048C 38 84 2F D8 */ addi r4, r4, lbl_803F2FD8@l
/* 803A3530 003A0490 38 84 00 16 */ addi r4, r4, 0x16
lbl_803A3534:
/* 803A3534 003A0494 A0 04 00 00 */ lhz r0, 0(r4)
/* 803A3538 003A0498 7C 08 00 40 */ cmplw r8, r0
/* 803A353C 003A049C 41 81 00 10 */ bgt lbl_803A354C
/* 803A3540 003A04A0 38 84 FF FE */ addi r4, r4, -2
/* 803A3544 003A04A4 39 29 FF FF */ addi r9, r9, -1
/* 803A3548 003A04A8 4B FF FF EC */ b lbl_803A3534
lbl_803A354C:
/* 803A354C 003A04AC 1C 0A 00 0C */ mulli r0, r10, 0xc
/* 803A3550 003A04B0 54 A6 46 3E */ srwi r6, r5, 0x18
/* 803A3554 003A04B4 3C 80 80 3F */ lis r4, lbl_803F2FD8@ha
/* 803A3558 003A04B8 55 27 08 3C */ slwi r7, r9, 1
/* 803A355C 003A04BC 7C 00 4A 14 */ add r0, r0, r9
/* 803A3560 003A04C0 38 A4 2F D8 */ addi r5, r4, lbl_803F2FD8@l
/* 803A3564 003A04C4 7C 06 02 14 */ add r0, r6, r0
/* 803A3568 003A04C8 B0 03 01 2C */ sth r0, 0x12c(r3)
/* 803A356C 003A04CC 7C 85 3A 14 */ add r4, r5, r7
/* 803A3570 003A04D0 7C A5 3A 2E */ lhzx r5, r5, r7
/* 803A3574 003A04D4 A0 04 00 02 */ lhz r0, 2(r4)
/* 803A3578 003A04D8 7C 85 40 50 */ subf r4, r5, r8
/* 803A357C 003A04DC 1C 84 00 64 */ mulli r4, r4, 0x64
/* 803A3580 003A04E0 7C 05 00 50 */ subf r0, r5, r0
/* 803A3584 003A04E4 7C 04 03 96 */ divwu r0, r4, r0
/* 803A3588 003A04E8 98 03 01 2E */ stb r0, 0x12e(r3)
/* 803A358C 003A04EC 4E 80 00 20 */ blr
lbl_803A3590:
/* 803A3590 003A04F0 54 E4 60 26 */ slwi r4, r7, 0xc
/* 803A3594 003A04F4 38 00 00 0B */ li r0, 0xb
/* 803A3598 003A04F8 7C C4 33 96 */ divwu r6, r4, r6
/* 803A359C 003A04FC 39 00 00 00 */ li r8, 0
/* 803A35A0 003A0500 38 80 00 01 */ li r4, 1
/* 803A35A4 003A0504 54 C7 A3 3E */ srwi r7, r6, 0xc
/* 803A35A8 003A0508 7C 09 03 A6 */ mtctr r0
lbl_803A35AC:
/* 803A35AC 003A050C 38 08 00 01 */ addi r0, r8, 1
/* 803A35B0 003A0510 7C 80 00 30 */ slw r0, r4, r0
/* 803A35B4 003A0514 7C 07 00 40 */ cmplw r7, r0
/* 803A35B8 003A0518 41 80 00 0C */ blt lbl_803A35C4
/* 803A35BC 003A051C 39 08 00 01 */ addi r8, r8, 1
/* 803A35C0 003A0520 42 00 FF EC */ bdnz lbl_803A35AC
lbl_803A35C4:
/* 803A35C4 003A0524 38 00 00 01 */ li r0, 1
/* 803A35C8 003A0528 3C 80 80 3F */ lis r4, lbl_803F2FD8@ha
/* 803A35CC 003A052C 7C 00 40 30 */ slw r0, r0, r8
/* 803A35D0 003A0530 38 E0 00 0B */ li r7, 0xb
/* 803A35D4 003A0534 7C C6 03 96 */ divwu r6, r6, r0
/* 803A35D8 003A0538 38 84 2F D8 */ addi r4, r4, lbl_803F2FD8@l
/* 803A35DC 003A053C 38 84 00 16 */ addi r4, r4, 0x16
lbl_803A35E0:
/* 803A35E0 003A0540 A0 04 00 00 */ lhz r0, 0(r4)
/* 803A35E4 003A0544 7C 06 00 40 */ cmplw r6, r0
/* 803A35E8 003A0548 41 81 00 10 */ bgt lbl_803A35F8
/* 803A35EC 003A054C 38 84 FF FE */ addi r4, r4, -2
/* 803A35F0 003A0550 38 E7 FF FF */ addi r7, r7, -1
/* 803A35F4 003A0554 4B FF FF EC */ b lbl_803A35E0
lbl_803A35F8:
/* 803A35F8 003A0558 1C 88 00 0C */ mulli r4, r8, 0xc
/* 803A35FC 003A055C 54 A0 46 3E */ srwi r0, r5, 0x18
/* 803A3600 003A0560 7C 87 22 14 */ add r4, r7, r4
/* 803A3604 003A0564 7C 04 00 00 */ cmpw r4, r0
/* 803A3608 003A0568 40 81 00 14 */ ble lbl_803A361C
/* 803A360C 003A056C 38 00 00 00 */ li r0, 0
/* 803A3610 003A0570 98 03 01 2E */ stb r0, 0x12e(r3)
/* 803A3614 003A0574 B0 03 01 2C */ sth r0, 0x12c(r3)
/* 803A3618 003A0578 4E 80 00 20 */ blr
lbl_803A361C:
/* 803A361C 003A057C 7C 04 00 50 */ subf r0, r4, r0
/* 803A3620 003A0580 3C 80 80 3F */ lis r4, lbl_803F2FD8@ha
/* 803A3624 003A0584 B0 03 01 2C */ sth r0, 0x12c(r3)
/* 803A3628 003A0588 54 E0 08 3C */ slwi r0, r7, 1
/* 803A362C 003A058C 38 84 2F D8 */ addi r4, r4, lbl_803F2FD8@l
/* 803A3630 003A0590 7C A4 02 2E */ lhzx r5, r4, r0
/* 803A3634 003A0594 7C 84 02 14 */ add r4, r4, r0
/* 803A3638 003A0598 A0 04 00 02 */ lhz r0, 2(r4)
/* 803A363C 003A059C 7C 86 28 50 */ subf r4, r6, r5
/* 803A3640 003A05A0 1C 84 00 64 */ mulli r4, r4, 0x64
/* 803A3644 003A05A4 7C 05 00 50 */ subf r0, r5, r0
/* 803A3648 003A05A8 7C 04 03 96 */ divwu r0, r4, r0
/* 803A364C 003A05AC 98 03 01 2E */ stb r0, 0x12e(r3)
/* 803A3650 003A05B0 4E 80 00 20 */ blr
.global mcmdSetADSR
mcmdSetADSR:
/* 803A3654 003A05B4 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 803A3658 003A05B8 7C 08 02 A6 */ mflr r0
/* 803A365C 003A05BC 90 01 00 54 */ stw r0, 0x54(r1)
/* 803A3660 003A05C0 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 803A3664 003A05C4 7C 7F 1B 78 */ mr r31, r3
/* 803A3668 003A05C8 93 C1 00 48 */ stw r30, 0x48(r1)
/* 803A366C 003A05CC 7C 9E 23 78 */ mr r30, r4
/* 803A3670 003A05D0 80 04 00 00 */ lwz r0, 0(r4)
/* 803A3674 003A05D4 54 03 C4 3E */ rlwinm r3, r0, 0x18, 0x10, 0x1f
/* 803A3678 003A05D8 4B FF F0 59 */ bl dataGetCurve
/* 803A367C 003A05DC 28 03 00 00 */ cmplwi r3, 0
/* 803A3680 003A05E0 41 82 02 14 */ beq lbl_803A3894
/* 803A3684 003A05E4 80 1E 00 00 */ lwz r0, 0(r30)
/* 803A3688 003A05E8 54 00 46 3F */ rlwinm. r0, r0, 8, 0x18, 0x1f
/* 803A368C 003A05EC 40 82 00 5C */ bne lbl_803A36E8
/* 803A3690 003A05F0 A0 C3 00 00 */ lhz r6, 0(r3)
/* 803A3694 003A05F4 38 81 00 08 */ addi r4, r1, 8
/* 803A3698 003A05F8 38 A0 00 00 */ li r5, 0
/* 803A369C 003A05FC 7C C0 46 70 */ srawi r0, r6, 8
/* 803A36A0 003A0600 50 C0 42 2E */ rlwimi r0, r6, 8, 8, 0x17
/* 803A36A4 003A0604 B0 01 00 08 */ sth r0, 8(r1)
/* 803A36A8 003A0608 A0 C3 00 02 */ lhz r6, 2(r3)
/* 803A36AC 003A060C 7C C0 46 70 */ srawi r0, r6, 8
/* 803A36B0 003A0610 50 C0 42 2E */ rlwimi r0, r6, 8, 8, 0x17
/* 803A36B4 003A0614 B0 01 00 0A */ sth r0, 0xa(r1)
/* 803A36B8 003A0618 A0 C3 00 04 */ lhz r6, 4(r3)
/* 803A36BC 003A061C 7C C0 46 70 */ srawi r0, r6, 8
/* 803A36C0 003A0620 50 C0 42 2E */ rlwimi r0, r6, 8, 8, 0x17
/* 803A36C4 003A0624 B0 01 00 0C */ sth r0, 0xc(r1)
/* 803A36C8 003A0628 A0 63 00 06 */ lhz r3, 6(r3)
/* 803A36CC 003A062C 7C 60 46 70 */ srawi r0, r3, 8
/* 803A36D0 003A0630 50 60 42 2E */ rlwimi r0, r3, 8, 8, 0x17
/* 803A36D4 003A0634 B0 01 00 0E */ sth r0, 0xe(r1)
/* 803A36D8 003A0638 80 1F 00 F4 */ lwz r0, 0xf4(r31)
/* 803A36DC 003A063C 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 803A36E0 003A0640 48 00 FC FD */ bl hwSetADSR
/* 803A36E4 003A0644 48 00 01 A4 */ b lbl_803A3888
lbl_803A36E8:
/* 803A36E8 003A0648 A1 03 00 08 */ lhz r8, 8(r3)
/* 803A36EC 003A064C 3C 80 80 3F */ lis r4, lbl_803F3DA4@ha
/* 803A36F0 003A0650 38 E4 3D A4 */ addi r7, r4, lbl_803F3DA4@l
/* 803A36F4 003A0654 88 83 00 01 */ lbz r4, 1(r3)
/* 803A36F8 003A0658 7D 06 46 70 */ srawi r6, r8, 8
/* 803A36FC 003A065C 88 03 00 00 */ lbz r0, 0(r3)
/* 803A3700 003A0660 51 06 42 2E */ rlwimi r6, r8, 8, 8, 0x17
/* 803A3704 003A0664 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17
/* 803A3708 003A0668 54 C8 04 3E */ clrlwi r8, r6, 0x10
/* 803A370C 003A066C 88 A3 00 02 */ lbz r5, 2(r3)
/* 803A3710 003A0670 7D 08 2E 70 */ srawi r8, r8, 5
/* 803A3714 003A0674 C0 02 D5 68 */ lfs f0, lbl_805AF288@sda21(r2)
/* 803A3718 003A0678 55 04 10 3A */ slwi r4, r8, 2
/* 803A371C 003A067C 88 C3 00 03 */ lbz r6, 3(r3)
/* 803A3720 003A0680 7C 27 24 2E */ lfsx f1, r7, r4
/* 803A3724 003A0684 50 A0 82 1E */ rlwimi r0, r5, 0x10, 8, 0xf
/* 803A3728 003A0688 50 C0 C0 0E */ rlwimi r0, r6, 0x18, 0, 7
/* 803A372C 003A068C EC 00 00 72 */ fmuls f0, f0, f1
/* 803A3730 003A0690 90 01 00 08 */ stw r0, 8(r1)
/* 803A3734 003A0694 88 83 00 05 */ lbz r4, 5(r3)
/* 803A3738 003A0698 FC 00 00 1E */ fctiwz f0, f0
/* 803A373C 003A069C 88 A3 00 04 */ lbz r5, 4(r3)
/* 803A3740 003A06A0 88 C3 00 06 */ lbz r6, 6(r3)
/* 803A3744 003A06A4 50 85 44 2E */ rlwimi r5, r4, 8, 0x10, 0x17
/* 803A3748 003A06A8 88 E3 00 07 */ lbz r7, 7(r3)
/* 803A374C 003A06AC D8 01 00 20 */ stfd f0, 0x20(r1)
/* 803A3750 003A06B0 50 C5 82 1E */ rlwimi r5, r6, 0x10, 8, 0xf
/* 803A3754 003A06B4 80 81 00 24 */ lwz r4, 0x24(r1)
/* 803A3758 003A06B8 50 E5 C0 0E */ rlwimi r5, r7, 0x18, 0, 7
/* 803A375C 003A06BC 90 A1 00 0C */ stw r5, 0xc(r1)
/* 803A3760 003A06C0 B0 81 00 10 */ sth r4, 0x10(r1)
/* 803A3764 003A06C4 A0 A3 00 0A */ lhz r5, 0xa(r3)
/* 803A3768 003A06C8 7C A4 46 70 */ srawi r4, r5, 8
/* 803A376C 003A06CC 50 A4 42 2E */ rlwimi r4, r5, 8, 8, 0x17
/* 803A3770 003A06D0 B0 81 00 12 */ sth r4, 0x12(r1)
/* 803A3774 003A06D4 88 83 00 0D */ lbz r4, 0xd(r3)
/* 803A3778 003A06D8 88 E3 00 0C */ lbz r7, 0xc(r3)
/* 803A377C 003A06DC 50 87 44 2E */ rlwimi r7, r4, 8, 0x10, 0x17
/* 803A3780 003A06E0 88 A3 00 0E */ lbz r5, 0xe(r3)
/* 803A3784 003A06E4 88 83 00 0F */ lbz r4, 0xf(r3)
/* 803A3788 003A06E8 50 A7 82 1E */ rlwimi r7, r5, 0x10, 8, 0xf
/* 803A378C 003A06EC 88 C3 00 10 */ lbz r6, 0x10(r3)
/* 803A3790 003A06F0 7C E8 3B 78 */ mr r8, r7
/* 803A3794 003A06F4 88 A3 00 11 */ lbz r5, 0x11(r3)
/* 803A3798 003A06F8 50 88 C0 0E */ rlwimi r8, r4, 0x18, 0, 7
/* 803A379C 003A06FC 88 E3 00 12 */ lbz r7, 0x12(r3)
/* 803A37A0 003A0700 3C 88 80 00 */ addis r4, r8, 0x8000
/* 803A37A4 003A0704 50 A6 44 2E */ rlwimi r6, r5, 8, 0x10, 0x17
/* 803A37A8 003A0708 88 63 00 13 */ lbz r3, 0x13(r3)
/* 803A37AC 003A070C 50 E6 82 1E */ rlwimi r6, r7, 0x10, 8, 0xf
/* 803A37B0 003A0710 28 04 00 00 */ cmplwi r4, 0
/* 803A37B4 003A0714 50 66 C0 0E */ rlwimi r6, r3, 0x18, 0, 7
/* 803A37B8 003A0718 41 82 00 58 */ beq lbl_803A3810
/* 803A37BC 003A071C 80 BF 01 58 */ lwz r5, 0x158(r31)
/* 803A37C0 003A0720 3C 80 43 30 */ lis r4, 0x4330
/* 803A37C4 003A0724 6D 03 80 00 */ xoris r3, r8, 0x8000
/* 803A37C8 003A0728 90 81 00 28 */ stw r4, 0x28(r1)
/* 803A37CC 003A072C C8 22 D5 78 */ lfd f1, lbl_805AF298@sda21(r2)
/* 803A37D0 003A0730 90 A1 00 2C */ stw r5, 0x2c(r1)
/* 803A37D4 003A0734 C0 62 D5 6C */ lfs f3, lbl_805AF28C@sda21(r2)
/* 803A37D8 003A0738 C8 01 00 28 */ lfd f0, 0x28(r1)
/* 803A37DC 003A073C 90 61 00 34 */ stw r3, 0x34(r1)
/* 803A37E0 003A0740 EC 40 08 28 */ fsubs f2, f0, f1
/* 803A37E4 003A0744 C8 22 D5 80 */ lfd f1, lbl_805AF2A0@sda21(r2)
/* 803A37E8 003A0748 90 81 00 30 */ stw r4, 0x30(r1)
/* 803A37EC 003A074C C8 01 00 30 */ lfd f0, 0x30(r1)
/* 803A37F0 003A0750 EC 43 00 B2 */ fmuls f2, f3, f2
/* 803A37F4 003A0754 EC 00 08 28 */ fsubs f0, f0, f1
/* 803A37F8 003A0758 EC 02 00 32 */ fmuls f0, f2, f0
/* 803A37FC 003A075C FC 00 00 1E */ fctiwz f0, f0
/* 803A3800 003A0760 D8 01 00 38 */ stfd f0, 0x38(r1)
/* 803A3804 003A0764 80 61 00 3C */ lwz r3, 0x3c(r1)
/* 803A3808 003A0768 7C 00 1A 14 */ add r0, r0, r3
/* 803A380C 003A076C 90 01 00 08 */ stw r0, 8(r1)
lbl_803A3810:
/* 803A3810 003A0770 3C 06 80 00 */ addis r0, r6, 0x8000
/* 803A3814 003A0774 28 00 00 00 */ cmplwi r0, 0
/* 803A3818 003A0778 41 82 00 5C */ beq lbl_803A3874
/* 803A381C 003A077C 88 9F 01 2F */ lbz r4, 0x12f(r31)
/* 803A3820 003A0780 3C 60 43 30 */ lis r3, 0x4330
/* 803A3824 003A0784 6C C0 80 00 */ xoris r0, r6, 0x8000
/* 803A3828 003A0788 90 61 00 38 */ stw r3, 0x38(r1)
/* 803A382C 003A078C C8 22 D5 78 */ lfd f1, lbl_805AF298@sda21(r2)
/* 803A3830 003A0790 90 81 00 3C */ stw r4, 0x3c(r1)
/* 803A3834 003A0794 C0 62 D5 70 */ lfs f3, lbl_805AF290@sda21(r2)
/* 803A3838 003A0798 C8 01 00 38 */ lfd f0, 0x38(r1)
/* 803A383C 003A079C 90 01 00 34 */ stw r0, 0x34(r1)
/* 803A3840 003A07A0 EC 40 08 28 */ fsubs f2, f0, f1
/* 803A3844 003A07A4 C8 22 D5 80 */ lfd f1, lbl_805AF2A0@sda21(r2)
/* 803A3848 003A07A8 90 61 00 30 */ stw r3, 0x30(r1)
/* 803A384C 003A07AC 80 61 00 0C */ lwz r3, 0xc(r1)
/* 803A3850 003A07B0 C8 01 00 30 */ lfd f0, 0x30(r1)
/* 803A3854 003A07B4 EC 43 00 B2 */ fmuls f2, f3, f2
/* 803A3858 003A07B8 EC 00 08 28 */ fsubs f0, f0, f1
/* 803A385C 003A07BC EC 02 00 32 */ fmuls f0, f2, f0
/* 803A3860 003A07C0 FC 00 00 1E */ fctiwz f0, f0
/* 803A3864 003A07C4 D8 01 00 28 */ stfd f0, 0x28(r1)
/* 803A3868 003A07C8 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803A386C 003A07CC 7C 03 02 14 */ add r0, r3, r0
/* 803A3870 003A07D0 90 01 00 0C */ stw r0, 0xc(r1)
lbl_803A3874:
/* 803A3874 003A07D4 80 1F 00 F4 */ lwz r0, 0xf4(r31)
/* 803A3878 003A07D8 38 81 00 08 */ addi r4, r1, 8
/* 803A387C 003A07DC 38 A0 00 01 */ li r5, 1
/* 803A3880 003A07E0 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 803A3884 003A07E4 48 00 FB 59 */ bl hwSetADSR
lbl_803A3888:
/* 803A3888 003A07E8 80 1F 01 18 */ lwz r0, 0x118(r31)
/* 803A388C 003A07EC 60 00 01 00 */ ori r0, r0, 0x100
/* 803A3890 003A07F0 90 1F 01 18 */ stw r0, 0x118(r31)
lbl_803A3894:
/* 803A3894 003A07F4 80 01 00 54 */ lwz r0, 0x54(r1)
/* 803A3898 003A07F8 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 803A389C 003A07FC 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 803A38A0 003A0800 7C 08 03 A6 */ mtlr r0
/* 803A38A4 003A0804 38 21 00 50 */ addi r1, r1, 0x50
/* 803A38A8 003A0808 4E 80 00 20 */ blr
.global mcmdSetADSRFromCtrl
mcmdSetADSRFromCtrl:
/* 803A38AC 003A080C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 803A38B0 003A0810 7C 08 02 A6 */ mflr r0
/* 803A38B4 003A0814 90 01 00 44 */ stw r0, 0x44(r1)
/* 803A38B8 003A0818 DB E1 00 30 */ stfd f31, 0x30(r1)
/* 803A38BC 003A081C F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0
/* 803A38C0 003A0820 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 803A38C4 003A0824 93 C1 00 28 */ stw r30, 0x28(r1)
/* 803A38C8 003A0828 7C 7E 1B 78 */ mr r30, r3
/* 803A38CC 003A082C 80 04 00 00 */ lwz r0, 0(r4)
/* 803A38D0 003A0830 7C 9F 23 78 */ mr r31, r4
/* 803A38D4 003A0834 88 83 01 21 */ lbz r4, 0x121(r3)
/* 803A38D8 003A0838 88 BE 01 22 */ lbz r5, 0x122(r30)
/* 803A38DC 003A083C 54 03 46 3E */ srwi r3, r0, 0x18
/* 803A38E0 003A0840 48 00 E0 2D */ bl inpGetMidiCtrl
/* 803A38E4 003A0844 3C A0 80 3F */ lis r5, lbl_803F3DA4@ha
/* 803A38E8 003A0848 54 66 DD 7A */ rlwinm r6, r3, 0x1b, 0x15, 0x1d
/* 803A38EC 003A084C 38 65 3D A4 */ addi r3, r5, lbl_803F3DA4@l
/* 803A38F0 003A0850 80 1F 00 00 */ lwz r0, 0(r31)
/* 803A38F4 003A0854 7F E3 34 2E */ lfsx f31, r3, r6
/* 803A38F8 003A0858 88 9E 01 21 */ lbz r4, 0x121(r30)
/* 803A38FC 003A085C 54 03 C6 3E */ rlwinm r3, r0, 0x18, 0x18, 0x1f
/* 803A3900 003A0860 88 BE 01 22 */ lbz r5, 0x122(r30)
/* 803A3904 003A0864 48 00 E0 09 */ bl inpGetMidiCtrl
/* 803A3908 003A0868 3C 80 80 3F */ lis r4, lbl_803F2FF4@ha
/* 803A390C 003A086C 54 60 DD 7A */ rlwinm r0, r3, 0x1b, 0x15, 0x1d
/* 803A3910 003A0870 38 64 2F F4 */ addi r3, r4, lbl_803F2FF4@l
/* 803A3914 003A0874 7C 03 00 2E */ lwzx r0, r3, r0
/* 803A3918 003A0878 90 01 00 08 */ stw r0, 8(r1)
/* 803A391C 003A087C 80 1F 00 00 */ lwz r0, 0(r31)
/* 803A3920 003A0880 88 9E 01 21 */ lbz r4, 0x121(r30)
/* 803A3924 003A0884 88 BE 01 22 */ lbz r5, 0x122(r30)
/* 803A3928 003A0888 54 03 86 3E */ rlwinm r3, r0, 0x10, 0x18, 0x1f
/* 803A392C 003A088C 48 00 DF E1 */ bl inpGetMidiCtrl
/* 803A3930 003A0890 3C 80 80 3F */ lis r4, lbl_803F2FF4@ha
/* 803A3934 003A0894 C0 02 D5 88 */ lfs f0, lbl_805AF2A8@sda21(r2)
/* 803A3938 003A0898 54 60 DD 7A */ rlwinm r0, r3, 0x1b, 0x15, 0x1d
/* 803A393C 003A089C 38 64 2F F4 */ addi r3, r4, lbl_803F2FF4@l
/* 803A3940 003A08A0 EC 20 07 F2 */ fmuls f1, f0, f31
/* 803A3944 003A08A4 7C 03 00 2E */ lwzx r0, r3, r0
/* 803A3948 003A08A8 90 01 00 0C */ stw r0, 0xc(r1)
/* 803A394C 003A08AC 4B FE 60 09 */ bl __cvt_fp2unsigned
/* 803A3950 003A08B0 3C 80 80 3F */ lis r4, lbl_803F39A4@ha
/* 803A3954 003A08B4 38 84 39 A4 */ addi r4, r4, lbl_803F39A4@l
/* 803A3958 003A08B8 7C 04 18 AE */ lbzx r0, r4, r3
/* 803A395C 003A08BC 20 00 00 C1 */ subfic r0, r0, 0xc1
/* 803A3960 003A08C0 B0 01 00 10 */ sth r0, 0x10(r1)
/* 803A3964 003A08C4 80 1F 00 04 */ lwz r0, 4(r31)
/* 803A3968 003A08C8 88 9E 01 21 */ lbz r4, 0x121(r30)
/* 803A396C 003A08CC 88 BE 01 22 */ lbz r5, 0x122(r30)
/* 803A3970 003A08D0 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 803A3974 003A08D4 48 00 DF 99 */ bl inpGetMidiCtrl
/* 803A3978 003A08D8 3C 80 80 3F */ lis r4, lbl_803F2FF4@ha
/* 803A397C 003A08DC 3C 00 80 00 */ lis r0, 0x8000
/* 803A3980 003A08E0 54 65 DD 7A */ rlwinm r5, r3, 0x1b, 0x15, 0x1d
/* 803A3984 003A08E4 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A3988 003A08E8 38 64 2F F4 */ addi r3, r4, lbl_803F2FF4@l
/* 803A398C 003A08EC 38 81 00 08 */ addi r4, r1, 8
/* 803A3990 003A08F0 7C 63 28 2E */ lwzx r3, r3, r5
/* 803A3994 003A08F4 38 A0 00 02 */ li r5, 2
/* 803A3998 003A08F8 90 01 00 18 */ stw r0, 0x18(r1)
/* 803A399C 003A08FC B0 61 00 12 */ sth r3, 0x12(r1)
/* 803A39A0 003A0900 80 1E 00 F4 */ lwz r0, 0xf4(r30)
/* 803A39A4 003A0904 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 803A39A8 003A0908 48 00 FA 35 */ bl hwSetADSR
/* 803A39AC 003A090C 80 1E 01 18 */ lwz r0, 0x118(r30)
/* 803A39B0 003A0910 60 00 01 00 */ ori r0, r0, 0x100
/* 803A39B4 003A0914 90 1E 01 18 */ stw r0, 0x118(r30)
/* 803A39B8 003A0918 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0
/* 803A39BC 003A091C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 803A39C0 003A0920 CB E1 00 30 */ lfd f31, 0x30(r1)
/* 803A39C4 003A0924 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 803A39C8 003A0928 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 803A39CC 003A092C 7C 08 03 A6 */ mtlr r0
/* 803A39D0 003A0930 38 21 00 40 */ addi r1, r1, 0x40
/* 803A39D4 003A0934 4E 80 00 20 */ blr
.global mcmdSetPitchADSR
mcmdSetPitchADSR:
/* 803A39D8 003A0938 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 803A39DC 003A093C 7C 08 02 A6 */ mflr r0
/* 803A39E0 003A0940 90 01 00 54 */ stw r0, 0x54(r1)
/* 803A39E4 003A0944 39 61 00 50 */ addi r11, r1, 0x50
/* 803A39E8 003A0948 4B FE 60 95 */ bl _savegpr_27
/* 803A39EC 003A094C 80 04 00 00 */ lwz r0, 0(r4)
/* 803A39F0 003A0950 7C 7F 1B 78 */ mr r31, r3
/* 803A39F4 003A0954 7C 9B 23 78 */ mr r27, r4
/* 803A39F8 003A0958 54 03 C4 3E */ rlwinm r3, r0, 0x18, 0x10, 0x1f
/* 803A39FC 003A095C 4B FF EC D5 */ bl dataGetCurve
/* 803A3A00 003A0960 28 03 00 00 */ cmplwi r3, 0
/* 803A3A04 003A0964 41 82 02 38 */ beq lbl_803A3C3C
/* 803A3A08 003A0968 80 1B 00 04 */ lwz r0, 4(r27)
/* 803A3A0C 003A096C 7C 00 07 74 */ extsb r0, r0
/* 803A3A10 003A0970 54 00 40 2E */ slwi r0, r0, 8
/* 803A3A14 003A0974 B0 1F 02 04 */ sth r0, 0x204(r31)
/* 803A3A18 003A0978 A8 BF 02 04 */ lha r5, 0x204(r31)
/* 803A3A1C 003A097C 2C 05 00 00 */ cmpwi r5, 0
/* 803A3A20 003A0980 41 80 00 38 */ blt lbl_803A3A58
/* 803A3A24 003A0984 80 1B 00 04 */ lwz r0, 4(r27)
/* 803A3A28 003A0988 3C 80 51 EC */ lis r4, 0x51EB851F@ha
/* 803A3A2C 003A098C 38 84 85 1F */ addi r4, r4, 0x51EB851F@l
/* 803A3A30 003A0990 54 00 C2 3E */ srwi r0, r0, 8
/* 803A3A34 003A0994 7C 00 07 74 */ extsb r0, r0
/* 803A3A38 003A0998 54 00 40 2E */ slwi r0, r0, 8
/* 803A3A3C 003A099C 7C 04 00 96 */ mulhw r0, r4, r0
/* 803A3A40 003A09A0 7C 00 2E 70 */ srawi r0, r0, 5
/* 803A3A44 003A09A4 54 04 0F FE */ srwi r4, r0, 0x1f
/* 803A3A48 003A09A8 7C 00 22 14 */ add r0, r0, r4
/* 803A3A4C 003A09AC 7C 05 02 14 */ add r0, r5, r0
/* 803A3A50 003A09B0 B0 1F 02 04 */ sth r0, 0x204(r31)
/* 803A3A54 003A09B4 48 00 00 34 */ b lbl_803A3A88
lbl_803A3A58:
/* 803A3A58 003A09B8 80 1B 00 04 */ lwz r0, 4(r27)
/* 803A3A5C 003A09BC 3C 80 51 EC */ lis r4, 0x51EB851F@ha
/* 803A3A60 003A09C0 38 84 85 1F */ addi r4, r4, 0x51EB851F@l
/* 803A3A64 003A09C4 54 00 C2 3E */ srwi r0, r0, 8
/* 803A3A68 003A09C8 7C 00 07 74 */ extsb r0, r0
/* 803A3A6C 003A09CC 54 00 40 2E */ slwi r0, r0, 8
/* 803A3A70 003A09D0 7C 04 00 96 */ mulhw r0, r4, r0
/* 803A3A74 003A09D4 7C 00 2E 70 */ srawi r0, r0, 5
/* 803A3A78 003A09D8 54 04 0F FE */ srwi r4, r0, 0x1f
/* 803A3A7C 003A09DC 7C 00 22 14 */ add r0, r0, r4
/* 803A3A80 003A09E0 7C 00 28 50 */ subf r0, r0, r5
/* 803A3A84 003A09E4 B0 1F 02 04 */ sth r0, 0x204(r31)
lbl_803A3A88:
/* 803A3A88 003A09E8 88 03 00 0D */ lbz r0, 0xd(r3)
/* 803A3A8C 003A09EC 88 83 00 0E */ lbz r4, 0xe(r3)
/* 803A3A90 003A09F0 88 C3 00 0C */ lbz r6, 0xc(r3)
/* 803A3A94 003A09F4 50 06 44 2E */ rlwimi r6, r0, 8, 0x10, 0x17
/* 803A3A98 003A09F8 50 86 82 1E */ rlwimi r6, r4, 0x10, 8, 0xf
/* 803A3A9C 003A09FC 88 03 00 0F */ lbz r0, 0xf(r3)
/* 803A3AA0 003A0A00 7C C7 33 78 */ mr r7, r6
/* 803A3AA4 003A0A04 A0 A3 00 08 */ lhz r5, 8(r3)
/* 803A3AA8 003A0A08 50 07 C0 0E */ rlwimi r7, r0, 0x18, 0, 7
/* 803A3AAC 003A0A0C 89 63 00 01 */ lbz r11, 1(r3)
/* 803A3AB0 003A0A10 88 83 00 00 */ lbz r4, 0(r3)
/* 803A3AB4 003A0A14 3D 07 80 00 */ addis r8, r7, 0x8000
/* 803A3AB8 003A0A18 51 64 44 2E */ rlwimi r4, r11, 8, 0x10, 0x17
/* 803A3ABC 003A0A1C 7C BC 46 70 */ srawi r28, r5, 8
/* 803A3AC0 003A0A20 88 03 00 02 */ lbz r0, 2(r3)
/* 803A3AC4 003A0A24 28 08 00 00 */ cmplwi r8, 0
/* 803A3AC8 003A0A28 89 23 00 11 */ lbz r9, 0x11(r3)
/* 803A3ACC 003A0A2C 50 BC 42 2E */ rlwimi r28, r5, 8, 8, 0x17
/* 803A3AD0 003A0A30 89 43 00 10 */ lbz r10, 0x10(r3)
/* 803A3AD4 003A0A34 50 04 82 1E */ rlwimi r4, r0, 0x10, 8, 0xf
/* 803A3AD8 003A0A38 51 2A 44 2E */ rlwimi r10, r9, 8, 0x10, 0x17
/* 803A3ADC 003A0A3C 89 63 00 12 */ lbz r11, 0x12(r3)
/* 803A3AE0 003A0A40 8B 63 00 03 */ lbz r27, 3(r3)
/* 803A3AE4 003A0A44 89 83 00 05 */ lbz r12, 5(r3)
/* 803A3AE8 003A0A48 51 6A 82 1E */ rlwimi r10, r11, 0x10, 8, 0xf
/* 803A3AEC 003A0A4C 8B C3 00 04 */ lbz r30, 4(r3)
/* 803A3AF0 003A0A50 53 64 C0 0E */ rlwimi r4, r27, 0x18, 0, 7
/* 803A3AF4 003A0A54 A0 C3 00 0A */ lhz r6, 0xa(r3)
/* 803A3AF8 003A0A58 51 9E 44 2E */ rlwimi r30, r12, 8, 0x10, 0x17
/* 803A3AFC 003A0A5C 8B A3 00 06 */ lbz r29, 6(r3)
/* 803A3B00 003A0A60 89 23 00 07 */ lbz r9, 7(r3)
/* 803A3B04 003A0A64 7C CC 46 70 */ srawi r12, r6, 8
/* 803A3B08 003A0A68 53 BE 82 1E */ rlwimi r30, r29, 0x10, 8, 0xf
/* 803A3B0C 003A0A6C 88 63 00 13 */ lbz r3, 0x13(r3)
/* 803A3B10 003A0A70 50 CC 42 2E */ rlwimi r12, r6, 8, 8, 0x17
/* 803A3B14 003A0A74 7D 46 53 78 */ mr r6, r10
/* 803A3B18 003A0A78 57 9D 04 3E */ clrlwi r29, r28, 0x10
/* 803A3B1C 003A0A7C 51 3E C0 0E */ rlwimi r30, r9, 0x18, 0, 7
/* 803A3B20 003A0A80 55 9C 04 3E */ clrlwi r28, r12, 0x10
/* 803A3B24 003A0A84 50 66 C0 0E */ rlwimi r6, r3, 0x18, 0, 7
/* 803A3B28 003A0A88 41 82 00 54 */ beq lbl_803A3B7C
/* 803A3B2C 003A0A8C 80 BF 01 58 */ lwz r5, 0x158(r31)
/* 803A3B30 003A0A90 3C 60 43 30 */ lis r3, 0x4330
/* 803A3B34 003A0A94 6C E0 80 00 */ xoris r0, r7, 0x8000
/* 803A3B38 003A0A98 90 61 00 08 */ stw r3, 8(r1)
/* 803A3B3C 003A0A9C C8 22 D5 78 */ lfd f1, lbl_805AF298@sda21(r2)
/* 803A3B40 003A0AA0 90 A1 00 0C */ stw r5, 0xc(r1)
/* 803A3B44 003A0AA4 C0 62 D5 6C */ lfs f3, lbl_805AF28C@sda21(r2)
/* 803A3B48 003A0AA8 C8 01 00 08 */ lfd f0, 8(r1)
/* 803A3B4C 003A0AAC 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A3B50 003A0AB0 EC 40 08 28 */ fsubs f2, f0, f1
/* 803A3B54 003A0AB4 C8 22 D5 80 */ lfd f1, lbl_805AF2A0@sda21(r2)
/* 803A3B58 003A0AB8 90 61 00 10 */ stw r3, 0x10(r1)
/* 803A3B5C 003A0ABC C8 01 00 10 */ lfd f0, 0x10(r1)
/* 803A3B60 003A0AC0 EC 43 00 B2 */ fmuls f2, f3, f2
/* 803A3B64 003A0AC4 EC 00 08 28 */ fsubs f0, f0, f1
/* 803A3B68 003A0AC8 EC 02 00 32 */ fmuls f0, f2, f0
/* 803A3B6C 003A0ACC FC 00 00 1E */ fctiwz f0, f0
/* 803A3B70 003A0AD0 D8 01 00 18 */ stfd f0, 0x18(r1)
/* 803A3B74 003A0AD4 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803A3B78 003A0AD8 7C 84 02 14 */ add r4, r4, r0
lbl_803A3B7C:
/* 803A3B7C 003A0ADC 3C 06 80 00 */ addis r0, r6, 0x8000
/* 803A3B80 003A0AE0 28 00 00 00 */ cmplwi r0, 0
/* 803A3B84 003A0AE4 41 82 00 54 */ beq lbl_803A3BD8
/* 803A3B88 003A0AE8 88 BF 01 2F */ lbz r5, 0x12f(r31)
/* 803A3B8C 003A0AEC 3C 60 43 30 */ lis r3, 0x4330
/* 803A3B90 003A0AF0 6C C0 80 00 */ xoris r0, r6, 0x8000
/* 803A3B94 003A0AF4 90 61 00 20 */ stw r3, 0x20(r1)
/* 803A3B98 003A0AF8 C8 22 D5 78 */ lfd f1, lbl_805AF298@sda21(r2)
/* 803A3B9C 003A0AFC 90 A1 00 24 */ stw r5, 0x24(r1)
/* 803A3BA0 003A0B00 C0 62 D5 70 */ lfs f3, lbl_805AF290@sda21(r2)
/* 803A3BA4 003A0B04 C8 01 00 20 */ lfd f0, 0x20(r1)
/* 803A3BA8 003A0B08 90 01 00 2C */ stw r0, 0x2c(r1)
/* 803A3BAC 003A0B0C EC 40 08 28 */ fsubs f2, f0, f1
/* 803A3BB0 003A0B10 C8 22 D5 80 */ lfd f1, lbl_805AF2A0@sda21(r2)
/* 803A3BB4 003A0B14 90 61 00 28 */ stw r3, 0x28(r1)
/* 803A3BB8 003A0B18 C8 01 00 28 */ lfd f0, 0x28(r1)
/* 803A3BBC 003A0B1C EC 43 00 B2 */ fmuls f2, f3, f2
/* 803A3BC0 003A0B20 EC 00 08 28 */ fsubs f0, f0, f1
/* 803A3BC4 003A0B24 EC 02 00 32 */ fmuls f0, f2, f0
/* 803A3BC8 003A0B28 FC 00 00 1E */ fctiwz f0, f0
/* 803A3BCC 003A0B2C D8 01 00 30 */ stfd f0, 0x30(r1)
/* 803A3BD0 003A0B30 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803A3BD4 003A0B34 7F DE 02 14 */ add r30, r30, r0
lbl_803A3BD8:
/* 803A3BD8 003A0B38 38 60 00 01 */ li r3, 1
/* 803A3BDC 003A0B3C 38 00 00 00 */ li r0, 0
/* 803A3BE0 003A0B40 98 7F 01 DC */ stb r3, 0x1dc(r31)
/* 803A3BE4 003A0B44 7C 83 23 78 */ mr r3, r4
/* 803A3BE8 003A0B48 98 1F 02 02 */ stb r0, 0x202(r31)
/* 803A3BEC 003A0B4C 48 00 56 25 */ bl adsrConvertTimeCents
/* 803A3BF0 003A0B50 90 7F 01 F0 */ stw r3, 0x1f0(r31)
/* 803A3BF4 003A0B54 7F C3 F3 78 */ mr r3, r30
/* 803A3BF8 003A0B58 48 00 56 19 */ bl adsrConvertTimeCents
/* 803A3BFC 003A0B5C 57 A0 F4 BE */ rlwinm r0, r29, 0x1e, 0x12, 0x1f
/* 803A3C00 003A0B60 90 7F 01 F4 */ stw r3, 0x1f4(r31)
/* 803A3C04 003A0B64 28 00 03 FF */ cmplwi r0, 0x3ff
/* 803A3C08 003A0B68 40 81 00 08 */ ble lbl_803A3C10
/* 803A3C0C 003A0B6C 38 00 03 FF */ li r0, 0x3ff
lbl_803A3C10:
/* 803A3C10 003A0B70 3C 80 80 3F */ lis r4, lbl_803F39A4@ha
/* 803A3C14 003A0B74 38 7F 01 DC */ addi r3, r31, 0x1dc
/* 803A3C18 003A0B78 38 84 39 A4 */ addi r4, r4, lbl_803F39A4@l
/* 803A3C1C 003A0B7C 7C 04 00 AE */ lbzx r0, r4, r0
/* 803A3C20 003A0B80 20 00 00 C1 */ subfic r0, r0, 0xc1
/* 803A3C24 003A0B84 B0 1F 01 F8 */ sth r0, 0x1f8(r31)
/* 803A3C28 003A0B88 93 9F 01 FC */ stw r28, 0x1fc(r31)
/* 803A3C2C 003A0B8C 48 00 58 A9 */ bl adsrSetup
/* 803A3C30 003A0B90 80 1F 01 14 */ lwz r0, 0x114(r31)
/* 803A3C34 003A0B94 60 00 02 00 */ ori r0, r0, 0x200
/* 803A3C38 003A0B98 90 1F 01 14 */ stw r0, 0x114(r31)
lbl_803A3C3C:
/* 803A3C3C 003A0B9C 39 61 00 50 */ addi r11, r1, 0x50
/* 803A3C40 003A0BA0 4B FE 5E 89 */ bl _restgpr_27
/* 803A3C44 003A0BA4 80 01 00 54 */ lwz r0, 0x54(r1)
/* 803A3C48 003A0BA8 7C 08 03 A6 */ mtlr r0
/* 803A3C4C 003A0BAC 38 21 00 50 */ addi r1, r1, 0x50
/* 803A3C50 003A0BB0 4E 80 00 20 */ blr
.global sub_803a3c54
sub_803a3c54:
/* 803A3C54 003A0BB4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A3C58 003A0BB8 7C 08 02 A6 */ mflr r0
/* 803A3C5C 003A0BBC 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A3C60 003A0BC0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803A3C64 003A0BC4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803A3C68 003A0BC8 7C 9E 23 78 */ mr r30, r4
/* 803A3C6C 003A0BCC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803A3C70 003A0BD0 7C 7D 1B 78 */ mr r29, r3
/* 803A3C74 003A0BD4 38 7D 01 88 */ addi r3, r29, 0x188
/* 803A3C78 003A0BD8 80 04 00 00 */ lwz r0, 0(r4)
/* 803A3C7C 003A0BDC 54 1F 84 3E */ srwi r31, r0, 0x10
/* 803A3C80 003A0BE0 93 FD 01 88 */ stw r31, 0x188(r29)
/* 803A3C84 003A0BE4 48 00 F2 69 */ bl sndConvertMs
/* 803A3C88 003A0BE8 80 1E 00 00 */ lwz r0, 0(r30)
/* 803A3C8C 003A0BEC 80 7E 00 04 */ lwz r3, 4(r30)
/* 803A3C90 003A0BF0 54 00 42 1E */ rlwinm r0, r0, 8, 8, 0xf
/* 803A3C94 003A0BF4 90 1D 01 70 */ stw r0, 0x170(r29)
/* 803A3C98 003A0BF8 7C 60 07 74 */ extsb r0, r3
/* 803A3C9C 003A0BFC 54 03 80 1E */ slwi r3, r0, 0x10
/* 803A3CA0 003A0C00 80 1D 01 70 */ lwz r0, 0x170(r29)
/* 803A3CA4 003A0C04 7C 00 1A 14 */ add r0, r0, r3
/* 803A3CA8 003A0C08 90 1D 01 80 */ stw r0, 0x180(r29)
/* 803A3CAC 003A0C0C 80 1D 01 88 */ lwz r0, 0x188(r29)
/* 803A3CB0 003A0C10 28 00 00 00 */ cmplwi r0, 0
/* 803A3CB4 003A0C14 41 82 00 10 */ beq lbl_803A3CC4
/* 803A3CB8 003A0C18 7C 03 FB D6 */ divw r0, r3, r31
/* 803A3CBC 003A0C1C 90 1D 01 78 */ stw r0, 0x178(r29)
/* 803A3CC0 003A0C20 48 00 00 08 */ b lbl_803A3CC8
lbl_803A3CC4:
/* 803A3CC4 003A0C24 90 7D 01 78 */ stw r3, 0x178(r29)
lbl_803A3CC8:
/* 803A3CC8 003A0C28 80 1D 01 14 */ lwz r0, 0x114(r29)
/* 803A3CCC 003A0C2C 60 00 20 00 */ ori r0, r0, 0x2000
/* 803A3CD0 003A0C30 90 1D 01 14 */ stw r0, 0x114(r29)
/* 803A3CD4 003A0C34 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A3CD8 003A0C38 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803A3CDC 003A0C3C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803A3CE0 003A0C40 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803A3CE4 003A0C44 7C 08 03 A6 */ mtlr r0
/* 803A3CE8 003A0C48 38 21 00 20 */ addi r1, r1, 0x20
/* 803A3CEC 003A0C4C 4E 80 00 20 */ blr
.global mcmdSetPanning
mcmdSetPanning:
/* 803A3CF0 003A0C50 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A3CF4 003A0C54 7C 08 02 A6 */ mflr r0
/* 803A3CF8 003A0C58 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A3CFC 003A0C5C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803A3D00 003A0C60 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803A3D04 003A0C64 7C 9E 23 78 */ mr r30, r4
/* 803A3D08 003A0C68 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803A3D0C 003A0C6C 7C 7D 1B 78 */ mr r29, r3
/* 803A3D10 003A0C70 38 7D 01 8C */ addi r3, r29, 0x18c
/* 803A3D14 003A0C74 80 04 00 00 */ lwz r0, 0(r4)
/* 803A3D18 003A0C78 54 1F 84 3E */ srwi r31, r0, 0x10
/* 803A3D1C 003A0C7C 93 FD 01 8C */ stw r31, 0x18c(r29)
/* 803A3D20 003A0C80 48 00 F1 CD */ bl sndConvertMs
/* 803A3D24 003A0C84 80 1E 00 00 */ lwz r0, 0(r30)
/* 803A3D28 003A0C88 80 7E 00 04 */ lwz r3, 4(r30)
/* 803A3D2C 003A0C8C 54 00 42 1E */ rlwinm r0, r0, 8, 8, 0xf
/* 803A3D30 003A0C90 90 1D 01 74 */ stw r0, 0x174(r29)
/* 803A3D34 003A0C94 7C 60 07 74 */ extsb r0, r3
/* 803A3D38 003A0C98 54 03 80 1E */ slwi r3, r0, 0x10
/* 803A3D3C 003A0C9C 80 1D 01 74 */ lwz r0, 0x174(r29)
/* 803A3D40 003A0CA0 7C 00 1A 14 */ add r0, r0, r3
/* 803A3D44 003A0CA4 90 1D 01 84 */ stw r0, 0x184(r29)
/* 803A3D48 003A0CA8 80 1D 01 8C */ lwz r0, 0x18c(r29)
/* 803A3D4C 003A0CAC 28 00 00 00 */ cmplwi r0, 0
/* 803A3D50 003A0CB0 41 82 00 10 */ beq lbl_803A3D60
/* 803A3D54 003A0CB4 7C 03 FB D6 */ divw r0, r3, r31
/* 803A3D58 003A0CB8 90 1D 01 7C */ stw r0, 0x17c(r29)
/* 803A3D5C 003A0CBC 48 00 00 08 */ b lbl_803A3D64
lbl_803A3D60:
/* 803A3D60 003A0CC0 90 7D 01 7C */ stw r3, 0x17c(r29)
lbl_803A3D64:
/* 803A3D64 003A0CC4 80 1D 01 14 */ lwz r0, 0x114(r29)
/* 803A3D68 003A0CC8 60 00 20 00 */ ori r0, r0, 0x2000
/* 803A3D6C 003A0CCC 90 1D 01 14 */ stw r0, 0x114(r29)
/* 803A3D70 003A0CD0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A3D74 003A0CD4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803A3D78 003A0CD8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803A3D7C 003A0CDC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803A3D80 003A0CE0 7C 08 03 A6 */ mtlr r0
/* 803A3D84 003A0CE4 38 21 00 20 */ addi r1, r1, 0x20
/* 803A3D88 003A0CE8 4E 80 00 20 */ blr
.global mcmdScaleVolume
mcmdScaleVolume:
/* 803A3D8C 003A0CEC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A3D90 003A0CF0 7C 08 02 A6 */ mflr r0
/* 803A3D94 003A0CF4 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A3D98 003A0CF8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A3D9C 003A0CFC 7C 7F 1B 78 */ mr r31, r3
/* 803A3DA0 003A0D00 93 C1 00 08 */ stw r30, 8(r1)
/* 803A3DA4 003A0D04 80 04 00 04 */ lwz r0, 4(r4)
/* 803A3DA8 003A0D08 80 64 00 00 */ lwz r3, 0(r4)
/* 803A3DAC 003A0D0C 54 00 C6 3F */ rlwinm. r0, r0, 0x18, 0x18, 0x1f
/* 803A3DB0 003A0D10 54 65 C6 3E */ rlwinm r5, r3, 0x18, 0x18, 0x1f
/* 803A3DB4 003A0D14 40 82 00 30 */ bne lbl_803A3DE4
/* 803A3DB8 003A0D18 80 1F 01 54 */ lwz r0, 0x154(r31)
/* 803A3DBC 003A0D1C 3C 60 02 04 */ lis r3, 0x02040811@ha
/* 803A3DC0 003A0D20 38 63 08 11 */ addi r3, r3, 0x02040811@l
/* 803A3DC4 003A0D24 7C 00 29 D6 */ mullw r0, r0, r5
/* 803A3DC8 003A0D28 7C 63 00 16 */ mulhwu r3, r3, r0
/* 803A3DCC 003A0D2C 7C 03 00 50 */ subf r0, r3, r0
/* 803A3DD0 003A0D30 54 00 F8 7E */ srwi r0, r0, 1
/* 803A3DD4 003A0D34 7C 00 1A 14 */ add r0, r0, r3
/* 803A3DD8 003A0D38 54 00 D1 BE */ srwi r0, r0, 6
/* 803A3DDC 003A0D3C 90 1F 01 54 */ stw r0, 0x154(r31)
/* 803A3DE0 003A0D40 48 00 00 2C */ b lbl_803A3E0C
lbl_803A3DE4:
/* 803A3DE4 003A0D44 80 1F 01 58 */ lwz r0, 0x158(r31)
/* 803A3DE8 003A0D48 3C 60 02 04 */ lis r3, 0x02040811@ha
/* 803A3DEC 003A0D4C 38 63 08 11 */ addi r3, r3, 0x02040811@l
/* 803A3DF0 003A0D50 7C 00 29 D6 */ mullw r0, r0, r5
/* 803A3DF4 003A0D54 7C 63 00 16 */ mulhwu r3, r3, r0
/* 803A3DF8 003A0D58 7C 03 00 50 */ subf r0, r3, r0
/* 803A3DFC 003A0D5C 54 00 F8 7E */ srwi r0, r0, 1
/* 803A3E00 003A0D60 7C 00 1A 14 */ add r0, r0, r3
/* 803A3E04 003A0D64 54 00 D1 BE */ srwi r0, r0, 6
/* 803A3E08 003A0D68 90 1F 01 54 */ stw r0, 0x154(r31)
lbl_803A3E0C:
/* 803A3E0C 003A0D6C 80 64 00 00 */ lwz r3, 0(r4)
/* 803A3E10 003A0D70 3C 00 00 7F */ lis r0, 0x7f
/* 803A3E14 003A0D74 80 BF 01 54 */ lwz r5, 0x154(r31)
/* 803A3E18 003A0D78 54 63 02 1E */ rlwinm r3, r3, 0, 8, 0xf
/* 803A3E1C 003A0D7C 7C 65 1A 14 */ add r3, r5, r3
/* 803A3E20 003A0D80 90 7F 01 54 */ stw r3, 0x154(r31)
/* 803A3E24 003A0D84 80 7F 01 54 */ lwz r3, 0x154(r31)
/* 803A3E28 003A0D88 7C 03 00 40 */ cmplw r3, r0
/* 803A3E2C 003A0D8C 40 81 00 08 */ ble lbl_803A3E34
/* 803A3E30 003A0D90 90 1F 01 54 */ stw r0, 0x154(r31)
lbl_803A3E34:
/* 803A3E34 003A0D94 80 64 00 00 */ lwz r3, 0(r4)
/* 803A3E38 003A0D98 80 04 00 04 */ lwz r0, 4(r4)
/* 803A3E3C 003A0D9C 54 63 46 3E */ srwi r3, r3, 0x18
/* 803A3E40 003A0DA0 83 DF 01 54 */ lwz r30, 0x154(r31)
/* 803A3E44 003A0DA4 50 03 44 2E */ rlwimi r3, r0, 8, 0x10, 0x17
/* 803A3E48 003A0DA8 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 803A3E4C 003A0DAC 28 03 FF FF */ cmplwi r3, 0xffff
/* 803A3E50 003A0DB0 41 82 00 48 */ beq lbl_803A3E98
/* 803A3E54 003A0DB4 4B FF E8 7D */ bl dataGetCurve
/* 803A3E58 003A0DB8 28 03 00 00 */ cmplwi r3, 0
/* 803A3E5C 003A0DBC 41 82 00 3C */ beq lbl_803A3E98
/* 803A3E60 003A0DC0 57 C0 84 3E */ srwi r0, r30, 0x10
/* 803A3E64 003A0DC4 57 C5 04 3E */ clrlwi r5, r30, 0x10
/* 803A3E68 003A0DC8 28 00 00 7F */ cmplwi r0, 0x7f
/* 803A3E6C 003A0DCC 40 80 00 24 */ bge lbl_803A3E90
/* 803A3E70 003A0DD0 7C 83 02 14 */ add r4, r3, r0
/* 803A3E74 003A0DD4 7C C3 00 AE */ lbzx r6, r3, r0
/* 803A3E78 003A0DD8 88 64 00 01 */ lbz r3, 1(r4)
/* 803A3E7C 003A0DDC 54 C0 82 1E */ rlwinm r0, r6, 0x10, 8, 0xf
/* 803A3E80 003A0DE0 7C 66 18 50 */ subf r3, r6, r3
/* 803A3E84 003A0DE4 7C 65 19 D6 */ mullw r3, r5, r3
/* 803A3E88 003A0DE8 7F C3 02 14 */ add r30, r3, r0
/* 803A3E8C 003A0DEC 48 00 00 0C */ b lbl_803A3E98
lbl_803A3E90:
/* 803A3E90 003A0DF0 7C 03 00 AE */ lbzx r0, r3, r0
/* 803A3E94 003A0DF4 54 1E 80 1E */ slwi r30, r0, 0x10
lbl_803A3E98:
/* 803A3E98 003A0DF8 93 DF 01 54 */ stw r30, 0x154(r31)
/* 803A3E9C 003A0DFC 80 1F 01 14 */ lwz r0, 0x114(r31)
/* 803A3EA0 003A0E00 60 00 10 00 */ ori r0, r0, 0x1000
/* 803A3EA4 003A0E04 90 1F 01 14 */ stw r0, 0x114(r31)
/* 803A3EA8 003A0E08 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A3EAC 003A0E0C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A3EB0 003A0E10 83 C1 00 08 */ lwz r30, 8(r1)
/* 803A3EB4 003A0E14 7C 08 03 A6 */ mtlr r0
/* 803A3EB8 003A0E18 38 21 00 10 */ addi r1, r1, 0x10
/* 803A3EBC 003A0E1C 4E 80 00 20 */ blr
.global mcmdEnvelope
mcmdEnvelope:
/* 803A3EC0 003A0E20 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803A3EC4 003A0E24 7C 08 02 A6 */ mflr r0
/* 803A3EC8 003A0E28 90 01 00 34 */ stw r0, 0x34(r1)
/* 803A3ECC 003A0E2C 39 61 00 30 */ addi r11, r1, 0x30
/* 803A3ED0 003A0E30 4B FE 5B AD */ bl _savegpr_27
/* 803A3ED4 003A0E34 80 04 00 04 */ lwz r0, 4(r4)
/* 803A3ED8 003A0E38 7C 9B 23 78 */ mr r27, r4
/* 803A3EDC 003A0E3C 83 C3 01 54 */ lwz r30, 0x154(r3)
/* 803A3EE0 003A0E40 7C 7D 1B 78 */ mr r29, r3
/* 803A3EE4 003A0E44 54 00 84 3E */ srwi r0, r0, 0x10
/* 803A3EE8 003A0E48 90 01 00 08 */ stw r0, 8(r1)
/* 803A3EEC 003A0E4C 80 04 00 04 */ lwz r0, 4(r4)
/* 803A3EF0 003A0E50 54 00 C7 FF */ rlwinm. r0, r0, 0x18, 0x1f, 0x1f
/* 803A3EF4 003A0E54 41 82 00 10 */ beq lbl_803A3F04
/* 803A3EF8 003A0E58 38 61 00 08 */ addi r3, r1, 8
/* 803A3EFC 003A0E5C 48 00 EF F1 */ bl sndConvertMs
/* 803A3F00 003A0E60 48 00 00 10 */ b lbl_803A3F10
lbl_803A3F04:
/* 803A3F04 003A0E64 7F A4 EB 78 */ mr r4, r29
/* 803A3F08 003A0E68 38 61 00 08 */ addi r3, r1, 8
/* 803A3F0C 003A0E6C 48 00 EF F1 */ bl sndConvertTicks
lbl_803A3F10:
/* 803A3F10 003A0E70 80 61 00 08 */ lwz r3, 8(r1)
/* 803A3F14 003A0E74 48 00 F0 31 */ bl sndConvert2Ms
/* 803A3F18 003A0E78 7C 7F 1B 79 */ or. r31, r3, r3
/* 803A3F1C 003A0E7C 40 82 00 08 */ bne lbl_803A3F24
/* 803A3F20 003A0E80 3B E0 00 01 */ li r31, 1
lbl_803A3F24:
/* 803A3F24 003A0E84 80 DB 00 00 */ lwz r6, 0(r27)
/* 803A3F28 003A0E88 3C 00 00 7F */ lis r0, 0x7f
/* 803A3F2C 003A0E8C 80 BD 01 54 */ lwz r5, 0x154(r29)
/* 803A3F30 003A0E90 54 C4 C6 3E */ rlwinm r4, r6, 0x18, 0x18, 0x1f
/* 803A3F34 003A0E94 54 C3 02 1E */ rlwinm r3, r6, 0, 8, 0xf
/* 803A3F38 003A0E98 7C 85 21 D6 */ mullw r4, r5, r4
/* 803A3F3C 003A0E9C 54 9C C9 FE */ srwi r28, r4, 7
/* 803A3F40 003A0EA0 7F 9C 1A 14 */ add r28, r28, r3
/* 803A3F44 003A0EA4 7C 1C 00 40 */ cmplw r28, r0
/* 803A3F48 003A0EA8 40 81 00 08 */ ble lbl_803A3F50
/* 803A3F4C 003A0EAC 7C 1C 03 78 */ mr r28, r0
lbl_803A3F50:
/* 803A3F50 003A0EB0 80 1B 00 04 */ lwz r0, 4(r27)
/* 803A3F54 003A0EB4 54 C3 46 3E */ srwi r3, r6, 0x18
/* 803A3F58 003A0EB8 50 03 44 2E */ rlwimi r3, r0, 8, 0x10, 0x17
/* 803A3F5C 003A0EBC 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 803A3F60 003A0EC0 28 03 FF FF */ cmplwi r3, 0xffff
/* 803A3F64 003A0EC4 41 82 00 48 */ beq lbl_803A3FAC
/* 803A3F68 003A0EC8 4B FF E7 69 */ bl dataGetCurve
/* 803A3F6C 003A0ECC 28 03 00 00 */ cmplwi r3, 0
/* 803A3F70 003A0ED0 41 82 00 3C */ beq lbl_803A3FAC
/* 803A3F74 003A0ED4 57 80 84 3E */ srwi r0, r28, 0x10
/* 803A3F78 003A0ED8 57 85 04 3E */ clrlwi r5, r28, 0x10
/* 803A3F7C 003A0EDC 28 00 00 7F */ cmplwi r0, 0x7f
/* 803A3F80 003A0EE0 40 80 00 24 */ bge lbl_803A3FA4
/* 803A3F84 003A0EE4 7C 83 02 14 */ add r4, r3, r0
/* 803A3F88 003A0EE8 7C C3 00 AE */ lbzx r6, r3, r0
/* 803A3F8C 003A0EEC 88 64 00 01 */ lbz r3, 1(r4)
/* 803A3F90 003A0EF0 54 C0 82 1E */ rlwinm r0, r6, 0x10, 8, 0xf
/* 803A3F94 003A0EF4 7C 66 18 50 */ subf r3, r6, r3
/* 803A3F98 003A0EF8 7C 65 19 D6 */ mullw r3, r5, r3
/* 803A3F9C 003A0EFC 7F 83 02 14 */ add r28, r3, r0
/* 803A3FA0 003A0F00 48 00 00 0C */ b lbl_803A3FAC
lbl_803A3FA4:
/* 803A3FA4 003A0F04 7C 03 00 AE */ lbzx r0, r3, r0
/* 803A3FA8 003A0F08 54 1C 80 1E */ slwi r28, r0, 0x10
lbl_803A3FAC:
/* 803A3FAC 003A0F0C 7C 1E E0 50 */ subf r0, r30, r28
/* 803A3FB0 003A0F10 93 9D 01 98 */ stw r28, 0x198(r29)
/* 803A3FB4 003A0F14 7C 80 FB D6 */ divw r4, r0, r31
/* 803A3FB8 003A0F18 3C 60 00 01 */ lis r3, 0x00008000@ha
/* 803A3FBC 003A0F1C 93 DD 01 9C */ stw r30, 0x19c(r29)
/* 803A3FC0 003A0F20 39 61 00 30 */ addi r11, r1, 0x30
/* 803A3FC4 003A0F24 38 03 80 00 */ addi r0, r3, 0x00008000@l
/* 803A3FC8 003A0F28 90 9D 01 94 */ stw r4, 0x194(r29)
/* 803A3FCC 003A0F2C 93 DD 01 54 */ stw r30, 0x154(r29)
/* 803A3FD0 003A0F30 80 9D 01 18 */ lwz r4, 0x118(r29)
/* 803A3FD4 003A0F34 7C 80 03 78 */ or r0, r4, r0
/* 803A3FD8 003A0F38 90 1D 01 18 */ stw r0, 0x118(r29)
/* 803A3FDC 003A0F3C 4B FE 5A ED */ bl _restgpr_27
/* 803A3FE0 003A0F40 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803A3FE4 003A0F44 7C 08 03 A6 */ mtlr r0
/* 803A3FE8 003A0F48 38 21 00 30 */ addi r1, r1, 0x30
/* 803A3FEC 003A0F4C 4E 80 00 20 */ blr
.global mcmdFadeIn
mcmdFadeIn:
/* 803A3FF0 003A0F50 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A3FF4 003A0F54 7C 08 02 A6 */ mflr r0
/* 803A3FF8 003A0F58 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A3FFC 003A0F5C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803A4000 003A0F60 7C 7F 1B 78 */ mr r31, r3
/* 803A4004 003A0F64 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803A4008 003A0F68 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803A400C 003A0F6C 93 81 00 10 */ stw r28, 0x10(r1)
/* 803A4010 003A0F70 7C 9C 23 78 */ mr r28, r4
/* 803A4014 003A0F74 80 04 00 04 */ lwz r0, 4(r4)
/* 803A4018 003A0F78 54 00 84 3E */ srwi r0, r0, 0x10
/* 803A401C 003A0F7C 90 01 00 08 */ stw r0, 8(r1)
/* 803A4020 003A0F80 80 04 00 04 */ lwz r0, 4(r4)
/* 803A4024 003A0F84 54 00 C7 FF */ rlwinm. r0, r0, 0x18, 0x1f, 0x1f
/* 803A4028 003A0F88 41 82 00 10 */ beq lbl_803A4038
/* 803A402C 003A0F8C 38 61 00 08 */ addi r3, r1, 8
/* 803A4030 003A0F90 48 00 EE BD */ bl sndConvertMs
/* 803A4034 003A0F94 48 00 00 10 */ b lbl_803A4044
lbl_803A4038:
/* 803A4038 003A0F98 7F E4 FB 78 */ mr r4, r31
/* 803A403C 003A0F9C 38 61 00 08 */ addi r3, r1, 8
/* 803A4040 003A0FA0 48 00 EE BD */ bl sndConvertTicks
lbl_803A4044:
/* 803A4044 003A0FA4 80 61 00 08 */ lwz r3, 8(r1)
/* 803A4048 003A0FA8 48 00 EE FD */ bl sndConvert2Ms
/* 803A404C 003A0FAC 7C 7E 1B 79 */ or. r30, r3, r3
/* 803A4050 003A0FB0 40 82 00 08 */ bne lbl_803A4058
/* 803A4054 003A0FB4 3B C0 00 01 */ li r30, 1
lbl_803A4058:
/* 803A4058 003A0FB8 80 DC 00 00 */ lwz r6, 0(r28)
/* 803A405C 003A0FBC 3C 00 00 7F */ lis r0, 0x7f
/* 803A4060 003A0FC0 80 BF 01 54 */ lwz r5, 0x154(r31)
/* 803A4064 003A0FC4 54 C4 C6 3E */ rlwinm r4, r6, 0x18, 0x18, 0x1f
/* 803A4068 003A0FC8 54 C3 02 1E */ rlwinm r3, r6, 0, 8, 0xf
/* 803A406C 003A0FCC 7C 85 21 D6 */ mullw r4, r5, r4
/* 803A4070 003A0FD0 54 9D C9 FE */ srwi r29, r4, 7
/* 803A4074 003A0FD4 7F BD 1A 14 */ add r29, r29, r3
/* 803A4078 003A0FD8 7C 1D 00 40 */ cmplw r29, r0
/* 803A407C 003A0FDC 40 81 00 08 */ ble lbl_803A4084
/* 803A4080 003A0FE0 7C 1D 03 78 */ mr r29, r0
lbl_803A4084:
/* 803A4084 003A0FE4 80 1C 00 04 */ lwz r0, 4(r28)
/* 803A4088 003A0FE8 54 C3 46 3E */ srwi r3, r6, 0x18
/* 803A408C 003A0FEC 50 03 44 2E */ rlwimi r3, r0, 8, 0x10, 0x17
/* 803A4090 003A0FF0 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 803A4094 003A0FF4 28 03 FF FF */ cmplwi r3, 0xffff
/* 803A4098 003A0FF8 41 82 00 48 */ beq lbl_803A40E0
/* 803A409C 003A0FFC 4B FF E6 35 */ bl dataGetCurve
/* 803A40A0 003A1000 28 03 00 00 */ cmplwi r3, 0
/* 803A40A4 003A1004 41 82 00 3C */ beq lbl_803A40E0
/* 803A40A8 003A1008 57 A0 84 3E */ srwi r0, r29, 0x10
/* 803A40AC 003A100C 57 A5 04 3E */ clrlwi r5, r29, 0x10
/* 803A40B0 003A1010 28 00 00 7F */ cmplwi r0, 0x7f
/* 803A40B4 003A1014 40 80 00 24 */ bge lbl_803A40D8
/* 803A40B8 003A1018 7C 83 02 14 */ add r4, r3, r0
/* 803A40BC 003A101C 7C C3 00 AE */ lbzx r6, r3, r0
/* 803A40C0 003A1020 88 64 00 01 */ lbz r3, 1(r4)
/* 803A40C4 003A1024 54 C0 82 1E */ rlwinm r0, r6, 0x10, 8, 0xf
/* 803A40C8 003A1028 7C 66 18 50 */ subf r3, r6, r3
/* 803A40CC 003A102C 7C 65 19 D6 */ mullw r3, r5, r3
/* 803A40D0 003A1030 7F A3 02 14 */ add r29, r3, r0
/* 803A40D4 003A1034 48 00 00 0C */ b lbl_803A40E0
lbl_803A40D8:
/* 803A40D8 003A1038 7C 03 00 AE */ lbzx r0, r3, r0
/* 803A40DC 003A103C 54 1D 80 1E */ slwi r29, r0, 0x10
lbl_803A40E0:
/* 803A40E0 003A1040 7C 9D F3 D6 */ divw r4, r29, r30
/* 803A40E4 003A1044 3C 60 00 01 */ lis r3, 0x00008000@ha
/* 803A40E8 003A1048 93 BF 01 98 */ stw r29, 0x198(r31)
/* 803A40EC 003A104C 38 A0 00 00 */ li r5, 0
/* 803A40F0 003A1050 38 03 80 00 */ addi r0, r3, 0x00008000@l
/* 803A40F4 003A1054 90 BF 01 9C */ stw r5, 0x19c(r31)
/* 803A40F8 003A1058 90 9F 01 94 */ stw r4, 0x194(r31)
/* 803A40FC 003A105C 90 BF 01 54 */ stw r5, 0x154(r31)
/* 803A4100 003A1060 80 9F 01 18 */ lwz r4, 0x118(r31)
/* 803A4104 003A1064 7C 80 03 78 */ or r0, r4, r0
/* 803A4108 003A1068 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A410C 003A106C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A4110 003A1070 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803A4114 003A1074 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803A4118 003A1078 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803A411C 003A107C 83 81 00 10 */ lwz r28, 0x10(r1)
/* 803A4120 003A1080 7C 08 03 A6 */ mtlr r0
/* 803A4124 003A1084 38 21 00 20 */ addi r1, r1, 0x20
/* 803A4128 003A1088 4E 80 00 20 */ blr
.global mcmdRandomKey
mcmdRandomKey:
/* 803A412C 003A108C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A4130 003A1090 7C 08 02 A6 */ mflr r0
/* 803A4134 003A1094 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A4138 003A1098 39 61 00 20 */ addi r11, r1, 0x20
/* 803A413C 003A109C 4B FE 59 41 */ bl _savegpr_27
/* 803A4140 003A10A0 80 A4 00 04 */ lwz r5, 4(r4)
/* 803A4144 003A10A4 7C 9D 23 78 */ mr r29, r4
/* 803A4148 003A10A8 7C 7C 1B 78 */ mr r28, r3
/* 803A414C 003A10AC 54 A0 C6 3F */ rlwinm. r0, r5, 0x18, 0x18, 0x1f
/* 803A4150 003A10B0 40 82 00 2C */ bne lbl_803A417C
/* 803A4154 003A10B4 80 7D 00 00 */ lwz r3, 0(r29)
/* 803A4158 003A10B8 54 60 46 3E */ srwi r0, r3, 0x18
/* 803A415C 003A10BC 54 7F C6 3E */ rlwinm r31, r3, 0x18, 0x18, 0x1f
/* 803A4160 003A10C0 7C 1F 00 40 */ cmplw r31, r0
/* 803A4164 003A10C4 7C 1E 03 78 */ mr r30, r0
/* 803A4168 003A10C8 40 81 00 70 */ ble lbl_803A41D8
/* 803A416C 003A10CC 7F E3 FB 78 */ mr r3, r31
/* 803A4170 003A10D0 7C 1F 03 78 */ mr r31, r0
/* 803A4174 003A10D4 7C 7E 1B 78 */ mr r30, r3
/* 803A4178 003A10D8 48 00 00 60 */ b lbl_803A41D8
lbl_803A417C:
/* 803A417C 003A10DC 80 1D 00 00 */ lwz r0, 0(r29)
/* 803A4180 003A10E0 A0 9C 01 2C */ lhz r4, 0x12c(r28)
/* 803A4184 003A10E4 54 03 C6 3E */ rlwinm r3, r0, 0x18, 0x18, 0x1f
/* 803A4188 003A10E8 54 00 46 3E */ srwi r0, r0, 0x18
/* 803A418C 003A10EC 7C 63 20 51 */ subf. r3, r3, r4
/* 803A4190 003A10F0 7C 84 02 14 */ add r4, r4, r0
/* 803A4194 003A10F4 40 80 00 0C */ bge lbl_803A41A0
/* 803A4198 003A10F8 38 00 00 00 */ li r0, 0
/* 803A419C 003A10FC 48 00 00 14 */ b lbl_803A41B0
lbl_803A41A0:
/* 803A41A0 003A1100 2C 03 00 7F */ cmpwi r3, 0x7f
/* 803A41A4 003A1104 38 00 00 7F */ li r0, 0x7f
/* 803A41A8 003A1108 41 81 00 08 */ bgt lbl_803A41B0
/* 803A41AC 003A110C 7C 60 1B 78 */ mr r0, r3
lbl_803A41B0:
/* 803A41B0 003A1110 2C 04 00 00 */ cmpwi r4, 0
/* 803A41B4 003A1114 54 1F 06 3E */ clrlwi r31, r0, 0x18
/* 803A41B8 003A1118 40 80 00 0C */ bge lbl_803A41C4
/* 803A41BC 003A111C 38 00 00 00 */ li r0, 0
/* 803A41C0 003A1120 48 00 00 14 */ b lbl_803A41D4
lbl_803A41C4:
/* 803A41C4 003A1124 2C 04 00 7F */ cmpwi r4, 0x7f
/* 803A41C8 003A1128 38 00 00 7F */ li r0, 0x7f
/* 803A41CC 003A112C 41 81 00 08 */ bgt lbl_803A41D4
/* 803A41D0 003A1130 7C 80 23 78 */ mr r0, r4
lbl_803A41D4:
/* 803A41D4 003A1134 54 1E 06 3E */ clrlwi r30, r0, 0x18
lbl_803A41D8:
/* 803A41D8 003A1138 54 A0 06 3F */ clrlwi. r0, r5, 0x18
/* 803A41DC 003A113C 41 82 00 38 */ beq lbl_803A4214
/* 803A41E0 003A1140 48 00 EB C1 */ bl sndRand
/* 803A41E4 003A1144 3C 80 02 8C */ lis r4, 0x028C1979@ha
/* 803A41E8 003A1148 54 65 04 3E */ clrlwi r5, r3, 0x10
/* 803A41EC 003A114C 38 04 19 79 */ addi r0, r4, 0x028C1979@l
/* 803A41F0 003A1150 7C 00 28 96 */ mulhw r0, r0, r5
/* 803A41F4 003A1154 7C 00 0E 70 */ srawi r0, r0, 1
/* 803A41F8 003A1158 54 03 0F FE */ srwi r3, r0, 0x1f
/* 803A41FC 003A115C 7C 00 1A 14 */ add r0, r0, r3
/* 803A4200 003A1160 1C 00 00 C9 */ mulli r0, r0, 0xc9
/* 803A4204 003A1164 7C 60 28 50 */ subf r3, r0, r5
/* 803A4208 003A1168 38 03 FF 9C */ addi r0, r3, -100
/* 803A420C 003A116C 54 1B 06 3E */ clrlwi r27, r0, 0x18
/* 803A4210 003A1170 48 00 00 0C */ b lbl_803A421C
lbl_803A4214:
/* 803A4214 003A1174 80 1D 00 00 */ lwz r0, 0(r29)
/* 803A4218 003A1178 54 1B 86 3E */ rlwinm r27, r0, 0x10, 0x18, 0x1f
lbl_803A421C:
/* 803A421C 003A117C 57 FF 06 3E */ clrlwi r31, r31, 0x18
/* 803A4220 003A1180 48 00 EB 81 */ bl sndRand
/* 803A4224 003A1184 57 C0 06 3E */ clrlwi r0, r30, 0x18
/* 803A4228 003A1188 54 67 04 3E */ clrlwi r7, r3, 0x10
/* 803A422C 003A118C 7C 9F 00 50 */ subf r4, r31, r0
/* 803A4230 003A1190 57 63 82 1E */ rlwinm r3, r27, 0x10, 8, 0xf
/* 803A4234 003A1194 38 C4 00 01 */ addi r6, r4, 1
/* 803A4238 003A1198 38 00 00 00 */ li r0, 0
/* 803A423C 003A119C 7C A7 33 D6 */ divw r5, r7, r6
/* 803A4240 003A11A0 60 64 00 19 */ ori r4, r3, 0x19
/* 803A4244 003A11A4 7F 83 E3 78 */ mr r3, r28
/* 803A4248 003A11A8 7C A5 31 D6 */ mullw r5, r5, r6
/* 803A424C 003A11AC 7C A5 38 50 */ subf r5, r5, r7
/* 803A4250 003A11B0 7C BF 2A 14 */ add r5, r31, r5
/* 803A4254 003A11B4 54 A5 40 2E */ slwi r5, r5, 8
/* 803A4258 003A11B8 7C 84 2B 78 */ or r4, r4, r5
/* 803A425C 003A11BC 90 9D 00 00 */ stw r4, 0(r29)
/* 803A4260 003A11C0 90 1D 00 04 */ stw r0, 4(r29)
/* 803A4264 003A11C4 80 1D 00 00 */ lwz r0, 0(r29)
/* 803A4268 003A11C8 54 00 C6 7E */ rlwinm r0, r0, 0x18, 0x19, 0x1f
/* 803A426C 003A11CC B0 1C 01 2C */ sth r0, 0x12c(r28)
/* 803A4270 003A11D0 80 1D 00 00 */ lwz r0, 0(r29)
/* 803A4274 003A11D4 54 00 84 3E */ srwi r0, r0, 0x10
/* 803A4278 003A11D8 98 1C 01 2E */ stb r0, 0x12e(r28)
/* 803A427C 003A11DC 48 00 4B F5 */ bl voiceIsLastStarted
/* 803A4280 003A11E0 28 03 00 00 */ cmplwi r3, 0
/* 803A4284 003A11E4 41 82 00 18 */ beq lbl_803A429C
/* 803A4288 003A11E8 A0 1C 01 2C */ lhz r0, 0x12c(r28)
/* 803A428C 003A11EC 88 7C 01 21 */ lbz r3, 0x121(r28)
/* 803A4290 003A11F0 88 9C 01 22 */ lbz r4, 0x122(r28)
/* 803A4294 003A11F4 54 05 06 3E */ clrlwi r5, r0, 0x18
/* 803A4298 003A11F8 48 00 DB 55 */ bl inpSetMidiLastNote
lbl_803A429C:
/* 803A429C 003A11FC 38 00 00 04 */ li r0, 4
/* 803A42A0 003A1200 7F 83 E3 78 */ mr r3, r28
/* 803A42A4 003A1204 90 1D 00 00 */ stw r0, 0(r29)
/* 803A42A8 003A1208 7F A4 EB 78 */ mr r4, r29
/* 803A42AC 003A120C 4B FF E7 19 */ bl mcmdWait
/* 803A42B0 003A1210 39 61 00 20 */ addi r11, r1, 0x20
/* 803A42B4 003A1214 4B FE 58 15 */ bl _restgpr_27
/* 803A42B8 003A1218 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A42BC 003A121C 7C 08 03 A6 */ mtlr r0
/* 803A42C0 003A1220 38 21 00 20 */ addi r1, r1, 0x20
/* 803A42C4 003A1224 4E 80 00 20 */ blr
.global sub_803a42c8
sub_803a42c8:
/* 803A42C8 003A1228 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A42CC 003A122C 7C 08 02 A6 */ mflr r0
/* 803A42D0 003A1230 3C A0 00 08 */ lis r5, 8
/* 803A42D4 003A1234 38 C0 00 00 */ li r6, 0
/* 803A42D8 003A1238 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A42DC 003A123C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A42E0 003A1240 7C 7F 1B 78 */ mr r31, r3
/* 803A42E4 003A1244 80 E3 01 14 */ lwz r7, 0x114(r3)
/* 803A42E8 003A1248 81 03 01 18 */ lwz r8, 0x118(r3)
/* 803A42EC 003A124C 7C E0 30 38 */ and r0, r7, r6
/* 803A42F0 003A1250 7D 03 28 38 */ and r3, r8, r5
/* 803A42F4 003A1254 7C 63 32 78 */ xor r3, r3, r6
/* 803A42F8 003A1258 7C 00 32 78 */ xor r0, r0, r6
/* 803A42FC 003A125C 7C 60 03 79 */ or. r0, r3, r0
/* 803A4300 003A1260 40 82 00 14 */ bne lbl_803A4314
/* 803A4304 003A1264 7D 00 2B 78 */ or r0, r8, r5
/* 803A4308 003A1268 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A430C 003A126C 90 FF 01 14 */ stw r7, 0x114(r31)
/* 803A4310 003A1270 48 00 00 0C */ b lbl_803A431C
lbl_803A4314:
/* 803A4314 003A1274 80 04 00 04 */ lwz r0, 4(r4)
/* 803A4318 003A1278 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A431C:
/* 803A431C 003A127C 80 04 00 00 */ lwz r0, 0(r4)
/* 803A4320 003A1280 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A4324 003A1284 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l
/* 803A4328 003A1288 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf
/* 803A432C 003A128C 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4330 003A1290 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4334 003A1294 54 65 0F FE */ srwi r5, r3, 0x1f
/* 803A4338 003A1298 7C A3 2A 15 */ add. r5, r3, r5
/* 803A433C 003A129C 40 80 00 2C */ bge lbl_803A4368
/* 803A4340 003A12A0 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4344 003A12A4 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4348 003A12A8 7C 63 07 74 */ extsb r3, r3
/* 803A434C 003A12AC 54 63 40 2E */ slwi r3, r3, 8
/* 803A4350 003A12B0 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4354 003A12B4 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4358 003A12B8 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A435C 003A12BC 7C 63 3A 14 */ add r3, r3, r7
/* 803A4360 003A12C0 7C A3 28 50 */ subf r5, r3, r5
/* 803A4364 003A12C4 48 00 00 28 */ b lbl_803A438C
lbl_803A4368:
/* 803A4368 003A12C8 80 64 00 04 */ lwz r3, 4(r4)
/* 803A436C 003A12CC 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4370 003A12D0 7C 63 07 74 */ extsb r3, r3
/* 803A4374 003A12D4 54 63 40 2E */ slwi r3, r3, 8
/* 803A4378 003A12D8 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A437C 003A12DC 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4380 003A12E0 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4384 003A12E4 7C 63 3A 14 */ add r3, r3, r7
/* 803A4388 003A12E8 7C A5 1A 14 */ add r5, r5, r3
lbl_803A438C:
/* 803A438C 003A12EC 80 84 00 04 */ lwz r4, 4(r4)
/* 803A4390 003A12F0 38 7F 02 18 */ addi r3, r31, 0x218
/* 803A4394 003A12F4 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A4398 003A12F8 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A439C 003A12FC 7C E8 00 D0 */ neg r7, r8
/* 803A43A0 003A1300 7C E0 43 78 */ or r0, r7, r8
/* 803A43A4 003A1304 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A43A8 003A1308 48 00 D8 99 */ bl inpAddCtrl
/* 803A43AC 003A130C 80 1F 02 14 */ lwz r0, 0x214(r31)
/* 803A43B0 003A1310 60 00 00 01 */ ori r0, r0, 1
/* 803A43B4 003A1314 90 1F 02 14 */ stw r0, 0x214(r31)
/* 803A43B8 003A1318 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A43BC 003A131C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A43C0 003A1320 7C 08 03 A6 */ mtlr r0
/* 803A43C4 003A1324 38 21 00 10 */ addi r1, r1, 0x10
/* 803A43C8 003A1328 4E 80 00 20 */ blr
.global sub_803a43cc
sub_803a43cc:
/* 803A43CC 003A132C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A43D0 003A1330 7C 08 02 A6 */ mflr r0
/* 803A43D4 003A1334 3C A0 00 10 */ lis r5, 0x10
/* 803A43D8 003A1338 38 C0 00 00 */ li r6, 0
/* 803A43DC 003A133C 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A43E0 003A1340 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A43E4 003A1344 7C 7F 1B 78 */ mr r31, r3
/* 803A43E8 003A1348 80 E3 01 14 */ lwz r7, 0x114(r3)
/* 803A43EC 003A134C 81 03 01 18 */ lwz r8, 0x118(r3)
/* 803A43F0 003A1350 7C E0 30 38 */ and r0, r7, r6
/* 803A43F4 003A1354 7D 03 28 38 */ and r3, r8, r5
/* 803A43F8 003A1358 7C 63 32 78 */ xor r3, r3, r6
/* 803A43FC 003A135C 7C 00 32 78 */ xor r0, r0, r6
/* 803A4400 003A1360 7C 60 03 79 */ or. r0, r3, r0
/* 803A4404 003A1364 40 82 00 14 */ bne lbl_803A4418
/* 803A4408 003A1368 7D 00 2B 78 */ or r0, r8, r5
/* 803A440C 003A136C 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A4410 003A1370 90 FF 01 14 */ stw r7, 0x114(r31)
/* 803A4414 003A1374 48 00 00 0C */ b lbl_803A4420
lbl_803A4418:
/* 803A4418 003A1378 80 04 00 04 */ lwz r0, 4(r4)
/* 803A441C 003A137C 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A4420:
/* 803A4420 003A1380 80 04 00 00 */ lwz r0, 0(r4)
/* 803A4424 003A1384 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A4428 003A1388 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l
/* 803A442C 003A138C 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf
/* 803A4430 003A1390 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4434 003A1394 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4438 003A1398 54 65 0F FE */ srwi r5, r3, 0x1f
/* 803A443C 003A139C 7C A3 2A 15 */ add. r5, r3, r5
/* 803A4440 003A13A0 40 80 00 2C */ bge lbl_803A446C
/* 803A4444 003A13A4 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4448 003A13A8 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A444C 003A13AC 7C 63 07 74 */ extsb r3, r3
/* 803A4450 003A13B0 54 63 40 2E */ slwi r3, r3, 8
/* 803A4454 003A13B4 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4458 003A13B8 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A445C 003A13BC 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4460 003A13C0 7C 63 3A 14 */ add r3, r3, r7
/* 803A4464 003A13C4 7C A3 28 50 */ subf r5, r3, r5
/* 803A4468 003A13C8 48 00 00 28 */ b lbl_803A4490
lbl_803A446C:
/* 803A446C 003A13CC 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4470 003A13D0 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4474 003A13D4 7C 63 07 74 */ extsb r3, r3
/* 803A4478 003A13D8 54 63 40 2E */ slwi r3, r3, 8
/* 803A447C 003A13DC 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4480 003A13E0 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4484 003A13E4 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4488 003A13E8 7C 63 3A 14 */ add r3, r3, r7
/* 803A448C 003A13EC 7C A5 1A 14 */ add r5, r5, r3
lbl_803A4490:
/* 803A4490 003A13F0 80 84 00 04 */ lwz r4, 4(r4)
/* 803A4494 003A13F4 38 7F 02 3C */ addi r3, r31, 0x23c
/* 803A4498 003A13F8 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A449C 003A13FC 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A44A0 003A1400 7C E8 00 D0 */ neg r7, r8
/* 803A44A4 003A1404 7C E0 43 78 */ or r0, r7, r8
/* 803A44A8 003A1408 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A44AC 003A140C 48 00 D7 95 */ bl inpAddCtrl
/* 803A44B0 003A1410 80 1F 02 14 */ lwz r0, 0x214(r31)
/* 803A44B4 003A1414 60 00 00 02 */ ori r0, r0, 2
/* 803A44B8 003A1418 90 1F 02 14 */ stw r0, 0x214(r31)
/* 803A44BC 003A141C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A44C0 003A1420 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A44C4 003A1424 7C 08 03 A6 */ mtlr r0
/* 803A44C8 003A1428 38 21 00 10 */ addi r1, r1, 0x10
/* 803A44CC 003A142C 4E 80 00 20 */ blr
.global sub_803a44d0
sub_803a44d0:
/* 803A44D0 003A1430 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A44D4 003A1434 7C 08 02 A6 */ mflr r0
/* 803A44D8 003A1438 3C A0 00 20 */ lis r5, 0x20
/* 803A44DC 003A143C 38 C0 00 00 */ li r6, 0
/* 803A44E0 003A1440 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A44E4 003A1444 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A44E8 003A1448 7C 7F 1B 78 */ mr r31, r3
/* 803A44EC 003A144C 80 E3 01 14 */ lwz r7, 0x114(r3)
/* 803A44F0 003A1450 81 03 01 18 */ lwz r8, 0x118(r3)
/* 803A44F4 003A1454 7C E0 30 38 */ and r0, r7, r6
/* 803A44F8 003A1458 7D 03 28 38 */ and r3, r8, r5
/* 803A44FC 003A145C 7C 63 32 78 */ xor r3, r3, r6
/* 803A4500 003A1460 7C 00 32 78 */ xor r0, r0, r6
/* 803A4504 003A1464 7C 60 03 79 */ or. r0, r3, r0
/* 803A4508 003A1468 40 82 00 14 */ bne lbl_803A451C
/* 803A450C 003A146C 7D 00 2B 78 */ or r0, r8, r5
/* 803A4510 003A1470 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A4514 003A1474 90 FF 01 14 */ stw r7, 0x114(r31)
/* 803A4518 003A1478 48 00 00 0C */ b lbl_803A4524
lbl_803A451C:
/* 803A451C 003A147C 80 04 00 04 */ lwz r0, 4(r4)
/* 803A4520 003A1480 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A4524:
/* 803A4524 003A1484 80 04 00 00 */ lwz r0, 0(r4)
/* 803A4528 003A1488 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A452C 003A148C 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l
/* 803A4530 003A1490 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf
/* 803A4534 003A1494 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4538 003A1498 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A453C 003A149C 54 65 0F FE */ srwi r5, r3, 0x1f
/* 803A4540 003A14A0 7C A3 2A 15 */ add. r5, r3, r5
/* 803A4544 003A14A4 40 80 00 2C */ bge lbl_803A4570
/* 803A4548 003A14A8 80 64 00 04 */ lwz r3, 4(r4)
/* 803A454C 003A14AC 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4550 003A14B0 7C 63 07 74 */ extsb r3, r3
/* 803A4554 003A14B4 54 63 40 2E */ slwi r3, r3, 8
/* 803A4558 003A14B8 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A455C 003A14BC 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4560 003A14C0 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4564 003A14C4 7C 63 3A 14 */ add r3, r3, r7
/* 803A4568 003A14C8 7C A3 28 50 */ subf r5, r3, r5
/* 803A456C 003A14CC 48 00 00 28 */ b lbl_803A4594
lbl_803A4570:
/* 803A4570 003A14D0 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4574 003A14D4 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4578 003A14D8 7C 63 07 74 */ extsb r3, r3
/* 803A457C 003A14DC 54 63 40 2E */ slwi r3, r3, 8
/* 803A4580 003A14E0 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4584 003A14E4 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4588 003A14E8 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A458C 003A14EC 7C 63 3A 14 */ add r3, r3, r7
/* 803A4590 003A14F0 7C A5 1A 14 */ add r5, r5, r3
lbl_803A4594:
/* 803A4594 003A14F4 80 84 00 04 */ lwz r4, 4(r4)
/* 803A4598 003A14F8 38 7F 02 84 */ addi r3, r31, 0x284
/* 803A459C 003A14FC 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A45A0 003A1500 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A45A4 003A1504 7C E8 00 D0 */ neg r7, r8
/* 803A45A8 003A1508 7C E0 43 78 */ or r0, r7, r8
/* 803A45AC 003A150C 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A45B0 003A1510 48 00 D6 91 */ bl inpAddCtrl
/* 803A45B4 003A1514 80 1F 02 14 */ lwz r0, 0x214(r31)
/* 803A45B8 003A1518 60 00 00 08 */ ori r0, r0, 8
/* 803A45BC 003A151C 90 1F 02 14 */ stw r0, 0x214(r31)
/* 803A45C0 003A1520 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A45C4 003A1524 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A45C8 003A1528 7C 08 03 A6 */ mtlr r0
/* 803A45CC 003A152C 38 21 00 10 */ addi r1, r1, 0x10
/* 803A45D0 003A1530 4E 80 00 20 */ blr
.global sub_803a45d4
sub_803a45d4:
/* 803A45D4 003A1534 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A45D8 003A1538 7C 08 02 A6 */ mflr r0
/* 803A45DC 003A153C 3C A0 00 40 */ lis r5, 0x40
/* 803A45E0 003A1540 38 C0 00 00 */ li r6, 0
/* 803A45E4 003A1544 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A45E8 003A1548 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A45EC 003A154C 7C 7F 1B 78 */ mr r31, r3
/* 803A45F0 003A1550 80 E3 01 14 */ lwz r7, 0x114(r3)
/* 803A45F4 003A1554 81 03 01 18 */ lwz r8, 0x118(r3)
/* 803A45F8 003A1558 7C E0 30 38 */ and r0, r7, r6
/* 803A45FC 003A155C 7D 03 28 38 */ and r3, r8, r5
/* 803A4600 003A1560 7C 63 32 78 */ xor r3, r3, r6
/* 803A4604 003A1564 7C 00 32 78 */ xor r0, r0, r6
/* 803A4608 003A1568 7C 60 03 79 */ or. r0, r3, r0
/* 803A460C 003A156C 40 82 00 14 */ bne lbl_803A4620
/* 803A4610 003A1570 7D 00 2B 78 */ or r0, r8, r5
/* 803A4614 003A1574 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A4618 003A1578 90 FF 01 14 */ stw r7, 0x114(r31)
/* 803A461C 003A157C 48 00 00 0C */ b lbl_803A4628
lbl_803A4620:
/* 803A4620 003A1580 80 04 00 04 */ lwz r0, 4(r4)
/* 803A4624 003A1584 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A4628:
/* 803A4628 003A1588 80 04 00 00 */ lwz r0, 0(r4)
/* 803A462C 003A158C 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A4630 003A1590 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l
/* 803A4634 003A1594 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf
/* 803A4638 003A1598 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A463C 003A159C 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4640 003A15A0 54 65 0F FE */ srwi r5, r3, 0x1f
/* 803A4644 003A15A4 7C A3 2A 15 */ add. r5, r3, r5
/* 803A4648 003A15A8 40 80 00 2C */ bge lbl_803A4674
/* 803A464C 003A15AC 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4650 003A15B0 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4654 003A15B4 7C 63 07 74 */ extsb r3, r3
/* 803A4658 003A15B8 54 63 40 2E */ slwi r3, r3, 8
/* 803A465C 003A15BC 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4660 003A15C0 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4664 003A15C4 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4668 003A15C8 7C 63 3A 14 */ add r3, r3, r7
/* 803A466C 003A15CC 7C A3 28 50 */ subf r5, r3, r5
/* 803A4670 003A15D0 48 00 00 28 */ b lbl_803A4698
lbl_803A4674:
/* 803A4674 003A15D4 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4678 003A15D8 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A467C 003A15DC 7C 63 07 74 */ extsb r3, r3
/* 803A4680 003A15E0 54 63 40 2E */ slwi r3, r3, 8
/* 803A4684 003A15E4 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4688 003A15E8 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A468C 003A15EC 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4690 003A15F0 7C 63 3A 14 */ add r3, r3, r7
/* 803A4694 003A15F4 7C A5 1A 14 */ add r5, r5, r3
lbl_803A4698:
/* 803A4698 003A15F8 80 84 00 04 */ lwz r4, 4(r4)
/* 803A469C 003A15FC 38 7F 02 CC */ addi r3, r31, 0x2cc
/* 803A46A0 003A1600 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A46A4 003A1604 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A46A8 003A1608 7C E8 00 D0 */ neg r7, r8
/* 803A46AC 003A160C 7C E0 43 78 */ or r0, r7, r8
/* 803A46B0 003A1610 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A46B4 003A1614 48 00 D5 8D */ bl inpAddCtrl
/* 803A46B8 003A1618 80 1F 02 14 */ lwz r0, 0x214(r31)
/* 803A46BC 003A161C 60 00 00 20 */ ori r0, r0, 0x20
/* 803A46C0 003A1620 90 1F 02 14 */ stw r0, 0x214(r31)
/* 803A46C4 003A1624 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A46C8 003A1628 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A46CC 003A162C 7C 08 03 A6 */ mtlr r0
/* 803A46D0 003A1630 38 21 00 10 */ addi r1, r1, 0x10
/* 803A46D4 003A1634 4E 80 00 20 */ blr
.global sub_803a46d8
sub_803a46d8:
/* 803A46D8 003A1638 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A46DC 003A163C 7C 08 02 A6 */ mflr r0
/* 803A46E0 003A1640 3C A0 02 00 */ lis r5, 0x200
/* 803A46E4 003A1644 38 C0 00 00 */ li r6, 0
/* 803A46E8 003A1648 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A46EC 003A164C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A46F0 003A1650 7C 7F 1B 78 */ mr r31, r3
/* 803A46F4 003A1654 80 E3 01 14 */ lwz r7, 0x114(r3)
/* 803A46F8 003A1658 81 03 01 18 */ lwz r8, 0x118(r3)
/* 803A46FC 003A165C 7C E0 30 38 */ and r0, r7, r6
/* 803A4700 003A1660 7D 03 28 38 */ and r3, r8, r5
/* 803A4704 003A1664 7C 63 32 78 */ xor r3, r3, r6
/* 803A4708 003A1668 7C 00 32 78 */ xor r0, r0, r6
/* 803A470C 003A166C 7C 60 03 79 */ or. r0, r3, r0
/* 803A4710 003A1670 40 82 00 14 */ bne lbl_803A4724
/* 803A4714 003A1674 7D 00 2B 78 */ or r0, r8, r5
/* 803A4718 003A1678 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A471C 003A167C 90 FF 01 14 */ stw r7, 0x114(r31)
/* 803A4720 003A1680 48 00 00 0C */ b lbl_803A472C
lbl_803A4724:
/* 803A4724 003A1684 80 04 00 04 */ lwz r0, 4(r4)
/* 803A4728 003A1688 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A472C:
/* 803A472C 003A168C 80 04 00 00 */ lwz r0, 0(r4)
/* 803A4730 003A1690 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A4734 003A1694 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l
/* 803A4738 003A1698 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf
/* 803A473C 003A169C 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4740 003A16A0 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4744 003A16A4 54 65 0F FE */ srwi r5, r3, 0x1f
/* 803A4748 003A16A8 7C A3 2A 15 */ add. r5, r3, r5
/* 803A474C 003A16AC 40 80 00 2C */ bge lbl_803A4778
/* 803A4750 003A16B0 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4754 003A16B4 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4758 003A16B8 7C 63 07 74 */ extsb r3, r3
/* 803A475C 003A16BC 54 63 40 2E */ slwi r3, r3, 8
/* 803A4760 003A16C0 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4764 003A16C4 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4768 003A16C8 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A476C 003A16CC 7C 63 3A 14 */ add r3, r3, r7
/* 803A4770 003A16D0 7C A3 28 50 */ subf r5, r3, r5
/* 803A4774 003A16D4 48 00 00 28 */ b lbl_803A479C
lbl_803A4778:
/* 803A4778 003A16D8 80 64 00 04 */ lwz r3, 4(r4)
/* 803A477C 003A16DC 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4780 003A16E0 7C 63 07 74 */ extsb r3, r3
/* 803A4784 003A16E4 54 63 40 2E */ slwi r3, r3, 8
/* 803A4788 003A16E8 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A478C 003A16EC 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4790 003A16F0 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4794 003A16F4 7C 63 3A 14 */ add r3, r3, r7
/* 803A4798 003A16F8 7C A5 1A 14 */ add r5, r5, r3
lbl_803A479C:
/* 803A479C 003A16FC 80 84 00 04 */ lwz r4, 4(r4)
/* 803A47A0 003A1700 38 7F 02 F0 */ addi r3, r31, 0x2f0
/* 803A47A4 003A1704 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A47A8 003A1708 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A47AC 003A170C 7C E8 00 D0 */ neg r7, r8
/* 803A47B0 003A1710 7C E0 43 78 */ or r0, r7, r8
/* 803A47B4 003A1714 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A47B8 003A1718 48 00 D4 89 */ bl inpAddCtrl
/* 803A47BC 003A171C 80 1F 02 14 */ lwz r0, 0x214(r31)
/* 803A47C0 003A1720 60 00 00 40 */ ori r0, r0, 0x40
/* 803A47C4 003A1724 90 1F 02 14 */ stw r0, 0x214(r31)
/* 803A47C8 003A1728 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A47CC 003A172C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A47D0 003A1730 7C 08 03 A6 */ mtlr r0
/* 803A47D4 003A1734 38 21 00 10 */ addi r1, r1, 0x10
/* 803A47D8 003A1738 4E 80 00 20 */ blr
.global sub_803a47dc
sub_803a47dc:
/* 803A47DC 003A173C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A47E0 003A1740 7C 08 02 A6 */ mflr r0
/* 803A47E4 003A1744 3C A0 01 00 */ lis r5, 0x100
/* 803A47E8 003A1748 38 C0 00 00 */ li r6, 0
/* 803A47EC 003A174C 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A47F0 003A1750 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A47F4 003A1754 7C 7F 1B 78 */ mr r31, r3
/* 803A47F8 003A1758 80 E3 01 14 */ lwz r7, 0x114(r3)
/* 803A47FC 003A175C 81 03 01 18 */ lwz r8, 0x118(r3)
/* 803A4800 003A1760 7C E0 30 38 */ and r0, r7, r6
/* 803A4804 003A1764 7D 03 28 38 */ and r3, r8, r5
/* 803A4808 003A1768 7C 63 32 78 */ xor r3, r3, r6
/* 803A480C 003A176C 7C 00 32 78 */ xor r0, r0, r6
/* 803A4810 003A1770 7C 60 03 79 */ or. r0, r3, r0
/* 803A4814 003A1774 40 82 00 14 */ bne lbl_803A4828
/* 803A4818 003A1778 7D 00 2B 78 */ or r0, r8, r5
/* 803A481C 003A177C 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A4820 003A1780 90 FF 01 14 */ stw r7, 0x114(r31)
/* 803A4824 003A1784 48 00 00 0C */ b lbl_803A4830
lbl_803A4828:
/* 803A4828 003A1788 80 04 00 04 */ lwz r0, 4(r4)
/* 803A482C 003A178C 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A4830:
/* 803A4830 003A1790 80 04 00 00 */ lwz r0, 0(r4)
/* 803A4834 003A1794 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A4838 003A1798 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l
/* 803A483C 003A179C 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf
/* 803A4840 003A17A0 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4844 003A17A4 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4848 003A17A8 54 65 0F FE */ srwi r5, r3, 0x1f
/* 803A484C 003A17AC 7C A3 2A 15 */ add. r5, r3, r5
/* 803A4850 003A17B0 40 80 00 2C */ bge lbl_803A487C
/* 803A4854 003A17B4 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4858 003A17B8 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A485C 003A17BC 7C 63 07 74 */ extsb r3, r3
/* 803A4860 003A17C0 54 63 40 2E */ slwi r3, r3, 8
/* 803A4864 003A17C4 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4868 003A17C8 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A486C 003A17CC 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4870 003A17D0 7C 63 3A 14 */ add r3, r3, r7
/* 803A4874 003A17D4 7C A3 28 50 */ subf r5, r3, r5
/* 803A4878 003A17D8 48 00 00 28 */ b lbl_803A48A0
lbl_803A487C:
/* 803A487C 003A17DC 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4880 003A17E0 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4884 003A17E4 7C 63 07 74 */ extsb r3, r3
/* 803A4888 003A17E8 54 63 40 2E */ slwi r3, r3, 8
/* 803A488C 003A17EC 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4890 003A17F0 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4894 003A17F4 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4898 003A17F8 7C 63 3A 14 */ add r3, r3, r7
/* 803A489C 003A17FC 7C A5 1A 14 */ add r5, r5, r3
lbl_803A48A0:
/* 803A48A0 003A1800 80 84 00 04 */ lwz r4, 4(r4)
/* 803A48A4 003A1804 38 7F 03 14 */ addi r3, r31, 0x314
/* 803A48A8 003A1808 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A48AC 003A180C 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A48B0 003A1810 7C E8 00 D0 */ neg r7, r8
/* 803A48B4 003A1814 7C E0 43 78 */ or r0, r7, r8
/* 803A48B8 003A1818 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A48BC 003A181C 48 00 D3 85 */ bl inpAddCtrl
/* 803A48C0 003A1820 80 1F 02 14 */ lwz r0, 0x214(r31)
/* 803A48C4 003A1824 60 00 00 80 */ ori r0, r0, 0x80
/* 803A48C8 003A1828 90 1F 02 14 */ stw r0, 0x214(r31)
/* 803A48CC 003A182C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A48D0 003A1830 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A48D4 003A1834 7C 08 03 A6 */ mtlr r0
/* 803A48D8 003A1838 38 21 00 10 */ addi r1, r1, 0x10
/* 803A48DC 003A183C 4E 80 00 20 */ blr
.global sub_803a48e0
sub_803a48e0:
/* 803A48E0 003A1840 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A48E4 003A1844 7C 08 02 A6 */ mflr r0
/* 803A48E8 003A1848 3C A0 00 80 */ lis r5, 0x80
/* 803A48EC 003A184C 38 C0 00 00 */ li r6, 0
/* 803A48F0 003A1850 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A48F4 003A1854 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A48F8 003A1858 7C 7F 1B 78 */ mr r31, r3
/* 803A48FC 003A185C 80 E3 01 14 */ lwz r7, 0x114(r3)
/* 803A4900 003A1860 81 03 01 18 */ lwz r8, 0x118(r3)
/* 803A4904 003A1864 7C E0 30 38 */ and r0, r7, r6
/* 803A4908 003A1868 7D 03 28 38 */ and r3, r8, r5
/* 803A490C 003A186C 7C 63 32 78 */ xor r3, r3, r6
/* 803A4910 003A1870 7C 00 32 78 */ xor r0, r0, r6
/* 803A4914 003A1874 7C 60 03 79 */ or. r0, r3, r0
/* 803A4918 003A1878 40 82 00 14 */ bne lbl_803A492C
/* 803A491C 003A187C 7D 00 2B 78 */ or r0, r8, r5
/* 803A4920 003A1880 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A4924 003A1884 90 FF 01 14 */ stw r7, 0x114(r31)
/* 803A4928 003A1888 48 00 00 0C */ b lbl_803A4934
lbl_803A492C:
/* 803A492C 003A188C 80 04 00 04 */ lwz r0, 4(r4)
/* 803A4930 003A1890 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A4934:
/* 803A4934 003A1894 80 04 00 00 */ lwz r0, 0(r4)
/* 803A4938 003A1898 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A493C 003A189C 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l
/* 803A4940 003A18A0 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf
/* 803A4944 003A18A4 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4948 003A18A8 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A494C 003A18AC 54 65 0F FE */ srwi r5, r3, 0x1f
/* 803A4950 003A18B0 7C A3 2A 15 */ add. r5, r3, r5
/* 803A4954 003A18B4 40 80 00 2C */ bge lbl_803A4980
/* 803A4958 003A18B8 80 64 00 04 */ lwz r3, 4(r4)
/* 803A495C 003A18BC 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4960 003A18C0 7C 63 07 74 */ extsb r3, r3
/* 803A4964 003A18C4 54 63 40 2E */ slwi r3, r3, 8
/* 803A4968 003A18C8 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A496C 003A18CC 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4970 003A18D0 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4974 003A18D4 7C 63 3A 14 */ add r3, r3, r7
/* 803A4978 003A18D8 7C A3 28 50 */ subf r5, r3, r5
/* 803A497C 003A18DC 48 00 00 28 */ b lbl_803A49A4
lbl_803A4980:
/* 803A4980 003A18E0 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4984 003A18E4 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4988 003A18E8 7C 63 07 74 */ extsb r3, r3
/* 803A498C 003A18EC 54 63 40 2E */ slwi r3, r3, 8
/* 803A4990 003A18F0 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4994 003A18F4 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4998 003A18F8 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A499C 003A18FC 7C 63 3A 14 */ add r3, r3, r7
/* 803A49A0 003A1900 7C A5 1A 14 */ add r5, r5, r3
lbl_803A49A4:
/* 803A49A4 003A1904 80 84 00 04 */ lwz r4, 4(r4)
/* 803A49A8 003A1908 38 7F 03 5C */ addi r3, r31, 0x35c
/* 803A49AC 003A190C 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A49B0 003A1910 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A49B4 003A1914 7C E8 00 D0 */ neg r7, r8
/* 803A49B8 003A1918 7C E0 43 78 */ or r0, r7, r8
/* 803A49BC 003A191C 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A49C0 003A1920 48 00 D2 81 */ bl inpAddCtrl
/* 803A49C4 003A1924 80 1F 02 14 */ lwz r0, 0x214(r31)
/* 803A49C8 003A1928 60 00 02 00 */ ori r0, r0, 0x200
/* 803A49CC 003A192C 90 1F 02 14 */ stw r0, 0x214(r31)
/* 803A49D0 003A1930 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A49D4 003A1934 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A49D8 003A1938 7C 08 03 A6 */ mtlr r0
/* 803A49DC 003A193C 38 21 00 10 */ addi r1, r1, 0x10
/* 803A49E0 003A1940 4E 80 00 20 */ blr
.global sub_803a49e4
sub_803a49e4:
/* 803A49E4 003A1944 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A49E8 003A1948 7C 08 02 A6 */ mflr r0
/* 803A49EC 003A194C 3C A0 20 00 */ lis r5, 0x2000
/* 803A49F0 003A1950 38 C0 00 00 */ li r6, 0
/* 803A49F4 003A1954 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A49F8 003A1958 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A49FC 003A195C 7C 7F 1B 78 */ mr r31, r3
/* 803A4A00 003A1960 80 E3 01 14 */ lwz r7, 0x114(r3)
/* 803A4A04 003A1964 81 03 01 18 */ lwz r8, 0x118(r3)
/* 803A4A08 003A1968 7C E0 30 38 */ and r0, r7, r6
/* 803A4A0C 003A196C 7D 03 28 38 */ and r3, r8, r5
/* 803A4A10 003A1970 7C 63 32 78 */ xor r3, r3, r6
/* 803A4A14 003A1974 7C 00 32 78 */ xor r0, r0, r6
/* 803A4A18 003A1978 7C 60 03 79 */ or. r0, r3, r0
/* 803A4A1C 003A197C 40 82 00 14 */ bne lbl_803A4A30
/* 803A4A20 003A1980 7D 00 2B 78 */ or r0, r8, r5
/* 803A4A24 003A1984 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A4A28 003A1988 90 FF 01 14 */ stw r7, 0x114(r31)
/* 803A4A2C 003A198C 48 00 00 0C */ b lbl_803A4A38
lbl_803A4A30:
/* 803A4A30 003A1990 80 04 00 04 */ lwz r0, 4(r4)
/* 803A4A34 003A1994 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A4A38:
/* 803A4A38 003A1998 80 04 00 00 */ lwz r0, 0(r4)
/* 803A4A3C 003A199C 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A4A40 003A19A0 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l
/* 803A4A44 003A19A4 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf
/* 803A4A48 003A19A8 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4A4C 003A19AC 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4A50 003A19B0 54 65 0F FE */ srwi r5, r3, 0x1f
/* 803A4A54 003A19B4 7C A3 2A 15 */ add. r5, r3, r5
/* 803A4A58 003A19B8 40 80 00 2C */ bge lbl_803A4A84
/* 803A4A5C 003A19BC 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4A60 003A19C0 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4A64 003A19C4 7C 63 07 74 */ extsb r3, r3
/* 803A4A68 003A19C8 54 63 40 2E */ slwi r3, r3, 8
/* 803A4A6C 003A19CC 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4A70 003A19D0 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4A74 003A19D4 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4A78 003A19D8 7C 63 3A 14 */ add r3, r3, r7
/* 803A4A7C 003A19DC 7C A3 28 50 */ subf r5, r3, r5
/* 803A4A80 003A19E0 48 00 00 28 */ b lbl_803A4AA8
lbl_803A4A84:
/* 803A4A84 003A19E4 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4A88 003A19E8 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4A8C 003A19EC 7C 63 07 74 */ extsb r3, r3
/* 803A4A90 003A19F0 54 63 40 2E */ slwi r3, r3, 8
/* 803A4A94 003A19F4 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4A98 003A19F8 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4A9C 003A19FC 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4AA0 003A1A00 7C 63 3A 14 */ add r3, r3, r7
/* 803A4AA4 003A1A04 7C A5 1A 14 */ add r5, r5, r3
lbl_803A4AA8:
/* 803A4AA8 003A1A08 80 84 00 04 */ lwz r4, 4(r4)
/* 803A4AAC 003A1A0C 38 7F 03 38 */ addi r3, r31, 0x338
/* 803A4AB0 003A1A10 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A4AB4 003A1A14 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A4AB8 003A1A18 7C E8 00 D0 */ neg r7, r8
/* 803A4ABC 003A1A1C 7C E0 43 78 */ or r0, r7, r8
/* 803A4AC0 003A1A20 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A4AC4 003A1A24 48 00 D1 7D */ bl inpAddCtrl
/* 803A4AC8 003A1A28 80 1F 02 14 */ lwz r0, 0x214(r31)
/* 803A4ACC 003A1A2C 60 00 01 00 */ ori r0, r0, 0x100
/* 803A4AD0 003A1A30 90 1F 02 14 */ stw r0, 0x214(r31)
/* 803A4AD4 003A1A34 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A4AD8 003A1A38 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A4ADC 003A1A3C 7C 08 03 A6 */ mtlr r0
/* 803A4AE0 003A1A40 38 21 00 10 */ addi r1, r1, 0x10
/* 803A4AE4 003A1A44 4E 80 00 20 */ blr
.global sub_803a4ae8
sub_803a4ae8:
/* 803A4AE8 003A1A48 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A4AEC 003A1A4C 7C 08 02 A6 */ mflr r0
/* 803A4AF0 003A1A50 3C A0 40 00 */ lis r5, 0x4000
/* 803A4AF4 003A1A54 38 C0 00 00 */ li r6, 0
/* 803A4AF8 003A1A58 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A4AFC 003A1A5C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A4B00 003A1A60 7C 7F 1B 78 */ mr r31, r3
/* 803A4B04 003A1A64 80 E3 01 14 */ lwz r7, 0x114(r3)
/* 803A4B08 003A1A68 81 03 01 18 */ lwz r8, 0x118(r3)
/* 803A4B0C 003A1A6C 7C E0 30 38 */ and r0, r7, r6
/* 803A4B10 003A1A70 7D 03 28 38 */ and r3, r8, r5
/* 803A4B14 003A1A74 7C 63 32 78 */ xor r3, r3, r6
/* 803A4B18 003A1A78 7C 00 32 78 */ xor r0, r0, r6
/* 803A4B1C 003A1A7C 7C 60 03 79 */ or. r0, r3, r0
/* 803A4B20 003A1A80 40 82 00 14 */ bne lbl_803A4B34
/* 803A4B24 003A1A84 7D 00 2B 78 */ or r0, r8, r5
/* 803A4B28 003A1A88 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A4B2C 003A1A8C 90 FF 01 14 */ stw r7, 0x114(r31)
/* 803A4B30 003A1A90 48 00 00 0C */ b lbl_803A4B3C
lbl_803A4B34:
/* 803A4B34 003A1A94 80 04 00 04 */ lwz r0, 4(r4)
/* 803A4B38 003A1A98 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A4B3C:
/* 803A4B3C 003A1A9C 80 04 00 00 */ lwz r0, 0(r4)
/* 803A4B40 003A1AA0 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A4B44 003A1AA4 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l
/* 803A4B48 003A1AA8 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf
/* 803A4B4C 003A1AAC 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4B50 003A1AB0 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4B54 003A1AB4 54 65 0F FE */ srwi r5, r3, 0x1f
/* 803A4B58 003A1AB8 7C A3 2A 15 */ add. r5, r3, r5
/* 803A4B5C 003A1ABC 40 80 00 2C */ bge lbl_803A4B88
/* 803A4B60 003A1AC0 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4B64 003A1AC4 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4B68 003A1AC8 7C 63 07 74 */ extsb r3, r3
/* 803A4B6C 003A1ACC 54 63 40 2E */ slwi r3, r3, 8
/* 803A4B70 003A1AD0 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4B74 003A1AD4 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4B78 003A1AD8 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4B7C 003A1ADC 7C 63 3A 14 */ add r3, r3, r7
/* 803A4B80 003A1AE0 7C A3 28 50 */ subf r5, r3, r5
/* 803A4B84 003A1AE4 48 00 00 28 */ b lbl_803A4BAC
lbl_803A4B88:
/* 803A4B88 003A1AE8 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4B8C 003A1AEC 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4B90 003A1AF0 7C 63 07 74 */ extsb r3, r3
/* 803A4B94 003A1AF4 54 63 40 2E */ slwi r3, r3, 8
/* 803A4B98 003A1AF8 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4B9C 003A1AFC 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4BA0 003A1B00 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4BA4 003A1B04 7C 63 3A 14 */ add r3, r3, r7
/* 803A4BA8 003A1B08 7C A5 1A 14 */ add r5, r5, r3
lbl_803A4BAC:
/* 803A4BAC 003A1B0C 80 84 00 04 */ lwz r4, 4(r4)
/* 803A4BB0 003A1B10 38 7F 03 80 */ addi r3, r31, 0x380
/* 803A4BB4 003A1B14 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A4BB8 003A1B18 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A4BBC 003A1B1C 7C E8 00 D0 */ neg r7, r8
/* 803A4BC0 003A1B20 7C E0 43 78 */ or r0, r7, r8
/* 803A4BC4 003A1B24 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A4BC8 003A1B28 48 00 D0 79 */ bl inpAddCtrl
/* 803A4BCC 003A1B2C 80 1F 02 14 */ lwz r0, 0x214(r31)
/* 803A4BD0 003A1B30 60 00 04 00 */ ori r0, r0, 0x400
/* 803A4BD4 003A1B34 90 1F 02 14 */ stw r0, 0x214(r31)
/* 803A4BD8 003A1B38 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A4BDC 003A1B3C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A4BE0 003A1B40 7C 08 03 A6 */ mtlr r0
/* 803A4BE4 003A1B44 38 21 00 10 */ addi r1, r1, 0x10
/* 803A4BE8 003A1B48 4E 80 00 20 */ blr
.global mcmdVolumeSelect
mcmdVolumeSelect:
/* 803A4BEC 003A1B4C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A4BF0 003A1B50 7C 08 02 A6 */ mflr r0
/* 803A4BF4 003A1B54 3C A0 80 00 */ lis r5, 0x8000
/* 803A4BF8 003A1B58 38 C0 00 00 */ li r6, 0
/* 803A4BFC 003A1B5C 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A4C00 003A1B60 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A4C04 003A1B64 7C 7F 1B 78 */ mr r31, r3
/* 803A4C08 003A1B68 80 E3 01 14 */ lwz r7, 0x114(r3)
/* 803A4C0C 003A1B6C 81 03 01 18 */ lwz r8, 0x118(r3)
/* 803A4C10 003A1B70 7C E0 30 38 */ and r0, r7, r6
/* 803A4C14 003A1B74 7D 03 28 38 */ and r3, r8, r5
/* 803A4C18 003A1B78 7C 63 32 78 */ xor r3, r3, r6
/* 803A4C1C 003A1B7C 7C 00 32 78 */ xor r0, r0, r6
/* 803A4C20 003A1B80 7C 60 03 79 */ or. r0, r3, r0
/* 803A4C24 003A1B84 40 82 00 14 */ bne lbl_803A4C38
/* 803A4C28 003A1B88 7D 00 2B 78 */ or r0, r8, r5
/* 803A4C2C 003A1B8C 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A4C30 003A1B90 90 FF 01 14 */ stw r7, 0x114(r31)
/* 803A4C34 003A1B94 48 00 00 0C */ b lbl_803A4C40
lbl_803A4C38:
/* 803A4C38 003A1B98 80 04 00 04 */ lwz r0, 4(r4)
/* 803A4C3C 003A1B9C 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A4C40:
/* 803A4C40 003A1BA0 80 04 00 00 */ lwz r0, 0(r4)
/* 803A4C44 003A1BA4 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A4C48 003A1BA8 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l
/* 803A4C4C 003A1BAC 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf
/* 803A4C50 003A1BB0 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4C54 003A1BB4 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4C58 003A1BB8 54 65 0F FE */ srwi r5, r3, 0x1f
/* 803A4C5C 003A1BBC 7C A3 2A 15 */ add. r5, r3, r5
/* 803A4C60 003A1BC0 40 80 00 2C */ bge lbl_803A4C8C
/* 803A4C64 003A1BC4 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4C68 003A1BC8 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4C6C 003A1BCC 7C 63 07 74 */ extsb r3, r3
/* 803A4C70 003A1BD0 54 63 40 2E */ slwi r3, r3, 8
/* 803A4C74 003A1BD4 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4C78 003A1BD8 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4C7C 003A1BDC 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4C80 003A1BE0 7C 63 3A 14 */ add r3, r3, r7
/* 803A4C84 003A1BE4 7C A3 28 50 */ subf r5, r3, r5
/* 803A4C88 003A1BE8 48 00 00 28 */ b lbl_803A4CB0
lbl_803A4C8C:
/* 803A4C8C 003A1BEC 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4C90 003A1BF0 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4C94 003A1BF4 7C 63 07 74 */ extsb r3, r3
/* 803A4C98 003A1BF8 54 63 40 2E */ slwi r3, r3, 8
/* 803A4C9C 003A1BFC 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4CA0 003A1C00 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4CA4 003A1C04 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4CA8 003A1C08 7C 63 3A 14 */ add r3, r3, r7
/* 803A4CAC 003A1C0C 7C A5 1A 14 */ add r5, r5, r3
lbl_803A4CB0:
/* 803A4CB0 003A1C10 80 84 00 04 */ lwz r4, 4(r4)
/* 803A4CB4 003A1C14 38 7F 03 A4 */ addi r3, r31, 0x3a4
/* 803A4CB8 003A1C18 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A4CBC 003A1C1C 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A4CC0 003A1C20 7C E8 00 D0 */ neg r7, r8
/* 803A4CC4 003A1C24 7C E0 43 78 */ or r0, r7, r8
/* 803A4CC8 003A1C28 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A4CCC 003A1C2C 48 00 CF 75 */ bl inpAddCtrl
/* 803A4CD0 003A1C30 80 1F 02 14 */ lwz r0, 0x214(r31)
/* 803A4CD4 003A1C34 60 00 08 00 */ ori r0, r0, 0x800
/* 803A4CD8 003A1C38 90 1F 02 14 */ stw r0, 0x214(r31)
/* 803A4CDC 003A1C3C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A4CE0 003A1C40 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A4CE4 003A1C44 7C 08 03 A6 */ mtlr r0
/* 803A4CE8 003A1C48 38 21 00 10 */ addi r1, r1, 0x10
/* 803A4CEC 003A1C4C 4E 80 00 20 */ blr
.global sub_803a4cf0
sub_803a4cf0:
/* 803A4CF0 003A1C50 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A4CF4 003A1C54 7C 08 02 A6 */ mflr r0
/* 803A4CF8 003A1C58 3C A0 04 00 */ lis r5, 0x400
/* 803A4CFC 003A1C5C 38 C0 00 00 */ li r6, 0
/* 803A4D00 003A1C60 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A4D04 003A1C64 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A4D08 003A1C68 7C 7F 1B 78 */ mr r31, r3
/* 803A4D0C 003A1C6C 80 E3 01 14 */ lwz r7, 0x114(r3)
/* 803A4D10 003A1C70 81 03 01 18 */ lwz r8, 0x118(r3)
/* 803A4D14 003A1C74 7C E0 30 38 */ and r0, r7, r6
/* 803A4D18 003A1C78 7D 03 28 38 */ and r3, r8, r5
/* 803A4D1C 003A1C7C 7C 63 32 78 */ xor r3, r3, r6
/* 803A4D20 003A1C80 7C 00 32 78 */ xor r0, r0, r6
/* 803A4D24 003A1C84 7C 60 03 79 */ or. r0, r3, r0
/* 803A4D28 003A1C88 40 82 00 14 */ bne lbl_803A4D3C
/* 803A4D2C 003A1C8C 7D 00 2B 78 */ or r0, r8, r5
/* 803A4D30 003A1C90 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A4D34 003A1C94 90 FF 01 14 */ stw r7, 0x114(r31)
/* 803A4D38 003A1C98 48 00 00 0C */ b lbl_803A4D44
lbl_803A4D3C:
/* 803A4D3C 003A1C9C 80 04 00 04 */ lwz r0, 4(r4)
/* 803A4D40 003A1CA0 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A4D44:
/* 803A4D44 003A1CA4 80 04 00 00 */ lwz r0, 0(r4)
/* 803A4D48 003A1CA8 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A4D4C 003A1CAC 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l
/* 803A4D50 003A1CB0 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf
/* 803A4D54 003A1CB4 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4D58 003A1CB8 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4D5C 003A1CBC 54 65 0F FE */ srwi r5, r3, 0x1f
/* 803A4D60 003A1CC0 7C A3 2A 15 */ add. r5, r3, r5
/* 803A4D64 003A1CC4 40 80 00 2C */ bge lbl_803A4D90
/* 803A4D68 003A1CC8 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4D6C 003A1CCC 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4D70 003A1CD0 7C 63 07 74 */ extsb r3, r3
/* 803A4D74 003A1CD4 54 63 40 2E */ slwi r3, r3, 8
/* 803A4D78 003A1CD8 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4D7C 003A1CDC 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4D80 003A1CE0 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4D84 003A1CE4 7C 63 3A 14 */ add r3, r3, r7
/* 803A4D88 003A1CE8 7C A3 28 50 */ subf r5, r3, r5
/* 803A4D8C 003A1CEC 48 00 00 28 */ b lbl_803A4DB4
lbl_803A4D90:
/* 803A4D90 003A1CF0 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4D94 003A1CF4 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4D98 003A1CF8 7C 63 07 74 */ extsb r3, r3
/* 803A4D9C 003A1CFC 54 63 40 2E */ slwi r3, r3, 8
/* 803A4DA0 003A1D00 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4DA4 003A1D04 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4DA8 003A1D08 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4DAC 003A1D0C 7C 63 3A 14 */ add r3, r3, r7
/* 803A4DB0 003A1D10 7C A5 1A 14 */ add r5, r5, r3
lbl_803A4DB4:
/* 803A4DB4 003A1D14 80 84 00 04 */ lwz r4, 4(r4)
/* 803A4DB8 003A1D18 38 7F 02 60 */ addi r3, r31, 0x260
/* 803A4DBC 003A1D1C 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A4DC0 003A1D20 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A4DC4 003A1D24 7C E8 00 D0 */ neg r7, r8
/* 803A4DC8 003A1D28 7C E0 43 78 */ or r0, r7, r8
/* 803A4DCC 003A1D2C 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A4DD0 003A1D30 48 00 CE 71 */ bl inpAddCtrl
/* 803A4DD4 003A1D34 80 1F 02 14 */ lwz r0, 0x214(r31)
/* 803A4DD8 003A1D38 60 00 00 04 */ ori r0, r0, 4
/* 803A4DDC 003A1D3C 90 1F 02 14 */ stw r0, 0x214(r31)
/* 803A4DE0 003A1D40 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A4DE4 003A1D44 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A4DE8 003A1D48 7C 08 03 A6 */ mtlr r0
/* 803A4DEC 003A1D4C 38 21 00 10 */ addi r1, r1, 0x10
/* 803A4DF0 003A1D50 4E 80 00 20 */ blr
.global sub_803a4df4
sub_803a4df4:
/* 803A4DF4 003A1D54 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A4DF8 003A1D58 7C 08 02 A6 */ mflr r0
/* 803A4DFC 003A1D5C 3C A0 08 00 */ lis r5, 0x800
/* 803A4E00 003A1D60 38 C0 00 00 */ li r6, 0
/* 803A4E04 003A1D64 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A4E08 003A1D68 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A4E0C 003A1D6C 7C 7F 1B 78 */ mr r31, r3
/* 803A4E10 003A1D70 80 E3 01 14 */ lwz r7, 0x114(r3)
/* 803A4E14 003A1D74 81 03 01 18 */ lwz r8, 0x118(r3)
/* 803A4E18 003A1D78 7C E0 30 38 */ and r0, r7, r6
/* 803A4E1C 003A1D7C 7D 03 28 38 */ and r3, r8, r5
/* 803A4E20 003A1D80 7C 63 32 78 */ xor r3, r3, r6
/* 803A4E24 003A1D84 7C 00 32 78 */ xor r0, r0, r6
/* 803A4E28 003A1D88 7C 60 03 79 */ or. r0, r3, r0
/* 803A4E2C 003A1D8C 40 82 00 14 */ bne lbl_803A4E40
/* 803A4E30 003A1D90 7D 00 2B 78 */ or r0, r8, r5
/* 803A4E34 003A1D94 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A4E38 003A1D98 90 FF 01 14 */ stw r7, 0x114(r31)
/* 803A4E3C 003A1D9C 48 00 00 0C */ b lbl_803A4E48
lbl_803A4E40:
/* 803A4E40 003A1DA0 80 04 00 04 */ lwz r0, 4(r4)
/* 803A4E44 003A1DA4 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A4E48:
/* 803A4E48 003A1DA8 80 04 00 00 */ lwz r0, 0(r4)
/* 803A4E4C 003A1DAC 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A4E50 003A1DB0 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l
/* 803A4E54 003A1DB4 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf
/* 803A4E58 003A1DB8 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4E5C 003A1DBC 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4E60 003A1DC0 54 65 0F FE */ srwi r5, r3, 0x1f
/* 803A4E64 003A1DC4 7C A3 2A 15 */ add. r5, r3, r5
/* 803A4E68 003A1DC8 40 80 00 2C */ bge lbl_803A4E94
/* 803A4E6C 003A1DCC 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4E70 003A1DD0 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4E74 003A1DD4 7C 63 07 74 */ extsb r3, r3
/* 803A4E78 003A1DD8 54 63 40 2E */ slwi r3, r3, 8
/* 803A4E7C 003A1DDC 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4E80 003A1DE0 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4E84 003A1DE4 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4E88 003A1DE8 7C 63 3A 14 */ add r3, r3, r7
/* 803A4E8C 003A1DEC 7C A3 28 50 */ subf r5, r3, r5
/* 803A4E90 003A1DF0 48 00 00 28 */ b lbl_803A4EB8
lbl_803A4E94:
/* 803A4E94 003A1DF4 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4E98 003A1DF8 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4E9C 003A1DFC 7C 63 07 74 */ extsb r3, r3
/* 803A4EA0 003A1E00 54 63 40 2E */ slwi r3, r3, 8
/* 803A4EA4 003A1E04 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4EA8 003A1E08 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4EAC 003A1E0C 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4EB0 003A1E10 7C 63 3A 14 */ add r3, r3, r7
/* 803A4EB4 003A1E14 7C A5 1A 14 */ add r5, r5, r3
lbl_803A4EB8:
/* 803A4EB8 003A1E18 80 84 00 04 */ lwz r4, 4(r4)
/* 803A4EBC 003A1E1C 38 7F 02 A8 */ addi r3, r31, 0x2a8
/* 803A4EC0 003A1E20 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A4EC4 003A1E24 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A4EC8 003A1E28 7C E8 00 D0 */ neg r7, r8
/* 803A4ECC 003A1E2C 7C E0 43 78 */ or r0, r7, r8
/* 803A4ED0 003A1E30 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A4ED4 003A1E34 48 00 CD 6D */ bl inpAddCtrl
/* 803A4ED8 003A1E38 80 1F 02 14 */ lwz r0, 0x214(r31)
/* 803A4EDC 003A1E3C 60 00 00 10 */ ori r0, r0, 0x10
/* 803A4EE0 003A1E40 90 1F 02 14 */ stw r0, 0x214(r31)
/* 803A4EE4 003A1E44 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A4EE8 003A1E48 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A4EEC 003A1E4C 7C 08 03 A6 */ mtlr r0
/* 803A4EF0 003A1E50 38 21 00 10 */ addi r1, r1, 0x10
/* 803A4EF4 003A1E54 4E 80 00 20 */ blr
.global sub_803a4ef8
sub_803a4ef8:
/* 803A4EF8 003A1E58 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A4EFC 003A1E5C 7C 08 02 A6 */ mflr r0
/* 803A4F00 003A1E60 3C A0 10 00 */ lis r5, 0x1000
/* 803A4F04 003A1E64 38 C0 00 00 */ li r6, 0
/* 803A4F08 003A1E68 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A4F0C 003A1E6C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A4F10 003A1E70 7C 7F 1B 78 */ mr r31, r3
/* 803A4F14 003A1E74 80 E3 01 14 */ lwz r7, 0x114(r3)
/* 803A4F18 003A1E78 81 03 01 18 */ lwz r8, 0x118(r3)
/* 803A4F1C 003A1E7C 7C E0 30 38 */ and r0, r7, r6
/* 803A4F20 003A1E80 7D 03 28 38 */ and r3, r8, r5
/* 803A4F24 003A1E84 7C 63 32 78 */ xor r3, r3, r6
/* 803A4F28 003A1E88 7C 00 32 78 */ xor r0, r0, r6
/* 803A4F2C 003A1E8C 7C 60 03 79 */ or. r0, r3, r0
/* 803A4F30 003A1E90 40 82 00 14 */ bne lbl_803A4F44
/* 803A4F34 003A1E94 7D 00 2B 78 */ or r0, r8, r5
/* 803A4F38 003A1E98 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A4F3C 003A1E9C 90 FF 01 14 */ stw r7, 0x114(r31)
/* 803A4F40 003A1EA0 48 00 00 0C */ b lbl_803A4F4C
lbl_803A4F44:
/* 803A4F44 003A1EA4 80 04 00 04 */ lwz r0, 4(r4)
/* 803A4F48 003A1EA8 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A4F4C:
/* 803A4F4C 003A1EAC 80 04 00 00 */ lwz r0, 0(r4)
/* 803A4F50 003A1EB0 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A4F54 003A1EB4 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l
/* 803A4F58 003A1EB8 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf
/* 803A4F5C 003A1EBC 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4F60 003A1EC0 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4F64 003A1EC4 54 65 0F FE */ srwi r5, r3, 0x1f
/* 803A4F68 003A1EC8 7C A3 2A 15 */ add. r5, r3, r5
/* 803A4F6C 003A1ECC 40 80 00 2C */ bge lbl_803A4F98
/* 803A4F70 003A1ED0 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4F74 003A1ED4 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4F78 003A1ED8 7C 63 07 74 */ extsb r3, r3
/* 803A4F7C 003A1EDC 54 63 40 2E */ slwi r3, r3, 8
/* 803A4F80 003A1EE0 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4F84 003A1EE4 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4F88 003A1EE8 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4F8C 003A1EEC 7C 63 3A 14 */ add r3, r3, r7
/* 803A4F90 003A1EF0 7C A3 28 50 */ subf r5, r3, r5
/* 803A4F94 003A1EF4 48 00 00 28 */ b lbl_803A4FBC
lbl_803A4F98:
/* 803A4F98 003A1EF8 80 64 00 04 */ lwz r3, 4(r4)
/* 803A4F9C 003A1EFC 54 63 84 3E */ srwi r3, r3, 0x10
/* 803A4FA0 003A1F00 7C 63 07 74 */ extsb r3, r3
/* 803A4FA4 003A1F04 54 63 40 2E */ slwi r3, r3, 8
/* 803A4FA8 003A1F08 7C 67 18 96 */ mulhw r3, r7, r3
/* 803A4FAC 003A1F0C 7C 63 2E 70 */ srawi r3, r3, 5
/* 803A4FB0 003A1F10 54 67 0F FE */ srwi r7, r3, 0x1f
/* 803A4FB4 003A1F14 7C 63 3A 14 */ add r3, r3, r7
/* 803A4FB8 003A1F18 7C A5 1A 14 */ add r5, r5, r3
lbl_803A4FBC:
/* 803A4FBC 003A1F1C 80 84 00 04 */ lwz r4, 4(r4)
/* 803A4FC0 003A1F20 38 7F 03 C8 */ addi r3, r31, 0x3c8
/* 803A4FC4 003A1F24 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A4FC8 003A1F28 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A4FCC 003A1F2C 7C E8 00 D0 */ neg r7, r8
/* 803A4FD0 003A1F30 7C E0 43 78 */ or r0, r7, r8
/* 803A4FD4 003A1F34 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A4FD8 003A1F38 48 00 CC 69 */ bl inpAddCtrl
/* 803A4FDC 003A1F3C 80 1F 02 14 */ lwz r0, 0x214(r31)
/* 803A4FE0 003A1F40 60 00 10 00 */ ori r0, r0, 0x1000
/* 803A4FE4 003A1F44 90 1F 02 14 */ stw r0, 0x214(r31)
/* 803A4FE8 003A1F48 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A4FEC 003A1F4C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A4FF0 003A1F50 7C 08 03 A6 */ mtlr r0
/* 803A4FF4 003A1F54 38 21 00 10 */ addi r1, r1, 0x10
/* 803A4FF8 003A1F58 4E 80 00 20 */ blr
.global sub_803a4ffc
sub_803a4ffc:
/* 803A4FFC 003A1F5C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A5000 003A1F60 7C 08 02 A6 */ mflr r0
/* 803A5004 003A1F64 3C A0 80 3F */ lis r5, lbl_803F31F8@ha
/* 803A5008 003A1F68 3D 60 80 3F */ lis r11, lbl_803F3218@ha
/* 803A500C 003A1F6C 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A5010 003A1F70 38 A5 31 F8 */ addi r5, r5, lbl_803F31F8@l
/* 803A5014 003A1F74 39 6B 32 18 */ addi r11, r11, lbl_803F3218@l
/* 803A5018 003A1F78 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803A501C 003A1F7C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803A5020 003A1F80 7C 7E 1B 78 */ mr r30, r3
/* 803A5024 003A1F84 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803A5028 003A1F88 93 81 00 10 */ stw r28, 0x10(r1)
/* 803A502C 003A1F8C 80 04 00 04 */ lwz r0, 4(r4)
/* 803A5030 003A1F90 88 63 01 1F */ lbz r3, 0x11f(r3)
/* 803A5034 003A1F94 54 06 5D 78 */ rlwinm r6, r0, 0xb, 0x15, 0x1c
/* 803A5038 003A1F98 80 FE 01 14 */ lwz r7, 0x114(r30)
/* 803A503C 003A1F9C 7D 05 32 14 */ add r8, r5, r6
/* 803A5040 003A1FA0 3C A0 80 55 */ lis r5, inpAuxA@ha
/* 803A5044 003A1FA4 83 A8 00 00 */ lwz r29, 0(r8)
/* 803A5048 003A1FA8 1D 43 00 90 */ mulli r10, r3, 0x90
/* 803A504C 003A1FAC 83 88 00 04 */ lwz r28, 4(r8)
/* 803A5050 003A1FB0 39 25 0F 74 */ addi r9, r5, inpAuxA@l
/* 803A5054 003A1FB4 81 1E 01 18 */ lwz r8, 0x118(r30)
/* 803A5058 003A1FB8 38 C0 00 00 */ li r6, 0
/* 803A505C 003A1FBC 7C E3 E8 38 */ and r3, r7, r29
/* 803A5060 003A1FC0 7D 05 E0 38 */ and r5, r8, r28
/* 803A5064 003A1FC4 54 1F 46 3E */ srwi r31, r0, 0x18
/* 803A5068 003A1FC8 7C 63 32 78 */ xor r3, r3, r6
/* 803A506C 003A1FCC 54 0C 55 BA */ rlwinm r12, r0, 0xa, 0x16, 0x1d
/* 803A5070 003A1FD0 7C A5 32 78 */ xor r5, r5, r6
/* 803A5074 003A1FD4 7D 29 52 14 */ add r9, r9, r10
/* 803A5078 003A1FD8 7C A3 1B 79 */ or. r3, r5, r3
/* 803A507C 003A1FDC 1C BF 00 24 */ mulli r5, r31, 0x24
/* 803A5080 003A1FE0 7F EB 60 2E */ lwzx r31, r11, r12
/* 803A5084 003A1FE4 7C 69 2A 14 */ add r3, r9, r5
/* 803A5088 003A1FE8 40 82 00 18 */ bne lbl_803A50A0
/* 803A508C 003A1FEC 7D 05 E3 78 */ or r5, r8, r28
/* 803A5090 003A1FF0 7C E0 EB 78 */ or r0, r7, r29
/* 803A5094 003A1FF4 90 BE 01 18 */ stw r5, 0x118(r30)
/* 803A5098 003A1FF8 90 1E 01 14 */ stw r0, 0x114(r30)
/* 803A509C 003A1FFC 48 00 00 08 */ b lbl_803A50A4
lbl_803A50A0:
/* 803A50A0 003A2000 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A50A4:
/* 803A50A4 003A2004 80 04 00 00 */ lwz r0, 0(r4)
/* 803A50A8 003A2008 3C A0 51 EC */ lis r5, 0x51EB851F@ha
/* 803A50AC 003A200C 39 05 85 1F */ addi r8, r5, 0x51EB851F@l
/* 803A50B0 003A2010 54 05 00 1E */ rlwinm r5, r0, 0, 0, 0xf
/* 803A50B4 003A2014 7C A8 28 96 */ mulhw r5, r8, r5
/* 803A50B8 003A2018 7C A5 2E 70 */ srawi r5, r5, 5
/* 803A50BC 003A201C 54 A7 0F FE */ srwi r7, r5, 0x1f
/* 803A50C0 003A2020 7C A5 3A 15 */ add. r5, r5, r7
/* 803A50C4 003A2024 40 80 00 2C */ bge lbl_803A50F0
/* 803A50C8 003A2028 80 E4 00 04 */ lwz r7, 4(r4)
/* 803A50CC 003A202C 54 E7 84 3E */ srwi r7, r7, 0x10
/* 803A50D0 003A2030 7C E7 07 74 */ extsb r7, r7
/* 803A50D4 003A2034 54 E7 40 2E */ slwi r7, r7, 8
/* 803A50D8 003A2038 7C E8 38 96 */ mulhw r7, r8, r7
/* 803A50DC 003A203C 7C E7 2E 70 */ srawi r7, r7, 5
/* 803A50E0 003A2040 54 E8 0F FE */ srwi r8, r7, 0x1f
/* 803A50E4 003A2044 7C E7 42 14 */ add r7, r7, r8
/* 803A50E8 003A2048 7C A7 28 50 */ subf r5, r7, r5
/* 803A50EC 003A204C 48 00 00 28 */ b lbl_803A5114
lbl_803A50F0:
/* 803A50F0 003A2050 80 E4 00 04 */ lwz r7, 4(r4)
/* 803A50F4 003A2054 54 E7 84 3E */ srwi r7, r7, 0x10
/* 803A50F8 003A2058 7C E7 07 74 */ extsb r7, r7
/* 803A50FC 003A205C 54 E7 40 2E */ slwi r7, r7, 8
/* 803A5100 003A2060 7C E8 38 96 */ mulhw r7, r8, r7
/* 803A5104 003A2064 7C E7 2E 70 */ srawi r7, r7, 5
/* 803A5108 003A2068 54 E8 0F FE */ srwi r8, r7, 0x1f
/* 803A510C 003A206C 7C E7 42 14 */ add r7, r7, r8
/* 803A5110 003A2070 7C A5 3A 14 */ add r5, r5, r7
lbl_803A5114:
/* 803A5114 003A2074 80 84 00 04 */ lwz r4, 4(r4)
/* 803A5118 003A2078 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A511C 003A207C 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A5120 003A2080 7C E8 00 D0 */ neg r7, r8
/* 803A5124 003A2084 7C E0 43 78 */ or r0, r7, r8
/* 803A5128 003A2088 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A512C 003A208C 48 00 CB 15 */ bl inpAddCtrl
/* 803A5130 003A2090 57 E0 00 01 */ rlwinm. r0, r31, 0, 0, 0
/* 803A5134 003A2094 41 82 00 18 */ beq lbl_803A514C
/* 803A5138 003A2098 88 7E 01 21 */ lbz r3, 0x121(r30)
/* 803A513C 003A209C 7F E5 FB 78 */ mr r5, r31
/* 803A5140 003A20A0 88 9E 01 22 */ lbz r4, 0x122(r30)
/* 803A5144 003A20A4 48 00 BF 89 */ bl inpSetGlobalMIDIDirtyFlag
/* 803A5148 003A20A8 48 00 00 10 */ b lbl_803A5158
lbl_803A514C:
/* 803A514C 003A20AC 80 1E 02 14 */ lwz r0, 0x214(r30)
/* 803A5150 003A20B0 7C 00 FB 78 */ or r0, r0, r31
/* 803A5154 003A20B4 90 1E 02 14 */ stw r0, 0x214(r30)
lbl_803A5158:
/* 803A5158 003A20B8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A515C 003A20BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803A5160 003A20C0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803A5164 003A20C4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803A5168 003A20C8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 803A516C 003A20CC 7C 08 03 A6 */ mtlr r0
/* 803A5170 003A20D0 38 21 00 20 */ addi r1, r1, 0x20
/* 803A5174 003A20D4 4E 80 00 20 */ blr
.global mcmdAuxAFXSelect
mcmdAuxAFXSelect:
/* 803A5178 003A20D8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A517C 003A20DC 7C 08 02 A6 */ mflr r0
/* 803A5180 003A20E0 3C A0 80 3F */ lis r5, lbl_803F3228@ha
/* 803A5184 003A20E4 3D 60 80 3F */ lis r11, lbl_803F3248@ha
/* 803A5188 003A20E8 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A518C 003A20EC 38 A5 32 28 */ addi r5, r5, lbl_803F3228@l
/* 803A5190 003A20F0 39 6B 32 48 */ addi r11, r11, lbl_803F3248@l
/* 803A5194 003A20F4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803A5198 003A20F8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803A519C 003A20FC 7C 7E 1B 78 */ mr r30, r3
/* 803A51A0 003A2100 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803A51A4 003A2104 93 81 00 10 */ stw r28, 0x10(r1)
/* 803A51A8 003A2108 80 04 00 04 */ lwz r0, 4(r4)
/* 803A51AC 003A210C 88 63 01 1F */ lbz r3, 0x11f(r3)
/* 803A51B0 003A2110 54 06 5D 78 */ rlwinm r6, r0, 0xb, 0x15, 0x1c
/* 803A51B4 003A2114 80 FE 01 14 */ lwz r7, 0x114(r30)
/* 803A51B8 003A2118 7D 05 32 14 */ add r8, r5, r6
/* 803A51BC 003A211C 3C A0 80 55 */ lis r5, inpAuxB@ha
/* 803A51C0 003A2120 83 A8 00 00 */ lwz r29, 0(r8)
/* 803A51C4 003A2124 1D 43 00 90 */ mulli r10, r3, 0x90
/* 803A51C8 003A2128 83 88 00 04 */ lwz r28, 4(r8)
/* 803A51CC 003A212C 39 25 0A F4 */ addi r9, r5, inpAuxB@l
/* 803A51D0 003A2130 81 1E 01 18 */ lwz r8, 0x118(r30)
/* 803A51D4 003A2134 38 C0 00 00 */ li r6, 0
/* 803A51D8 003A2138 7C E3 E8 38 */ and r3, r7, r29
/* 803A51DC 003A213C 7D 05 E0 38 */ and r5, r8, r28
/* 803A51E0 003A2140 54 1F 46 3E */ srwi r31, r0, 0x18
/* 803A51E4 003A2144 7C 63 32 78 */ xor r3, r3, r6
/* 803A51E8 003A2148 54 0C 55 BA */ rlwinm r12, r0, 0xa, 0x16, 0x1d
/* 803A51EC 003A214C 7C A5 32 78 */ xor r5, r5, r6
/* 803A51F0 003A2150 7D 29 52 14 */ add r9, r9, r10
/* 803A51F4 003A2154 7C A3 1B 79 */ or. r3, r5, r3
/* 803A51F8 003A2158 1C BF 00 24 */ mulli r5, r31, 0x24
/* 803A51FC 003A215C 7F EB 60 2E */ lwzx r31, r11, r12
/* 803A5200 003A2160 7C 69 2A 14 */ add r3, r9, r5
/* 803A5204 003A2164 40 82 00 18 */ bne lbl_803A521C
/* 803A5208 003A2168 7D 05 E3 78 */ or r5, r8, r28
/* 803A520C 003A216C 7C E0 EB 78 */ or r0, r7, r29
/* 803A5210 003A2170 90 BE 01 18 */ stw r5, 0x118(r30)
/* 803A5214 003A2174 90 1E 01 14 */ stw r0, 0x114(r30)
/* 803A5218 003A2178 48 00 00 08 */ b lbl_803A5220
lbl_803A521C:
/* 803A521C 003A217C 54 06 06 3E */ clrlwi r6, r0, 0x18
lbl_803A5220:
/* 803A5220 003A2180 80 04 00 00 */ lwz r0, 0(r4)
/* 803A5224 003A2184 3C A0 51 EC */ lis r5, 0x51EB851F@ha
/* 803A5228 003A2188 39 05 85 1F */ addi r8, r5, 0x51EB851F@l
/* 803A522C 003A218C 54 05 00 1E */ rlwinm r5, r0, 0, 0, 0xf
/* 803A5230 003A2190 7C A8 28 96 */ mulhw r5, r8, r5
/* 803A5234 003A2194 7C A5 2E 70 */ srawi r5, r5, 5
/* 803A5238 003A2198 54 A7 0F FE */ srwi r7, r5, 0x1f
/* 803A523C 003A219C 7C A5 3A 15 */ add. r5, r5, r7
/* 803A5240 003A21A0 40 80 00 2C */ bge lbl_803A526C
/* 803A5244 003A21A4 80 E4 00 04 */ lwz r7, 4(r4)
/* 803A5248 003A21A8 54 E7 84 3E */ srwi r7, r7, 0x10
/* 803A524C 003A21AC 7C E7 07 74 */ extsb r7, r7
/* 803A5250 003A21B0 54 E7 40 2E */ slwi r7, r7, 8
/* 803A5254 003A21B4 7C E8 38 96 */ mulhw r7, r8, r7
/* 803A5258 003A21B8 7C E7 2E 70 */ srawi r7, r7, 5
/* 803A525C 003A21BC 54 E8 0F FE */ srwi r8, r7, 0x1f
/* 803A5260 003A21C0 7C E7 42 14 */ add r7, r7, r8
/* 803A5264 003A21C4 7C A7 28 50 */ subf r5, r7, r5
/* 803A5268 003A21C8 48 00 00 28 */ b lbl_803A5290
lbl_803A526C:
/* 803A526C 003A21CC 80 E4 00 04 */ lwz r7, 4(r4)
/* 803A5270 003A21D0 54 E7 84 3E */ srwi r7, r7, 0x10
/* 803A5274 003A21D4 7C E7 07 74 */ extsb r7, r7
/* 803A5278 003A21D8 54 E7 40 2E */ slwi r7, r7, 8
/* 803A527C 003A21DC 7C E8 38 96 */ mulhw r7, r8, r7
/* 803A5280 003A21E0 7C E7 2E 70 */ srawi r7, r7, 5
/* 803A5284 003A21E4 54 E8 0F FE */ srwi r8, r7, 0x1f
/* 803A5288 003A21E8 7C E7 42 14 */ add r7, r7, r8
/* 803A528C 003A21EC 7C A5 3A 14 */ add r5, r5, r7
lbl_803A5290:
/* 803A5290 003A21F0 80 84 00 04 */ lwz r4, 4(r4)
/* 803A5294 003A21F4 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f
/* 803A5298 003A21F8 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
/* 803A529C 003A21FC 7C E8 00 D0 */ neg r7, r8
/* 803A52A0 003A2200 7C E0 43 78 */ or r0, r7, r8
/* 803A52A4 003A2204 54 07 0F FE */ srwi r7, r0, 0x1f
/* 803A52A8 003A2208 48 00 C9 99 */ bl inpAddCtrl
/* 803A52AC 003A220C 57 E0 00 01 */ rlwinm. r0, r31, 0, 0, 0
/* 803A52B0 003A2210 41 82 00 18 */ beq lbl_803A52C8
/* 803A52B4 003A2214 88 7E 01 21 */ lbz r3, 0x121(r30)
/* 803A52B8 003A2218 7F E5 FB 78 */ mr r5, r31
/* 803A52BC 003A221C 88 9E 01 22 */ lbz r4, 0x122(r30)
/* 803A52C0 003A2220 48 00 BE 0D */ bl inpSetGlobalMIDIDirtyFlag
/* 803A52C4 003A2224 48 00 00 10 */ b lbl_803A52D4
lbl_803A52C8:
/* 803A52C8 003A2228 80 1E 02 14 */ lwz r0, 0x214(r30)
/* 803A52CC 003A222C 7C 00 FB 78 */ or r0, r0, r31
/* 803A52D0 003A2230 90 1E 02 14 */ stw r0, 0x214(r30)
lbl_803A52D4:
/* 803A52D4 003A2234 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A52D8 003A2238 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803A52DC 003A223C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803A52E0 003A2240 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803A52E4 003A2244 83 81 00 10 */ lwz r28, 0x10(r1)
/* 803A52E8 003A2248 7C 08 03 A6 */ mtlr r0
/* 803A52EC 003A224C 38 21 00 20 */ addi r1, r1, 0x20
/* 803A52F0 003A2250 4E 80 00 20 */ blr
.global mcmdPortamento
mcmdPortamento:
/* 803A52F4 003A2254 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A52F8 003A2258 7C 08 02 A6 */ mflr r0
/* 803A52FC 003A225C 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A5300 003A2260 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803A5304 003A2264 7C 7F 1B 78 */ mr r31, r3
/* 803A5308 003A2268 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803A530C 003A226C 7C 9E 23 78 */ mr r30, r4
/* 803A5310 003A2270 80 04 00 00 */ lwz r0, 0(r4)
/* 803A5314 003A2274 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f
/* 803A5318 003A2278 98 03 01 31 */ stb r0, 0x131(r3)
/* 803A531C 003A227C 80 04 00 04 */ lwz r0, 4(r4)
/* 803A5320 003A2280 54 00 84 3E */ srwi r0, r0, 0x10
/* 803A5324 003A2284 90 01 00 08 */ stw r0, 8(r1)
/* 803A5328 003A2288 80 04 00 04 */ lwz r0, 4(r4)
/* 803A532C 003A228C 54 00 C7 FF */ rlwinm. r0, r0, 0x18, 0x1f, 0x1f
/* 803A5330 003A2290 41 82 00 10 */ beq lbl_803A5340
/* 803A5334 003A2294 38 61 00 08 */ addi r3, r1, 8
/* 803A5338 003A2298 48 00 DB B5 */ bl sndConvertMs
/* 803A533C 003A229C 48 00 00 10 */ b lbl_803A534C
lbl_803A5340:
/* 803A5340 003A22A0 7F E4 FB 78 */ mr r4, r31
/* 803A5344 003A22A4 38 61 00 08 */ addi r3, r1, 8
/* 803A5348 003A22A8 48 00 DB B5 */ bl sndConvertTicks
lbl_803A534C:
/* 803A534C 003A22AC 80 01 00 08 */ lwz r0, 8(r1)
/* 803A5350 003A22B0 90 1F 01 34 */ stw r0, 0x134(r31)
/* 803A5354 003A22B4 80 1E 00 00 */ lwz r0, 0(r30)
/* 803A5358 003A22B8 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
/* 803A535C 003A22BC 2C 00 00 01 */ cmpwi r0, 1
/* 803A5360 003A22C0 41 82 00 60 */ beq lbl_803A53C0
/* 803A5364 003A22C4 40 80 00 10 */ bge lbl_803A5374
/* 803A5368 003A22C8 2C 00 00 00 */ cmpwi r0, 0
/* 803A536C 003A22CC 40 80 00 14 */ bge lbl_803A5380
/* 803A5370 003A22D0 48 00 00 D0 */ b lbl_803A5440
lbl_803A5374:
/* 803A5374 003A22D4 2C 00 00 03 */ cmpwi r0, 3
/* 803A5378 003A22D8 40 80 00 C8 */ bge lbl_803A5440
/* 803A537C 003A22DC 48 00 00 A0 */ b lbl_803A541C
lbl_803A5380:
/* 803A5380 003A22E0 88 9F 01 21 */ lbz r4, 0x121(r31)
/* 803A5384 003A22E4 28 04 00 FF */ cmplwi r4, 0xff
/* 803A5388 003A22E8 41 82 00 14 */ beq lbl_803A539C
/* 803A538C 003A22EC 88 BF 01 22 */ lbz r5, 0x122(r31)
/* 803A5390 003A22F0 38 60 00 41 */ li r3, 0x41
/* 803A5394 003A22F4 38 C0 00 00 */ li r6, 0
/* 803A5398 003A22F8 48 00 BD 59 */ bl inpSetMidiCtrl
lbl_803A539C:
/* 803A539C 003A22FC 80 BF 01 18 */ lwz r5, 0x118(r31)
/* 803A53A0 003A2300 38 00 FB FF */ li r0, -1025
/* 803A53A4 003A2304 80 9F 01 14 */ lwz r4, 0x114(r31)
/* 803A53A8 003A2308 38 60 FF FF */ li r3, -1
/* 803A53AC 003A230C 7C A0 00 38 */ and r0, r5, r0
/* 803A53B0 003A2310 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A53B4 003A2314 7C 80 18 38 */ and r0, r4, r3
/* 803A53B8 003A2318 90 1F 01 14 */ stw r0, 0x114(r31)
/* 803A53BC 003A231C 48 00 00 84 */ b lbl_803A5440
lbl_803A53C0:
/* 803A53C0 003A2320 88 9F 01 21 */ lbz r4, 0x121(r31)
/* 803A53C4 003A2324 28 04 00 FF */ cmplwi r4, 0xff
/* 803A53C8 003A2328 41 82 00 14 */ beq lbl_803A53DC
/* 803A53CC 003A232C 88 BF 01 22 */ lbz r5, 0x122(r31)
/* 803A53D0 003A2330 38 60 00 41 */ li r3, 0x41
/* 803A53D4 003A2334 38 C0 00 7F */ li r6, 0x7f
/* 803A53D8 003A2338 48 00 BD 19 */ bl inpSetMidiCtrl
lbl_803A53DC:
/* 803A53DC 003A233C 80 1F 01 14 */ lwz r0, 0x114(r31)
/* 803A53E0 003A2340 38 80 00 00 */ li r4, 0
/* 803A53E4 003A2344 80 BF 01 18 */ lwz r5, 0x118(r31)
/* 803A53E8 003A2348 38 60 04 00 */ li r3, 0x400
/* 803A53EC 003A234C 7C 00 20 38 */ and r0, r0, r4
/* 803A53F0 003A2350 7C A3 18 38 */ and r3, r5, r3
/* 803A53F4 003A2354 7C 63 22 78 */ xor r3, r3, r4
/* 803A53F8 003A2358 7C 00 22 78 */ xor r0, r0, r4
/* 803A53FC 003A235C 7C 60 03 79 */ or. r0, r3, r0
/* 803A5400 003A2360 40 82 00 0C */ bne lbl_803A540C
/* 803A5404 003A2364 7F E3 FB 78 */ mr r3, r31
/* 803A5408 003A2368 4B FF 39 11 */ bl synthInitPortamento
lbl_803A540C:
/* 803A540C 003A236C 80 1F 01 18 */ lwz r0, 0x118(r31)
/* 803A5410 003A2370 60 00 04 00 */ ori r0, r0, 0x400
/* 803A5414 003A2374 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A5418 003A2378 48 00 00 28 */ b lbl_803A5440
lbl_803A541C:
/* 803A541C 003A237C 88 9F 01 21 */ lbz r4, 0x121(r31)
/* 803A5420 003A2380 28 04 00 FF */ cmplwi r4, 0xff
/* 803A5424 003A2384 41 82 00 1C */ beq lbl_803A5440
/* 803A5428 003A2388 88 BF 01 22 */ lbz r5, 0x122(r31)
/* 803A542C 003A238C 38 60 00 41 */ li r3, 0x41
/* 803A5430 003A2390 48 00 C4 DD */ bl inpGetMidiCtrl
/* 803A5434 003A2394 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 803A5438 003A2398 28 00 1F 80 */ cmplwi r0, 0x1f80
/* 803A543C 003A239C 41 81 FF A0 */ bgt lbl_803A53DC
lbl_803A5440:
/* 803A5440 003A23A0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A5444 003A23A4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803A5448 003A23A8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803A544C 003A23AC 7C 08 03 A6 */ mtlr r0
/* 803A5450 003A23B0 38 21 00 20 */ addi r1, r1, 0x20
/* 803A5454 003A23B4 4E 80 00 20 */ blr
.global varGet
varGet:
/* 803A5458 003A23B8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A545C 003A23BC 7C 08 02 A6 */ mflr r0
/* 803A5460 003A23C0 28 04 00 00 */ cmplwi r4, 0
/* 803A5464 003A23C4 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A5468 003A23C8 41 82 00 14 */ beq lbl_803A547C
/* 803A546C 003A23CC 7C A4 2B 78 */ mr r4, r5
/* 803A5470 003A23D0 48 00 D6 51 */ bl inpGetExCtrl
/* 803A5474 003A23D4 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 803A5478 003A23D8 48 00 00 34 */ b lbl_803A54AC
lbl_803A547C:
/* 803A547C 003A23DC 54 A0 06 FE */ clrlwi r0, r5, 0x1b
/* 803A5480 003A23E0 28 00 00 10 */ cmplwi r0, 0x10
/* 803A5484 003A23E4 40 80 00 14 */ bge lbl_803A5498
/* 803A5488 003A23E8 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A548C 003A23EC 7C 63 02 14 */ add r3, r3, r0
/* 803A5490 003A23F0 80 03 00 AC */ lwz r0, 0xac(r3)
/* 803A5494 003A23F4 48 00 00 18 */ b lbl_803A54AC
lbl_803A5498:
/* 803A5498 003A23F8 3C 60 80 55 */ lis r3, synthGlobalVariable@ha
/* 803A549C 003A23FC 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A54A0 003A2400 38 63 0A B4 */ addi r3, r3, synthGlobalVariable@l
/* 803A54A4 003A2404 7C 63 02 14 */ add r3, r3, r0
/* 803A54A8 003A2408 80 03 FF C0 */ lwz r0, -0x40(r3)
lbl_803A54AC:
/* 803A54AC 003A240C 7C 03 07 34 */ extsh r3, r0
/* 803A54B0 003A2410 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A54B4 003A2414 7C 08 03 A6 */ mtlr r0
/* 803A54B8 003A2418 38 21 00 10 */ addi r1, r1, 0x10
/* 803A54BC 003A241C 4E 80 00 20 */ blr
.global mcmdVarCalculation
mcmdVarCalculation:
/* 803A54C0 003A2420 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A54C4 003A2424 7C 08 02 A6 */ mflr r0
/* 803A54C8 003A2428 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A54CC 003A242C 39 61 00 20 */ addi r11, r1, 0x20
/* 803A54D0 003A2430 4B FE 45 AD */ bl _savegpr_27
/* 803A54D4 003A2434 80 04 00 00 */ lwz r0, 0(r4)
/* 803A54D8 003A2438 7C 9C 23 78 */ mr r28, r4
/* 803A54DC 003A243C 80 84 00 04 */ lwz r4, 4(r4)
/* 803A54E0 003A2440 7C 7B 1B 78 */ mr r27, r3
/* 803A54E4 003A2444 54 00 46 3F */ rlwinm. r0, r0, 8, 0x18, 0x1f
/* 803A54E8 003A2448 7C BD 2B 78 */ mr r29, r5
/* 803A54EC 003A244C 54 84 06 3E */ clrlwi r4, r4, 0x18
/* 803A54F0 003A2450 41 82 00 10 */ beq lbl_803A5500
/* 803A54F4 003A2454 48 00 D5 CD */ bl inpGetExCtrl
/* 803A54F8 003A2458 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 803A54FC 003A245C 48 00 00 34 */ b lbl_803A5530
lbl_803A5500:
/* 803A5500 003A2460 54 80 06 FE */ clrlwi r0, r4, 0x1b
/* 803A5504 003A2464 28 00 00 10 */ cmplwi r0, 0x10
/* 803A5508 003A2468 40 80 00 14 */ bge lbl_803A551C
/* 803A550C 003A246C 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A5510 003A2470 7C 7B 02 14 */ add r3, r27, r0
/* 803A5514 003A2474 80 63 00 AC */ lwz r3, 0xac(r3)
/* 803A5518 003A2478 48 00 00 18 */ b lbl_803A5530
lbl_803A551C:
/* 803A551C 003A247C 3C 60 80 55 */ lis r3, synthGlobalVariable@ha
/* 803A5520 003A2480 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A5524 003A2484 38 63 0A B4 */ addi r3, r3, synthGlobalVariable@l
/* 803A5528 003A2488 7C 63 02 14 */ add r3, r3, r0
/* 803A552C 003A248C 80 63 FF C0 */ lwz r3, -0x40(r3)
lbl_803A5530:
/* 803A5530 003A2490 57 A0 06 3E */ clrlwi r0, r29, 0x18
/* 803A5534 003A2494 7C 7F 07 34 */ extsh r31, r3
/* 803A5538 003A2498 28 00 00 04 */ cmplwi r0, 4
/* 803A553C 003A249C 40 82 00 14 */ bne lbl_803A5550
/* 803A5540 003A24A0 80 1C 00 04 */ lwz r0, 4(r28)
/* 803A5544 003A24A4 54 00 C2 3E */ srwi r0, r0, 8
/* 803A5548 003A24A8 7C 03 07 34 */ extsh r3, r0
/* 803A554C 003A24AC 48 00 00 58 */ b lbl_803A55A4
lbl_803A5550:
/* 803A5550 003A24B0 80 7C 00 04 */ lwz r3, 4(r28)
/* 803A5554 003A24B4 54 60 C6 3F */ rlwinm. r0, r3, 0x18, 0x18, 0x1f
/* 803A5558 003A24B8 54 64 86 3E */ rlwinm r4, r3, 0x10, 0x18, 0x1f
/* 803A555C 003A24BC 41 82 00 14 */ beq lbl_803A5570
/* 803A5560 003A24C0 7F 63 DB 78 */ mr r3, r27
/* 803A5564 003A24C4 48 00 D5 5D */ bl inpGetExCtrl
/* 803A5568 003A24C8 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 803A556C 003A24CC 48 00 00 34 */ b lbl_803A55A0
lbl_803A5570:
/* 803A5570 003A24D0 54 80 06 FE */ clrlwi r0, r4, 0x1b
/* 803A5574 003A24D4 28 00 00 10 */ cmplwi r0, 0x10
/* 803A5578 003A24D8 40 80 00 14 */ bge lbl_803A558C
/* 803A557C 003A24DC 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A5580 003A24E0 7C 7B 02 14 */ add r3, r27, r0
/* 803A5584 003A24E4 80 03 00 AC */ lwz r0, 0xac(r3)
/* 803A5588 003A24E8 48 00 00 18 */ b lbl_803A55A0
lbl_803A558C:
/* 803A558C 003A24EC 3C 60 80 55 */ lis r3, synthGlobalVariable@ha
/* 803A5590 003A24F0 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A5594 003A24F4 38 63 0A B4 */ addi r3, r3, synthGlobalVariable@l
/* 803A5598 003A24F8 7C 63 02 14 */ add r3, r3, r0
/* 803A559C 003A24FC 80 03 FF C0 */ lwz r0, -0x40(r3)
lbl_803A55A0:
/* 803A55A0 003A2500 7C 03 07 34 */ extsh r3, r0
lbl_803A55A4:
/* 803A55A4 003A2504 57 A0 06 3E */ clrlwi r0, r29, 0x18
/* 803A55A8 003A2508 2C 00 00 02 */ cmpwi r0, 2
/* 803A55AC 003A250C 41 82 00 40 */ beq lbl_803A55EC
/* 803A55B0 003A2510 40 80 00 14 */ bge lbl_803A55C4
/* 803A55B4 003A2514 2C 00 00 00 */ cmpwi r0, 0
/* 803A55B8 003A2518 41 82 00 1C */ beq lbl_803A55D4
/* 803A55BC 003A251C 40 80 00 24 */ bge lbl_803A55E0
/* 803A55C0 003A2520 48 00 00 50 */ b lbl_803A5610
lbl_803A55C4:
/* 803A55C4 003A2524 2C 00 00 04 */ cmpwi r0, 4
/* 803A55C8 003A2528 41 82 00 0C */ beq lbl_803A55D4
/* 803A55CC 003A252C 40 80 00 44 */ bge lbl_803A5610
/* 803A55D0 003A2530 48 00 00 28 */ b lbl_803A55F8
lbl_803A55D4:
/* 803A55D4 003A2534 7C 60 07 34 */ extsh r0, r3
/* 803A55D8 003A2538 7F DF 02 14 */ add r30, r31, r0
/* 803A55DC 003A253C 48 00 00 34 */ b lbl_803A5610
lbl_803A55E0:
/* 803A55E0 003A2540 7C 60 07 34 */ extsh r0, r3
/* 803A55E4 003A2544 7F C0 F8 50 */ subf r30, r0, r31
/* 803A55E8 003A2548 48 00 00 28 */ b lbl_803A5610
lbl_803A55EC:
/* 803A55EC 003A254C 7C 60 07 34 */ extsh r0, r3
/* 803A55F0 003A2550 7F DF 01 D6 */ mullw r30, r31, r0
/* 803A55F4 003A2554 48 00 00 1C */ b lbl_803A5610
lbl_803A55F8:
/* 803A55F8 003A2558 7C 60 07 35 */ extsh. r0, r3
/* 803A55FC 003A255C 41 82 00 10 */ beq lbl_803A560C
/* 803A5600 003A2560 7C 60 07 34 */ extsh r0, r3
/* 803A5604 003A2564 7F DF 03 D6 */ divw r30, r31, r0
/* 803A5608 003A2568 48 00 00 08 */ b lbl_803A5610
lbl_803A560C:
/* 803A560C 003A256C 3B C0 00 00 */ li r30, 0
lbl_803A5610:
/* 803A5610 003A2570 80 7C 00 00 */ lwz r3, 0(r28)
/* 803A5614 003A2574 54 60 C6 3F */ rlwinm. r0, r3, 0x18, 0x18, 0x1f
/* 803A5618 003A2578 54 64 86 3E */ rlwinm r4, r3, 0x10, 0x18, 0x1f
/* 803A561C 003A257C 41 82 00 34 */ beq lbl_803A5650
/* 803A5620 003A2580 2C 1E 80 00 */ cmpwi r30, -32768
/* 803A5624 003A2584 7F 63 DB 78 */ mr r3, r27
/* 803A5628 003A2588 40 80 00 0C */ bge lbl_803A5634
/* 803A562C 003A258C 38 00 80 00 */ li r0, -32768
/* 803A5630 003A2590 48 00 00 14 */ b lbl_803A5644
lbl_803A5634:
/* 803A5634 003A2594 2C 1E 7F FF */ cmpwi r30, 0x7fff
/* 803A5638 003A2598 38 00 7F FF */ li r0, 0x7fff
/* 803A563C 003A259C 41 81 00 08 */ bgt lbl_803A5644
/* 803A5640 003A25A0 7F C0 F3 78 */ mr r0, r30
lbl_803A5644:
/* 803A5644 003A25A4 7C 05 07 34 */ extsh r5, r0
/* 803A5648 003A25A8 48 00 D5 75 */ bl inpSetExCtrl
/* 803A564C 003A25AC 48 00 00 7C */ b lbl_803A56C8
lbl_803A5650:
/* 803A5650 003A25B0 54 80 06 FE */ clrlwi r0, r4, 0x1b
/* 803A5654 003A25B4 28 00 00 10 */ cmplwi r0, 0x10
/* 803A5658 003A25B8 40 80 00 38 */ bge lbl_803A5690
/* 803A565C 003A25BC 2C 1E 80 00 */ cmpwi r30, -32768
/* 803A5660 003A25C0 40 80 00 0C */ bge lbl_803A566C
/* 803A5664 003A25C4 38 60 80 00 */ li r3, -32768
/* 803A5668 003A25C8 48 00 00 14 */ b lbl_803A567C
lbl_803A566C:
/* 803A566C 003A25CC 2C 1E 7F FF */ cmpwi r30, 0x7fff
/* 803A5670 003A25D0 38 60 7F FF */ li r3, 0x7fff
/* 803A5674 003A25D4 41 81 00 08 */ bgt lbl_803A567C
/* 803A5678 003A25D8 7F C3 F3 78 */ mr r3, r30
lbl_803A567C:
/* 803A567C 003A25DC 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A5680 003A25E0 7C 64 07 34 */ extsh r4, r3
/* 803A5684 003A25E4 7C 7B 02 14 */ add r3, r27, r0
/* 803A5688 003A25E8 90 83 00 AC */ stw r4, 0xac(r3)
/* 803A568C 003A25EC 48 00 00 3C */ b lbl_803A56C8
lbl_803A5690:
/* 803A5690 003A25F0 2C 1E 80 00 */ cmpwi r30, -32768
/* 803A5694 003A25F4 40 80 00 0C */ bge lbl_803A56A0
/* 803A5698 003A25F8 38 80 80 00 */ li r4, -32768
/* 803A569C 003A25FC 48 00 00 14 */ b lbl_803A56B0
lbl_803A56A0:
/* 803A56A0 003A2600 2C 1E 7F FF */ cmpwi r30, 0x7fff
/* 803A56A4 003A2604 38 80 7F FF */ li r4, 0x7fff
/* 803A56A8 003A2608 41 81 00 08 */ bgt lbl_803A56B0
/* 803A56AC 003A260C 7F C4 F3 78 */ mr r4, r30
lbl_803A56B0:
/* 803A56B0 003A2610 3C 60 80 55 */ lis r3, synthGlobalVariable@ha
/* 803A56B4 003A2614 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A56B8 003A2618 38 63 0A B4 */ addi r3, r3, synthGlobalVariable@l
/* 803A56BC 003A261C 7C 84 07 34 */ extsh r4, r4
/* 803A56C0 003A2620 7C 63 02 14 */ add r3, r3, r0
/* 803A56C4 003A2624 90 83 FF C0 */ stw r4, -0x40(r3)
lbl_803A56C8:
/* 803A56C8 003A2628 39 61 00 20 */ addi r11, r1, 0x20
/* 803A56CC 003A262C 4B FE 43 FD */ bl _restgpr_27
/* 803A56D0 003A2630 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A56D4 003A2634 7C 08 03 A6 */ mtlr r0
/* 803A56D8 003A2638 38 21 00 20 */ addi r1, r1, 0x20
/* 803A56DC 003A263C 4E 80 00 20 */ blr
.global mcmdIfVarCompare
mcmdIfVarCompare:
/* 803A56E0 003A2640 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A56E4 003A2644 7C 08 02 A6 */ mflr r0
/* 803A56E8 003A2648 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A56EC 003A264C 39 61 00 20 */ addi r11, r1, 0x20
/* 803A56F0 003A2650 4B FE 43 8D */ bl _savegpr_27
/* 803A56F4 003A2654 7C 9D 23 78 */ mr r29, r4
/* 803A56F8 003A2658 80 84 00 00 */ lwz r4, 0(r4)
/* 803A56FC 003A265C 7C 7C 1B 78 */ mr r28, r3
/* 803A5700 003A2660 7C BE 2B 78 */ mr r30, r5
/* 803A5704 003A2664 54 80 C6 3F */ rlwinm. r0, r4, 0x18, 0x18, 0x1f
/* 803A5708 003A2668 54 84 86 3E */ rlwinm r4, r4, 0x10, 0x18, 0x1f
/* 803A570C 003A266C 41 82 00 10 */ beq lbl_803A571C
/* 803A5710 003A2670 48 00 D3 B1 */ bl inpGetExCtrl
/* 803A5714 003A2674 54 7B 04 3E */ clrlwi r27, r3, 0x10
/* 803A5718 003A2678 48 00 00 34 */ b lbl_803A574C
lbl_803A571C:
/* 803A571C 003A267C 54 80 06 FE */ clrlwi r0, r4, 0x1b
/* 803A5720 003A2680 28 00 00 10 */ cmplwi r0, 0x10
/* 803A5724 003A2684 40 80 00 14 */ bge lbl_803A5738
/* 803A5728 003A2688 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A572C 003A268C 7C 7C 02 14 */ add r3, r28, r0
/* 803A5730 003A2690 83 63 00 AC */ lwz r27, 0xac(r3)
/* 803A5734 003A2694 48 00 00 18 */ b lbl_803A574C
lbl_803A5738:
/* 803A5738 003A2698 3C 60 80 55 */ lis r3, synthGlobalVariable@ha
/* 803A573C 003A269C 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A5740 003A26A0 38 63 0A B4 */ addi r3, r3, synthGlobalVariable@l
/* 803A5744 003A26A4 7C 63 02 14 */ add r3, r3, r0
/* 803A5748 003A26A8 83 63 FF C0 */ lwz r27, -0x40(r3)
lbl_803A574C:
/* 803A574C 003A26AC 80 1D 00 00 */ lwz r0, 0(r29)
/* 803A5750 003A26B0 80 7D 00 04 */ lwz r3, 4(r29)
/* 803A5754 003A26B4 54 00 46 3F */ rlwinm. r0, r0, 8, 0x18, 0x1f
/* 803A5758 003A26B8 54 64 06 3E */ clrlwi r4, r3, 0x18
/* 803A575C 003A26BC 41 82 00 14 */ beq lbl_803A5770
/* 803A5760 003A26C0 7F 83 E3 78 */ mr r3, r28
/* 803A5764 003A26C4 48 00 D3 5D */ bl inpGetExCtrl
/* 803A5768 003A26C8 54 64 04 3E */ clrlwi r4, r3, 0x10
/* 803A576C 003A26CC 48 00 00 34 */ b lbl_803A57A0
lbl_803A5770:
/* 803A5770 003A26D0 54 80 06 FE */ clrlwi r0, r4, 0x1b
/* 803A5774 003A26D4 28 00 00 10 */ cmplwi r0, 0x10
/* 803A5778 003A26D8 40 80 00 14 */ bge lbl_803A578C
/* 803A577C 003A26DC 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A5780 003A26E0 7C 7C 02 14 */ add r3, r28, r0
/* 803A5784 003A26E4 80 83 00 AC */ lwz r4, 0xac(r3)
/* 803A5788 003A26E8 48 00 00 18 */ b lbl_803A57A0
lbl_803A578C:
/* 803A578C 003A26EC 3C 60 80 55 */ lis r3, synthGlobalVariable@ha
/* 803A5790 003A26F0 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A5794 003A26F4 38 63 0A B4 */ addi r3, r3, synthGlobalVariable@l
/* 803A5798 003A26F8 7C 63 02 14 */ add r3, r3, r0
/* 803A579C 003A26FC 80 83 FF C0 */ lwz r4, -0x40(r3)
lbl_803A57A0:
/* 803A57A0 003A2700 57 C0 06 3E */ clrlwi r0, r30, 0x18
/* 803A57A4 003A2704 2C 00 00 01 */ cmpwi r0, 1
/* 803A57A8 003A2708 41 82 00 24 */ beq lbl_803A57CC
/* 803A57AC 003A270C 40 80 00 38 */ bge lbl_803A57E4
/* 803A57B0 003A2710 2C 00 00 00 */ cmpwi r0, 0
/* 803A57B4 003A2714 40 80 00 08 */ bge lbl_803A57BC
/* 803A57B8 003A2718 48 00 00 2C */ b lbl_803A57E4
lbl_803A57BC:
/* 803A57BC 003A271C 7C 1B 20 50 */ subf r0, r27, r4
/* 803A57C0 003A2720 7C 00 00 34 */ cntlzw r0, r0
/* 803A57C4 003A2724 54 1F DE 3E */ rlwinm r31, r0, 0x1b, 0x18, 0x1f
/* 803A57C8 003A2728 48 00 00 1C */ b lbl_803A57E4
lbl_803A57CC:
/* 803A57CC 003A272C 7C 80 DA 78 */ xor r0, r4, r27
/* 803A57D0 003A2730 7C 03 0E 70 */ srawi r3, r0, 1
/* 803A57D4 003A2734 7C 00 20 38 */ and r0, r0, r4
/* 803A57D8 003A2738 7C 00 18 50 */ subf r0, r0, r3
/* 803A57DC 003A273C 54 00 0F FE */ srwi r0, r0, 0x1f
/* 803A57E0 003A2740 7C 1F 03 78 */ mr r31, r0
lbl_803A57E4:
/* 803A57E4 003A2744 80 9D 00 04 */ lwz r4, 4(r29)
/* 803A57E8 003A2748 54 80 C6 3F */ rlwinm. r0, r4, 0x18, 0x18, 0x1f
/* 803A57EC 003A274C 41 82 00 10 */ beq lbl_803A57FC
/* 803A57F0 003A2750 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 803A57F4 003A2754 7C 00 00 34 */ cntlzw r0, r0
/* 803A57F8 003A2758 54 1F DE 3E */ rlwinm r31, r0, 0x1b, 0x18, 0x1f
lbl_803A57FC:
/* 803A57FC 003A275C 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 803A5800 003A2760 41 82 00 14 */ beq lbl_803A5814
/* 803A5804 003A2764 80 7C 00 34 */ lwz r3, 0x34(r28)
/* 803A5808 003A2768 54 80 9B 78 */ rlwinm r0, r4, 0x13, 0xd, 0x1c
/* 803A580C 003A276C 7C 03 02 14 */ add r0, r3, r0
/* 803A5810 003A2770 90 1C 00 38 */ stw r0, 0x38(r28)
lbl_803A5814:
/* 803A5814 003A2774 39 61 00 20 */ addi r11, r1, 0x20
/* 803A5818 003A2778 4B FE 42 B1 */ bl _restgpr_27
/* 803A581C 003A277C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A5820 003A2780 7C 08 03 A6 */ mtlr r0
/* 803A5824 003A2784 38 21 00 20 */ addi r1, r1, 0x20
/* 803A5828 003A2788 4E 80 00 20 */ blr
.global mcmdSendMessage
mcmdSendMessage:
/* 803A582C 003A278C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A5830 003A2790 7C 08 02 A6 */ mflr r0
/* 803A5834 003A2794 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A5838 003A2798 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803A583C 003A279C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803A5840 003A27A0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803A5844 003A27A4 93 81 00 10 */ stw r28, 0x10(r1)
/* 803A5848 003A27A8 80 C4 00 04 */ lwz r6, 4(r4)
/* 803A584C 003A27AC 54 C0 C6 FE */ rlwinm r0, r6, 0x18, 0x1b, 0x1f
/* 803A5850 003A27B0 28 00 00 10 */ cmplwi r0, 0x10
/* 803A5854 003A27B4 40 80 00 14 */ bge lbl_803A5868
/* 803A5858 003A27B8 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A585C 003A27BC 7C A3 02 14 */ add r5, r3, r0
/* 803A5860 003A27C0 83 A5 00 AC */ lwz r29, 0xac(r5)
/* 803A5864 003A27C4 48 00 00 18 */ b lbl_803A587C
lbl_803A5868:
/* 803A5868 003A27C8 3C A0 80 55 */ lis r5, synthGlobalVariable@ha
/* 803A586C 003A27CC 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A5870 003A27D0 38 A5 0A B4 */ addi r5, r5, synthGlobalVariable@l
/* 803A5874 003A27D4 7C A5 02 14 */ add r5, r5, r0
/* 803A5878 003A27D8 83 A5 FF C0 */ lwz r29, -0x40(r5)
lbl_803A587C:
/* 803A587C 003A27DC 80 84 00 00 */ lwz r4, 0(r4)
/* 803A5880 003A27E0 54 80 C6 3F */ rlwinm. r0, r4, 0x18, 0x18, 0x1f
/* 803A5884 003A27E4 40 82 01 14 */ bne lbl_803A5998
/* 803A5888 003A27E8 54 9E 84 3E */ srwi r30, r4, 0x10
/* 803A588C 003A27EC 28 1E FF FF */ cmplwi r30, 0xffff
/* 803A5890 003A27F0 41 82 00 E4 */ beq lbl_803A5974
/* 803A5894 003A27F4 3C 60 80 55 */ lis r3, synthInfo@ha
/* 803A5898 003A27F8 3B 80 00 00 */ li r28, 0
/* 803A589C 003A27FC 3B E3 00 50 */ addi r31, r3, synthInfo@l
/* 803A58A0 003A2800 48 00 00 C0 */ b lbl_803A5960
lbl_803A58A4:
/* 803A58A4 003A2804 57 80 06 3E */ clrlwi r0, r28, 0x18
/* 803A58A8 003A2808 80 6D AE 78 */ lwz r3, synthVoice@sda21(r13)
/* 803A58AC 003A280C 1C 00 04 04 */ mulli r0, r0, 0x404
/* 803A58B0 003A2810 7C 63 02 14 */ add r3, r3, r0
/* 803A58B4 003A2814 80 03 00 34 */ lwz r0, 0x34(r3)
/* 803A58B8 003A2818 28 00 00 00 */ cmplwi r0, 0
/* 803A58BC 003A281C 41 82 00 A0 */ beq lbl_803A595C
/* 803A58C0 003A2820 A0 03 01 02 */ lhz r0, 0x102(r3)
/* 803A58C4 003A2824 7C 1E 00 40 */ cmplw r30, r0
/* 803A58C8 003A2828 40 82 00 94 */ bne lbl_803A595C
/* 803A58CC 003A282C 80 63 00 F8 */ lwz r3, 0xf8(r3)
/* 803A58D0 003A2830 80 63 00 08 */ lwz r3, 8(r3)
/* 803A58D4 003A2834 48 00 22 D5 */ bl vidGetInternalId
/* 803A58D8 003A2838 3C 03 00 01 */ addis r0, r3, 1
/* 803A58DC 003A283C 28 00 FF FF */ cmplwi r0, 0xffff
/* 803A58E0 003A2840 41 82 00 7C */ beq lbl_803A595C
/* 803A58E4 003A2844 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 803A58E8 003A2848 80 6D AE 78 */ lwz r3, synthVoice@sda21(r13)
/* 803A58EC 003A284C 1C 00 04 04 */ mulli r0, r0, 0x404
/* 803A58F0 003A2850 7C 63 02 14 */ add r3, r3, r0
/* 803A58F4 003A2854 88 83 03 EC */ lbz r4, 0x3ec(r3)
/* 803A58F8 003A2858 28 04 00 04 */ cmplwi r4, 4
/* 803A58FC 003A285C 40 80 00 60 */ bge lbl_803A595C
/* 803A5900 003A2860 38 04 00 01 */ addi r0, r4, 1
/* 803A5904 003A2864 98 03 03 EC */ stb r0, 0x3ec(r3)
/* 803A5908 003A2868 88 03 03 EE */ lbz r0, 0x3ee(r3)
/* 803A590C 003A286C 54 04 10 3A */ slwi r4, r0, 2
/* 803A5910 003A2870 38 04 03 F0 */ addi r0, r4, 0x3f0
/* 803A5914 003A2874 7F A3 01 2E */ stwx r29, r3, r0
/* 803A5918 003A2878 88 83 03 EE */ lbz r4, 0x3ee(r3)
/* 803A591C 003A287C 38 04 00 01 */ addi r0, r4, 1
/* 803A5920 003A2880 54 00 07 BE */ clrlwi r0, r0, 0x1e
/* 803A5924 003A2884 98 03 03 EE */ stb r0, 0x3ee(r3)
/* 803A5928 003A2888 88 03 00 68 */ lbz r0, 0x68(r3)
/* 803A592C 003A288C 28 00 00 00 */ cmplwi r0, 0
/* 803A5930 003A2890 41 82 00 2C */ beq lbl_803A595C
/* 803A5934 003A2894 80 03 00 58 */ lwz r0, 0x58(r3)
/* 803A5938 003A2898 28 00 00 00 */ cmplwi r0, 0
/* 803A593C 003A289C 41 82 00 20 */ beq lbl_803A595C
/* 803A5940 003A28A0 80 83 00 64 */ lwz r4, 0x64(r3)
/* 803A5944 003A28A4 38 00 00 00 */ li r0, 0
/* 803A5948 003A28A8 90 83 00 38 */ stw r4, 0x38(r3)
/* 803A594C 003A28AC 80 83 00 58 */ lwz r4, 0x58(r3)
/* 803A5950 003A28B0 90 83 00 34 */ stw r4, 0x34(r3)
/* 803A5954 003A28B4 90 03 00 58 */ stw r0, 0x58(r3)
/* 803A5958 003A28B8 48 00 16 65 */ bl macMakeActive
lbl_803A595C:
/* 803A595C 003A28BC 3B 9C 00 01 */ addi r28, r28, 1
lbl_803A5960:
/* 803A5960 003A28C0 88 1F 02 10 */ lbz r0, 0x210(r31)
/* 803A5964 003A28C4 57 83 06 3E */ clrlwi r3, r28, 0x18
/* 803A5968 003A28C8 7C 03 00 40 */ cmplw r3, r0
/* 803A596C 003A28CC 41 80 FF 38 */ blt lbl_803A58A4
/* 803A5970 003A28D0 48 00 00 E0 */ b lbl_803A5A50
lbl_803A5974:
/* 803A5974 003A28D4 81 8D AE 7C */ lwz r12, synthMessageCallback@sda21(r13)
/* 803A5978 003A28D8 28 0C 00 00 */ cmplwi r12, 0
/* 803A597C 003A28DC 41 82 00 D4 */ beq lbl_803A5A50
/* 803A5980 003A28E0 80 63 00 F8 */ lwz r3, 0xf8(r3)
/* 803A5984 003A28E4 7F A4 EB 78 */ mr r4, r29
/* 803A5988 003A28E8 80 63 00 08 */ lwz r3, 8(r3)
/* 803A598C 003A28EC 7D 89 03 A6 */ mtctr r12
/* 803A5990 003A28F0 4E 80 04 21 */ bctrl
/* 803A5994 003A28F4 48 00 00 BC */ b lbl_803A5A50
lbl_803A5998:
/* 803A5998 003A28F8 54 C0 06 FE */ clrlwi r0, r6, 0x1b
/* 803A599C 003A28FC 28 00 00 10 */ cmplwi r0, 0x10
/* 803A59A0 003A2900 40 80 00 14 */ bge lbl_803A59B4
/* 803A59A4 003A2904 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A59A8 003A2908 7C 63 02 14 */ add r3, r3, r0
/* 803A59AC 003A290C 80 63 00 AC */ lwz r3, 0xac(r3)
/* 803A59B0 003A2910 48 00 00 18 */ b lbl_803A59C8
lbl_803A59B4:
/* 803A59B4 003A2914 3C 60 80 55 */ lis r3, synthGlobalVariable@ha
/* 803A59B8 003A2918 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A59BC 003A291C 38 63 0A B4 */ addi r3, r3, synthGlobalVariable@l
/* 803A59C0 003A2920 7C 63 02 14 */ add r3, r3, r0
/* 803A59C4 003A2924 80 63 FF C0 */ lwz r3, -0x40(r3)
lbl_803A59C8:
/* 803A59C8 003A2928 48 00 21 E1 */ bl vidGetInternalId
/* 803A59CC 003A292C 3C 03 00 01 */ addis r0, r3, 1
/* 803A59D0 003A2930 28 00 FF FF */ cmplwi r0, 0xffff
/* 803A59D4 003A2934 41 82 00 7C */ beq lbl_803A5A50
/* 803A59D8 003A2938 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 803A59DC 003A293C 80 6D AE 78 */ lwz r3, synthVoice@sda21(r13)
/* 803A59E0 003A2940 1C 00 04 04 */ mulli r0, r0, 0x404
/* 803A59E4 003A2944 7C 63 02 14 */ add r3, r3, r0
/* 803A59E8 003A2948 88 83 03 EC */ lbz r4, 0x3ec(r3)
/* 803A59EC 003A294C 28 04 00 04 */ cmplwi r4, 4
/* 803A59F0 003A2950 40 80 00 60 */ bge lbl_803A5A50
/* 803A59F4 003A2954 38 04 00 01 */ addi r0, r4, 1
/* 803A59F8 003A2958 98 03 03 EC */ stb r0, 0x3ec(r3)
/* 803A59FC 003A295C 88 03 03 EE */ lbz r0, 0x3ee(r3)
/* 803A5A00 003A2960 54 00 10 3A */ slwi r0, r0, 2
/* 803A5A04 003A2964 7C 83 02 14 */ add r4, r3, r0
/* 803A5A08 003A2968 93 A4 03 F0 */ stw r29, 0x3f0(r4)
/* 803A5A0C 003A296C 88 83 03 EE */ lbz r4, 0x3ee(r3)
/* 803A5A10 003A2970 38 04 00 01 */ addi r0, r4, 1
/* 803A5A14 003A2974 54 00 07 BE */ clrlwi r0, r0, 0x1e
/* 803A5A18 003A2978 98 03 03 EE */ stb r0, 0x3ee(r3)
/* 803A5A1C 003A297C 88 03 00 68 */ lbz r0, 0x68(r3)
/* 803A5A20 003A2980 28 00 00 00 */ cmplwi r0, 0
/* 803A5A24 003A2984 41 82 00 2C */ beq lbl_803A5A50
/* 803A5A28 003A2988 80 03 00 58 */ lwz r0, 0x58(r3)
/* 803A5A2C 003A298C 28 00 00 00 */ cmplwi r0, 0
/* 803A5A30 003A2990 41 82 00 20 */ beq lbl_803A5A50
/* 803A5A34 003A2994 80 83 00 64 */ lwz r4, 0x64(r3)
/* 803A5A38 003A2998 38 00 00 00 */ li r0, 0
/* 803A5A3C 003A299C 90 83 00 38 */ stw r4, 0x38(r3)
/* 803A5A40 003A29A0 80 83 00 58 */ lwz r4, 0x58(r3)
/* 803A5A44 003A29A4 90 83 00 34 */ stw r4, 0x34(r3)
/* 803A5A48 003A29A8 90 03 00 58 */ stw r0, 0x58(r3)
/* 803A5A4C 003A29AC 48 00 15 71 */ bl macMakeActive
lbl_803A5A50:
/* 803A5A50 003A29B0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A5A54 003A29B4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803A5A58 003A29B8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803A5A5C 003A29BC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803A5A60 003A29C0 83 81 00 10 */ lwz r28, 0x10(r1)
/* 803A5A64 003A29C4 7C 08 03 A6 */ mtlr r0
/* 803A5A68 003A29C8 38 21 00 20 */ addi r1, r1, 0x20
/* 803A5A6C 003A29CC 4E 80 00 20 */ blr
.global mcmdGetVID
mcmdGetVID:
/* 803A5A70 003A29D0 80 84 00 00 */ lwz r4, 0(r4)
/* 803A5A74 003A29D4 54 80 86 3F */ rlwinm. r0, r4, 0x10, 0x18, 0x1f
/* 803A5A78 003A29D8 40 82 00 40 */ bne lbl_803A5AB8
/* 803A5A7C 003A29DC 54 80 C6 FE */ rlwinm r0, r4, 0x18, 0x1b, 0x1f
/* 803A5A80 003A29E0 80 83 00 F8 */ lwz r4, 0xf8(r3)
/* 803A5A84 003A29E4 28 00 00 10 */ cmplwi r0, 0x10
/* 803A5A88 003A29E8 80 84 00 08 */ lwz r4, 8(r4)
/* 803A5A8C 003A29EC 40 80 00 14 */ bge lbl_803A5AA0
/* 803A5A90 003A29F0 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A5A94 003A29F4 7C 63 02 14 */ add r3, r3, r0
/* 803A5A98 003A29F8 90 83 00 AC */ stw r4, 0xac(r3)
/* 803A5A9C 003A29FC 4E 80 00 20 */ blr
lbl_803A5AA0:
/* 803A5AA0 003A2A00 3C 60 80 55 */ lis r3, synthGlobalVariable@ha
/* 803A5AA4 003A2A04 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A5AA8 003A2A08 38 63 0A B4 */ addi r3, r3, synthGlobalVariable@l
/* 803A5AAC 003A2A0C 7C 63 02 14 */ add r3, r3, r0
/* 803A5AB0 003A2A10 90 83 FF C0 */ stw r4, -0x40(r3)
/* 803A5AB4 003A2A14 4E 80 00 20 */ blr
lbl_803A5AB8:
/* 803A5AB8 003A2A18 54 80 C6 FE */ rlwinm r0, r4, 0x18, 0x1b, 0x1f
/* 803A5ABC 003A2A1C 80 83 01 08 */ lwz r4, 0x108(r3)
/* 803A5AC0 003A2A20 28 00 00 10 */ cmplwi r0, 0x10
/* 803A5AC4 003A2A24 40 80 00 14 */ bge lbl_803A5AD8
/* 803A5AC8 003A2A28 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A5ACC 003A2A2C 7C 63 02 14 */ add r3, r3, r0
/* 803A5AD0 003A2A30 90 83 00 AC */ stw r4, 0xac(r3)
/* 803A5AD4 003A2A34 4E 80 00 20 */ blr
lbl_803A5AD8:
/* 803A5AD8 003A2A38 3C 60 80 55 */ lis r3, synthGlobalVariable@ha
/* 803A5ADC 003A2A3C 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
/* 803A5AE0 003A2A40 38 63 0A B4 */ addi r3, r3, synthGlobalVariable@l
/* 803A5AE4 003A2A44 7C 63 02 14 */ add r3, r3, r0
/* 803A5AE8 003A2A48 90 83 FF C0 */ stw r4, -0x40(r3)
/* 803A5AEC 003A2A4C 4E 80 00 20 */ blr
.global mcmdSetKeyGroup
mcmdSetKeyGroup:
/* 803A5AF0 003A2A50 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A5AF4 003A2A54 7C 08 02 A6 */ mflr r0
/* 803A5AF8 003A2A58 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A5AFC 003A2A5C 39 61 00 20 */ addi r11, r1, 0x20
/* 803A5B00 003A2A60 4B FE 3F 79 */ bl _savegpr_26
/* 803A5B04 003A2A64 3B C0 00 00 */ li r30, 0
/* 803A5B08 003A2A68 7C 7A 1B 78 */ mr r26, r3
/* 803A5B0C 003A2A6C 9B C3 01 04 */ stb r30, 0x104(r3)
/* 803A5B10 003A2A70 80 04 00 00 */ lwz r0, 0(r4)
/* 803A5B14 003A2A74 54 03 86 3E */ rlwinm r3, r0, 0x10, 0x18, 0x1f
/* 803A5B18 003A2A78 54 1C C6 3F */ rlwinm. r28, r0, 0x18, 0x18, 0x1f
/* 803A5B1C 003A2A7C 7C 03 00 D0 */ neg r0, r3
/* 803A5B20 003A2A80 7C 00 1B 78 */ or r0, r0, r3
/* 803A5B24 003A2A84 54 1B 0F FE */ srwi r27, r0, 0x1f
/* 803A5B28 003A2A88 41 82 00 8C */ beq lbl_803A5BB4
/* 803A5B2C 003A2A8C 3C 60 80 55 */ lis r3, synthInfo@ha
/* 803A5B30 003A2A90 3B A0 00 00 */ li r29, 0
/* 803A5B34 003A2A94 3B E3 00 50 */ addi r31, r3, synthInfo@l
/* 803A5B38 003A2A98 48 00 00 6C */ b lbl_803A5BA4
lbl_803A5B3C:
/* 803A5B3C 003A2A9C 80 0D AE 78 */ lwz r0, synthVoice@sda21(r13)
/* 803A5B40 003A2AA0 7C 60 F2 14 */ add r3, r0, r30
/* 803A5B44 003A2AA4 80 03 00 34 */ lwz r0, 0x34(r3)
/* 803A5B48 003A2AA8 28 00 00 00 */ cmplwi r0, 0
/* 803A5B4C 003A2AAC 41 82 00 50 */ beq lbl_803A5B9C
/* 803A5B50 003A2AB0 80 03 01 14 */ lwz r0, 0x114(r3)
/* 803A5B54 003A2AB4 38 A0 00 00 */ li r5, 0
/* 803A5B58 003A2AB8 80 C3 01 18 */ lwz r6, 0x118(r3)
/* 803A5B5C 003A2ABC 38 80 00 02 */ li r4, 2
/* 803A5B60 003A2AC0 7C 00 28 38 */ and r0, r0, r5
/* 803A5B64 003A2AC4 7C C4 20 38 */ and r4, r6, r4
/* 803A5B68 003A2AC8 7C 84 2A 78 */ xor r4, r4, r5
/* 803A5B6C 003A2ACC 7C 00 2A 78 */ xor r0, r0, r5
/* 803A5B70 003A2AD0 7C 80 03 79 */ or. r0, r4, r0
/* 803A5B74 003A2AD4 40 82 00 28 */ bne lbl_803A5B9C
/* 803A5B78 003A2AD8 88 03 01 04 */ lbz r0, 0x104(r3)
/* 803A5B7C 003A2ADC 7C 1C 00 40 */ cmplw r28, r0
/* 803A5B80 003A2AE0 40 82 00 1C */ bne lbl_803A5B9C
/* 803A5B84 003A2AE4 28 1B 00 00 */ cmplwi r27, 0
/* 803A5B88 003A2AE8 40 82 00 0C */ bne lbl_803A5B94
/* 803A5B8C 003A2AEC 48 00 11 95 */ bl macSetExternalKeyoff
/* 803A5B90 003A2AF0 48 00 00 0C */ b lbl_803A5B9C
lbl_803A5B94:
/* 803A5B94 003A2AF4 7F A3 EB 78 */ mr r3, r29
/* 803A5B98 003A2AF8 48 00 2E 85 */ bl voiceKill
lbl_803A5B9C:
/* 803A5B9C 003A2AFC 3B DE 04 04 */ addi r30, r30, 0x404
/* 803A5BA0 003A2B00 3B BD 00 01 */ addi r29, r29, 1
lbl_803A5BA4:
/* 803A5BA4 003A2B04 88 1F 02 10 */ lbz r0, 0x210(r31)
/* 803A5BA8 003A2B08 7C 1D 00 40 */ cmplw r29, r0
/* 803A5BAC 003A2B0C 41 80 FF 90 */ blt lbl_803A5B3C
/* 803A5BB0 003A2B10 9B 9A 01 04 */ stb r28, 0x104(r26)
lbl_803A5BB4:
/* 803A5BB4 003A2B14 39 61 00 20 */ addi r11, r1, 0x20
/* 803A5BB8 003A2B18 4B FE 3F 0D */ bl _restgpr_26
/* 803A5BBC 003A2B1C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A5BC0 003A2B20 7C 08 03 A6 */ mtlr r0
/* 803A5BC4 003A2B24 38 21 00 20 */ addi r1, r1, 0x20
/* 803A5BC8 003A2B28 4E 80 00 20 */ blr
.global sub_803a5bcc
sub_803a5bcc:
/* 803A5BCC 003A2B2C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803A5BD0 003A2B30 7C 08 02 A6 */ mflr r0
/* 803A5BD4 003A2B34 90 01 00 34 */ stw r0, 0x34(r1)
/* 803A5BD8 003A2B38 39 61 00 30 */ addi r11, r1, 0x30
/* 803A5BDC 003A2B3C 4B FE 3E 99 */ bl _savegpr_25
/* 803A5BE0 003A2B40 80 E3 01 18 */ lwz r7, 0x118(r3)
/* 803A5BE4 003A2B44 38 00 00 03 */ li r0, 3
/* 803A5BE8 003A2B48 80 C3 01 14 */ lwz r6, 0x114(r3)
/* 803A5BEC 003A2B4C 38 A0 00 00 */ li r5, 0
/* 803A5BF0 003A2B50 7C E0 00 38 */ and r0, r7, r0
/* 803A5BF4 003A2B54 7C 7F 1B 78 */ mr r31, r3
/* 803A5BF8 003A2B58 7C C4 28 38 */ and r4, r6, r5
/* 803A5BFC 003A2B5C 7C 03 2A 78 */ xor r3, r0, r5
/* 803A5C00 003A2B60 7C 80 2A 78 */ xor r0, r4, r5
/* 803A5C04 003A2B64 7C 60 03 79 */ or. r0, r3, r0
/* 803A5C08 003A2B68 41 82 02 1C */ beq lbl_803A5E24
/* 803A5C0C 003A2B6C 38 60 00 01 */ li r3, 1
/* 803A5C10 003A2B70 7C 80 2A 78 */ xor r0, r4, r5
/* 803A5C14 003A2B74 7C E3 18 38 */ and r3, r7, r3
/* 803A5C18 003A2B78 7C 63 2A 78 */ xor r3, r3, r5
/* 803A5C1C 003A2B7C 7C 60 03 79 */ or. r0, r3, r0
/* 803A5C20 003A2B80 41 82 00 28 */ beq lbl_803A5C48
/* 803A5C24 003A2B84 38 00 FF FE */ li r0, -2
/* 803A5C28 003A2B88 38 60 FF FF */ li r3, -1
/* 803A5C2C 003A2B8C 7C E0 00 38 */ and r0, r7, r0
/* 803A5C30 003A2B90 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A5C34 003A2B94 7C C0 18 38 */ and r0, r6, r3
/* 803A5C38 003A2B98 90 1F 01 14 */ stw r0, 0x114(r31)
/* 803A5C3C 003A2B9C 80 1F 00 F4 */ lwz r0, 0xf4(r31)
/* 803A5C40 003A2BA0 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 803A5C44 003A2BA4 48 00 D7 49 */ bl hwBreak
lbl_803A5C48:
/* 803A5C48 003A2BA8 88 1F 02 09 */ lbz r0, 0x209(r31)
/* 803A5C4C 003A2BAC 38 80 00 00 */ li r4, 0
/* 803A5C50 003A2BB0 7F E3 FB 78 */ mr r3, r31
/* 803A5C54 003A2BB4 54 00 80 1E */ slwi r0, r0, 0x10
/* 803A5C58 003A2BB8 90 1F 01 80 */ stw r0, 0x180(r31)
/* 803A5C5C 003A2BBC 90 1F 01 70 */ stw r0, 0x170(r31)
/* 803A5C60 003A2BC0 90 9F 01 84 */ stw r4, 0x184(r31)
/* 803A5C64 003A2BC4 90 9F 01 74 */ stw r4, 0x174(r31)
/* 803A5C68 003A2BC8 88 1F 02 08 */ lbz r0, 0x208(r31)
/* 803A5C6C 003A2BCC 54 00 80 1E */ slwi r0, r0, 0x10
/* 803A5C70 003A2BD0 90 1F 01 54 */ stw r0, 0x154(r31)
/* 803A5C74 003A2BD4 98 9F 01 92 */ stb r4, 0x192(r31)
/* 803A5C78 003A2BD8 80 1F 01 54 */ lwz r0, 0x154(r31)
/* 803A5C7C 003A2BDC 90 1F 01 58 */ stw r0, 0x158(r31)
/* 803A5C80 003A2BE0 88 1F 02 0A */ lbz r0, 0x20a(r31)
/* 803A5C84 003A2BE4 98 1F 01 21 */ stb r0, 0x121(r31)
/* 803A5C88 003A2BE8 88 1F 02 0B */ lbz r0, 0x20b(r31)
/* 803A5C8C 003A2BEC 98 1F 01 22 */ stb r0, 0x122(r31)
/* 803A5C90 003A2BF0 88 1F 02 0C */ lbz r0, 0x20c(r31)
/* 803A5C94 003A2BF4 98 1F 01 23 */ stb r0, 0x123(r31)
/* 803A5C98 003A2BF8 88 1F 02 0D */ lbz r0, 0x20d(r31)
/* 803A5C9C 003A2BFC 98 1F 01 20 */ stb r0, 0x120(r31)
/* 803A5CA0 003A2C00 88 1F 02 10 */ lbz r0, 0x210(r31)
/* 803A5CA4 003A2C04 98 1F 01 93 */ stb r0, 0x193(r31)
/* 803A5CA8 003A2C08 98 9F 01 04 */ stb r4, 0x104(r31)
/* 803A5CAC 003A2C0C B0 9F 01 50 */ sth r4, 0x150(r31)
/* 803A5CB0 003A2C10 B0 9F 01 6C */ sth r4, 0x16c(r31)
/* 803A5CB4 003A2C14 48 00 CB 19 */ bl sub_803b27cc
/* 803A5CB8 003A2C18 88 7F 01 21 */ lbz r3, 0x121(r31)
/* 803A5CBC 003A2C1C 88 9F 01 22 */ lbz r4, 0x122(r31)
/* 803A5CC0 003A2C20 48 00 C1 69 */ bl inpGetMidiLastNote
/* 803A5CC4 003A2C24 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 803A5CC8 003A2C28 28 00 00 FF */ cmplwi r0, 0xff
/* 803A5CCC 003A2C2C 41 82 00 0C */ beq lbl_803A5CD8
/* 803A5CD0 003A2C30 98 7F 01 30 */ stb r3, 0x130(r31)
/* 803A5CD4 003A2C34 48 00 00 0C */ b lbl_803A5CE0
lbl_803A5CD8:
/* 803A5CD8 003A2C38 88 1F 01 2F */ lbz r0, 0x12f(r31)
/* 803A5CDC 003A2C3C 98 1F 01 30 */ stb r0, 0x130(r31)
lbl_803A5CE0:
/* 803A5CE0 003A2C40 88 7F 01 21 */ lbz r3, 0x121(r31)
/* 803A5CE4 003A2C44 88 9F 01 22 */ lbz r4, 0x122(r31)
/* 803A5CE8 003A2C48 88 BF 01 2F */ lbz r5, 0x12f(r31)
/* 803A5CEC 003A2C4C 48 00 C1 01 */ bl inpSetMidiLastNote
/* 803A5CF0 003A2C50 7F E3 FB 78 */ mr r3, r31
/* 803A5CF4 003A2C54 48 00 31 F1 */ bl voiceSetLastStarted
/* 803A5CF8 003A2C58 88 9F 02 0E */ lbz r4, 0x20e(r31)
/* 803A5CFC 003A2C5C 38 60 00 00 */ li r3, 0
/* 803A5D00 003A2C60 38 00 64 00 */ li r0, 0x6400
/* 803A5D04 003A2C64 98 9F 01 1E */ stb r4, 0x11e(r31)
/* 803A5D08 003A2C68 88 9F 02 0F */ lbz r4, 0x20f(r31)
/* 803A5D0C 003A2C6C 98 9F 01 1F */ stb r4, 0x11f(r31)
/* 803A5D10 003A2C70 90 7F 01 3C */ stw r3, 0x13c(r31)
/* 803A5D14 003A2C74 90 1F 01 34 */ stw r0, 0x134(r31)
/* 803A5D18 003A2C78 98 7F 01 31 */ stb r3, 0x131(r31)
/* 803A5D1C 003A2C7C 88 9F 01 21 */ lbz r4, 0x121(r31)
/* 803A5D20 003A2C80 28 04 00 FF */ cmplwi r4, 0xff
/* 803A5D24 003A2C84 41 82 00 18 */ beq lbl_803A5D3C
/* 803A5D28 003A2C88 88 BF 01 22 */ lbz r5, 0x122(r31)
/* 803A5D2C 003A2C8C 38 60 00 41 */ li r3, 0x41
/* 803A5D30 003A2C90 48 00 BB DD */ bl inpGetMidiCtrl
/* 803A5D34 003A2C94 B0 7F 01 32 */ sth r3, 0x132(r31)
/* 803A5D38 003A2C98 48 00 00 08 */ b lbl_803A5D40
lbl_803A5D3C:
/* 803A5D3C 003A2C9C B0 7F 01 32 */ sth r3, 0x132(r31)
lbl_803A5D40:
/* 803A5D40 003A2CA0 88 7F 01 21 */ lbz r3, 0x121(r31)
/* 803A5D44 003A2CA4 88 9F 01 22 */ lbz r4, 0x122(r31)
/* 803A5D48 003A2CA8 48 00 BE 89 */ bl sub_803b1bd0
/* 803A5D4C 003A2CAC 88 03 00 00 */ lbz r0, 0(r3)
/* 803A5D50 003A2CB0 39 40 00 80 */ li r10, 0x80
/* 803A5D54 003A2CB4 39 20 00 00 */ li r9, 0
/* 803A5D58 003A2CB8 39 00 7F FF */ li r8, 0x7fff
/* 803A5D5C 003A2CBC 98 1F 01 D6 */ stb r0, 0x1d6(r31)
/* 803A5D60 003A2CC0 38 E0 FF FF */ li r7, -1
/* 803A5D64 003A2CC4 38 C0 20 00 */ li r6, 0x2000
/* 803A5D68 003A2CC8 38 00 00 08 */ li r0, 8
/* 803A5D6C 003A2CCC 89 63 00 00 */ lbz r11, 0(r3)
/* 803A5D70 003A2CD0 38 7F 00 AC */ addi r3, r31, 0xac
/* 803A5D74 003A2CD4 38 80 00 00 */ li r4, 0
/* 803A5D78 003A2CD8 38 A0 00 40 */ li r5, 0x40
/* 803A5D7C 003A2CDC 99 7F 01 D7 */ stb r11, 0x1d7(r31)
/* 803A5D80 003A2CE0 99 5F 01 90 */ stb r10, 0x190(r31)
/* 803A5D84 003A2CE4 99 3F 01 91 */ stb r9, 0x191(r31)
/* 803A5D88 003A2CE8 B1 3F 00 AA */ sth r9, 0xaa(r31)
/* 803A5D8C 003A2CEC 99 3F 01 B8 */ stb r9, 0x1b8(r31)
/* 803A5D90 003A2CF0 99 3F 01 B9 */ stb r9, 0x1b9(r31)
/* 803A5D94 003A2CF4 91 3F 01 A0 */ stw r9, 0x1a0(r31)
/* 803A5D98 003A2CF8 91 3F 01 A4 */ stw r9, 0x1a4(r31)
/* 803A5D9C 003A2CFC 91 3F 01 C0 */ stw r9, 0x1c0(r31)
/* 803A5DA0 003A2D00 B1 3F 01 C4 */ sth r9, 0x1c4(r31)
/* 803A5DA4 003A2D04 B1 1F 01 C6 */ sth r8, 0x1c6(r31)
/* 803A5DA8 003A2D08 91 3F 01 CC */ stw r9, 0x1cc(r31)
/* 803A5DAC 003A2D0C B1 3F 01 D0 */ sth r9, 0x1d0(r31)
/* 803A5DB0 003A2D10 B1 1F 01 D2 */ sth r8, 0x1d2(r31)
/* 803A5DB4 003A2D14 91 3F 00 50 */ stw r9, 0x50(r31)
/* 803A5DB8 003A2D18 91 3F 00 54 */ stw r9, 0x54(r31)
/* 803A5DBC 003A2D1C 91 3F 00 58 */ stw r9, 0x58(r31)
/* 803A5DC0 003A2D20 99 3F 00 68 */ stb r9, 0x68(r31)
/* 803A5DC4 003A2D24 90 FF 01 24 */ stw r7, 0x124(r31)
/* 803A5DC8 003A2D28 90 FF 01 28 */ stw r7, 0x128(r31)
/* 803A5DCC 003A2D2C B0 DF 01 D8 */ sth r6, 0x1d8(r31)
/* 803A5DD0 003A2D30 B1 3F 04 00 */ sth r9, 0x400(r31)
/* 803A5DD4 003A2D34 80 FF 01 18 */ lwz r7, 0x118(r31)
/* 803A5DD8 003A2D38 80 DF 01 14 */ lwz r6, 0x114(r31)
/* 803A5DDC 003A2D3C 7C E0 00 38 */ and r0, r7, r0
/* 803A5DE0 003A2D40 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A5DE4 003A2D44 7C C0 48 38 */ and r0, r6, r9
/* 803A5DE8 003A2D48 90 1F 01 14 */ stw r0, 0x114(r31)
/* 803A5DEC 003A2D4C 80 1F 01 14 */ lwz r0, 0x114(r31)
/* 803A5DF0 003A2D50 60 00 30 00 */ ori r0, r0, 0x3000
/* 803A5DF4 003A2D54 90 1F 01 14 */ stw r0, 0x114(r31)
/* 803A5DF8 003A2D58 4B C5 D5 B1 */ bl memset
/* 803A5DFC 003A2D5C 80 0D AE E8 */ lwz r0, macRealTime@sda21(r13)
/* 803A5E00 003A2D60 7F E3 FB 78 */ mr r3, r31
/* 803A5E04 003A2D64 80 8D AE EC */ lwz r4, macRealTime+4@sda21(r13)
/* 803A5E08 003A2D68 90 9F 00 A4 */ stw r4, 0xa4(r31)
/* 803A5E0C 003A2D6C 90 1F 00 A0 */ stw r0, 0xa0(r31)
/* 803A5E10 003A2D70 80 0D AE E8 */ lwz r0, macRealTime@sda21(r13)
/* 803A5E14 003A2D74 80 8D AE EC */ lwz r4, macRealTime+4@sda21(r13)
/* 803A5E18 003A2D78 90 9F 00 94 */ stw r4, 0x94(r31)
/* 803A5E1C 003A2D7C 90 1F 00 90 */ stw r0, 0x90(r31)
/* 803A5E20 003A2D80 4B FF 4C 19 */ bl synthStartSynthJobHandling
lbl_803A5E24:
/* 803A5E24 003A2D84 38 00 00 00 */ li r0, 0
/* 803A5E28 003A2D88 3C 60 80 55 */ lis r3, synthInfo@ha
/* 803A5E2C 003A2D8C 98 0D AE F8 */ stb r0, DebugMacroSteps@sda21(r13)
/* 803A5E30 003A2D90 3B A3 00 50 */ addi r29, r3, synthInfo@l
/* 803A5E34 003A2D94 3B 8D AE E0 */ addi r28, r13, "cstep$1643"@sda21
lbl_803A5E38:
/* 803A5E38 003A2D98 88 6D AE F8 */ lbz r3, DebugMacroSteps@sda21(r13)
/* 803A5E3C 003A2D9C 38 63 00 01 */ addi r3, r3, 1
/* 803A5E40 003A2DA0 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 803A5E44 003A2DA4 98 6D AE F8 */ stb r3, DebugMacroSteps@sda21(r13)
/* 803A5E48 003A2DA8 28 00 00 20 */ cmplwi r0, 0x20
/* 803A5E4C 003A2DAC 41 81 0C C0 */ bgt lbl_803A6B0C
/* 803A5E50 003A2DB0 80 9F 00 38 */ lwz r4, 0x38(r31)
/* 803A5E54 003A2DB4 3B C0 00 00 */ li r30, 0
/* 803A5E58 003A2DB8 80 64 00 00 */ lwz r3, 0(r4)
/* 803A5E5C 003A2DBC 38 04 00 08 */ addi r0, r4, 8
/* 803A5E60 003A2DC0 90 6D AE E0 */ stw r3, "cstep$1643"@sda21(r13)
/* 803A5E64 003A2DC4 80 64 00 04 */ lwz r3, 4(r4)
/* 803A5E68 003A2DC8 90 7C 00 04 */ stw r3, 4(r28)
/* 803A5E6C 003A2DCC 90 1F 00 38 */ stw r0, 0x38(r31)
/* 803A5E70 003A2DD0 83 4D AE E0 */ lwz r26, "cstep$1643"@sda21(r13)
/* 803A5E74 003A2DD4 57 40 06 7E */ clrlwi r0, r26, 0x19
/* 803A5E78 003A2DD8 28 00 00 71 */ cmplwi r0, 0x71
/* 803A5E7C 003A2DDC 41 81 0C 88 */ bgt lbl_803A6B04
/* 803A5E80 003A2DE0 3C 60 80 3F */ lis r3, lbl_803F3258@ha
/* 803A5E84 003A2DE4 54 00 10 3A */ slwi r0, r0, 2
/* 803A5E88 003A2DE8 38 63 32 58 */ addi r3, r3, lbl_803F3258@l
/* 803A5E8C 003A2DEC 7C 03 00 2E */ lwzx r0, r3, r0
/* 803A5E90 003A2DF0 7C 09 03 A6 */ mtctr r0
/* 803A5E94 003A2DF4 4E 80 04 20 */ bctr
/* 803A5E98 003A2DF8 7F E3 FB 78 */ mr r3, r31
/* 803A5E9C 003A2DFC 48 00 18 A5 */ bl vidRemoveVoiceReferences
/* 803A5EA0 003A2E00 7F E3 FB 78 */ mr r3, r31
/* 803A5EA4 003A2E04 48 00 24 01 */ bl voiceFree
/* 803A5EA8 003A2E08 3B C0 00 01 */ li r30, 1
/* 803A5EAC 003A2E0C 48 00 0C 58 */ b lbl_803A6B04
/* 803A5EB0 003A2E10 7F E3 FB 78 */ mr r3, r31
/* 803A5EB4 003A2E14 48 00 18 8D */ bl vidRemoveVoiceReferences
/* 803A5EB8 003A2E18 7F E3 FB 78 */ mr r3, r31
/* 803A5EBC 003A2E1C 48 00 23 E9 */ bl voiceFree
/* 803A5EC0 003A2E20 3B C0 00 01 */ li r30, 1
/* 803A5EC4 003A2E24 48 00 0C 40 */ b lbl_803A6B04
/* 803A5EC8 003A2E28 A0 7F 01 2C */ lhz r3, 0x12c(r31)
/* 803A5ECC 003A2E2C 57 40 C6 3E */ rlwinm r0, r26, 0x18, 0x18, 0x1f
/* 803A5ED0 003A2E30 7C 03 00 00 */ cmpw r3, r0
/* 803A5ED4 003A2E34 41 80 0C 30 */ blt lbl_803A6B04
/* 803A5ED8 003A2E38 57 43 84 3E */ srwi r3, r26, 0x10
/* 803A5EDC 003A2E3C 4B FF C6 21 */ bl dataGetMacro
/* 803A5EE0 003A2E40 28 03 00 00 */ cmplwi r3, 0
/* 803A5EE4 003A2E44 41 82 0C 20 */ beq lbl_803A6B04
/* 803A5EE8 003A2E48 90 7F 00 34 */ stw r3, 0x34(r31)
/* 803A5EEC 003A2E4C 80 1C 00 04 */ lwz r0, 4(r28)
/* 803A5EF0 003A2E50 54 00 1B 78 */ rlwinm r0, r0, 3, 0xd, 0x1c
/* 803A5EF4 003A2E54 7C 03 02 14 */ add r0, r3, r0
/* 803A5EF8 003A2E58 90 1F 00 38 */ stw r0, 0x38(r31)
/* 803A5EFC 003A2E5C 48 00 0C 08 */ b lbl_803A6B04
/* 803A5F00 003A2E60 80 7F 01 54 */ lwz r3, 0x154(r31)
/* 803A5F04 003A2E64 57 40 C6 3E */ rlwinm r0, r26, 0x18, 0x18, 0x1f
/* 803A5F08 003A2E68 54 63 86 3E */ rlwinm r3, r3, 0x10, 0x18, 0x1f
/* 803A5F0C 003A2E6C 7C 03 00 40 */ cmplw r3, r0
/* 803A5F10 003A2E70 41 80 0B F4 */ blt lbl_803A6B04
/* 803A5F14 003A2E74 57 43 84 3E */ srwi r3, r26, 0x10
/* 803A5F18 003A2E78 4B FF C5 E5 */ bl dataGetMacro
/* 803A5F1C 003A2E7C 28 03 00 00 */ cmplwi r3, 0
/* 803A5F20 003A2E80 41 82 0B E4 */ beq lbl_803A6B04
/* 803A5F24 003A2E84 90 7F 00 34 */ stw r3, 0x34(r31)
/* 803A5F28 003A2E88 80 1C 00 04 */ lwz r0, 4(r28)
/* 803A5F2C 003A2E8C 54 00 1B 78 */ rlwinm r0, r0, 3, 0xd, 0x1c
/* 803A5F30 003A2E90 7C 03 02 14 */ add r0, r3, r0
/* 803A5F34 003A2E94 90 1F 00 38 */ stw r0, 0x38(r31)
/* 803A5F38 003A2E98 48 00 0B CC */ b lbl_803A6B04
/* 803A5F3C 003A2E9C 7F E3 FB 78 */ mr r3, r31
/* 803A5F40 003A2EA0 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A5F44 003A2EA4 4B FF CA 81 */ bl mcmdWait
/* 803A5F48 003A2EA8 7C 7E 1B 78 */ mr r30, r3
/* 803A5F4C 003A2EAC 48 00 0B B8 */ b lbl_803A6B04
/* 803A5F50 003A2EB0 7F E3 FB 78 */ mr r3, r31
/* 803A5F54 003A2EB4 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A5F58 003A2EB8 4B FF CE 2D */ bl mcmdLoop
/* 803A5F5C 003A2EBC 48 00 0B A8 */ b lbl_803A6B04
/* 803A5F60 003A2EC0 57 43 84 3E */ srwi r3, r26, 0x10
/* 803A5F64 003A2EC4 4B FF C5 99 */ bl dataGetMacro
/* 803A5F68 003A2EC8 28 03 00 00 */ cmplwi r3, 0
/* 803A5F6C 003A2ECC 41 82 00 20 */ beq lbl_803A5F8C
/* 803A5F70 003A2ED0 90 7F 00 34 */ stw r3, 0x34(r31)
/* 803A5F74 003A2ED4 38 80 00 00 */ li r4, 0
/* 803A5F78 003A2ED8 80 1C 00 04 */ lwz r0, 4(r28)
/* 803A5F7C 003A2EDC 54 00 1B 78 */ rlwinm r0, r0, 3, 0xd, 0x1c
/* 803A5F80 003A2EE0 7C 03 02 14 */ add r0, r3, r0
/* 803A5F84 003A2EE4 90 1F 00 38 */ stw r0, 0x38(r31)
/* 803A5F88 003A2EE8 48 00 00 18 */ b lbl_803A5FA0
lbl_803A5F8C:
/* 803A5F8C 003A2EEC 7F E3 FB 78 */ mr r3, r31
/* 803A5F90 003A2EF0 48 00 17 B1 */ bl vidRemoveVoiceReferences
/* 803A5F94 003A2EF4 7F E3 FB 78 */ mr r3, r31
/* 803A5F98 003A2EF8 48 00 23 0D */ bl voiceFree
/* 803A5F9C 003A2EFC 38 80 00 01 */ li r4, 1
lbl_803A5FA0:
/* 803A5FA0 003A2F00 7C 9E 23 78 */ mr r30, r4
/* 803A5FA4 003A2F04 48 00 0B 60 */ b lbl_803A6B04
/* 803A5FA8 003A2F08 38 00 00 01 */ li r0, 1
/* 803A5FAC 003A2F0C 7F E3 FB 78 */ mr r3, r31
/* 803A5FB0 003A2F10 98 1C 00 06 */ stb r0, 6(r28)
/* 803A5FB4 003A2F14 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A5FB8 003A2F18 4B FF CA 0D */ bl mcmdWait
/* 803A5FBC 003A2F1C 7C 7E 1B 78 */ mr r30, r3
/* 803A5FC0 003A2F20 48 00 0B 44 */ b lbl_803A6B04
/* 803A5FC4 003A2F24 7F E3 FB 78 */ mr r3, r31
/* 803A5FC8 003A2F28 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A5FCC 003A2F2C 4B FF CF 0D */ bl sub_803a2ed8
/* 803A5FD0 003A2F30 48 00 0B 34 */ b lbl_803A6B04
/* 803A5FD4 003A2F34 88 9F 01 2F */ lbz r4, 0x12f(r31)
/* 803A5FD8 003A2F38 57 43 C6 3E */ rlwinm r3, r26, 0x18, 0x18, 0x1f
/* 803A5FDC 003A2F3C 3B 60 00 00 */ li r27, 0
/* 803A5FE0 003A2F40 57 40 00 1E */ rlwinm r0, r26, 0, 0, 0xf
/* 803A5FE4 003A2F44 7C 64 1A 14 */ add r3, r4, r3
/* 803A5FE8 003A2F48 54 7A 40 2E */ slwi r26, r3, 8
/* 803A5FEC 003A2F4C 7F 79 DB 78 */ mr r25, r27
/* 803A5FF0 003A2F50 7F 5A 03 78 */ or r26, r26, r0
/* 803A5FF4 003A2F54 48 00 00 4C */ b lbl_803A6040
lbl_803A5FF8:
/* 803A5FF8 003A2F58 80 6D AE 78 */ lwz r3, synthVoice@sda21(r13)
/* 803A5FFC 003A2F5C 38 19 00 F4 */ addi r0, r25, 0xf4
/* 803A6000 003A2F60 7F 44 DB 78 */ or r4, r26, r27
/* 803A6004 003A2F64 7C 03 00 2E */ lwzx r0, r3, r0
/* 803A6008 003A2F68 7C 00 20 40 */ cmplw r0, r4
/* 803A600C 003A2F6C 40 82 00 2C */ bne lbl_803A6038
/* 803A6010 003A2F70 3C 04 00 01 */ addis r0, r4, 1
/* 803A6014 003A2F74 28 00 FF FF */ cmplwi r0, 0xffff
/* 803A6018 003A2F78 41 82 00 20 */ beq lbl_803A6038
/* 803A601C 003A2F7C 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 803A6020 003A2F80 1C 00 04 04 */ mulli r0, r0, 0x404
/* 803A6024 003A2F84 7C 63 02 14 */ add r3, r3, r0
/* 803A6028 003A2F88 80 03 00 F4 */ lwz r0, 0xf4(r3)
/* 803A602C 003A2F8C 7C 04 00 40 */ cmplw r4, r0
/* 803A6030 003A2F90 40 82 00 08 */ bne lbl_803A6038
/* 803A6034 003A2F94 48 00 0C ED */ bl macSetExternalKeyoff
lbl_803A6038:
/* 803A6038 003A2F98 3B 39 04 04 */ addi r25, r25, 0x404
/* 803A603C 003A2F9C 3B 7B 00 01 */ addi r27, r27, 1
lbl_803A6040:
/* 803A6040 003A2FA0 88 1D 02 10 */ lbz r0, 0x210(r29)
/* 803A6044 003A2FA4 7C 1B 00 40 */ cmplw r27, r0
/* 803A6048 003A2FA8 41 80 FF B0 */ blt lbl_803A5FF8
/* 803A604C 003A2FAC 48 00 0A B8 */ b lbl_803A6B04
/* 803A6050 003A2FB0 88 1F 01 21 */ lbz r0, 0x121(r31)
/* 803A6054 003A2FB4 28 00 00 FF */ cmplwi r0, 0xff
/* 803A6058 003A2FB8 41 82 0A AC */ beq lbl_803A6B04
/* 803A605C 003A2FBC 7F E3 FB 78 */ mr r3, r31
/* 803A6060 003A2FC0 48 00 C4 0D */ bl sub_803b246c
/* 803A6064 003A2FC4 80 8D AE E0 */ lwz r4, "cstep$1643"@sda21(r13)
/* 803A6068 003A2FC8 54 63 CE 3E */ rlwinm r3, r3, 0x19, 0x18, 0x1f
/* 803A606C 003A2FCC 54 80 C6 3E */ rlwinm r0, r4, 0x18, 0x18, 0x1f
/* 803A6070 003A2FD0 7C 03 00 40 */ cmplw r3, r0
/* 803A6074 003A2FD4 41 80 0A 90 */ blt lbl_803A6B04
/* 803A6078 003A2FD8 54 83 84 3E */ srwi r3, r4, 0x10
/* 803A607C 003A2FDC 4B FF C4 81 */ bl dataGetMacro
/* 803A6080 003A2FE0 28 03 00 00 */ cmplwi r3, 0
/* 803A6084 003A2FE4 41 82 0A 80 */ beq lbl_803A6B04
/* 803A6088 003A2FE8 90 7F 00 34 */ stw r3, 0x34(r31)
/* 803A608C 003A2FEC 80 1C 00 04 */ lwz r0, 4(r28)
/* 803A6090 003A2FF0 54 00 1B 78 */ rlwinm r0, r0, 3, 0xd, 0x1c
/* 803A6094 003A2FF4 7C 03 02 14 */ add r0, r3, r0
/* 803A6098 003A2FF8 90 1F 00 38 */ stw r0, 0x38(r31)
/* 803A609C 003A2FFC 48 00 0A 68 */ b lbl_803A6B04
/* 803A60A0 003A3000 A0 9F 01 2C */ lhz r4, 0x12c(r31)
/* 803A60A4 003A3004 57 45 86 3E */ rlwinm r5, r26, 0x10, 0x18, 0x1f
/* 803A60A8 003A3008 57 43 C6 3E */ rlwinm r3, r26, 0x18, 0x18, 0x1f
/* 803A60AC 003A300C 57 40 C2 1E */ rlwinm r0, r26, 0x18, 8, 0xf
/* 803A60B0 003A3010 7C 85 20 50 */ subf r4, r5, r4
/* 803A60B4 003A3014 54 84 80 1E */ slwi r4, r4, 0x10
/* 803A60B8 003A3018 7C 63 07 74 */ extsb r3, r3
/* 803A60BC 003A301C 7C 64 19 D6 */ mullw r3, r4, r3
/* 803A60C0 003A3020 7C 63 3E 70 */ srawi r3, r3, 7
/* 803A60C4 003A3024 7C 63 02 15 */ add. r3, r3, r0
/* 803A60C8 003A3028 40 80 00 0C */ bge lbl_803A60D4
/* 803A60CC 003A302C 38 00 00 00 */ li r0, 0
/* 803A60D0 003A3030 48 00 00 14 */ b lbl_803A60E4
lbl_803A60D4:
/* 803A60D4 003A3034 3C 00 00 7F */ lis r0, 0x7f
/* 803A60D8 003A3038 7C 03 00 00 */ cmpw r3, r0
/* 803A60DC 003A303C 41 81 00 08 */ bgt lbl_803A60E4
/* 803A60E0 003A3040 7C 60 1B 78 */ mr r0, r3
lbl_803A60E4:
/* 803A60E4 003A3044 90 1F 01 80 */ stw r0, 0x180(r31)
/* 803A60E8 003A3048 90 1F 01 70 */ stw r0, 0x170(r31)
/* 803A60EC 003A304C 48 00 0A 18 */ b lbl_803A6B04
/* 803A60F0 003A3050 7F E3 FB 78 */ mr r3, r31
/* 803A60F4 003A3054 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A60F8 003A3058 4B FF D5 5D */ bl mcmdSetADSR
/* 803A60FC 003A305C 48 00 0A 08 */ b lbl_803A6B04
/* 803A6100 003A3060 7F E3 FB 78 */ mr r3, r31
/* 803A6104 003A3064 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6108 003A3068 4B FF DC 85 */ bl mcmdScaleVolume
/* 803A610C 003A306C 48 00 09 F8 */ b lbl_803A6B04
/* 803A6110 003A3070 7F E3 FB 78 */ mr r3, r31
/* 803A6114 003A3074 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6118 003A3078 4B FF DB 3D */ bl sub_803a3c54
/* 803A611C 003A307C 48 00 09 E8 */ b lbl_803A6B04
/* 803A6120 003A3080 7F E3 FB 78 */ mr r3, r31
/* 803A6124 003A3084 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6128 003A3088 4B FF DD 99 */ bl mcmdEnvelope
/* 803A612C 003A308C 48 00 09 D8 */ b lbl_803A6B04
/* 803A6130 003A3090 7F E3 FB 78 */ mr r3, r31
/* 803A6134 003A3094 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6138 003A3098 4B FF D0 05 */ bl sub_803a313c
/* 803A613C 003A309C 48 00 09 C8 */ b lbl_803A6B04
/* 803A6140 003A30A0 80 1F 00 F4 */ lwz r0, 0xf4(r31)
/* 803A6144 003A30A4 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 803A6148 003A30A8 48 00 D2 45 */ bl hwBreak
/* 803A614C 003A30AC 48 00 09 B8 */ b lbl_803A6B04
/* 803A6150 003A30B0 80 1F 01 18 */ lwz r0, 0x118(r31)
/* 803A6154 003A30B4 7F E3 FB 78 */ mr r3, r31
/* 803A6158 003A30B8 60 00 00 80 */ ori r0, r0, 0x80
/* 803A615C 003A30BC 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A6160 003A30C0 4B FF 49 81 */ bl sub_8039aae0
/* 803A6164 003A30C4 48 00 09 A0 */ b lbl_803A6B04
/* 803A6168 003A30C8 48 00 CC 39 */ bl sndRand
/* 803A616C 003A30CC 80 8D AE E0 */ lwz r4, "cstep$1643"@sda21(r13)
/* 803A6170 003A30D0 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 803A6174 003A30D4 54 80 C6 3E */ rlwinm r0, r4, 0x18, 0x18, 0x1f
/* 803A6178 003A30D8 7C 03 00 40 */ cmplw r3, r0
/* 803A617C 003A30DC 41 80 09 88 */ blt lbl_803A6B04
/* 803A6180 003A30E0 54 83 84 3E */ srwi r3, r4, 0x10
/* 803A6184 003A30E4 4B FF C3 79 */ bl dataGetMacro
/* 803A6188 003A30E8 28 03 00 00 */ cmplwi r3, 0
/* 803A618C 003A30EC 41 82 09 78 */ beq lbl_803A6B04
/* 803A6190 003A30F0 90 7F 00 34 */ stw r3, 0x34(r31)
/* 803A6194 003A30F4 80 1C 00 04 */ lwz r0, 4(r28)
/* 803A6198 003A30F8 54 00 1B 78 */ rlwinm r0, r0, 3, 0xd, 0x1c
/* 803A619C 003A30FC 7C 03 02 14 */ add r0, r3, r0
/* 803A61A0 003A3100 90 1F 00 38 */ stw r0, 0x38(r31)
/* 803A61A4 003A3104 48 00 09 60 */ b lbl_803A6B04
/* 803A61A8 003A3108 7F E3 FB 78 */ mr r3, r31
/* 803A61AC 003A310C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A61B0 003A3110 4B FF DE 41 */ bl mcmdFadeIn
/* 803A61B4 003A3114 48 00 09 50 */ b lbl_803A6B04
/* 803A61B8 003A3118 7F E3 FB 78 */ mr r3, r31
/* 803A61BC 003A311C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A61C0 003A3120 4B FF DB 31 */ bl mcmdSetPanning
/* 803A61C4 003A3124 48 00 09 40 */ b lbl_803A6B04
/* 803A61C8 003A3128 7F E3 FB 78 */ mr r3, r31
/* 803A61CC 003A312C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A61D0 003A3130 4B FF D6 DD */ bl mcmdSetADSRFromCtrl
/* 803A61D4 003A3134 48 00 09 30 */ b lbl_803A6B04
/* 803A61D8 003A3138 7F E3 FB 78 */ mr r3, r31
/* 803A61DC 003A313C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A61E0 003A3140 4B FF DF 4D */ bl mcmdRandomKey
/* 803A61E4 003A3144 48 00 09 20 */ b lbl_803A6B04
/* 803A61E8 003A3148 7F E3 FB 78 */ mr r3, r31
/* 803A61EC 003A314C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A61F0 003A3150 4B FF CE 75 */ bl mcmdAddKey
/* 803A61F4 003A3154 7C 7E 1B 78 */ mr r30, r3
/* 803A61F8 003A3158 48 00 09 0C */ b lbl_803A6B04
/* 803A61FC 003A315C 57 40 C6 7E */ rlwinm r0, r26, 0x18, 0x19, 0x1f
/* 803A6200 003A3160 7F E3 FB 78 */ mr r3, r31
/* 803A6204 003A3164 B0 1F 01 2C */ sth r0, 0x12c(r31)
/* 803A6208 003A3168 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13)
/* 803A620C 003A316C 54 00 84 3E */ srwi r0, r0, 0x10
/* 803A6210 003A3170 98 1F 01 2E */ stb r0, 0x12e(r31)
/* 803A6214 003A3174 48 00 2C 5D */ bl voiceIsLastStarted
/* 803A6218 003A3178 28 03 00 00 */ cmplwi r3, 0
/* 803A621C 003A317C 41 82 00 18 */ beq lbl_803A6234
/* 803A6220 003A3180 A0 1F 01 2C */ lhz r0, 0x12c(r31)
/* 803A6224 003A3184 88 7F 01 21 */ lbz r3, 0x121(r31)
/* 803A6228 003A3188 88 9F 01 22 */ lbz r4, 0x122(r31)
/* 803A622C 003A318C 54 05 06 3E */ clrlwi r5, r0, 0x18
/* 803A6230 003A3190 48 00 BB BD */ bl inpSetMidiLastNote
lbl_803A6234:
/* 803A6234 003A3194 38 00 00 04 */ li r0, 4
/* 803A6238 003A3198 7F E3 FB 78 */ mr r3, r31
/* 803A623C 003A319C 90 0D AE E0 */ stw r0, "cstep$1643"@sda21(r13)
/* 803A6240 003A31A0 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6244 003A31A4 4B FF C7 81 */ bl mcmdWait
/* 803A6248 003A31A8 7C 7E 1B 78 */ mr r30, r3
/* 803A624C 003A31AC 48 00 08 B8 */ b lbl_803A6B04
/* 803A6250 003A31B0 57 40 C6 3E */ rlwinm r0, r26, 0x18, 0x18, 0x1f
/* 803A6254 003A31B4 88 7F 01 30 */ lbz r3, 0x130(r31)
/* 803A6258 003A31B8 7C 00 07 74 */ extsb r0, r0
/* 803A625C 003A31BC 7C 03 02 14 */ add r0, r3, r0
/* 803A6260 003A31C0 B0 1F 01 2C */ sth r0, 0x12c(r31)
/* 803A6264 003A31C4 A0 7F 01 2C */ lhz r3, 0x12c(r31)
/* 803A6268 003A31C8 7C 60 07 35 */ extsh. r0, r3
/* 803A626C 003A31CC 40 80 00 0C */ bge lbl_803A6278
/* 803A6270 003A31D0 38 00 00 00 */ li r0, 0
/* 803A6274 003A31D4 48 00 00 14 */ b lbl_803A6288
lbl_803A6278:
/* 803A6278 003A31D8 28 03 00 7F */ cmplwi r3, 0x7f
/* 803A627C 003A31DC 38 00 00 7F */ li r0, 0x7f
/* 803A6280 003A31E0 41 81 00 08 */ bgt lbl_803A6288
/* 803A6284 003A31E4 7C 60 1B 78 */ mr r0, r3
lbl_803A6288:
/* 803A6288 003A31E8 B0 1F 01 2C */ sth r0, 0x12c(r31)
/* 803A628C 003A31EC 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13)
/* 803A6290 003A31F0 54 00 84 3E */ srwi r0, r0, 0x10
/* 803A6294 003A31F4 98 1F 01 2E */ stb r0, 0x12e(r31)
/* 803A6298 003A31F8 88 7F 01 21 */ lbz r3, 0x121(r31)
/* 803A629C 003A31FC 28 03 00 FF */ cmplwi r3, 0xff
/* 803A62A0 003A3200 41 82 00 14 */ beq lbl_803A62B4
/* 803A62A4 003A3204 A0 1F 01 2C */ lhz r0, 0x12c(r31)
/* 803A62A8 003A3208 88 9F 01 22 */ lbz r4, 0x122(r31)
/* 803A62AC 003A320C 54 05 06 3E */ clrlwi r5, r0, 0x18
/* 803A62B0 003A3210 48 00 BB 3D */ bl inpSetMidiLastNote
lbl_803A62B4:
/* 803A62B4 003A3214 38 00 00 04 */ li r0, 4
/* 803A62B8 003A3218 7F E3 FB 78 */ mr r3, r31
/* 803A62BC 003A321C 90 0D AE E0 */ stw r0, "cstep$1643"@sda21(r13)
/* 803A62C0 003A3220 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A62C4 003A3224 4B FF C7 01 */ bl mcmdWait
/* 803A62C8 003A3228 7C 7E 1B 78 */ mr r30, r3
/* 803A62CC 003A322C 48 00 08 38 */ b lbl_803A6B04
/* 803A62D0 003A3230 7F E3 FB 78 */ mr r3, r31
/* 803A62D4 003A3234 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A62D8 003A3238 4B FF F0 1D */ bl mcmdPortamento
/* 803A62DC 003A323C 48 00 08 28 */ b lbl_803A6B04
/* 803A62E0 003A3240 7F E3 FB 78 */ mr r3, r31
/* 803A62E4 003A3244 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A62E8 003A3248 4B FF D0 51 */ bl mcmdVibrato
/* 803A62EC 003A324C 48 00 08 18 */ b lbl_803A6B04
/* 803A62F0 003A3250 38 00 00 00 */ li r0, 0
/* 803A62F4 003A3254 90 1F 01 A0 */ stw r0, 0x1a0(r31)
/* 803A62F8 003A3258 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13)
/* 803A62FC 003A325C 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
/* 803A6300 003A3260 98 1F 01 B8 */ stb r0, 0x1b8(r31)
/* 803A6304 003A3264 88 1F 01 B8 */ lbz r0, 0x1b8(r31)
/* 803A6308 003A3268 54 00 80 1E */ slwi r0, r0, 0x10
/* 803A630C 003A326C 90 1F 01 B0 */ stw r0, 0x1b0(r31)
/* 803A6310 003A3270 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13)
/* 803A6314 003A3274 54 00 84 3E */ srwi r0, r0, 0x10
/* 803A6318 003A3278 7C 03 07 35 */ extsh. r3, r0
/* 803A631C 003A327C 41 80 00 0C */ blt lbl_803A6328
/* 803A6320 003A3280 48 00 D9 ED */ bl hwFrq2Pitch
/* 803A6324 003A3284 48 00 00 10 */ b lbl_803A6334
lbl_803A6328:
/* 803A6328 003A3288 7C 63 00 D0 */ neg r3, r3
/* 803A632C 003A328C 48 00 D9 E1 */ bl hwFrq2Pitch
/* 803A6330 003A3290 7C 63 00 D0 */ neg r3, r3
lbl_803A6334:
/* 803A6334 003A3294 54 63 80 1E */ slwi r3, r3, 0x10
/* 803A6338 003A3298 38 00 00 00 */ li r0, 0
/* 803A633C 003A329C 90 7F 01 A8 */ stw r3, 0x1a8(r31)
/* 803A6340 003A32A0 7F E3 FB 78 */ mr r3, r31
/* 803A6344 003A32A4 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6348 003A32A8 90 0D AE E0 */ stw r0, "cstep$1643"@sda21(r13)
/* 803A634C 003A32AC 4B FF C6 79 */ bl mcmdWait
/* 803A6350 003A32B0 7C 7E 1B 78 */ mr r30, r3
/* 803A6354 003A32B4 48 00 07 B0 */ b lbl_803A6B04
/* 803A6358 003A32B8 38 00 00 00 */ li r0, 0
/* 803A635C 003A32BC 90 1F 01 A4 */ stw r0, 0x1a4(r31)
/* 803A6360 003A32C0 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13)
/* 803A6364 003A32C4 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
/* 803A6368 003A32C8 98 1F 01 B9 */ stb r0, 0x1b9(r31)
/* 803A636C 003A32CC 88 1F 01 B9 */ lbz r0, 0x1b9(r31)
/* 803A6370 003A32D0 54 00 80 1E */ slwi r0, r0, 0x10
/* 803A6374 003A32D4 90 1F 01 B4 */ stw r0, 0x1b4(r31)
/* 803A6378 003A32D8 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13)
/* 803A637C 003A32DC 54 00 84 3E */ srwi r0, r0, 0x10
/* 803A6380 003A32E0 7C 03 07 35 */ extsh. r3, r0
/* 803A6384 003A32E4 41 80 00 0C */ blt lbl_803A6390
/* 803A6388 003A32E8 48 00 D9 85 */ bl hwFrq2Pitch
/* 803A638C 003A32EC 48 00 00 10 */ b lbl_803A639C
lbl_803A6390:
/* 803A6390 003A32F0 7C 63 00 D0 */ neg r3, r3
/* 803A6394 003A32F4 48 00 D9 79 */ bl hwFrq2Pitch
/* 803A6398 003A32F8 7C 63 00 D0 */ neg r3, r3
lbl_803A639C:
/* 803A639C 003A32FC 54 63 80 1E */ slwi r3, r3, 0x10
/* 803A63A0 003A3300 38 00 00 00 */ li r0, 0
/* 803A63A4 003A3304 90 7F 01 AC */ stw r3, 0x1ac(r31)
/* 803A63A8 003A3308 7F E3 FB 78 */ mr r3, r31
/* 803A63AC 003A330C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A63B0 003A3310 90 0D AE E0 */ stw r0, "cstep$1643"@sda21(r13)
/* 803A63B4 003A3314 4B FF C6 11 */ bl mcmdWait
/* 803A63B8 003A3318 7C 7E 1B 78 */ mr r30, r3
/* 803A63BC 003A331C 48 00 07 48 */ b lbl_803A6B04
/* 803A63C0 003A3320 57 40 C2 3E */ srwi r0, r26, 8
/* 803A63C4 003A3324 90 1F 01 28 */ stw r0, 0x128(r31)
/* 803A63C8 003A3328 80 1C 00 04 */ lwz r0, 4(r28)
/* 803A63CC 003A332C 80 7F 01 28 */ lwz r3, 0x128(r31)
/* 803A63D0 003A3330 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 803A63D4 003A3334 7C 60 03 78 */ or r0, r3, r0
/* 803A63D8 003A3338 90 1F 01 28 */ stw r0, 0x128(r31)
/* 803A63DC 003A333C 80 7F 01 24 */ lwz r3, 0x124(r31)
/* 803A63E0 003A3340 3C 03 00 01 */ addis r0, r3, 1
/* 803A63E4 003A3344 28 00 FF FF */ cmplwi r0, 0xffff
/* 803A63E8 003A3348 41 82 07 1C */ beq lbl_803A6B04
/* 803A63EC 003A334C 7F E3 FB 78 */ mr r3, r31
/* 803A63F0 003A3350 4B FF D0 C5 */ bl DoSetPitch
/* 803A63F4 003A3354 48 00 07 10 */ b lbl_803A6B04
/* 803A63F8 003A3358 7F E3 FB 78 */ mr r3, r31
/* 803A63FC 003A335C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6400 003A3360 4B FF D5 D9 */ bl mcmdSetPitchADSR
/* 803A6404 003A3364 48 00 07 00 */ b lbl_803A6B04
/* 803A6408 003A3368 57 40 46 3F */ rlwinm. r0, r26, 8, 0x18, 0x1f
/* 803A640C 003A336C 57 43 C4 3E */ rlwinm r3, r26, 0x18, 0x10, 0x1f
/* 803A6410 003A3370 40 82 00 1C */ bne lbl_803A642C
/* 803A6414 003A3374 80 1F 01 54 */ lwz r0, 0x154(r31)
/* 803A6418 003A3378 54 00 D9 7E */ srwi r0, r0, 5
/* 803A641C 003A337C 7C 00 19 D6 */ mullw r0, r0, r3
/* 803A6420 003A3380 54 00 C9 FE */ srwi r0, r0, 7
/* 803A6424 003A3384 90 1F 01 54 */ stw r0, 0x154(r31)
/* 803A6428 003A3388 48 00 00 18 */ b lbl_803A6440
lbl_803A642C:
/* 803A642C 003A338C 80 1F 01 58 */ lwz r0, 0x158(r31)
/* 803A6430 003A3390 54 00 D9 7E */ srwi r0, r0, 5
/* 803A6434 003A3394 7C 00 19 D6 */ mullw r0, r0, r3
/* 803A6438 003A3398 54 00 C9 FE */ srwi r0, r0, 7
/* 803A643C 003A339C 90 1F 01 54 */ stw r0, 0x154(r31)
lbl_803A6440:
/* 803A6440 003A33A0 80 7F 01 54 */ lwz r3, 0x154(r31)
/* 803A6444 003A33A4 3C 00 00 7F */ lis r0, 0x7f
/* 803A6448 003A33A8 7C 03 00 40 */ cmplw r3, r0
/* 803A644C 003A33AC 40 81 00 08 */ ble lbl_803A6454
/* 803A6450 003A33B0 90 1F 01 54 */ stw r0, 0x154(r31)
lbl_803A6454:
/* 803A6454 003A33B4 80 1F 01 14 */ lwz r0, 0x114(r31)
/* 803A6458 003A33B8 60 00 10 00 */ ori r0, r0, 0x1000
/* 803A645C 003A33BC 90 1F 01 14 */ stw r0, 0x114(r31)
/* 803A6460 003A33C0 48 00 06 A4 */ b lbl_803A6B04
/* 803A6464 003A33C4 57 40 C2 3E */ srwi r0, r26, 8
/* 803A6468 003A33C8 7C 00 07 74 */ extsb r0, r0
/* 803A646C 003A33CC 54 00 40 2E */ slwi r0, r0, 8
/* 803A6470 003A33D0 B0 1F 01 50 */ sth r0, 0x150(r31)
/* 803A6474 003A33D4 A8 9F 01 50 */ lha r4, 0x150(r31)
/* 803A6478 003A33D8 2C 04 00 00 */ cmpwi r4, 0
/* 803A647C 003A33DC 41 80 00 38 */ blt lbl_803A64B4
/* 803A6480 003A33E0 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13)
/* 803A6484 003A33E4 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A6488 003A33E8 38 63 85 1F */ addi r3, r3, 0x51EB851F@l
/* 803A648C 003A33EC 54 00 84 3E */ srwi r0, r0, 0x10
/* 803A6490 003A33F0 7C 00 07 74 */ extsb r0, r0
/* 803A6494 003A33F4 54 00 40 2E */ slwi r0, r0, 8
/* 803A6498 003A33F8 7C 03 00 96 */ mulhw r0, r3, r0
/* 803A649C 003A33FC 7C 00 2E 70 */ srawi r0, r0, 5
/* 803A64A0 003A3400 54 03 0F FE */ srwi r3, r0, 0x1f
/* 803A64A4 003A3404 7C 00 1A 14 */ add r0, r0, r3
/* 803A64A8 003A3408 7C 04 02 14 */ add r0, r4, r0
/* 803A64AC 003A340C B0 1F 01 50 */ sth r0, 0x150(r31)
/* 803A64B0 003A3410 48 00 06 54 */ b lbl_803A6B04
lbl_803A64B4:
/* 803A64B4 003A3414 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13)
/* 803A64B8 003A3418 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803A64BC 003A341C 38 63 85 1F */ addi r3, r3, 0x51EB851F@l
/* 803A64C0 003A3420 54 00 84 3E */ srwi r0, r0, 0x10
/* 803A64C4 003A3424 7C 00 07 74 */ extsb r0, r0
/* 803A64C8 003A3428 54 00 40 2E */ slwi r0, r0, 8
/* 803A64CC 003A342C 7C 03 00 96 */ mulhw r0, r3, r0
/* 803A64D0 003A3430 7C 00 2E 70 */ srawi r0, r0, 5
/* 803A64D4 003A3434 54 03 0F FE */ srwi r3, r0, 0x1f
/* 803A64D8 003A3438 7C 00 1A 14 */ add r0, r0, r3
/* 803A64DC 003A343C 7C 00 20 50 */ subf r0, r0, r4
/* 803A64E0 003A3440 B0 1F 01 50 */ sth r0, 0x150(r31)
/* 803A64E4 003A3444 48 00 06 20 */ b lbl_803A6B04
/* 803A64E8 003A3448 57 40 C4 3E */ rlwinm r0, r26, 0x18, 0x10, 0x1f
/* 803A64EC 003A344C C0 02 D5 8C */ lfs f0, lbl_805AF2AC@sda21(r2)
/* 803A64F0 003A3450 B0 1F 01 6C */ sth r0, 0x16c(r31)
/* 803A64F4 003A3454 80 1C 00 04 */ lwz r0, 4(r28)
/* 803A64F8 003A3458 B0 1F 01 6E */ sth r0, 0x16e(r31)
/* 803A64FC 003A345C D0 1F 01 68 */ stfs f0, 0x168(r31)
/* 803A6500 003A3460 48 00 06 04 */ b lbl_803A6B04
/* 803A6504 003A3464 88 1F 00 8C */ lbz r0, 0x8c(r31)
/* 803A6508 003A3468 28 00 00 00 */ cmplwi r0, 0
/* 803A650C 003A346C 41 82 05 F8 */ beq lbl_803A6B04
/* 803A6510 003A3470 88 1F 00 8D */ lbz r0, 0x8d(r31)
/* 803A6514 003A3474 54 03 18 38 */ slwi r3, r0, 3
/* 803A6518 003A3478 38 03 00 6C */ addi r0, r3, 0x6c
/* 803A651C 003A347C 7C 1F 00 2E */ lwzx r0, r31, r0
/* 803A6520 003A3480 90 1F 00 34 */ stw r0, 0x34(r31)
/* 803A6524 003A3484 88 1F 00 8D */ lbz r0, 0x8d(r31)
/* 803A6528 003A3488 54 03 18 38 */ slwi r3, r0, 3
/* 803A652C 003A348C 38 03 00 70 */ addi r0, r3, 0x70
/* 803A6530 003A3490 7C 1F 00 2E */ lwzx r0, r31, r0
/* 803A6534 003A3494 90 1F 00 38 */ stw r0, 0x38(r31)
/* 803A6538 003A3498 88 7F 00 8D */ lbz r3, 0x8d(r31)
/* 803A653C 003A349C 38 03 FF FF */ addi r0, r3, -1
/* 803A6540 003A34A0 54 00 07 BE */ clrlwi r0, r0, 0x1e
/* 803A6544 003A34A4 98 1F 00 8D */ stb r0, 0x8d(r31)
/* 803A6548 003A34A8 88 7F 00 8C */ lbz r3, 0x8c(r31)
/* 803A654C 003A34AC 38 03 FF FF */ addi r0, r3, -1
/* 803A6550 003A34B0 98 1F 00 8C */ stb r0, 0x8c(r31)
/* 803A6554 003A34B4 48 00 05 B0 */ b lbl_803A6B04
/* 803A6558 003A34B8 7F E3 FB 78 */ mr r3, r31
/* 803A655C 003A34BC 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6560 003A34C0 4B FF C7 55 */ bl mcmdGosub
/* 803A6564 003A34C4 7C 7E 1B 78 */ mr r30, r3
/* 803A6568 003A34C8 48 00 05 9C */ b lbl_803A6B04
/* 803A656C 003A34CC 57 43 84 3E */ srwi r3, r26, 0x10
/* 803A6570 003A34D0 4B FF BF 8D */ bl dataGetMacro
/* 803A6574 003A34D4 28 03 00 00 */ cmplwi r3, 0
/* 803A6578 003A34D8 41 82 05 8C */ beq lbl_803A6B04
/* 803A657C 003A34DC 80 AD AE E0 */ lwz r5, "cstep$1643"@sda21(r13)
/* 803A6580 003A34E0 38 00 00 01 */ li r0, 1
/* 803A6584 003A34E4 54 A4 D5 BA */ rlwinm r4, r5, 0x1a, 0x16, 0x1d
/* 803A6588 003A34E8 54 A5 C6 3F */ rlwinm. r5, r5, 0x18, 0x18, 0x1f
/* 803A658C 003A34EC 7C DF 22 14 */ add r6, r31, r4
/* 803A6590 003A34F0 90 66 00 50 */ stw r3, 0x50(r6)
/* 803A6594 003A34F4 80 9C 00 04 */ lwz r4, 4(r28)
/* 803A6598 003A34F8 54 84 1B 78 */ rlwinm r4, r4, 3, 0xd, 0x1c
/* 803A659C 003A34FC 7C 63 22 14 */ add r3, r3, r4
/* 803A65A0 003A3500 90 66 00 5C */ stw r3, 0x5c(r6)
/* 803A65A4 003A3504 98 1F 00 68 */ stb r0, 0x68(r31)
/* 803A65A8 003A3508 40 82 05 5C */ bne lbl_803A6B04
/* 803A65AC 003A350C 80 9F 01 14 */ lwz r4, 0x114(r31)
/* 803A65B0 003A3510 38 C0 01 00 */ li r6, 0x100
/* 803A65B4 003A3514 80 BF 01 18 */ lwz r5, 0x118(r31)
/* 803A65B8 003A3518 38 E0 00 08 */ li r7, 8
/* 803A65BC 003A351C 7C C0 20 38 */ and r0, r6, r4
/* 803A65C0 003A3520 7C E3 28 38 */ and r3, r7, r5
/* 803A65C4 003A3524 7C E3 1A 78 */ xor r3, r7, r3
/* 803A65C8 003A3528 7C C0 02 78 */ xor r0, r6, r0
/* 803A65CC 003A352C 7C 60 03 79 */ or. r0, r3, r0
/* 803A65D0 003A3530 40 82 05 34 */ bne lbl_803A6B04
/* 803A65D4 003A3534 90 BF 01 18 */ stw r5, 0x118(r31)
/* 803A65D8 003A3538 60 80 04 00 */ ori r0, r4, 0x400
/* 803A65DC 003A353C 90 1F 01 14 */ stw r0, 0x114(r31)
/* 803A65E0 003A3540 48 00 05 24 */ b lbl_803A6B04
/* 803A65E4 003A3544 57 43 D5 BA */ rlwinm r3, r26, 0x1a, 0x16, 0x1d
/* 803A65E8 003A3548 38 80 00 00 */ li r4, 0
/* 803A65EC 003A354C 38 03 00 50 */ addi r0, r3, 0x50
/* 803A65F0 003A3550 7C 9F 01 2E */ stwx r4, r31, r0
/* 803A65F4 003A3554 48 00 00 1C */ b lbl_803A6610
lbl_803A65F8:
/* 803A65F8 003A3558 54 83 15 BA */ rlwinm r3, r4, 2, 0x16, 0x1d
/* 803A65FC 003A355C 38 03 00 50 */ addi r0, r3, 0x50
/* 803A6600 003A3560 7C 1F 00 2E */ lwzx r0, r31, r0
/* 803A6604 003A3564 28 00 00 00 */ cmplwi r0, 0
/* 803A6608 003A3568 40 82 04 FC */ bne lbl_803A6B04
/* 803A660C 003A356C 38 84 00 01 */ addi r4, r4, 1
lbl_803A6610:
/* 803A6610 003A3570 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 803A6614 003A3574 28 00 00 03 */ cmplwi r0, 3
/* 803A6618 003A3578 41 80 FF E0 */ blt lbl_803A65F8
/* 803A661C 003A357C 38 00 00 00 */ li r0, 0
/* 803A6620 003A3580 98 1F 00 68 */ stb r0, 0x68(r31)
/* 803A6624 003A3584 48 00 04 E0 */ b lbl_803A6B04
/* 803A6628 003A3588 7F E3 FB 78 */ mr r3, r31
/* 803A662C 003A358C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6630 003A3590 4B FF F1 FD */ bl mcmdSendMessage
/* 803A6634 003A3594 48 00 04 D0 */ b lbl_803A6B04
/* 803A6638 003A3598 88 1F 03 EC */ lbz r0, 0x3ec(r31)
/* 803A663C 003A359C 38 A0 00 00 */ li r5, 0
/* 803A6640 003A35A0 28 00 00 00 */ cmplwi r0, 0
/* 803A6644 003A35A4 41 82 00 2C */ beq lbl_803A6670
/* 803A6648 003A35A8 88 9F 03 ED */ lbz r4, 0x3ed(r31)
/* 803A664C 003A35AC 54 83 15 BA */ rlwinm r3, r4, 2, 0x16, 0x1d
/* 803A6650 003A35B0 38 04 00 01 */ addi r0, r4, 1
/* 803A6654 003A35B4 38 63 03 F0 */ addi r3, r3, 0x3f0
/* 803A6658 003A35B8 7C BF 18 2E */ lwzx r5, r31, r3
/* 803A665C 003A35BC 54 00 07 BE */ clrlwi r0, r0, 0x1e
/* 803A6660 003A35C0 98 1F 03 ED */ stb r0, 0x3ed(r31)
/* 803A6664 003A35C4 88 7F 03 EC */ lbz r3, 0x3ec(r31)
/* 803A6668 003A35C8 38 03 FF FF */ addi r0, r3, -1
/* 803A666C 003A35CC 98 1F 03 EC */ stb r0, 0x3ec(r31)
lbl_803A6670:
/* 803A6670 003A35D0 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13)
/* 803A6674 003A35D4 54 00 C6 FE */ rlwinm r0, r0, 0x18, 0x1b, 0x1f
/* 803A6678 003A35D8 28 00 00 10 */ cmplwi r0, 0x10
/* 803A667C 003A35DC 40 80 00 14 */ bge lbl_803A6690
/* 803A6680 003A35E0 54 03 15 BA */ rlwinm r3, r0, 2, 0x16, 0x1d
/* 803A6684 003A35E4 38 03 00 AC */ addi r0, r3, 0xac
/* 803A6688 003A35E8 7C BF 01 2E */ stwx r5, r31, r0
/* 803A668C 003A35EC 48 00 04 78 */ b lbl_803A6B04
lbl_803A6690:
/* 803A6690 003A35F0 3C 60 80 55 */ lis r3, synthGlobalVariable@ha
/* 803A6694 003A35F4 54 04 15 BA */ rlwinm r4, r0, 2, 0x16, 0x1d
/* 803A6698 003A35F8 38 03 0A B4 */ addi r0, r3, synthGlobalVariable@l
/* 803A669C 003A35FC 7C 60 22 14 */ add r3, r0, r4
/* 803A66A0 003A3600 90 A3 FF C0 */ stw r5, -0x40(r3)
/* 803A66A4 003A3604 48 00 04 60 */ b lbl_803A6B04
/* 803A66A8 003A3608 7F E3 FB 78 */ mr r3, r31
/* 803A66AC 003A360C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A66B0 003A3610 4B FF F3 C1 */ bl mcmdGetVID
/* 803A66B4 003A3614 48 00 04 50 */ b lbl_803A6B04
/* 803A66B8 003A3618 80 7F 01 10 */ lwz r3, 0x110(r31)
/* 803A66BC 003A361C 57 40 84 3E */ srwi r0, r26, 0x10
/* 803A66C0 003A3620 7C 00 07 34 */ extsh r0, r0
/* 803A66C4 003A3624 54 63 8B FE */ srwi r3, r3, 0xf
/* 803A66C8 003A3628 7C 83 02 15 */ add. r4, r3, r0
/* 803A66CC 003A362C 40 80 00 10 */ bge lbl_803A66DC
/* 803A66D0 003A3630 38 00 00 00 */ li r0, 0
/* 803A66D4 003A3634 90 1F 01 10 */ stw r0, 0x110(r31)
/* 803A66D8 003A3638 48 00 00 2C */ b lbl_803A6704
lbl_803A66DC:
/* 803A66DC 003A363C 3C 60 00 01 */ lis r3, 0x0000FFFF@ha
/* 803A66E0 003A3640 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l
/* 803A66E4 003A3644 7C 04 00 00 */ cmpw r4, r0
/* 803A66E8 003A3648 40 81 00 14 */ ble lbl_803A66FC
/* 803A66EC 003A364C 3C 60 80 00 */ lis r3, 0x7FFF8000@ha
/* 803A66F0 003A3650 38 03 80 00 */ addi r0, r3, 0x7FFF8000@l
/* 803A66F4 003A3654 90 1F 01 10 */ stw r0, 0x110(r31)
/* 803A66F8 003A3658 48 00 00 0C */ b lbl_803A6704
lbl_803A66FC:
/* 803A66FC 003A365C 54 80 78 20 */ slwi r0, r4, 0xf
/* 803A6700 003A3660 90 1F 01 10 */ stw r0, 0x110(r31)
lbl_803A6704:
/* 803A6704 003A3664 80 1F 01 10 */ lwz r0, 0x110(r31)
/* 803A6708 003A3668 80 7F 00 F4 */ lwz r3, 0xf4(r31)
/* 803A670C 003A366C 88 BF 01 0C */ lbz r5, 0x10c(r31)
/* 803A6710 003A3670 54 04 8B FE */ srwi r4, r0, 0xf
/* 803A6714 003A3674 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 803A6718 003A3678 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7
/* 803A671C 003A367C 48 00 CA A9 */ bl hwSetPriority
/* 803A6720 003A3680 48 00 03 E4 */ b lbl_803A6B04
/* 803A6724 003A3684 57 40 F8 60 */ rlwinm r0, r26, 0x1f, 1, 0x10
/* 803A6728 003A3688 90 1F 01 10 */ stw r0, 0x110(r31)
/* 803A672C 003A368C 80 1F 01 10 */ lwz r0, 0x110(r31)
/* 803A6730 003A3690 80 7F 00 F4 */ lwz r3, 0xf4(r31)
/* 803A6734 003A3694 88 BF 01 0C */ lbz r5, 0x10c(r31)
/* 803A6738 003A3698 54 04 8B FE */ srwi r4, r0, 0xf
/* 803A673C 003A369C 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 803A6740 003A36A0 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7
/* 803A6744 003A36A4 48 00 CA 81 */ bl hwSetPriority
/* 803A6748 003A36A8 48 00 03 BC */ b lbl_803A6B04
/* 803A674C 003A36AC 3C 60 80 55 */ lis r3, synthGlobalVariable@ha
/* 803A6750 003A36B0 57 44 86 3E */ rlwinm r4, r26, 0x10, 0x18, 0x1f
/* 803A6754 003A36B4 57 40 D5 BA */ rlwinm r0, r26, 0x1a, 0x16, 0x1d
/* 803A6758 003A36B8 38 63 0A B4 */ addi r3, r3, synthGlobalVariable@l
/* 803A675C 003A36BC 7C 83 01 2E */ stwx r4, r3, r0
/* 803A6760 003A36C0 48 00 03 A4 */ b lbl_803A6B04
/* 803A6764 003A36C4 57 40 86 3E */ rlwinm r0, r26, 0x10, 0x18, 0x1f
/* 803A6768 003A36C8 98 1F 01 D6 */ stb r0, 0x1d6(r31)
/* 803A676C 003A36CC 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13)
/* 803A6770 003A36D0 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
/* 803A6774 003A36D4 98 1F 01 D7 */ stb r0, 0x1d7(r31)
/* 803A6778 003A36D8 48 00 03 8C */ b lbl_803A6B04
/* 803A677C 003A36DC 57 40 C6 3E */ rlwinm r0, r26, 0x18, 0x18, 0x1f
/* 803A6780 003A36E0 98 1F 01 90 */ stb r0, 0x190(r31)
/* 803A6784 003A36E4 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13)
/* 803A6788 003A36E8 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f
/* 803A678C 003A36EC 98 1F 01 91 */ stb r0, 0x191(r31)
/* 803A6790 003A36F0 48 00 03 74 */ b lbl_803A6B04
/* 803A6794 003A36F4 80 9F 01 18 */ lwz r4, 0x118(r31)
/* 803A6798 003A36F8 3C 00 00 01 */ lis r0, 1
/* 803A679C 003A36FC 7C 80 03 78 */ or r0, r4, r0
/* 803A67A0 003A3700 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A67A4 003A3704 48 00 03 60 */ b lbl_803A6B04
/* 803A67A8 003A3708 7F E3 FB 78 */ mr r3, r31
/* 803A67AC 003A370C 57 44 C6 3E */ rlwinm r4, r26, 0x18, 0x18, 0x1f
/* 803A67B0 003A3710 48 00 14 49 */ bl voiceSetPriority
/* 803A67B4 003A3714 48 00 03 50 */ b lbl_803A6B04
/* 803A67B8 003A3718 57 40 84 3E */ srwi r0, r26, 0x10
/* 803A67BC 003A371C 88 9F 01 0C */ lbz r4, 0x10c(r31)
/* 803A67C0 003A3720 7C 00 07 34 */ extsh r0, r0
/* 803A67C4 003A3724 7F E3 FB 78 */ mr r3, r31
/* 803A67C8 003A3728 7C 04 02 14 */ add r0, r4, r0
/* 803A67CC 003A372C 7C 04 07 35 */ extsh. r4, r0
/* 803A67D0 003A3730 40 80 00 0C */ bge lbl_803A67DC
/* 803A67D4 003A3734 38 00 00 00 */ li r0, 0
/* 803A67D8 003A3738 48 00 00 14 */ b lbl_803A67EC
lbl_803A67DC:
/* 803A67DC 003A373C 2C 04 00 FF */ cmpwi r4, 0xff
/* 803A67E0 003A3740 38 00 00 FF */ li r0, 0xff
/* 803A67E4 003A3744 41 81 00 08 */ bgt lbl_803A67EC
/* 803A67E8 003A3748 7C 80 23 78 */ mr r0, r4
lbl_803A67EC:
/* 803A67EC 003A374C 54 04 06 3E */ clrlwi r4, r0, 0x18
/* 803A67F0 003A3750 48 00 14 09 */ bl voiceSetPriority
/* 803A67F4 003A3754 48 00 03 10 */ b lbl_803A6B04
/* 803A67F8 003A3758 80 7C 00 04 */ lwz r3, 4(r28)
/* 803A67FC 003A375C 28 03 00 00 */ cmplwi r3, 0
/* 803A6800 003A3760 41 82 00 18 */ beq lbl_803A6818
/* 803A6804 003A3764 80 1F 01 10 */ lwz r0, 0x110(r31)
/* 803A6808 003A3768 54 00 C2 3E */ srwi r0, r0, 8
/* 803A680C 003A376C 7C 00 1B 96 */ divwu r0, r0, r3
/* 803A6810 003A3770 B0 1F 01 0E */ sth r0, 0x10e(r31)
/* 803A6814 003A3774 48 00 02 F0 */ b lbl_803A6B04
lbl_803A6818:
/* 803A6818 003A3778 38 00 00 00 */ li r0, 0
/* 803A681C 003A377C B0 1F 01 0E */ sth r0, 0x10e(r31)
/* 803A6820 003A3780 48 00 02 E4 */ b lbl_803A6B04
/* 803A6824 003A3784 80 9F 01 54 */ lwz r4, 0x154(r31)
/* 803A6828 003A3788 57 45 84 3E */ srwi r5, r26, 0x10
/* 803A682C 003A378C 80 7C 00 04 */ lwz r3, 4(r28)
/* 803A6830 003A3790 3C 00 75 30 */ lis r0, 0x7530
/* 803A6834 003A3794 54 84 86 3E */ rlwinm r4, r4, 0x10, 0x18, 0x1f
/* 803A6838 003A3798 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 803A683C 003A379C 7C 63 21 D6 */ mullw r3, r3, r4
/* 803A6840 003A37A0 7C 63 3E 70 */ srawi r3, r3, 7
/* 803A6844 003A37A4 7C 65 1A 14 */ add r3, r5, r3
/* 803A6848 003A37A8 28 03 EA 60 */ cmplwi r3, 0xea60
/* 803A684C 003A37AC 41 81 00 08 */ bgt lbl_803A6854
/* 803A6850 003A37B0 54 60 78 20 */ slwi r0, r3, 0xf
lbl_803A6854:
/* 803A6854 003A37B4 90 1F 01 10 */ stw r0, 0x110(r31)
/* 803A6858 003A37B8 80 1F 01 10 */ lwz r0, 0x110(r31)
/* 803A685C 003A37BC 80 7F 00 F4 */ lwz r3, 0xf4(r31)
/* 803A6860 003A37C0 88 BF 01 0C */ lbz r5, 0x10c(r31)
/* 803A6864 003A37C4 54 04 8B FE */ srwi r4, r0, 0xf
/* 803A6868 003A37C8 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 803A686C 003A37CC 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7
/* 803A6870 003A37D0 48 00 C9 55 */ bl hwSetPriority
/* 803A6874 003A37D4 48 00 02 90 */ b lbl_803A6B04
/* 803A6878 003A37D8 7F E3 FB 78 */ mr r3, r31
/* 803A687C 003A37DC 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6880 003A37E0 4B FF DA 49 */ bl sub_803a42c8
/* 803A6884 003A37E4 48 00 02 80 */ b lbl_803A6B04
/* 803A6888 003A37E8 7F E3 FB 78 */ mr r3, r31
/* 803A688C 003A37EC 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6890 003A37F0 4B FF DB 3D */ bl sub_803a43cc
/* 803A6894 003A37F4 48 00 02 70 */ b lbl_803A6B04
/* 803A6898 003A37F8 7F E3 FB 78 */ mr r3, r31
/* 803A689C 003A37FC 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A68A0 003A3800 4B FF DC 31 */ bl sub_803a44d0
/* 803A68A4 003A3804 48 00 02 60 */ b lbl_803A6B04
/* 803A68A8 003A3808 7F E3 FB 78 */ mr r3, r31
/* 803A68AC 003A380C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A68B0 003A3810 4B FF DD 25 */ bl sub_803a45d4
/* 803A68B4 003A3814 48 00 02 50 */ b lbl_803A6B04
/* 803A68B8 003A3818 7F E3 FB 78 */ mr r3, r31
/* 803A68BC 003A381C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A68C0 003A3820 4B FF DE 19 */ bl sub_803a46d8
/* 803A68C4 003A3824 48 00 02 40 */ b lbl_803A6B04
/* 803A68C8 003A3828 7F E3 FB 78 */ mr r3, r31
/* 803A68CC 003A382C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A68D0 003A3830 4B FF DF 0D */ bl sub_803a47dc
/* 803A68D4 003A3834 48 00 02 30 */ b lbl_803A6B04
/* 803A68D8 003A3838 7F E3 FB 78 */ mr r3, r31
/* 803A68DC 003A383C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A68E0 003A3840 4B FF E0 01 */ bl sub_803a48e0
/* 803A68E4 003A3844 48 00 02 20 */ b lbl_803A6B04
/* 803A68E8 003A3848 7F E3 FB 78 */ mr r3, r31
/* 803A68EC 003A384C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A68F0 003A3850 4B FF E4 01 */ bl sub_803a4cf0
/* 803A68F4 003A3854 48 00 02 10 */ b lbl_803A6B04
/* 803A68F8 003A3858 7F E3 FB 78 */ mr r3, r31
/* 803A68FC 003A385C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6900 003A3860 4B FF E4 F5 */ bl sub_803a4df4
/* 803A6904 003A3864 48 00 02 00 */ b lbl_803A6B04
/* 803A6908 003A3868 7F E3 FB 78 */ mr r3, r31
/* 803A690C 003A386C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6910 003A3870 4B FF E5 E9 */ bl sub_803a4ef8
/* 803A6914 003A3874 48 00 01 F0 */ b lbl_803A6B04
/* 803A6918 003A3878 7F E3 FB 78 */ mr r3, r31
/* 803A691C 003A387C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6920 003A3880 4B FF E0 C5 */ bl sub_803a49e4
/* 803A6924 003A3884 48 00 01 E0 */ b lbl_803A6B04
/* 803A6928 003A3888 7F E3 FB 78 */ mr r3, r31
/* 803A692C 003A388C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6930 003A3890 4B FF E1 B9 */ bl sub_803a4ae8
/* 803A6934 003A3894 48 00 01 D0 */ b lbl_803A6B04
/* 803A6938 003A3898 7F E3 FB 78 */ mr r3, r31
/* 803A693C 003A389C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6940 003A38A0 4B FF E2 AD */ bl mcmdVolumeSelect
/* 803A6944 003A38A4 48 00 01 C0 */ b lbl_803A6B04
/* 803A6948 003A38A8 7F E3 FB 78 */ mr r3, r31
/* 803A694C 003A38AC 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6950 003A38B0 4B FF E6 AD */ bl sub_803a4ffc
/* 803A6954 003A38B4 48 00 01 B0 */ b lbl_803A6B04
/* 803A6958 003A38B8 7F E3 FB 78 */ mr r3, r31
/* 803A695C 003A38BC 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6960 003A38C0 4B FF E8 19 */ bl mcmdAuxAFXSelect
/* 803A6964 003A38C4 48 00 01 A0 */ b lbl_803A6B04
/* 803A6968 003A38C8 57 40 84 3E */ srwi r0, r26, 0x10
/* 803A696C 003A38CC 38 61 00 08 */ addi r3, r1, 8
/* 803A6970 003A38D0 90 01 00 08 */ stw r0, 8(r1)
/* 803A6974 003A38D4 48 00 C5 79 */ bl sndConvertMs
/* 803A6978 003A38D8 57 40 C6 3E */ rlwinm r0, r26, 0x18, 0x18, 0x1f
/* 803A697C 003A38DC 1C 00 00 0C */ mulli r0, r0, 0xc
/* 803A6980 003A38E0 7F 3F 02 14 */ add r25, r31, r0
/* 803A6984 003A38E4 80 19 01 C0 */ lwz r0, 0x1c0(r25)
/* 803A6988 003A38E8 28 00 00 00 */ cmplwi r0, 0
/* 803A698C 003A38EC 41 82 00 20 */ beq lbl_803A69AC
/* 803A6990 003A38F0 80 1C 00 04 */ lwz r0, 4(r28)
/* 803A6994 003A38F4 38 61 00 0C */ addi r3, r1, 0xc
/* 803A6998 003A38F8 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 803A699C 003A38FC 90 01 00 0C */ stw r0, 0xc(r1)
/* 803A69A0 003A3900 48 00 C5 4D */ bl sndConvertMs
/* 803A69A4 003A3904 80 01 00 0C */ lwz r0, 0xc(r1)
/* 803A69A8 003A3908 90 19 01 BC */ stw r0, 0x1bc(r25)
lbl_803A69AC:
/* 803A69AC 003A390C 80 01 00 08 */ lwz r0, 8(r1)
/* 803A69B0 003A3910 90 19 01 C0 */ stw r0, 0x1c0(r25)
/* 803A69B4 003A3914 48 00 01 50 */ b lbl_803A6B04
/* 803A69B8 003A3918 57 43 C6 3E */ rlwinm r3, r26, 0x18, 0x18, 0x1f
/* 803A69BC 003A391C 7C 03 00 D0 */ neg r0, r3
/* 803A69C0 003A3920 7C 00 1B 78 */ or r0, r0, r3
/* 803A69C4 003A3924 54 00 0F FE */ srwi r0, r0, 0x1f
/* 803A69C8 003A3928 98 1F 01 92 */ stb r0, 0x192(r31)
/* 803A69CC 003A392C 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13)
/* 803A69D0 003A3930 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f
/* 803A69D4 003A3934 7C 00 00 34 */ cntlzw r0, r0
/* 803A69D8 003A3938 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f
/* 803A69DC 003A393C 98 1F 01 93 */ stb r0, 0x193(r31)
/* 803A69E0 003A3940 48 00 01 24 */ b lbl_803A6B04
/* 803A69E4 003A3944 7F E3 FB 78 */ mr r3, r31
/* 803A69E8 003A3948 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A69EC 003A394C 4B FF F1 05 */ bl mcmdSetKeyGroup
/* 803A69F0 003A3950 48 00 01 14 */ b lbl_803A6B04
/* 803A69F4 003A3954 80 1F 00 F4 */ lwz r0, 0xf4(r31)
/* 803A69F8 003A3958 57 44 C6 3E */ rlwinm r4, r26, 0x18, 0x18, 0x1f
/* 803A69FC 003A395C 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 803A6A00 003A3960 48 00 CC D5 */ bl sub_803b36d4
/* 803A6A04 003A3964 80 0D AE E0 */ lwz r0, "cstep$1643"@sda21(r13)
/* 803A6A08 003A3968 80 7F 00 F4 */ lwz r3, 0xf4(r31)
/* 803A6A0C 003A396C 54 04 86 3E */ rlwinm r4, r0, 0x10, 0x18, 0x1f
/* 803A6A10 003A3970 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 803A6A14 003A3974 48 00 CC ED */ bl hwSetSRCType
/* 803A6A18 003A3978 80 1F 01 14 */ lwz r0, 0x114(r31)
/* 803A6A1C 003A397C 60 00 08 00 */ ori r0, r0, 0x800
/* 803A6A20 003A3980 90 1F 01 14 */ stw r0, 0x114(r31)
/* 803A6A24 003A3984 48 00 00 E0 */ b lbl_803A6B04
/* 803A6A28 003A3988 7F E3 FB 78 */ mr r3, r31
/* 803A6A2C 003A398C 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6A30 003A3990 38 A0 00 00 */ li r5, 0
/* 803A6A34 003A3994 4B FF EA 8D */ bl mcmdVarCalculation
/* 803A6A38 003A3998 48 00 00 CC */ b lbl_803A6B04
/* 803A6A3C 003A399C 7F E3 FB 78 */ mr r3, r31
/* 803A6A40 003A39A0 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6A44 003A39A4 38 A0 00 01 */ li r5, 1
/* 803A6A48 003A39A8 4B FF EA 79 */ bl mcmdVarCalculation
/* 803A6A4C 003A39AC 48 00 00 B8 */ b lbl_803A6B04
/* 803A6A50 003A39B0 7F E3 FB 78 */ mr r3, r31
/* 803A6A54 003A39B4 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6A58 003A39B8 38 A0 00 02 */ li r5, 2
/* 803A6A5C 003A39BC 4B FF EA 65 */ bl mcmdVarCalculation
/* 803A6A60 003A39C0 48 00 00 A4 */ b lbl_803A6B04
/* 803A6A64 003A39C4 7F E3 FB 78 */ mr r3, r31
/* 803A6A68 003A39C8 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6A6C 003A39CC 38 A0 00 03 */ li r5, 3
/* 803A6A70 003A39D0 4B FF EA 51 */ bl mcmdVarCalculation
/* 803A6A74 003A39D4 48 00 00 90 */ b lbl_803A6B04
/* 803A6A78 003A39D8 7F E3 FB 78 */ mr r3, r31
/* 803A6A7C 003A39DC 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6A80 003A39E0 38 A0 00 04 */ li r5, 4
/* 803A6A84 003A39E4 4B FF EA 3D */ bl mcmdVarCalculation
/* 803A6A88 003A39E8 48 00 00 7C */ b lbl_803A6B04
/* 803A6A8C 003A39EC 80 7C 00 04 */ lwz r3, 4(r28)
/* 803A6A90 003A39F0 57 40 C6 3F */ rlwinm. r0, r26, 0x18, 0x18, 0x1f
/* 803A6A94 003A39F4 57 44 86 3E */ rlwinm r4, r26, 0x10, 0x18, 0x1f
/* 803A6A98 003A39F8 7C 65 07 34 */ extsh r5, r3
/* 803A6A9C 003A39FC 41 82 00 10 */ beq lbl_803A6AAC
/* 803A6AA0 003A3A00 7F E3 FB 78 */ mr r3, r31
/* 803A6AA4 003A3A04 48 00 C1 19 */ bl inpSetExCtrl
/* 803A6AA8 003A3A08 48 00 00 5C */ b lbl_803A6B04
lbl_803A6AAC:
/* 803A6AAC 003A3A0C 54 80 06 FE */ clrlwi r0, r4, 0x1b
/* 803A6AB0 003A3A10 28 00 00 10 */ cmplwi r0, 0x10
/* 803A6AB4 003A3A14 40 80 00 14 */ bge lbl_803A6AC8
/* 803A6AB8 003A3A18 54 03 15 BA */ rlwinm r3, r0, 2, 0x16, 0x1d
/* 803A6ABC 003A3A1C 38 03 00 AC */ addi r0, r3, 0xac
/* 803A6AC0 003A3A20 7C BF 01 2E */ stwx r5, r31, r0
/* 803A6AC4 003A3A24 48 00 00 40 */ b lbl_803A6B04
lbl_803A6AC8:
/* 803A6AC8 003A3A28 3C 60 80 55 */ lis r3, synthGlobalVariable@ha
/* 803A6ACC 003A3A2C 54 04 15 BA */ rlwinm r4, r0, 2, 0x16, 0x1d
/* 803A6AD0 003A3A30 38 03 0A B4 */ addi r0, r3, synthGlobalVariable@l
/* 803A6AD4 003A3A34 7C 60 22 14 */ add r3, r0, r4
/* 803A6AD8 003A3A38 90 A3 FF C0 */ stw r5, -0x40(r3)
/* 803A6ADC 003A3A3C 48 00 00 28 */ b lbl_803A6B04
/* 803A6AE0 003A3A40 7F E3 FB 78 */ mr r3, r31
/* 803A6AE4 003A3A44 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6AE8 003A3A48 38 A0 00 00 */ li r5, 0
/* 803A6AEC 003A3A4C 4B FF EB F5 */ bl mcmdIfVarCompare
/* 803A6AF0 003A3A50 48 00 00 14 */ b lbl_803A6B04
/* 803A6AF4 003A3A54 7F E3 FB 78 */ mr r3, r31
/* 803A6AF8 003A3A58 38 8D AE E0 */ addi r4, r13, "cstep$1643"@sda21
/* 803A6AFC 003A3A5C 38 A0 00 01 */ li r5, 1
/* 803A6B00 003A3A60 4B FF EB E1 */ bl mcmdIfVarCompare
lbl_803A6B04:
/* 803A6B04 003A3A64 28 1E 00 00 */ cmplwi r30, 0
/* 803A6B08 003A3A68 41 82 F3 30 */ beq lbl_803A5E38
lbl_803A6B0C:
/* 803A6B0C 003A3A6C 39 61 00 30 */ addi r11, r1, 0x30
/* 803A6B10 003A3A70 4B FE 2F B1 */ bl _restgpr_25
/* 803A6B14 003A3A74 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803A6B18 003A3A78 7C 08 03 A6 */ mtlr r0
/* 803A6B1C 003A3A7C 38 21 00 30 */ addi r1, r1, 0x30
/* 803A6B20 003A3A80 4E 80 00 20 */ blr
.global sub_803a6b24
sub_803a6b24:
/* 803A6B24 003A3A84 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803A6B28 003A3A88 7C 08 02 A6 */ mflr r0
/* 803A6B2C 003A3A8C 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A6B30 003A3A90 39 61 00 20 */ addi r11, r1, 0x20
/* 803A6B34 003A3A94 4B FE 2F 45 */ bl _savegpr_26
/* 803A6B38 003A3A98 83 6D AE F0 */ lwz r27, macTimeQueueRoot@sda21(r13)
/* 803A6B3C 003A3A9C 7C 7E 1B 78 */ mr r30, r3
/* 803A6B40 003A3AA0 48 00 00 1C */ b lbl_803A6B5C
lbl_803A6B44:
/* 803A6B44 003A3AA4 83 5B 00 44 */ lwz r26, 0x44(r27)
/* 803A6B48 003A3AA8 7F 63 DB 78 */ mr r3, r27
/* 803A6B4C 003A3AAC 48 00 04 71 */ bl macMakeActive
/* 803A6B50 003A3AB0 93 9B 00 A4 */ stw r28, 0xa4(r27)
/* 803A6B54 003A3AB4 93 BB 00 A0 */ stw r29, 0xa0(r27)
/* 803A6B58 003A3AB8 7F 5B D3 78 */ mr r27, r26
lbl_803A6B5C:
/* 803A6B5C 003A3ABC 28 1B 00 00 */ cmplwi r27, 0
/* 803A6B60 003A3AC0 41 82 00 28 */ beq lbl_803A6B88
/* 803A6B64 003A3AC4 83 9B 00 9C */ lwz r28, 0x9c(r27)
/* 803A6B68 003A3AC8 80 0D AE EC */ lwz r0, macRealTime+4@sda21(r13)
/* 803A6B6C 003A3ACC 83 BB 00 98 */ lwz r29, 0x98(r27)
/* 803A6B70 003A3AD0 80 6D AE E8 */ lwz r3, macRealTime@sda21(r13)
/* 803A6B74 003A3AD4 7C 1C 00 10 */ subfc r0, r28, r0
/* 803A6B78 003A3AD8 7C 1D 19 10 */ subfe r0, r29, r3
/* 803A6B7C 003A3ADC 7C 1F F9 10 */ subfe r0, r31, r31
/* 803A6B80 003A3AE0 7C 00 00 D1 */ neg. r0, r0
/* 803A6B84 003A3AE4 41 82 FF C0 */ beq lbl_803A6B44
lbl_803A6B88:
/* 803A6B88 003A3AE8 83 ED AE F4 */ lwz r31, macActiveMacroRoot@sda21(r13)
/* 803A6B8C 003A3AEC 48 00 00 B0 */ b lbl_803A6C3C
lbl_803A6B90:
/* 803A6B90 003A3AF0 88 1F 00 68 */ lbz r0, 0x68(r31)
/* 803A6B94 003A3AF4 28 00 00 00 */ cmplwi r0, 0
/* 803A6B98 003A3AF8 41 82 00 18 */ beq lbl_803A6BB0
/* 803A6B9C 003A3AFC 80 7F 00 54 */ lwz r3, 0x54(r31)
/* 803A6BA0 003A3B00 7C 03 00 D0 */ neg r0, r3
/* 803A6BA4 003A3B04 7C 00 1B 78 */ or r0, r0, r3
/* 803A6BA8 003A3B08 54 00 0F FE */ srwi r0, r0, 0x1f
/* 803A6BAC 003A3B0C 48 00 00 08 */ b lbl_803A6BB4
lbl_803A6BB0:
/* 803A6BB0 003A3B10 38 00 00 00 */ li r0, 0
lbl_803A6BB4:
/* 803A6BB4 003A3B14 28 00 00 00 */ cmplwi r0, 0
/* 803A6BB8 003A3B18 41 82 00 78 */ beq lbl_803A6C30
/* 803A6BBC 003A3B1C 80 1F 01 14 */ lwz r0, 0x114(r31)
/* 803A6BC0 003A3B20 38 80 00 00 */ li r4, 0
/* 803A6BC4 003A3B24 80 BF 01 18 */ lwz r5, 0x118(r31)
/* 803A6BC8 003A3B28 38 60 00 20 */ li r3, 0x20
/* 803A6BCC 003A3B2C 7C 00 20 38 */ and r0, r0, r4
/* 803A6BD0 003A3B30 7C A3 18 38 */ and r3, r5, r3
/* 803A6BD4 003A3B34 7C 63 22 78 */ xor r3, r3, r4
/* 803A6BD8 003A3B38 7C 00 22 78 */ xor r0, r0, r4
/* 803A6BDC 003A3B3C 7C 60 03 79 */ or. r0, r3, r0
/* 803A6BE0 003A3B40 40 82 00 50 */ bne lbl_803A6C30
/* 803A6BE4 003A3B44 80 1F 00 F4 */ lwz r0, 0xf4(r31)
/* 803A6BE8 003A3B48 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 803A6BEC 003A3B4C 48 00 C5 B1 */ bl hwIsActive
/* 803A6BF0 003A3B50 28 03 00 00 */ cmplwi r3, 0
/* 803A6BF4 003A3B54 40 82 00 3C */ bne lbl_803A6C30
/* 803A6BF8 003A3B58 88 1F 00 68 */ lbz r0, 0x68(r31)
/* 803A6BFC 003A3B5C 28 00 00 00 */ cmplwi r0, 0
/* 803A6C00 003A3B60 41 82 00 30 */ beq lbl_803A6C30
/* 803A6C04 003A3B64 80 1F 00 54 */ lwz r0, 0x54(r31)
/* 803A6C08 003A3B68 28 00 00 00 */ cmplwi r0, 0
/* 803A6C0C 003A3B6C 41 82 00 24 */ beq lbl_803A6C30
/* 803A6C10 003A3B70 80 9F 00 60 */ lwz r4, 0x60(r31)
/* 803A6C14 003A3B74 38 00 00 00 */ li r0, 0
/* 803A6C18 003A3B78 7F E3 FB 78 */ mr r3, r31
/* 803A6C1C 003A3B7C 90 9F 00 38 */ stw r4, 0x38(r31)
/* 803A6C20 003A3B80 80 9F 00 54 */ lwz r4, 0x54(r31)
/* 803A6C24 003A3B84 90 9F 00 34 */ stw r4, 0x34(r31)
/* 803A6C28 003A3B88 90 1F 00 54 */ stw r0, 0x54(r31)
/* 803A6C2C 003A3B8C 48 00 03 91 */ bl macMakeActive
lbl_803A6C30:
/* 803A6C30 003A3B90 7F E3 FB 78 */ mr r3, r31
/* 803A6C34 003A3B94 4B FF EF 99 */ bl sub_803a5bcc
/* 803A6C38 003A3B98 83 FF 00 3C */ lwz r31, 0x3c(r31)
lbl_803A6C3C:
/* 803A6C3C 003A3B9C 28 1F 00 00 */ cmplwi r31, 0
/* 803A6C40 003A3BA0 40 82 FF 50 */ bne lbl_803A6B90
/* 803A6C44 003A3BA4 80 6D AE EC */ lwz r3, macRealTime+4@sda21(r13)
/* 803A6C48 003A3BA8 80 0D AE E8 */ lwz r0, macRealTime@sda21(r13)
/* 803A6C4C 003A3BAC 7C 63 F0 14 */ addc r3, r3, r30
/* 803A6C50 003A3BB0 7C 00 01 94 */ addze r0, r0
/* 803A6C54 003A3BB4 90 6D AE EC */ stw r3, macRealTime+4@sda21(r13)
/* 803A6C58 003A3BB8 90 0D AE E8 */ stw r0, macRealTime@sda21(r13)
/* 803A6C5C 003A3BBC 39 61 00 20 */ addi r11, r1, 0x20
/* 803A6C60 003A3BC0 4B FE 2E 65 */ bl _restgpr_26
/* 803A6C64 003A3BC4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A6C68 003A3BC8 7C 08 03 A6 */ mtlr r0
/* 803A6C6C 003A3BCC 38 21 00 20 */ addi r1, r1, 0x20
/* 803A6C70 003A3BD0 4E 80 00 20 */ blr
.global macSampleEndNotify
macSampleEndNotify:
/* 803A6C74 003A3BD4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A6C78 003A3BD8 7C 08 02 A6 */ mflr r0
/* 803A6C7C 003A3BDC 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A6C80 003A3BE0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A6C84 003A3BE4 7C 7F 1B 78 */ mr r31, r3
/* 803A6C88 003A3BE8 80 03 00 4C */ lwz r0, 0x4c(r3)
/* 803A6C8C 003A3BEC 2C 00 00 01 */ cmpwi r0, 1
/* 803A6C90 003A3BF0 40 82 00 7C */ bne lbl_803A6D0C
/* 803A6C94 003A3BF4 88 1F 00 68 */ lbz r0, 0x68(r31)
/* 803A6C98 003A3BF8 28 00 00 00 */ cmplwi r0, 0
/* 803A6C9C 003A3BFC 41 82 00 34 */ beq lbl_803A6CD0
/* 803A6CA0 003A3C00 80 1F 00 54 */ lwz r0, 0x54(r31)
/* 803A6CA4 003A3C04 28 00 00 00 */ cmplwi r0, 0
/* 803A6CA8 003A3C08 41 82 00 28 */ beq lbl_803A6CD0
/* 803A6CAC 003A3C0C 80 9F 00 60 */ lwz r4, 0x60(r31)
/* 803A6CB0 003A3C10 38 00 00 00 */ li r0, 0
/* 803A6CB4 003A3C14 90 9F 00 38 */ stw r4, 0x38(r31)
/* 803A6CB8 003A3C18 80 9F 00 54 */ lwz r4, 0x54(r31)
/* 803A6CBC 003A3C1C 90 9F 00 34 */ stw r4, 0x34(r31)
/* 803A6CC0 003A3C20 90 1F 00 54 */ stw r0, 0x54(r31)
/* 803A6CC4 003A3C24 48 00 02 F9 */ bl macMakeActive
/* 803A6CC8 003A3C28 38 00 00 01 */ li r0, 1
/* 803A6CCC 003A3C2C 48 00 00 08 */ b lbl_803A6CD4
lbl_803A6CD0:
/* 803A6CD0 003A3C30 38 00 00 00 */ li r0, 0
lbl_803A6CD4:
/* 803A6CD4 003A3C34 28 00 00 00 */ cmplwi r0, 0
/* 803A6CD8 003A3C38 40 82 00 34 */ bne lbl_803A6D0C
/* 803A6CDC 003A3C3C 80 1F 01 14 */ lwz r0, 0x114(r31)
/* 803A6CE0 003A3C40 38 80 00 00 */ li r4, 0
/* 803A6CE4 003A3C44 80 BF 01 18 */ lwz r5, 0x118(r31)
/* 803A6CE8 003A3C48 3C 60 00 04 */ lis r3, 4
/* 803A6CEC 003A3C4C 7C 00 20 38 */ and r0, r0, r4
/* 803A6CF0 003A3C50 7C A3 18 38 */ and r3, r5, r3
/* 803A6CF4 003A3C54 7C 63 22 78 */ xor r3, r3, r4
/* 803A6CF8 003A3C58 7C 00 22 78 */ xor r0, r0, r4
/* 803A6CFC 003A3C5C 7C 60 03 79 */ or. r0, r3, r0
/* 803A6D00 003A3C60 41 82 00 0C */ beq lbl_803A6D0C
/* 803A6D04 003A3C64 7F E3 FB 78 */ mr r3, r31
/* 803A6D08 003A3C68 48 00 02 B5 */ bl macMakeActive
lbl_803A6D0C:
/* 803A6D0C 003A3C6C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A6D10 003A3C70 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A6D14 003A3C74 7C 08 03 A6 */ mtlr r0
/* 803A6D18 003A3C78 38 21 00 10 */ addi r1, r1, 0x10
/* 803A6D1C 003A3C7C 4E 80 00 20 */ blr
.global macSetExternalKeyoff
macSetExternalKeyoff:
/* 803A6D20 003A3C80 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A6D24 003A3C84 7C 08 02 A6 */ mflr r0
/* 803A6D28 003A3C88 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A6D2C 003A3C8C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A6D30 003A3C90 7C 7F 1B 78 */ mr r31, r3
/* 803A6D34 003A3C94 80 03 01 18 */ lwz r0, 0x118(r3)
/* 803A6D38 003A3C98 80 83 01 14 */ lwz r4, 0x114(r3)
/* 803A6D3C 003A3C9C 60 00 00 08 */ ori r0, r0, 8
/* 803A6D40 003A3CA0 90 03 01 18 */ stw r0, 0x118(r3)
/* 803A6D44 003A3CA4 80 03 00 34 */ lwz r0, 0x34(r3)
/* 803A6D48 003A3CA8 28 00 00 00 */ cmplwi r0, 0
/* 803A6D4C 003A3CAC 41 82 00 B0 */ beq lbl_803A6DFC
/* 803A6D50 003A3CB0 80 DF 01 14 */ lwz r6, 0x114(r31)
/* 803A6D54 003A3CB4 38 00 01 00 */ li r0, 0x100
/* 803A6D58 003A3CB8 80 FF 01 18 */ lwz r7, 0x118(r31)
/* 803A6D5C 003A3CBC 38 A0 00 00 */ li r5, 0
/* 803A6D60 003A3CC0 7C C0 00 38 */ and r0, r6, r0
/* 803A6D64 003A3CC4 7C E4 28 38 */ and r4, r7, r5
/* 803A6D68 003A3CC8 7C 84 2A 78 */ xor r4, r4, r5
/* 803A6D6C 003A3CCC 7C 00 2A 78 */ xor r0, r0, r5
/* 803A6D70 003A3CD0 7C 80 03 79 */ or. r0, r4, r0
/* 803A6D74 003A3CD4 40 82 00 7C */ bne lbl_803A6DF0
/* 803A6D78 003A3CD8 88 1F 00 68 */ lbz r0, 0x68(r31)
/* 803A6D7C 003A3CDC 28 00 00 00 */ cmplwi r0, 0
/* 803A6D80 003A3CE0 41 82 00 30 */ beq lbl_803A6DB0
/* 803A6D84 003A3CE4 80 1F 00 50 */ lwz r0, 0x50(r31)
/* 803A6D88 003A3CE8 28 00 00 00 */ cmplwi r0, 0
/* 803A6D8C 003A3CEC 41 82 00 24 */ beq lbl_803A6DB0
/* 803A6D90 003A3CF0 80 1F 00 5C */ lwz r0, 0x5c(r31)
/* 803A6D94 003A3CF4 90 1F 00 38 */ stw r0, 0x38(r31)
/* 803A6D98 003A3CF8 80 1F 00 50 */ lwz r0, 0x50(r31)
/* 803A6D9C 003A3CFC 90 1F 00 34 */ stw r0, 0x34(r31)
/* 803A6DA0 003A3D00 90 BF 00 50 */ stw r5, 0x50(r31)
/* 803A6DA4 003A3D04 48 00 02 19 */ bl macMakeActive
/* 803A6DA8 003A3D08 38 00 00 01 */ li r0, 1
/* 803A6DAC 003A3D0C 48 00 00 08 */ b lbl_803A6DB4
lbl_803A6DB0:
/* 803A6DB0 003A3D10 38 00 00 00 */ li r0, 0
lbl_803A6DB4:
/* 803A6DB4 003A3D14 28 00 00 00 */ cmplwi r0, 0
/* 803A6DB8 003A3D18 40 82 00 44 */ bne lbl_803A6DFC
/* 803A6DBC 003A3D1C 80 1F 01 14 */ lwz r0, 0x114(r31)
/* 803A6DC0 003A3D20 38 80 00 00 */ li r4, 0
/* 803A6DC4 003A3D24 80 BF 01 18 */ lwz r5, 0x118(r31)
/* 803A6DC8 003A3D28 38 60 00 04 */ li r3, 4
/* 803A6DCC 003A3D2C 7C 00 20 38 */ and r0, r0, r4
/* 803A6DD0 003A3D30 7C A3 18 38 */ and r3, r5, r3
/* 803A6DD4 003A3D34 7C 63 22 78 */ xor r3, r3, r4
/* 803A6DD8 003A3D38 7C 00 22 78 */ xor r0, r0, r4
/* 803A6DDC 003A3D3C 7C 60 03 79 */ or. r0, r3, r0
/* 803A6DE0 003A3D40 41 82 00 1C */ beq lbl_803A6DFC
/* 803A6DE4 003A3D44 7F E3 FB 78 */ mr r3, r31
/* 803A6DE8 003A3D48 48 00 01 D5 */ bl macMakeActive
/* 803A6DEC 003A3D4C 48 00 00 10 */ b lbl_803A6DFC
lbl_803A6DF0:
/* 803A6DF0 003A3D50 90 FF 01 18 */ stw r7, 0x118(r31)
/* 803A6DF4 003A3D54 60 C0 04 00 */ ori r0, r6, 0x400
/* 803A6DF8 003A3D58 90 1F 01 14 */ stw r0, 0x114(r31)
lbl_803A6DFC:
/* 803A6DFC 003A3D5C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A6E00 003A3D60 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A6E04 003A3D64 7C 08 03 A6 */ mtlr r0
/* 803A6E08 003A3D68 38 21 00 10 */ addi r1, r1, 0x10
/* 803A6E0C 003A3D6C 4E 80 00 20 */ blr
.global macSetPedalState
macSetPedalState:
/* 803A6E10 003A3D70 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A6E14 003A3D74 7C 08 02 A6 */ mflr r0
/* 803A6E18 003A3D78 28 04 00 00 */ cmplwi r4, 0
/* 803A6E1C 003A3D7C 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A6E20 003A3D80 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A6E24 003A3D84 7C 7F 1B 78 */ mr r31, r3
/* 803A6E28 003A3D88 41 82 00 14 */ beq lbl_803A6E3C
/* 803A6E2C 003A3D8C 80 1F 01 14 */ lwz r0, 0x114(r31)
/* 803A6E30 003A3D90 60 00 01 00 */ ori r0, r0, 0x100
/* 803A6E34 003A3D94 90 1F 01 14 */ stw r0, 0x114(r31)
/* 803A6E38 003A3D98 48 00 00 CC */ b lbl_803A6F04
lbl_803A6E3C:
/* 803A6E3C 003A3D9C 80 1F 00 34 */ lwz r0, 0x34(r31)
/* 803A6E40 003A3DA0 28 00 00 00 */ cmplwi r0, 0
/* 803A6E44 003A3DA4 41 82 00 A0 */ beq lbl_803A6EE4
/* 803A6E48 003A3DA8 80 9F 01 14 */ lwz r4, 0x114(r31)
/* 803A6E4C 003A3DAC 38 00 04 00 */ li r0, 0x400
/* 803A6E50 003A3DB0 80 DF 01 18 */ lwz r6, 0x118(r31)
/* 803A6E54 003A3DB4 38 A0 00 00 */ li r5, 0
/* 803A6E58 003A3DB8 7C 80 00 38 */ and r0, r4, r0
/* 803A6E5C 003A3DBC 7C C4 28 38 */ and r4, r6, r5
/* 803A6E60 003A3DC0 7C 84 2A 78 */ xor r4, r4, r5
/* 803A6E64 003A3DC4 7C 00 2A 78 */ xor r0, r0, r5
/* 803A6E68 003A3DC8 7C 80 03 79 */ or. r0, r4, r0
/* 803A6E6C 003A3DCC 41 82 00 78 */ beq lbl_803A6EE4
/* 803A6E70 003A3DD0 88 1F 00 68 */ lbz r0, 0x68(r31)
/* 803A6E74 003A3DD4 28 00 00 00 */ cmplwi r0, 0
/* 803A6E78 003A3DD8 41 82 00 30 */ beq lbl_803A6EA8
/* 803A6E7C 003A3DDC 80 1F 00 50 */ lwz r0, 0x50(r31)
/* 803A6E80 003A3DE0 28 00 00 00 */ cmplwi r0, 0
/* 803A6E84 003A3DE4 41 82 00 24 */ beq lbl_803A6EA8
/* 803A6E88 003A3DE8 80 1F 00 5C */ lwz r0, 0x5c(r31)
/* 803A6E8C 003A3DEC 90 1F 00 38 */ stw r0, 0x38(r31)
/* 803A6E90 003A3DF0 80 1F 00 50 */ lwz r0, 0x50(r31)
/* 803A6E94 003A3DF4 90 1F 00 34 */ stw r0, 0x34(r31)
/* 803A6E98 003A3DF8 90 BF 00 50 */ stw r5, 0x50(r31)
/* 803A6E9C 003A3DFC 48 00 01 21 */ bl macMakeActive
/* 803A6EA0 003A3E00 38 00 00 01 */ li r0, 1
/* 803A6EA4 003A3E04 48 00 00 08 */ b lbl_803A6EAC
lbl_803A6EA8:
/* 803A6EA8 003A3E08 38 00 00 00 */ li r0, 0
lbl_803A6EAC:
/* 803A6EAC 003A3E0C 28 00 00 00 */ cmplwi r0, 0
/* 803A6EB0 003A3E10 40 82 00 34 */ bne lbl_803A6EE4
/* 803A6EB4 003A3E14 80 1F 01 14 */ lwz r0, 0x114(r31)
/* 803A6EB8 003A3E18 38 80 00 00 */ li r4, 0
/* 803A6EBC 003A3E1C 80 BF 01 18 */ lwz r5, 0x118(r31)
/* 803A6EC0 003A3E20 38 60 00 04 */ li r3, 4
/* 803A6EC4 003A3E24 7C 00 20 38 */ and r0, r0, r4
/* 803A6EC8 003A3E28 7C A3 18 38 */ and r3, r5, r3
/* 803A6ECC 003A3E2C 7C 63 22 78 */ xor r3, r3, r4
/* 803A6ED0 003A3E30 7C 00 22 78 */ xor r0, r0, r4
/* 803A6ED4 003A3E34 7C 60 03 79 */ or. r0, r3, r0
/* 803A6ED8 003A3E38 41 82 00 0C */ beq lbl_803A6EE4
/* 803A6EDC 003A3E3C 7F E3 FB 78 */ mr r3, r31
/* 803A6EE0 003A3E40 48 00 00 DD */ bl macMakeActive
lbl_803A6EE4:
/* 803A6EE4 003A3E44 80 BF 01 18 */ lwz r5, 0x118(r31)
/* 803A6EE8 003A3E48 38 00 FF FF */ li r0, -1
/* 803A6EEC 003A3E4C 80 9F 01 14 */ lwz r4, 0x114(r31)
/* 803A6EF0 003A3E50 38 60 FA FF */ li r3, -1281
/* 803A6EF4 003A3E54 7C A0 00 38 */ and r0, r5, r0
/* 803A6EF8 003A3E58 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A6EFC 003A3E5C 7C 80 18 38 */ and r0, r4, r3
/* 803A6F00 003A3E60 90 1F 01 14 */ stw r0, 0x114(r31)
lbl_803A6F04:
/* 803A6F04 003A3E64 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A6F08 003A3E68 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A6F0C 003A3E6C 7C 08 03 A6 */ mtlr r0
/* 803A6F10 003A3E70 38 21 00 10 */ addi r1, r1, 0x10
/* 803A6F14 003A3E74 4E 80 00 20 */ blr
.global TimeQueueAdd
TimeQueueAdd:
/* 803A6F18 003A3E78 80 ED AE F0 */ lwz r7, macTimeQueueRoot@sda21(r13)
/* 803A6F1C 003A3E7C 39 00 00 00 */ li r8, 0
/* 803A6F20 003A3E80 48 00 00 0C */ b lbl_803A6F2C
lbl_803A6F24:
/* 803A6F24 003A3E84 7C E8 3B 78 */ mr r8, r7
/* 803A6F28 003A3E88 80 E7 00 44 */ lwz r7, 0x44(r7)
lbl_803A6F2C:
/* 803A6F2C 003A3E8C 28 07 00 00 */ cmplwi r7, 0
/* 803A6F30 003A3E90 41 82 00 28 */ beq lbl_803A6F58
/* 803A6F34 003A3E94 80 C7 00 9C */ lwz r6, 0x9c(r7)
/* 803A6F38 003A3E98 80 03 00 9C */ lwz r0, 0x9c(r3)
/* 803A6F3C 003A3E9C 80 A7 00 98 */ lwz r5, 0x98(r7)
/* 803A6F40 003A3EA0 80 83 00 98 */ lwz r4, 0x98(r3)
/* 803A6F44 003A3EA4 7C 00 30 10 */ subfc r0, r0, r6
/* 803A6F48 003A3EA8 7C 04 29 10 */ subfe r0, r4, r5
/* 803A6F4C 003A3EAC 7C 03 19 10 */ subfe r0, r3, r3
/* 803A6F50 003A3EB0 7C 00 00 D1 */ neg. r0, r0
/* 803A6F54 003A3EB4 40 82 FF D0 */ bne lbl_803A6F24
lbl_803A6F58:
/* 803A6F58 003A3EB8 28 07 00 00 */ cmplwi r7, 0
/* 803A6F5C 003A3EBC 40 82 00 34 */ bne lbl_803A6F90
/* 803A6F60 003A3EC0 28 08 00 00 */ cmplwi r8, 0
/* 803A6F64 003A3EC4 40 82 00 18 */ bne lbl_803A6F7C
/* 803A6F68 003A3EC8 90 6D AE F0 */ stw r3, macTimeQueueRoot@sda21(r13)
/* 803A6F6C 003A3ECC 38 00 00 00 */ li r0, 0
/* 803A6F70 003A3ED0 90 03 00 44 */ stw r0, 0x44(r3)
/* 803A6F74 003A3ED4 90 03 00 48 */ stw r0, 0x48(r3)
/* 803A6F78 003A3ED8 4E 80 00 20 */ blr
lbl_803A6F7C:
/* 803A6F7C 003A3EDC 90 68 00 44 */ stw r3, 0x44(r8)
/* 803A6F80 003A3EE0 38 00 00 00 */ li r0, 0
/* 803A6F84 003A3EE4 91 03 00 48 */ stw r8, 0x48(r3)
/* 803A6F88 003A3EE8 90 03 00 44 */ stw r0, 0x44(r3)
/* 803A6F8C 003A3EEC 4E 80 00 20 */ blr
lbl_803A6F90:
/* 803A6F90 003A3EF0 90 E3 00 44 */ stw r7, 0x44(r3)
/* 803A6F94 003A3EF4 80 07 00 48 */ lwz r0, 0x48(r7)
/* 803A6F98 003A3EF8 28 00 00 00 */ cmplwi r0, 0
/* 803A6F9C 003A3EFC 90 03 00 48 */ stw r0, 0x48(r3)
/* 803A6FA0 003A3F00 41 82 00 10 */ beq lbl_803A6FB0
/* 803A6FA4 003A3F04 80 87 00 48 */ lwz r4, 0x48(r7)
/* 803A6FA8 003A3F08 90 64 00 44 */ stw r3, 0x44(r4)
/* 803A6FAC 003A3F0C 48 00 00 08 */ b lbl_803A6FB4
lbl_803A6FB0:
/* 803A6FB0 003A3F10 90 6D AE F0 */ stw r3, macTimeQueueRoot@sda21(r13)
lbl_803A6FB4:
/* 803A6FB4 003A3F14 90 67 00 48 */ stw r3, 0x48(r7)
/* 803A6FB8 003A3F18 4E 80 00 20 */ blr
.global macMakeActive
macMakeActive:
/* 803A6FBC 003A3F1C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803A6FC0 003A3F20 7C 08 02 A6 */ mflr r0
/* 803A6FC4 003A3F24 90 01 00 14 */ stw r0, 0x14(r1)
/* 803A6FC8 003A3F28 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803A6FCC 003A3F2C 7C 7F 1B 78 */ mr r31, r3
/* 803A6FD0 003A3F30 80 03 00 4C */ lwz r0, 0x4c(r3)
/* 803A6FD4 003A3F34 2C 00 00 00 */ cmpwi r0, 0
/* 803A6FD8 003A3F38 41 82 00 D8 */ beq lbl_803A70B0
/* 803A6FDC 003A3F3C 80 9F 00 98 */ lwz r4, 0x98(r31)
/* 803A6FE0 003A3F40 38 60 00 00 */ li r3, 0
/* 803A6FE4 003A3F44 80 BF 00 9C */ lwz r5, 0x9c(r31)
/* 803A6FE8 003A3F48 7C 80 1A 78 */ xor r0, r4, r3
/* 803A6FEC 003A3F4C 7C A3 1A 78 */ xor r3, r5, r3
/* 803A6FF0 003A3F50 7C 60 03 79 */ or. r0, r3, r0
/* 803A6FF4 003A3F54 41 82 00 94 */ beq lbl_803A7088
/* 803A6FF8 003A3F58 38 00 FF FF */ li r0, -1
/* 803A6FFC 003A3F5C 7C A3 02 78 */ xor r3, r5, r0
/* 803A7000 003A3F60 7C 80 02 78 */ xor r0, r4, r0
/* 803A7004 003A3F64 7C 60 03 79 */ or. r0, r3, r0
/* 803A7008 003A3F68 41 82 00 38 */ beq lbl_803A7040
/* 803A700C 003A3F6C 80 7F 00 48 */ lwz r3, 0x48(r31)
/* 803A7010 003A3F70 28 03 00 00 */ cmplwi r3, 0
/* 803A7014 003A3F74 40 82 00 10 */ bne lbl_803A7024
/* 803A7018 003A3F78 80 1F 00 44 */ lwz r0, 0x44(r31)
/* 803A701C 003A3F7C 90 0D AE F0 */ stw r0, macTimeQueueRoot@sda21(r13)
/* 803A7020 003A3F80 48 00 00 0C */ b lbl_803A702C
lbl_803A7024:
/* 803A7024 003A3F84 80 1F 00 44 */ lwz r0, 0x44(r31)
/* 803A7028 003A3F88 90 03 00 44 */ stw r0, 0x44(r3)
lbl_803A702C:
/* 803A702C 003A3F8C 80 7F 00 44 */ lwz r3, 0x44(r31)
/* 803A7030 003A3F90 28 03 00 00 */ cmplwi r3, 0
/* 803A7034 003A3F94 41 82 00 0C */ beq lbl_803A7040
/* 803A7038 003A3F98 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 803A703C 003A3F9C 90 03 00 48 */ stw r0, 0x48(r3)
lbl_803A7040:
/* 803A7040 003A3FA0 7F E3 FB 78 */ mr r3, r31
/* 803A7044 003A3FA4 4B FF 3A 59 */ bl synthForceLowPrecisionUpdate
/* 803A7048 003A3FA8 38 80 00 00 */ li r4, 0
/* 803A704C 003A3FAC 3C 60 FF FC */ lis r3, 0xFFFBFFFB@ha
/* 803A7050 003A3FB0 90 9F 00 9C */ stw r4, 0x9c(r31)
/* 803A7054 003A3FB4 38 03 FF FB */ addi r0, r3, 0xFFFBFFFB@l
/* 803A7058 003A3FB8 38 60 FF FF */ li r3, -1
/* 803A705C 003A3FBC 90 9F 00 98 */ stw r4, 0x98(r31)
/* 803A7060 003A3FC0 80 8D AE E8 */ lwz r4, macRealTime@sda21(r13)
/* 803A7064 003A3FC4 80 AD AE EC */ lwz r5, macRealTime+4@sda21(r13)
/* 803A7068 003A3FC8 90 BF 00 A4 */ stw r5, 0xa4(r31)
/* 803A706C 003A3FCC 90 9F 00 A0 */ stw r4, 0xa0(r31)
/* 803A7070 003A3FD0 80 BF 01 18 */ lwz r5, 0x118(r31)
/* 803A7074 003A3FD4 80 9F 01 14 */ lwz r4, 0x114(r31)
/* 803A7078 003A3FD8 7C A0 00 38 */ and r0, r5, r0
/* 803A707C 003A3FDC 90 1F 01 18 */ stw r0, 0x118(r31)
/* 803A7080 003A3FE0 7C 80 18 38 */ and r0, r4, r3
/* 803A7084 003A3FE4 90 1F 01 14 */ stw r0, 0x114(r31)
lbl_803A7088:
/* 803A7088 003A3FE8 80 0D AE F4 */ lwz r0, macActiveMacroRoot@sda21(r13)
/* 803A708C 003A3FEC 28 00 00 00 */ cmplwi r0, 0
/* 803A7090 003A3FF0 90 1F 00 3C */ stw r0, 0x3c(r31)
/* 803A7094 003A3FF4 41 82 00 0C */ beq lbl_803A70A0
/* 803A7098 003A3FF8 80 6D AE F4 */ lwz r3, macActiveMacroRoot@sda21(r13)
/* 803A709C 003A3FFC 93 E3 00 40 */ stw r31, 0x40(r3)
lbl_803A70A0:
/* 803A70A0 003A4000 38 00 00 00 */ li r0, 0
/* 803A70A4 003A4004 90 1F 00 40 */ stw r0, 0x40(r31)
/* 803A70A8 003A4008 93 ED AE F4 */ stw r31, macActiveMacroRoot@sda21(r13)
/* 803A70AC 003A400C 90 1F 00 4C */ stw r0, 0x4c(r31)
lbl_803A70B0:
/* 803A70B0 003A4010 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A70B4 003A4014 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A70B8 003A4018 7C 08 03 A6 */ mtlr r0
/* 803A70BC 003A401C 38 21 00 10 */ addi r1, r1, 0x10
/* 803A70C0 003A4020 4E 80 00 20 */ blr
.global macMakeInactive
macMakeInactive:
/* 803A70C4 003A4024 80 03 00 4C */ lwz r0, 0x4c(r3)
/* 803A70C8 003A4028 7C 00 20 00 */ cmpw r0, r4
/* 803A70CC 003A402C 4D 82 00 20 */ beqlr
/* 803A70D0 003A4030 2C 00 00 00 */ cmpwi r0, 0
/* 803A70D4 003A4034 40 82 00 38 */ bne lbl_803A710C
/* 803A70D8 003A4038 80 A3 00 40 */ lwz r5, 0x40(r3)
/* 803A70DC 003A403C 28 05 00 00 */ cmplwi r5, 0
/* 803A70E0 003A4040 40 82 00 10 */ bne lbl_803A70F0
/* 803A70E4 003A4044 80 03 00 3C */ lwz r0, 0x3c(r3)
/* 803A70E8 003A4048 90 0D AE F4 */ stw r0, macActiveMacroRoot@sda21(r13)
/* 803A70EC 003A404C 48 00 00 0C */ b lbl_803A70F8
lbl_803A70F0:
/* 803A70F0 003A4050 80 03 00 3C */ lwz r0, 0x3c(r3)
/* 803A70F4 003A4054 90 05 00 3C */ stw r0, 0x3c(r5)
lbl_803A70F8:
/* 803A70F8 003A4058 80 A3 00 3C */ lwz r5, 0x3c(r3)
/* 803A70FC 003A405C 28 05 00 00 */ cmplwi r5, 0
/* 803A7100 003A4060 41 82 00 0C */ beq lbl_803A710C
/* 803A7104 003A4064 80 03 00 40 */ lwz r0, 0x40(r3)
/* 803A7108 003A4068 90 05 00 40 */ stw r0, 0x40(r5)
lbl_803A710C:
/* 803A710C 003A406C 2C 04 00 02 */ cmpwi r4, 2
/* 803A7110 003A4070 40 82 00 A8 */ bne lbl_803A71B8
/* 803A7114 003A4074 80 C3 00 98 */ lwz r6, 0x98(r3)
/* 803A7118 003A4078 38 A0 00 00 */ li r5, 0
/* 803A711C 003A407C 80 E3 00 9C */ lwz r7, 0x9c(r3)
/* 803A7120 003A4080 7C C0 2A 78 */ xor r0, r6, r5
/* 803A7124 003A4084 7C E5 2A 78 */ xor r5, r7, r5
/* 803A7128 003A4088 7C A0 03 79 */ or. r0, r5, r0
/* 803A712C 003A408C 41 82 00 8C */ beq lbl_803A71B8
/* 803A7130 003A4090 38 00 FF FF */ li r0, -1
/* 803A7134 003A4094 7C E5 02 78 */ xor r5, r7, r0
/* 803A7138 003A4098 7C C0 02 78 */ xor r0, r6, r0
/* 803A713C 003A409C 7C A0 03 79 */ or. r0, r5, r0
/* 803A7140 003A40A0 41 82 00 38 */ beq lbl_803A7178
/* 803A7144 003A40A4 80 A3 00 48 */ lwz r5, 0x48(r3)
/* 803A7148 003A40A8 28 05 00 00 */ cmplwi r5, 0
/* 803A714C 003A40AC 40 82 00 10 */ bne lbl_803A715C
/* 803A7150 003A40B0 80 03 00 44 */ lwz r0, 0x44(r3)
/* 803A7154 003A40B4 90 0D AE F0 */ stw r0, macTimeQueueRoot@sda21(r13)
/* 803A7158 003A40B8 48 00 00 0C */ b lbl_803A7164
lbl_803A715C:
/* 803A715C 003A40BC 80 03 00 44 */ lwz r0, 0x44(r3)
/* 803A7160 003A40C0 90 05 00 44 */ stw r0, 0x44(r5)
lbl_803A7164:
/* 803A7164 003A40C4 80 A3 00 44 */ lwz r5, 0x44(r3)
/* 803A7168 003A40C8 28 05 00 00 */ cmplwi r5, 0
/* 803A716C 003A40CC 41 82 00 0C */ beq lbl_803A7178
/* 803A7170 003A40D0 80 03 00 48 */ lwz r0, 0x48(r3)
/* 803A7174 003A40D4 90 05 00 48 */ stw r0, 0x48(r5)
lbl_803A7178:
/* 803A7178 003A40D8 38 C0 00 00 */ li r6, 0
/* 803A717C 003A40DC 3C A0 FF FC */ lis r5, 0xFFFBFFFB@ha
/* 803A7180 003A40E0 90 C3 00 9C */ stw r6, 0x9c(r3)
/* 803A7184 003A40E4 38 05 FF FB */ addi r0, r5, 0xFFFBFFFB@l
/* 803A7188 003A40E8 38 A0 FF FF */ li r5, -1
/* 803A718C 003A40EC 90 C3 00 98 */ stw r6, 0x98(r3)
/* 803A7190 003A40F0 80 CD AE E8 */ lwz r6, macRealTime@sda21(r13)
/* 803A7194 003A40F4 80 ED AE EC */ lwz r7, macRealTime+4@sda21(r13)
/* 803A7198 003A40F8 90 E3 00 A4 */ stw r7, 0xa4(r3)
/* 803A719C 003A40FC 90 C3 00 A0 */ stw r6, 0xa0(r3)
/* 803A71A0 003A4100 80 E3 01 18 */ lwz r7, 0x118(r3)
/* 803A71A4 003A4104 80 C3 01 14 */ lwz r6, 0x114(r3)
/* 803A71A8 003A4108 7C E0 00 38 */ and r0, r7, r0
/* 803A71AC 003A410C 90 03 01 18 */ stw r0, 0x118(r3)
/* 803A71B0 003A4110 7C C0 28 38 */ and r0, r6, r5
/* 803A71B4 003A4114 90 03 01 14 */ stw r0, 0x114(r3)
lbl_803A71B8:
/* 803A71B8 003A4118 90 83 00 4C */ stw r4, 0x4c(r3)
/* 803A71BC 003A411C 4E 80 00 20 */ blr
.global sub_803a71c0
sub_803a71c0:
/* 803A71C0 003A4120 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 803A71C4 003A4124 7C 08 02 A6 */ mflr r0
/* 803A71C8 003A4128 90 01 00 54 */ stw r0, 0x54(r1)
/* 803A71CC 003A412C 39 61 00 50 */ addi r11, r1, 0x50
/* 803A71D0 003A4130 4B FE 28 79 */ bl __save_gpr
/* 803A71D4 003A4134 8A C1 00 5B */ lbz r22, 0x5b(r1)
/* 803A71D8 003A4138 7C 6F 1B 78 */ mr r15, r3
/* 803A71DC 003A413C 8A E1 00 5F */ lbz r23, 0x5f(r1)
/* 803A71E0 003A4140 7C 90 23 78 */ mr r16, r4
/* 803A71E4 003A4144 A3 01 00 62 */ lhz r24, 0x62(r1)
/* 803A71E8 003A4148 7C BC 2B 78 */ mr r28, r5
/* 803A71EC 003A414C A3 21 00 66 */ lhz r25, 0x66(r1)
/* 803A71F0 003A4150 7C D1 33 78 */ mr r17, r6
/* 803A71F4 003A4154 8B 41 00 6B */ lbz r26, 0x6b(r1)
/* 803A71F8 003A4158 7C F2 3B 78 */ mr r18, r7
/* 803A71FC 003A415C 8B 61 00 6F */ lbz r27, 0x6f(r1)
/* 803A7200 003A4160 7D 13 43 78 */ mr r19, r8
/* 803A7204 003A4164 81 C1 00 74 */ lwz r14, 0x74(r1)
/* 803A7208 003A4168 7D 34 4B 78 */ mr r20, r9
/* 803A720C 003A416C 7D 55 53 78 */ mr r21, r10
/* 803A7210 003A4170 4B FF B2 ED */ bl dataGetMacro
/* 803A7214 003A4174 7C 7F 1B 79 */ or. r31, r3, r3
/* 803A7218 003A4178 41 82 03 C4 */ beq lbl_803A75DC
/* 803A721C 003A417C 56 5E 06 31 */ rlwinm. r30, r18, 0, 0x18, 0x18
/* 803A7220 003A4180 40 82 00 20 */ bne lbl_803A7240
/* 803A7224 003A4184 7E C3 B3 78 */ mr r3, r22
/* 803A7228 003A4188 7E A4 AB 78 */ mr r4, r21
/* 803A722C 003A418C 4B FF 4F 49 */ bl seqGetMIDIPriority
/* 803A7230 003A4190 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 803A7234 003A4194 28 00 FF FF */ cmplwi r0, 0xffff
/* 803A7238 003A4198 41 82 00 08 */ beq lbl_803A7240
/* 803A723C 003A419C 54 70 06 3E */ clrlwi r16, r3, 0x18
lbl_803A7240:
/* 803A7240 003A41A0 7C 1E 00 D0 */ neg r0, r30
/* 803A7244 003A41A4 7E 03 83 78 */ mr r3, r16
/* 803A7248 003A41A8 7C 00 F3 78 */ or r0, r0, r30
/* 803A724C 003A41AC 7F 84 E3 78 */ mr r4, r28
/* 803A7250 003A41B0 54 06 0F FE */ srwi r6, r0, 0x1f
/* 803A7254 003A41B4 7E 25 8B 78 */ mr r5, r17
/* 803A7258 003A41B8 48 00 0B ED */ bl voiceAllocateFind
/* 803A725C 003A41BC 7C 7D 1B 78 */ mr r29, r3
/* 803A7260 003A41C0 3C 1D 00 01 */ addis r0, r29, 1
/* 803A7264 003A41C4 28 00 FF FF */ cmplwi r0, 0xffff
/* 803A7268 003A41C8 41 82 03 74 */ beq lbl_803A75DC
/* 803A726C 003A41CC 1C 1D 04 04 */ mulli r0, r29, 0x404
/* 803A7270 003A41D0 80 6D AE 78 */ lwz r3, synthVoice@sda21(r13)
/* 803A7274 003A41D4 7F 83 02 14 */ add r28, r3, r0
/* 803A7278 003A41D8 7F 83 E3 78 */ mr r3, r28
/* 803A727C 003A41DC 48 00 04 C5 */ bl vidRemoveVoiceReferences
/* 803A7280 003A41E0 80 1C 00 4C */ lwz r0, 0x4c(r28)
/* 803A7284 003A41E4 2C 00 00 02 */ cmpwi r0, 2
/* 803A7288 003A41E8 41 82 00 EC */ beq lbl_803A7374
/* 803A728C 003A41EC 2C 00 00 00 */ cmpwi r0, 0
/* 803A7290 003A41F0 40 82 00 38 */ bne lbl_803A72C8
/* 803A7294 003A41F4 80 7C 00 40 */ lwz r3, 0x40(r28)
/* 803A7298 003A41F8 28 03 00 00 */ cmplwi r3, 0
/* 803A729C 003A41FC 40 82 00 10 */ bne lbl_803A72AC
/* 803A72A0 003A4200 80 1C 00 3C */ lwz r0, 0x3c(r28)
/* 803A72A4 003A4204 90 0D AE F4 */ stw r0, macActiveMacroRoot@sda21(r13)
/* 803A72A8 003A4208 48 00 00 0C */ b lbl_803A72B4
lbl_803A72AC:
/* 803A72AC 003A420C 80 1C 00 3C */ lwz r0, 0x3c(r28)
/* 803A72B0 003A4210 90 03 00 3C */ stw r0, 0x3c(r3)
lbl_803A72B4:
/* 803A72B4 003A4214 80 7C 00 3C */ lwz r3, 0x3c(r28)
/* 803A72B8 003A4218 28 03 00 00 */ cmplwi r3, 0
/* 803A72BC 003A421C 41 82 00 0C */ beq lbl_803A72C8
/* 803A72C0 003A4220 80 1C 00 40 */ lwz r0, 0x40(r28)
/* 803A72C4 003A4224 90 03 00 40 */ stw r0, 0x40(r3)
lbl_803A72C8:
/* 803A72C8 003A4228 80 9C 00 98 */ lwz r4, 0x98(r28)
/* 803A72CC 003A422C 38 60 00 00 */ li r3, 0
/* 803A72D0 003A4230 80 BC 00 9C */ lwz r5, 0x9c(r28)
/* 803A72D4 003A4234 7C 80 1A 78 */ xor r0, r4, r3
/* 803A72D8 003A4238 7C A3 1A 78 */ xor r3, r5, r3
/* 803A72DC 003A423C 7C 60 03 79 */ or. r0, r3, r0
/* 803A72E0 003A4240 41 82 00 8C */ beq lbl_803A736C
/* 803A72E4 003A4244 38 00 FF FF */ li r0, -1
/* 803A72E8 003A4248 7C A3 02 78 */ xor r3, r5, r0
/* 803A72EC 003A424C 7C 80 02 78 */ xor r0, r4, r0
/* 803A72F0 003A4250 7C 60 03 79 */ or. r0, r3, r0
/* 803A72F4 003A4254 41 82 00 38 */ beq lbl_803A732C
/* 803A72F8 003A4258 80 7C 00 48 */ lwz r3, 0x48(r28)
/* 803A72FC 003A425C 28 03 00 00 */ cmplwi r3, 0
/* 803A7300 003A4260 40 82 00 10 */ bne lbl_803A7310
/* 803A7304 003A4264 80 1C 00 44 */ lwz r0, 0x44(r28)
/* 803A7308 003A4268 90 0D AE F0 */ stw r0, macTimeQueueRoot@sda21(r13)
/* 803A730C 003A426C 48 00 00 0C */ b lbl_803A7318
lbl_803A7310:
/* 803A7310 003A4270 80 1C 00 44 */ lwz r0, 0x44(r28)
/* 803A7314 003A4274 90 03 00 44 */ stw r0, 0x44(r3)
lbl_803A7318:
/* 803A7318 003A4278 80 7C 00 44 */ lwz r3, 0x44(r28)
/* 803A731C 003A427C 28 03 00 00 */ cmplwi r3, 0
/* 803A7320 003A4280 41 82 00 0C */ beq lbl_803A732C
/* 803A7324 003A4284 80 1C 00 48 */ lwz r0, 0x48(r28)
/* 803A7328 003A4288 90 03 00 48 */ stw r0, 0x48(r3)
lbl_803A732C:
/* 803A732C 003A428C 38 80 00 00 */ li r4, 0
/* 803A7330 003A4290 3C 60 FF FC */ lis r3, 0xFFFBFFFB@ha
/* 803A7334 003A4294 90 9C 00 9C */ stw r4, 0x9c(r28)
/* 803A7338 003A4298 38 03 FF FB */ addi r0, r3, 0xFFFBFFFB@l
/* 803A733C 003A429C 38 60 FF FF */ li r3, -1
/* 803A7340 003A42A0 90 9C 00 98 */ stw r4, 0x98(r28)
/* 803A7344 003A42A4 80 8D AE E8 */ lwz r4, macRealTime@sda21(r13)
/* 803A7348 003A42A8 80 AD AE EC */ lwz r5, macRealTime+4@sda21(r13)
/* 803A734C 003A42AC 90 BC 00 A4 */ stw r5, 0xa4(r28)
/* 803A7350 003A42B0 90 9C 00 A0 */ stw r4, 0xa0(r28)
/* 803A7354 003A42B4 80 BC 01 18 */ lwz r5, 0x118(r28)
/* 803A7358 003A42B8 80 9C 01 14 */ lwz r4, 0x114(r28)
/* 803A735C 003A42BC 7C A0 00 38 */ and r0, r5, r0
/* 803A7360 003A42C0 90 1C 01 18 */ stw r0, 0x118(r28)
/* 803A7364 003A42C4 7C 80 18 38 */ and r0, r4, r3
/* 803A7368 003A42C8 90 1C 01 14 */ stw r0, 0x114(r28)
lbl_803A736C:
/* 803A736C 003A42CC 38 00 00 02 */ li r0, 2
/* 803A7370 003A42D0 90 1C 00 4C */ stw r0, 0x4c(r28)
lbl_803A7374:
/* 803A7374 003A42D4 80 7C 01 18 */ lwz r3, 0x118(r28)
/* 803A7378 003A42D8 38 00 00 10 */ li r0, 0x10
/* 803A737C 003A42DC 80 BC 01 14 */ lwz r5, 0x114(r28)
/* 803A7380 003A42E0 38 80 00 00 */ li r4, 0
/* 803A7384 003A42E4 7C 60 00 38 */ and r0, r3, r0
/* 803A7388 003A42E8 7F A3 EB 78 */ mr r3, r29
/* 803A738C 003A42EC 60 00 00 02 */ ori r0, r0, 2
/* 803A7390 003A42F0 7C A4 20 38 */ and r4, r5, r4
/* 803A7394 003A42F4 90 1C 01 18 */ stw r0, 0x118(r28)
/* 803A7398 003A42F8 90 9C 01 14 */ stw r4, 0x114(r28)
/* 803A739C 003A42FC 48 00 BE 01 */ bl hwIsActive
/* 803A73A0 003A4300 28 03 00 00 */ cmplwi r3, 0
/* 803A73A4 003A4304 41 82 00 10 */ beq lbl_803A73B4
/* 803A73A8 003A4308 80 1C 01 18 */ lwz r0, 0x118(r28)
/* 803A73AC 003A430C 60 00 00 01 */ ori r0, r0, 1
/* 803A73B0 003A4310 90 1C 01 18 */ stw r0, 0x118(r28)
lbl_803A73B4:
/* 803A73B4 003A4314 38 00 00 00 */ li r0, 0
/* 803A73B8 003A4318 2C 1E 00 00 */ cmpwi r30, 0
/* 803A73BC 003A431C 90 1C 00 9C */ stw r0, 0x9c(r28)
/* 803A73C0 003A4320 90 1C 00 98 */ stw r0, 0x98(r28)
/* 803A73C4 003A4324 41 82 00 44 */ beq lbl_803A7408
/* 803A73C8 003A4328 38 00 00 01 */ li r0, 1
/* 803A73CC 003A432C 56 52 06 7E */ clrlwi r18, r18, 0x19
/* 803A73D0 003A4330 98 1C 01 1D */ stb r0, 0x11d(r28)
/* 803A73D4 003A4334 57 A3 06 3E */ clrlwi r3, r29, 0x18
/* 803A73D8 003A4338 38 80 00 FF */ li r4, 0xff
/* 803A73DC 003A433C 38 A0 00 01 */ li r5, 1
/* 803A73E0 003A4340 48 00 A4 3D */ bl inpResetMidiCtrl
/* 803A73E4 003A4344 57 A3 06 3E */ clrlwi r3, r29, 0x18
/* 803A73E8 003A4348 38 80 00 FF */ li r4, 0xff
/* 803A73EC 003A434C 48 00 A8 19 */ bl inpResetChannelDefaults
/* 803A73F0 003A4350 9B BC 02 0A */ stb r29, 0x20a(r28)
/* 803A73F4 003A4354 38 60 00 FF */ li r3, 0xff
/* 803A73F8 003A4358 38 00 00 00 */ li r0, 0
/* 803A73FC 003A435C 98 7C 02 0B */ stb r3, 0x20b(r28)
/* 803A7400 003A4360 98 1C 02 0C */ stb r0, 0x20c(r28)
/* 803A7404 003A4364 48 00 00 14 */ b lbl_803A7418
lbl_803A7408:
/* 803A7408 003A4368 98 1C 01 1D */ stb r0, 0x11d(r28)
/* 803A740C 003A436C 9A BC 02 0A */ stb r21, 0x20a(r28)
/* 803A7410 003A4370 9A DC 02 0B */ stb r22, 0x20b(r28)
/* 803A7414 003A4374 9A FC 02 0C */ stb r23, 0x20c(r28)
lbl_803A7418:
/* 803A7418 003A4378 B1 FC 01 02 */ sth r15, 0x102(r28)
/* 803A741C 003A437C 57 04 1B 78 */ rlwinm r4, r24, 3, 0xd, 0x1c
/* 803A7420 003A4380 7D 5F 22 14 */ add r10, r31, r4
/* 803A7424 003A4384 56 40 44 2E */ rlwinm r0, r18, 8, 0x10, 0x17
/* 803A7428 003A4388 B2 3C 01 00 */ sth r17, 0x100(r28)
/* 803A742C 003A438C 3C C0 75 30 */ lis r6, 0x7530
/* 803A7430 003A4390 38 A0 04 00 */ li r5, 0x400
/* 803A7434 003A4394 56 49 06 3E */ clrlwi r9, r18, 0x18
/* 803A7438 003A4398 90 DC 01 10 */ stw r6, 0x110(r28)
/* 803A743C 003A439C 7D C3 00 34 */ cntlzw r3, r14
/* 803A7440 003A43A0 54 66 DE 3E */ rlwinm r6, r3, 0x1b, 0x18, 0x1f
/* 803A7444 003A43A4 39 00 00 00 */ li r8, 0
/* 803A7448 003A43A8 B0 BC 01 0E */ sth r5, 0x10e(r28)
/* 803A744C 003A43AC 51 E0 80 1E */ rlwimi r0, r15, 0x10, 0, 0xf
/* 803A7450 003A43B0 7F A5 03 78 */ or r5, r29, r0
/* 803A7454 003A43B4 38 E0 FF FF */ li r7, -1
/* 803A7458 003A43B8 93 FC 00 34 */ stw r31, 0x34(r28)
/* 803A745C 003A43BC 7F 83 E3 78 */ mr r3, r28
/* 803A7460 003A43C0 88 01 00 73 */ lbz r0, 0x73(r1)
/* 803A7464 003A43C4 7E 04 83 78 */ mr r4, r16
/* 803A7468 003A43C8 91 5C 00 38 */ stw r10, 0x38(r28)
/* 803A746C 003A43CC 9A 5C 01 2F */ stb r18, 0x12f(r28)
/* 803A7470 003A43D0 B1 3C 01 2C */ sth r9, 0x12c(r28)
/* 803A7474 003A43D4 99 1C 01 2E */ stb r8, 0x12e(r28)
/* 803A7478 003A43D8 9A 7C 02 08 */ stb r19, 0x208(r28)
/* 803A747C 003A43DC 9A 9C 02 09 */ stb r20, 0x209(r28)
/* 803A7480 003A43E0 9B 3C 02 0D */ stb r25, 0x20d(r28)
/* 803A7484 003A43E4 99 1C 00 8C */ stb r8, 0x8c(r28)
/* 803A7488 003A43E8 99 1C 00 8D */ stb r8, 0x8d(r28)
/* 803A748C 003A43EC 90 FC 00 EC */ stw r7, 0xec(r28)
/* 803A7490 003A43F0 90 FC 00 F0 */ stw r7, 0xf0(r28)
/* 803A7494 003A43F4 90 FC 01 08 */ stw r7, 0x108(r28)
/* 803A7498 003A43F8 9B 7C 02 0E */ stb r27, 0x20e(r28)
/* 803A749C 003A43FC 98 1C 02 0F */ stb r0, 0x20f(r28)
/* 803A74A0 003A4400 98 DC 02 10 */ stb r6, 0x210(r28)
/* 803A74A4 003A4404 99 1C 03 EE */ stb r8, 0x3ee(r28)
/* 803A74A8 003A4408 99 1C 03 ED */ stb r8, 0x3ed(r28)
/* 803A74AC 003A440C 99 1C 03 EC */ stb r8, 0x3ec(r28)
/* 803A74B0 003A4410 90 BC 00 F4 */ stw r5, 0xf4(r28)
/* 803A74B4 003A4414 48 00 07 45 */ bl voiceSetPriority
/* 803A74B8 003A4418 7F 83 E3 78 */ mr r3, r28
/* 803A74BC 003A441C 7F 44 D3 78 */ mr r4, r26
/* 803A74C0 003A4420 48 00 05 E5 */ bl vidMakeNew
/* 803A74C4 003A4424 7C 6E 1B 78 */ mr r14, r3
/* 803A74C8 003A4428 3C 0E 00 01 */ addis r0, r14, 1
/* 803A74CC 003A442C 28 00 FF FF */ cmplwi r0, 0xffff
/* 803A74D0 003A4430 41 82 00 EC */ beq lbl_803A75BC
/* 803A74D4 003A4434 80 1C 00 4C */ lwz r0, 0x4c(r28)
/* 803A74D8 003A4438 2C 00 00 00 */ cmpwi r0, 0
/* 803A74DC 003A443C 41 82 00 D8 */ beq lbl_803A75B4
/* 803A74E0 003A4440 80 9C 00 98 */ lwz r4, 0x98(r28)
/* 803A74E4 003A4444 38 60 00 00 */ li r3, 0
/* 803A74E8 003A4448 80 BC 00 9C */ lwz r5, 0x9c(r28)
/* 803A74EC 003A444C 7C 80 1A 78 */ xor r0, r4, r3
/* 803A74F0 003A4450 7C A3 1A 78 */ xor r3, r5, r3
/* 803A74F4 003A4454 7C 60 03 79 */ or. r0, r3, r0
/* 803A74F8 003A4458 41 82 00 94 */ beq lbl_803A758C
/* 803A74FC 003A445C 38 00 FF FF */ li r0, -1
/* 803A7500 003A4460 7C A3 02 78 */ xor r3, r5, r0
/* 803A7504 003A4464 7C 80 02 78 */ xor r0, r4, r0
/* 803A7508 003A4468 7C 60 03 79 */ or. r0, r3, r0
/* 803A750C 003A446C 41 82 00 38 */ beq lbl_803A7544
/* 803A7510 003A4470 80 7C 00 48 */ lwz r3, 0x48(r28)
/* 803A7514 003A4474 28 03 00 00 */ cmplwi r3, 0
/* 803A7518 003A4478 40 82 00 10 */ bne lbl_803A7528
/* 803A751C 003A447C 80 1C 00 44 */ lwz r0, 0x44(r28)
/* 803A7520 003A4480 90 0D AE F0 */ stw r0, macTimeQueueRoot@sda21(r13)
/* 803A7524 003A4484 48 00 00 0C */ b lbl_803A7530
lbl_803A7528:
/* 803A7528 003A4488 80 1C 00 44 */ lwz r0, 0x44(r28)
/* 803A752C 003A448C 90 03 00 44 */ stw r0, 0x44(r3)
lbl_803A7530:
/* 803A7530 003A4490 80 7C 00 44 */ lwz r3, 0x44(r28)
/* 803A7534 003A4494 28 03 00 00 */ cmplwi r3, 0
/* 803A7538 003A4498 41 82 00 0C */ beq lbl_803A7544
/* 803A753C 003A449C 80 1C 00 48 */ lwz r0, 0x48(r28)
/* 803A7540 003A44A0 90 03 00 48 */ stw r0, 0x48(r3)
lbl_803A7544:
/* 803A7544 003A44A4 7F 83 E3 78 */ mr r3, r28
/* 803A7548 003A44A8 4B FF 35 55 */ bl synthForceLowPrecisionUpdate
/* 803A754C 003A44AC 38 80 00 00 */ li r4, 0
/* 803A7550 003A44B0 3C 60 FF FC */ lis r3, 0xFFFBFFFB@ha
/* 803A7554 003A44B4 90 9C 00 9C */ stw r4, 0x9c(r28)
/* 803A7558 003A44B8 38 03 FF FB */ addi r0, r3, 0xFFFBFFFB@l
/* 803A755C 003A44BC 38 60 FF FF */ li r3, -1
/* 803A7560 003A44C0 90 9C 00 98 */ stw r4, 0x98(r28)
/* 803A7564 003A44C4 80 8D AE E8 */ lwz r4, macRealTime@sda21(r13)
/* 803A7568 003A44C8 80 AD AE EC */ lwz r5, macRealTime+4@sda21(r13)
/* 803A756C 003A44CC 90 BC 00 A4 */ stw r5, 0xa4(r28)
/* 803A7570 003A44D0 90 9C 00 A0 */ stw r4, 0xa0(r28)
/* 803A7574 003A44D4 80 BC 01 18 */ lwz r5, 0x118(r28)
/* 803A7578 003A44D8 80 9C 01 14 */ lwz r4, 0x114(r28)
/* 803A757C 003A44DC 7C A0 00 38 */ and r0, r5, r0
/* 803A7580 003A44E0 90 1C 01 18 */ stw r0, 0x118(r28)
/* 803A7584 003A44E4 7C 80 18 38 */ and r0, r4, r3
/* 803A7588 003A44E8 90 1C 01 14 */ stw r0, 0x114(r28)
lbl_803A758C:
/* 803A758C 003A44EC 80 0D AE F4 */ lwz r0, macActiveMacroRoot@sda21(r13)
/* 803A7590 003A44F0 28 00 00 00 */ cmplwi r0, 0
/* 803A7594 003A44F4 90 1C 00 3C */ stw r0, 0x3c(r28)
/* 803A7598 003A44F8 41 82 00 0C */ beq lbl_803A75A4
/* 803A759C 003A44FC 80 6D AE F4 */ lwz r3, macActiveMacroRoot@sda21(r13)
/* 803A75A0 003A4500 93 83 00 40 */ stw r28, 0x40(r3)
lbl_803A75A4:
/* 803A75A4 003A4504 38 00 00 00 */ li r0, 0
/* 803A75A8 003A4508 90 1C 00 40 */ stw r0, 0x40(r28)
/* 803A75AC 003A450C 93 8D AE F4 */ stw r28, macActiveMacroRoot@sda21(r13)
/* 803A75B0 003A4510 90 1C 00 4C */ stw r0, 0x4c(r28)
lbl_803A75B4:
/* 803A75B4 003A4514 7D C3 73 78 */ mr r3, r14
/* 803A75B8 003A4518 48 00 00 28 */ b lbl_803A75E0
lbl_803A75BC:
/* 803A75BC 003A451C 7F A3 EB 78 */ mr r3, r29
/* 803A75C0 003A4520 48 00 BB DD */ bl hwIsActive
/* 803A75C4 003A4524 28 03 00 00 */ cmplwi r3, 0
/* 803A75C8 003A4528 41 82 00 0C */ beq lbl_803A75D4
/* 803A75CC 003A452C 7F A3 EB 78 */ mr r3, r29
/* 803A75D0 003A4530 48 00 BD BD */ bl hwBreak
lbl_803A75D4:
/* 803A75D4 003A4534 7F 83 E3 78 */ mr r3, r28
/* 803A75D8 003A4538 48 00 0C CD */ bl voiceFree
lbl_803A75DC:
/* 803A75DC 003A453C 38 60 FF FF */ li r3, -1
lbl_803A75E0:
/* 803A75E0 003A4540 39 61 00 50 */ addi r11, r1, 0x50
/* 803A75E4 003A4544 4B FE 24 B1 */ bl __restore_gpr
/* 803A75E8 003A4548 80 01 00 54 */ lwz r0, 0x54(r1)
/* 803A75EC 003A454C 7C 08 03 A6 */ mtlr r0
/* 803A75F0 003A4550 38 21 00 50 */ addi r1, r1, 0x50
/* 803A75F4 003A4554 4E 80 00 20 */ blr
.global macInit
macInit:
/* 803A75F8 003A4558 39 00 00 00 */ li r8, 0
/* 803A75FC 003A455C 3C 60 80 55 */ lis r3, synthInfo@ha
/* 803A7600 003A4560 91 0D AE F4 */ stw r8, macActiveMacroRoot@sda21(r13)
/* 803A7604 003A4564 7D 09 43 78 */ mr r9, r8
/* 803A7608 003A4568 38 E3 00 50 */ addi r7, r3, synthInfo@l
/* 803A760C 003A456C 39 40 00 00 */ li r10, 0
/* 803A7610 003A4570 91 0D AE F0 */ stw r8, macTimeQueueRoot@sda21(r13)
/* 803A7614 003A4574 38 A0 00 02 */ li r5, 2
/* 803A7618 003A4578 91 0D AE EC */ stw r8, macRealTime+4@sda21(r13)
/* 803A761C 003A457C 91 0D AE E8 */ stw r8, macRealTime@sda21(r13)
/* 803A7620 003A4580 48 00 00 30 */ b lbl_803A7650
lbl_803A7624:
/* 803A7624 003A4584 80 CD AE 78 */ lwz r6, synthVoice@sda21(r13)
/* 803A7628 003A4588 38 89 00 34 */ addi r4, r9, 0x34
/* 803A762C 003A458C 38 69 00 4C */ addi r3, r9, 0x4c
/* 803A7630 003A4590 38 09 00 AA */ addi r0, r9, 0xaa
/* 803A7634 003A4594 7D 06 21 2E */ stwx r8, r6, r4
/* 803A7638 003A4598 39 29 04 04 */ addi r9, r9, 0x404
/* 803A763C 003A459C 39 4A 00 01 */ addi r10, r10, 1
/* 803A7640 003A45A0 80 8D AE 78 */ lwz r4, synthVoice@sda21(r13)
/* 803A7644 003A45A4 7C A4 19 2E */ stwx r5, r4, r3
/* 803A7648 003A45A8 80 6D AE 78 */ lwz r3, synthVoice@sda21(r13)
/* 803A764C 003A45AC 7D 03 03 2E */ sthx r8, r3, r0
lbl_803A7650:
/* 803A7650 003A45B0 88 07 02 10 */ lbz r0, 0x210(r7)
/* 803A7654 003A45B4 7C 0A 00 40 */ cmplw r10, r0
/* 803A7658 003A45B8 41 80 FF CC */ blt lbl_803A7624
/* 803A765C 003A45BC 4E 80 00 20 */ blr