prime/asm/musyx/runtime/synthmacros.s

5846 lines
274 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .bss
.balign 8
.global "newsmp$473"
"newsmp$473":
.skip 0x20
.section .sbss
.balign 8
.obj "cstep$1643", local
.skip 0x8
.endobj "cstep$1643"
.obj macRealTime, local
.skip 0x8
.endobj macRealTime
.obj macTimeQueueRoot, local
.skip 0x4
.endobj macTimeQueueRoot
.obj macActiveMacroRoot, local
.skip 0x4
.endobj macActiveMacroRoot
.obj DebugMacroSteps, local
.skip 0x1
.endobj DebugMacroSteps
.section .data, "wa"
.balign 8
"kf$395":
# ROM: 0x3EFFD8
.4byte 0x100010F3
.4byte 0x11F51307
.4byte 0x1428155B
.4byte 0x16A017F9
.4byte 0x19661AE8
.4byte 0x1C821E34
.4byte 0x20000000
midi2TimeTab:
# ROM: 0x3EFFF4
.4byte 0
.4byte 0x0000000A
.4byte 0x00000014
.4byte 0x0000001E
.4byte 0x00000028
.4byte 0x00000032
.4byte 0x0000003C
.4byte 0x00000046
.4byte 0x00000050
.4byte 0x0000005A
.4byte 0x00000064
.4byte 0x0000006E
.4byte 0x0000006E
.4byte 0x00000078
.4byte 0x00000082
.4byte 0x0000008C
.4byte 0x00000096
.4byte 0x000000A0
.4byte 0x000000AA
.4byte 0x000000BE
.4byte 0x000000C8
.4byte 0x000000DC
.4byte 0x000000E6
.4byte 0x000000FA
.4byte 0x0000010E
.4byte 0x00000122
.4byte 0x00000136
.4byte 0x0000014A
.4byte 0x0000015E
.4byte 0x0000017C
.4byte 0x0000019A
.4byte 0x000001B8
.4byte 0x000001D6
.4byte 0x000001F4
.4byte 0x0000021C
.4byte 0x00000244
.4byte 0x0000026C
.4byte 0x00000294
.4byte 0x000002C6
.4byte 0x000002F8
.4byte 0x00000334
.4byte 0x00000370
.4byte 0x000003AC
.4byte 0x000003E8
.4byte 0x000003E8
.4byte 0x0000044C
.4byte 0x000004B0
.4byte 0x00000514
.4byte 0x00000578
.4byte 0x000005DC
.4byte 0x00000640
.4byte 0x000006A4
.4byte 0x00000708
.4byte 0x000007D0
.4byte 0x00000834
.4byte 0x000008FC
.4byte 0x00000960
.4byte 0x00000A28
.4byte 0x00000AF0
.4byte 0x00000BB8
.4byte 0x00000C80
.4byte 0x00000DAC
.4byte 0x00000E74
.4byte 0x00000FA0
.4byte 0x000010CC
.4byte 0x000011F8
.4byte 0x00001324
.4byte 0x000014B4
.4byte 0x00001644
.4byte 0x000017D4
.4byte 0x00001964
.4byte 0x00001B58
.4byte 0x00001D4C
.4byte 0x00001FA4
.4byte 0x00002198
.4byte 0x00002454
.4byte 0x000026AC
.4byte 0x00002710
.4byte 0x00002AF8
.4byte 0x00002EE0
.4byte 0x000032C8
.4byte 0x000036B0
.4byte 0x00003A98
.4byte 0x00003E80
.4byte 0x00004268
.4byte 0x00004650
.4byte 0x00004A38
.4byte 0x00005208
.4byte 0x000055F0
.4byte 0x00005DC0
.4byte 0x00006590
.4byte 0x00006D60
.4byte 0x00007530
.4byte 0x00007D00
.4byte 0x000084D0
.4byte 0x00009088
.4byte 0x00009858
.4byte 0x0000A410
.4byte 0x0000AFC8
.4byte 0x0000BF68
.4byte 0x0000C350
.4byte 0x0000D6D8
.4byte 0x0000EA60
.4byte 0x0000FDE8
.4byte 0x00011170
.4byte 0x000124F8
.4byte 0x00013880
.4byte 0x00014C08
.4byte 0x00015F90
.4byte 0x00017318
.4byte 0x000186A0
.4byte 0x00019A28
.4byte 0x0001ADB0
.4byte 0x0001C138
.4byte 0x0001D4C0
.4byte 0x0001E848
.4byte 0x0001FBD0
.4byte 0x00020F58
.4byte 0x000222E0
.4byte 0x00023668
.4byte 0x000249F0
.4byte 0x00025D78
.4byte 0x00027100
.4byte 0x00028488
.4byte 0x00029810
.4byte 0x0002AB98
.4byte 0x0002BF20
.4byte 0
.4byte 0
"mask$603":
# ROM: 0x3F01F8
.4byte 0x00000001
.4byte 0
.4byte 0x00000002
.4byte 0
.4byte 0x00000004
.4byte 0
.4byte 0x00000008
.4byte 0
"dirty$604":
# ROM: 0x3F0218
.4byte 0x80000001
.4byte 0x80000002
.4byte 0x80000004
.4byte 0x80000008
"mask$608":
# ROM: 0x3F0228
.4byte 0x00000010
.4byte 0
.4byte 0x00000020
.4byte 0
.4byte 0x00000040
.4byte 0
.4byte 0x00000080
.4byte 0
"dirty$609":
# ROM: 0x3F0248
.4byte 0x80000010
.4byte 0x80000020
.4byte 0x80000040
.4byte 0x80000080
"@848":
# ROM: 0x3F0258
.4byte lbl_803A5E98
.4byte lbl_803A5EB0
.4byte lbl_803A5EC8
.4byte lbl_803A5F00
.4byte lbl_803A5F3C
.4byte lbl_803A5F50
.4byte lbl_803A5F60
.4byte lbl_803A5FA8
.4byte lbl_803A5FC4
.4byte lbl_803A5FD4
.4byte lbl_803A6050
.4byte lbl_803A60A0
.4byte lbl_803A60F0
.4byte lbl_803A6100
.4byte lbl_803A6110
.4byte lbl_803A6120
.4byte lbl_803A6130
.4byte lbl_803A6140
.4byte lbl_803A6150
.4byte lbl_803A6168
.4byte lbl_803A61A8
.4byte lbl_803A61B8
.4byte lbl_803A61C8
.4byte lbl_803A61D8
.4byte lbl_803A61E8
.4byte lbl_803A61FC
.4byte lbl_803A6250
.4byte lbl_803A62D0
.4byte lbl_803A62E0
.4byte lbl_803A62F0
.4byte lbl_803A6358
.4byte lbl_803A63C0
.4byte lbl_803A63F8
.4byte lbl_803A6408
.4byte lbl_803A6464
.4byte lbl_803A64E8
.4byte lbl_803A6504
.4byte lbl_803A6558
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A656C
.4byte lbl_803A65E4
.4byte lbl_803A6628
.4byte lbl_803A6638
.4byte lbl_803A66A8
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A66B8
.4byte lbl_803A6724
.4byte lbl_803A674C
.4byte lbl_803A6764
.4byte lbl_803A677C
.4byte lbl_803A6794
.4byte lbl_803A67A8
.4byte lbl_803A67B8
.4byte lbl_803A67F8
.4byte lbl_803A6824
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6878
.4byte lbl_803A6888
.4byte lbl_803A6898
.4byte lbl_803A68A8
.4byte lbl_803A68B8
.4byte lbl_803A68C8
.4byte lbl_803A68D8
.4byte lbl_803A68E8
.4byte lbl_803A68F8
.4byte lbl_803A6908
.4byte lbl_803A6918
.4byte lbl_803A6928
.4byte lbl_803A6938
.4byte lbl_803A6948
.4byte lbl_803A6958
.4byte lbl_803A6B04
.4byte lbl_803A6968
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A69B8
.4byte lbl_803A69E4
.4byte lbl_803A69F4
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6A28
.4byte lbl_803A6A3C
.4byte lbl_803A6A50
.4byte lbl_803A6A64
.4byte lbl_803A6A78
.4byte lbl_803A6A8C
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6B04
.4byte lbl_803A6AE0
.4byte lbl_803A6AF4
.section .sdata2
.balign 8
.global lbl_805AF288
lbl_805AF288:
# ROM: 0x3FBB28
.4byte 0x45800000
.global lbl_805AF28C
lbl_805AF28C:
# ROM: 0x3FBB2C
.float 1.1920929E-7
.global lbl_805AF290
lbl_805AF290:
# ROM: 0x3FBB30
.4byte 0x3C000000
.4byte 0
.global lbl_805AF298
lbl_805AF298:
# ROM: 0x3FBB38
.4byte 0x43300000
.4byte 0
.global lbl_805AF2A0
lbl_805AF2A0:
# ROM: 0x3FBB40
.double 4.503601774854144E15
.global lbl_805AF2A8
lbl_805AF2A8:
# ROM: 0x3FBB48
.4byte 0x447FC000
.global lbl_805AF2AC
lbl_805AF2AC:
# ROM: 0x3FBB4C
.float 1.0
.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 mcmdPlayMacro
mcmdPlayMacro:
/* 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 macStart
/* 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 mcmdStartSample
mcmdStartSample:
/* 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 dataGetSample
/* 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 synthKeyStateUpdate
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, "kf$395"@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, "kf$395"@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, "kf$395"@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, "kf$395"@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, "kf$395"@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, "kf$395"@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, "kf$395"@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, "kf$395"@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, dspDLSVolTab@ha
/* 803A36F0 003A0650 38 E4 3D A4 */ addi r7, r4, dspDLSVolTab@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, dspDLSVolTab@ha
/* 803A38E8 003A0848 54 66 DD 7A */ rlwinm r6, r3, 0x1b, 0x15, 0x1d
/* 803A38EC 003A084C 38 65 3D A4 */ addi r3, r5, dspDLSVolTab@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, midi2TimeTab@ha
/* 803A390C 003A086C 54 60 DD 7A */ rlwinm r0, r3, 0x1b, 0x15, 0x1d
/* 803A3910 003A0870 38 64 2F F4 */ addi r3, r4, midi2TimeTab@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, midi2TimeTab@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, midi2TimeTab@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, dspScale2IndexTab@ha
/* 803A3954 003A08B4 38 84 39 A4 */ addi r4, r4, dspScale2IndexTab@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, midi2TimeTab@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, midi2TimeTab@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, dspScale2IndexTab@ha
/* 803A3C14 003A0B74 38 7F 01 DC */ addi r3, r31, 0x1dc
/* 803A3C18 003A0B78 38 84 39 A4 */ addi r4, r4, dspScale2IndexTab@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 mcmdSetPanning
mcmdSetPanning:
/* 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 mcmdSetSurroundPanning
mcmdSetSurroundPanning:
/* 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 mcmdVolumeSelect
mcmdVolumeSelect:
/* 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 mcmdPanningSelect
mcmdPanningSelect:
/* 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 mcmdPitchWheelSelect
mcmdPitchWheelSelect:
/* 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 mcmdModWheelSelect
mcmdModWheelSelect:
/* 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 mcmdPedalSelect
mcmdPedalSelect:
/* 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 mcmdPortamentoSelect
mcmdPortamentoSelect:
/* 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 mcmdReverbSelect
mcmdReverbSelect:
/* 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 mcmdPreAuxASelect
mcmdPreAuxASelect:
/* 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 mcmdPreAuxBSelect
mcmdPreAuxBSelect:
/* 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 mcmdPostAuxBSelect
mcmdPostAuxBSelect:
/* 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 mcmdSurroundPanningSelect
mcmdSurroundPanningSelect:
/* 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 mcmdDopplerSelect
mcmdDopplerSelect:
/* 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 mcmdTremoloSelect
mcmdTremoloSelect:
/* 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 mcmdAuxAFXSelect
mcmdAuxAFXSelect:
/* 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, "mask$603"@ha
/* 803A5008 003A1F68 3D 60 80 3F */ lis r11, "dirty$604"@ha
/* 803A500C 003A1F6C 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A5010 003A1F70 38 A5 31 F8 */ addi r5, r5, "mask$603"@l
/* 803A5014 003A1F74 39 6B 32 18 */ addi r11, r11, "dirty$604"@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 mcmdAuxBFXSelect
mcmdAuxBFXSelect:
/* 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, "mask$608"@ha
/* 803A5184 003A20E4 3D 60 80 3F */ lis r11, "dirty$609"@ha
/* 803A5188 003A20E8 90 01 00 24 */ stw r0, 0x24(r1)
/* 803A518C 003A20EC 38 A5 32 28 */ addi r5, r5, "mask$608"@l
/* 803A5190 003A20F0 39 6B 32 48 */ addi r11, r11, "dirty$609"@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 macHandleActive
macHandleActive:
/* 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 inpInit
/* 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 inpGetChannelDefaults
/* 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, "@848"@ha
/* 803A5E84 003A2DE4 54 00 10 3A */ slwi r0, r0, 2
/* 803A5E88 003A2DE8 38 63 32 58 */ addi r3, r3, "@848"@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
lbl_803A5E98:
/* 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
lbl_803A5EB0:
/* 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
lbl_803A5EC8:
/* 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
lbl_803A5F00:
/* 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
lbl_803A5F3C:
/* 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
lbl_803A5F50:
/* 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
lbl_803A5F60:
/* 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
lbl_803A5FA8:
/* 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
lbl_803A5FC4:
/* 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 mcmdPlayMacro
/* 803A5FD0 003A2F30 48 00 0B 34 */ b lbl_803A6B04
lbl_803A5FD4:
/* 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
lbl_803A6050:
/* 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 inpGetModulation
/* 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
lbl_803A60A0:
/* 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
lbl_803A60F0:
/* 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
lbl_803A6100:
/* 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
lbl_803A6110:
/* 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 mcmdSetPanning
/* 803A611C 003A307C 48 00 09 E8 */ b lbl_803A6B04
lbl_803A6120:
/* 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
lbl_803A6130:
/* 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 mcmdStartSample
/* 803A613C 003A309C 48 00 09 C8 */ b lbl_803A6B04
lbl_803A6140:
/* 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
lbl_803A6150:
/* 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 synthKeyStateUpdate
/* 803A6164 003A30C4 48 00 09 A0 */ b lbl_803A6B04
lbl_803A6168:
/* 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
lbl_803A61A8:
/* 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
lbl_803A61B8:
/* 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 mcmdSetSurroundPanning
/* 803A61C4 003A3124 48 00 09 40 */ b lbl_803A6B04
lbl_803A61C8:
/* 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
lbl_803A61D8:
/* 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
lbl_803A61E8:
/* 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
lbl_803A61FC:
/* 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
lbl_803A6250:
/* 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
lbl_803A62D0:
/* 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
lbl_803A62E0:
/* 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
lbl_803A62F0:
/* 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
lbl_803A6358:
/* 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
lbl_803A63C0:
/* 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
lbl_803A63F8:
/* 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
lbl_803A6408:
/* 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
lbl_803A6464:
/* 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
lbl_803A64E8:
/* 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
lbl_803A6504:
/* 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
lbl_803A6558:
/* 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
lbl_803A656C:
/* 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
lbl_803A65E4:
/* 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
lbl_803A6628:
/* 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
lbl_803A6638:
/* 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
lbl_803A66A8:
/* 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
lbl_803A66B8:
/* 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
lbl_803A6724:
/* 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
lbl_803A674C:
/* 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
lbl_803A6764:
/* 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
lbl_803A677C:
/* 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
lbl_803A6794:
/* 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
lbl_803A67A8:
/* 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
lbl_803A67B8:
/* 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
lbl_803A67F8:
/* 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
lbl_803A6824:
/* 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
lbl_803A6878:
/* 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 mcmdVolumeSelect
/* 803A6884 003A37E4 48 00 02 80 */ b lbl_803A6B04
lbl_803A6888:
/* 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 mcmdPanningSelect
/* 803A6894 003A37F4 48 00 02 70 */ b lbl_803A6B04
lbl_803A6898:
/* 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 mcmdPitchWheelSelect
/* 803A68A4 003A3804 48 00 02 60 */ b lbl_803A6B04
lbl_803A68A8:
/* 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 mcmdModWheelSelect
/* 803A68B4 003A3814 48 00 02 50 */ b lbl_803A6B04
lbl_803A68B8:
/* 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 mcmdPedalSelect
/* 803A68C4 003A3824 48 00 02 40 */ b lbl_803A6B04
lbl_803A68C8:
/* 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 mcmdPortamentoSelect
/* 803A68D4 003A3834 48 00 02 30 */ b lbl_803A6B04
lbl_803A68D8:
/* 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 mcmdReverbSelect
/* 803A68E4 003A3844 48 00 02 20 */ b lbl_803A6B04
lbl_803A68E8:
/* 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 mcmdSurroundPanningSelect
/* 803A68F4 003A3854 48 00 02 10 */ b lbl_803A6B04
lbl_803A68F8:
/* 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 mcmdDopplerSelect
/* 803A6904 003A3864 48 00 02 00 */ b lbl_803A6B04
lbl_803A6908:
/* 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 mcmdTremoloSelect
/* 803A6914 003A3874 48 00 01 F0 */ b lbl_803A6B04
lbl_803A6918:
/* 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 mcmdPreAuxASelect
/* 803A6924 003A3884 48 00 01 E0 */ b lbl_803A6B04
lbl_803A6928:
/* 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 mcmdPreAuxBSelect
/* 803A6934 003A3894 48 00 01 D0 */ b lbl_803A6B04
lbl_803A6938:
/* 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 mcmdPostAuxBSelect
/* 803A6944 003A38A4 48 00 01 C0 */ b lbl_803A6B04
lbl_803A6948:
/* 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 mcmdAuxAFXSelect
/* 803A6954 003A38B4 48 00 01 B0 */ b lbl_803A6B04
lbl_803A6958:
/* 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 mcmdAuxBFXSelect
/* 803A6964 003A38C4 48 00 01 A0 */ b lbl_803A6B04
lbl_803A6968:
/* 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
lbl_803A69B8:
/* 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
lbl_803A69E4:
/* 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
lbl_803A69F4:
/* 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 hwSetSRCType
/* 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 hwSetPolyPhaseFilter
/* 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
lbl_803A6A28:
/* 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
lbl_803A6A3C:
/* 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
lbl_803A6A50:
/* 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
lbl_803A6A64:
/* 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
lbl_803A6A78:
/* 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
lbl_803A6A8C:
/* 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
lbl_803A6AE0:
/* 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
lbl_803A6AF4:
/* 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 macHandle
macHandle:
/* 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 macHandleActive
/* 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 macStart
macStart:
/* 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 _savegpr_14
/* 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 voiceAllocate
/* 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 _restgpr_14
/* 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