.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global GetInstance__Q44nw4r3snd6detail12VoiceManagerFv GetInstance__Q44nw4r3snd6detail12VoiceManagerFv: /* 80382900 0037E560 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80382904 0037E564 7C 08 02 A6 */ mflr r0 /* 80382908 0037E568 90 01 00 14 */ stw r0, 0x14(r1) /* 8038290C 0037E56C 88 0D B2 98 */ lbz r0, lbl_80640558-_SDA_BASE_(r13) /* 80382910 0037E570 7C 00 07 75 */ extsb. r0, r0 /* 80382914 0037E574 40 82 00 60 */ bne lbl_80382974 /* 80382918 0037E578 3C C0 80 64 */ lis r6, lbl_8063CDEC@ha /* 8038291C 0037E57C 38 00 00 00 */ li r0, 0 /* 80382920 0037E580 38 66 CD EC */ addi r3, r6, lbl_8063CDEC@l /* 80382924 0037E584 3C 80 80 38 */ lis r4, __dt__Q44nw4r3snd6detail12VoiceManagerFv@ha /* 80382928 0037E588 90 03 00 08 */ stw r0, 8(r3) /* 8038292C 0037E58C 39 03 00 08 */ addi r8, r3, 8 /* 80382930 0037E590 38 E3 00 14 */ addi r7, r3, 0x14 /* 80382934 0037E594 3C A0 80 64 */ lis r5, lbl_8063CDE0@ha /* 80382938 0037E598 90 03 00 0C */ stw r0, 0xc(r3) /* 8038293C 0037E59C 38 84 29 8C */ addi r4, r4, __dt__Q44nw4r3snd6detail12VoiceManagerFv@l /* 80382940 0037E5A0 38 A5 CD E0 */ addi r5, r5, lbl_8063CDE0@l /* 80382944 0037E5A4 90 03 00 14 */ stw r0, 0x14(r3) /* 80382948 0037E5A8 90 03 00 18 */ stw r0, 0x18(r3) /* 8038294C 0037E5AC 98 06 CD EC */ stb r0, -0x3214(r6) /* 80382950 0037E5B0 90 03 00 04 */ stw r0, 4(r3) /* 80382954 0037E5B4 91 03 00 08 */ stw r8, 8(r3) /* 80382958 0037E5B8 91 03 00 0C */ stw r8, 0xc(r3) /* 8038295C 0037E5BC 90 03 00 10 */ stw r0, 0x10(r3) /* 80382960 0037E5C0 90 E3 00 14 */ stw r7, 0x14(r3) /* 80382964 0037E5C4 90 E3 00 18 */ stw r7, 0x18(r3) /* 80382968 0037E5C8 4B E4 42 E1 */ bl __register_global_object_tmp /* 8038296C 0037E5CC 38 00 00 01 */ li r0, 1 /* 80382970 0037E5D0 98 0D B2 98 */ stb r0, lbl_80640558-_SDA_BASE_(r13) lbl_80382974: /* 80382974 0037E5D4 80 01 00 14 */ lwz r0, 0x14(r1) /* 80382978 0037E5D8 3C 60 80 64 */ lis r3, lbl_8063CDEC@ha /* 8038297C 0037E5DC 38 63 CD EC */ addi r3, r3, lbl_8063CDEC@l /* 80382980 0037E5E0 7C 08 03 A6 */ mtlr r0 /* 80382984 0037E5E4 38 21 00 10 */ addi r1, r1, 0x10 /* 80382988 0037E5E8 4E 80 00 20 */ blr .global __dt__Q44nw4r3snd6detail12VoiceManagerFv __dt__Q44nw4r3snd6detail12VoiceManagerFv: /* 8038298C 0037E5EC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80382990 0037E5F0 7C 08 02 A6 */ mflr r0 /* 80382994 0037E5F4 2C 03 00 00 */ cmpwi r3, 0 /* 80382998 0037E5F8 90 01 00 14 */ stw r0, 0x14(r1) /* 8038299C 0037E5FC 93 E1 00 0C */ stw r31, 0xc(r1) /* 803829A0 0037E600 7C 9F 23 78 */ mr r31, r4 /* 803829A4 0037E604 93 C1 00 08 */ stw r30, 8(r1) /* 803829A8 0037E608 7C 7E 1B 78 */ mr r30, r3 /* 803829AC 0037E60C 41 82 00 34 */ beq lbl_803829E0 /* 803829B0 0037E610 34 63 00 10 */ addic. r3, r3, 0x10 /* 803829B4 0037E614 41 82 00 0C */ beq lbl_803829C0 /* 803829B8 0037E618 38 80 00 00 */ li r4, 0 /* 803829BC 0037E61C 4B FE 01 7D */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv lbl_803829C0: /* 803829C0 0037E620 34 7E 00 04 */ addic. r3, r30, 4 /* 803829C4 0037E624 41 82 00 0C */ beq lbl_803829D0 /* 803829C8 0037E628 38 80 00 00 */ li r4, 0 /* 803829CC 0037E62C 4B FE 01 6D */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv lbl_803829D0: /* 803829D0 0037E630 2C 1F 00 00 */ cmpwi r31, 0 /* 803829D4 0037E634 40 81 00 0C */ ble lbl_803829E0 /* 803829D8 0037E638 7F C3 F3 78 */ mr r3, r30 /* 803829DC 0037E63C 4B E5 80 DD */ bl __dl__FPv lbl_803829E0: /* 803829E0 0037E640 7F C3 F3 78 */ mr r3, r30 /* 803829E4 0037E644 83 E1 00 0C */ lwz r31, 0xc(r1) /* 803829E8 0037E648 83 C1 00 08 */ lwz r30, 8(r1) /* 803829EC 0037E64C 80 01 00 14 */ lwz r0, 0x14(r1) /* 803829F0 0037E650 7C 08 03 A6 */ mtlr r0 /* 803829F4 0037E654 38 21 00 10 */ addi r1, r1, 0x10 /* 803829F8 0037E658 4E 80 00 20 */ blr .global GetRequiredMemSize__Q44nw4r3snd6detail12VoiceManagerFv GetRequiredMemSize__Q44nw4r3snd6detail12VoiceManagerFv: /* 803829FC 0037E65C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80382A00 0037E660 7C 08 02 A6 */ mflr r0 /* 80382A04 0037E664 90 01 00 14 */ stw r0, 0x14(r1) /* 80382A08 0037E668 4B F0 F9 15 */ bl AXGetMaxVoices /* 80382A0C 0037E66C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80382A10 0037E670 1C 63 01 2C */ mulli r3, r3, 0x12c /* 80382A14 0037E674 7C 08 03 A6 */ mtlr r0 /* 80382A18 0037E678 38 21 00 10 */ addi r1, r1, 0x10 /* 80382A1C 0037E67C 4E 80 00 20 */ blr .global Setup__Q44nw4r3snd6detail12VoiceManagerFPvUl Setup__Q44nw4r3snd6detail12VoiceManagerFPvUl: /* 80382A20 0037E680 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80382A24 0037E684 7C 08 02 A6 */ mflr r0 /* 80382A28 0037E688 90 01 00 34 */ stw r0, 0x34(r1) /* 80382A2C 0037E68C 39 61 00 30 */ addi r11, r1, 0x30 /* 80382A30 0037E690 4B E4 46 F9 */ bl _savegpr_27 /* 80382A34 0037E694 88 03 00 00 */ lbz r0, 0(r3) /* 80382A38 0037E698 7C 7B 1B 78 */ mr r27, r3 /* 80382A3C 0037E69C 2C 00 00 00 */ cmpwi r0, 0 /* 80382A40 0037E6A0 40 82 00 6C */ bne lbl_80382AAC /* 80382A44 0037E6A4 3C C0 1B 4F */ lis r6, 0x1B4E81B5@ha /* 80382A48 0037E6A8 7C 9D 23 78 */ mr r29, r4 /* 80382A4C 0037E6AC 38 06 81 B5 */ addi r0, r6, 0x1B4E81B5@l /* 80382A50 0037E6B0 3B 80 00 00 */ li r28, 0 /* 80382A54 0037E6B4 7C 00 28 16 */ mulhwu r0, r0, r5 /* 80382A58 0037E6B8 54 1E D9 7F */ rlwinm. r30, r0, 0x1b, 5, 0x1f /* 80382A5C 0037E6BC 41 82 00 48 */ beq lbl_80382AA4 /* 80382A60 0037E6C0 3B E3 00 14 */ addi r31, r3, 0x14 /* 80382A64 0037E6C4 48 00 00 38 */ b lbl_80382A9C lbl_80382A68: /* 80382A68 0037E6C8 2C 1D 00 00 */ cmpwi r29, 0 /* 80382A6C 0037E6CC 7F A5 EB 78 */ mr r5, r29 /* 80382A70 0037E6D0 41 82 00 10 */ beq lbl_80382A80 /* 80382A74 0037E6D4 7F A3 EB 78 */ mr r3, r29 /* 80382A78 0037E6D8 4B FF D7 55 */ bl __ct__Q44nw4r3snd6detail5VoiceFv /* 80382A7C 0037E6DC 7C 65 1B 78 */ mr r5, r3 lbl_80382A80: /* 80382A80 0037E6E0 93 E1 00 08 */ stw r31, 8(r1) /* 80382A84 0037E6E4 38 7B 00 10 */ addi r3, r27, 0x10 /* 80382A88 0037E6E8 38 81 00 08 */ addi r4, r1, 8 /* 80382A8C 0037E6EC 38 A5 01 24 */ addi r5, r5, 0x124 /* 80382A90 0037E6F0 4B FE 01 B9 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode /* 80382A94 0037E6F4 3B BD 01 2C */ addi r29, r29, 0x12c /* 80382A98 0037E6F8 3B 9C 00 01 */ addi r28, r28, 1 lbl_80382A9C: /* 80382A9C 0037E6FC 7C 1C F0 40 */ cmplw r28, r30 /* 80382AA0 0037E700 41 80 FF C8 */ blt lbl_80382A68 lbl_80382AA4: /* 80382AA4 0037E704 38 00 00 01 */ li r0, 1 /* 80382AA8 0037E708 98 1B 00 00 */ stb r0, 0(r27) lbl_80382AAC: /* 80382AAC 0037E70C 39 61 00 30 */ addi r11, r1, 0x30 /* 80382AB0 0037E710 4B E4 46 C5 */ bl _restgpr_27 /* 80382AB4 0037E714 80 01 00 34 */ lwz r0, 0x34(r1) /* 80382AB8 0037E718 7C 08 03 A6 */ mtlr r0 /* 80382ABC 0037E71C 38 21 00 30 */ addi r1, r1, 0x30 /* 80382AC0 0037E720 4E 80 00 20 */ blr .global AllocVoice__Q44nw4r3snd6detail12VoiceManagerFiiiPFPQ44nw4r3snd6detail5VoiceQ54nw4r3snd6detail5Voice19VoiceCallbackStatusPv_vPv AllocVoice__Q44nw4r3snd6detail12VoiceManagerFiiiPFPQ44nw4r3snd6detail5VoiceQ54nw4r3snd6detail5Voice19VoiceCallbackStatusPv_vPv: /* 80382AC4 0037E724 94 21 FF C0 */ stwu r1, -0x40(r1) /* 80382AC8 0037E728 7C 08 02 A6 */ mflr r0 /* 80382ACC 0037E72C 90 01 00 44 */ stw r0, 0x44(r1) /* 80382AD0 0037E730 39 61 00 40 */ addi r11, r1, 0x40 /* 80382AD4 0037E734 4B E4 46 45 */ bl _savegpr_23 /* 80382AD8 0037E738 7C 7F 1B 78 */ mr r31, r3 /* 80382ADC 0037E73C 7C 97 23 78 */ mr r23, r4 /* 80382AE0 0037E740 7C B8 2B 78 */ mr r24, r5 /* 80382AE4 0037E744 7C D9 33 78 */ mr r25, r6 /* 80382AE8 0037E748 7C FA 3B 78 */ mr r26, r7 /* 80382AEC 0037E74C 7D 1B 43 78 */ mr r27, r8 /* 80382AF0 0037E750 4B EE BC 6D */ bl OSDisableInterrupts /* 80382AF4 0037E754 80 1F 00 10 */ lwz r0, 0x10(r31) /* 80382AF8 0037E758 7C 7E 1B 78 */ mr r30, r3 /* 80382AFC 0037E75C 2C 00 00 00 */ cmpwi r0, 0 /* 80382B00 0037E760 40 82 00 7C */ bne lbl_80382B7C /* 80382B04 0037E764 3B A0 00 00 */ li r29, 0 /* 80382B08 0037E768 40 82 00 5C */ bne lbl_80382B64 /* 80382B0C 0037E76C 80 7F 00 08 */ lwz r3, 8(r31) /* 80382B10 0037E770 80 03 FF 90 */ lwz r0, -0x70(r3) /* 80382B14 0037E774 3B 83 FE DC */ addi r28, r3, -292 /* 80382B18 0037E778 7C 00 C8 00 */ cmpw r0, r25 /* 80382B1C 0037E77C 40 81 00 0C */ ble lbl_80382B28 /* 80382B20 0037E780 3B A0 00 00 */ li r29, 0 /* 80382B24 0037E784 48 00 00 40 */ b lbl_80382B64 lbl_80382B28: /* 80382B28 0037E788 80 9C 00 9C */ lwz r4, 0x9c(r28) /* 80382B2C 0037E78C 7F 83 E3 78 */ mr r3, r28 /* 80382B30 0037E790 80 1C 00 A0 */ lwz r0, 0xa0(r28) /* 80382B34 0037E794 7F A4 01 D6 */ mullw r29, r4, r0 /* 80382B38 0037E798 4B FF E4 39 */ bl Stop__Q44nw4r3snd6detail5VoiceFv /* 80382B3C 0037E79C 7F 83 E3 78 */ mr r3, r28 /* 80382B40 0037E7A0 4B FF E0 95 */ bl Free__Q44nw4r3snd6detail5VoiceFv /* 80382B44 0037E7A4 81 9C 00 A4 */ lwz r12, 0xa4(r28) /* 80382B48 0037E7A8 2C 0C 00 00 */ cmpwi r12, 0 /* 80382B4C 0037E7AC 41 82 00 18 */ beq lbl_80382B64 /* 80382B50 0037E7B0 7F 83 E3 78 */ mr r3, r28 /* 80382B54 0037E7B4 80 BC 00 A8 */ lwz r5, 0xa8(r28) /* 80382B58 0037E7B8 38 80 00 02 */ li r4, 2 /* 80382B5C 0037E7BC 7D 89 03 A6 */ mtctr r12 /* 80382B60 0037E7C0 4E 80 04 21 */ bctrl lbl_80382B64: /* 80382B64 0037E7C4 2C 1D 00 00 */ cmpwi r29, 0 /* 80382B68 0037E7C8 40 82 00 14 */ bne lbl_80382B7C /* 80382B6C 0037E7CC 7F C3 F3 78 */ mr r3, r30 /* 80382B70 0037E7D0 4B EE BC 15 */ bl OSRestoreInterrupts /* 80382B74 0037E7D4 38 60 00 00 */ li r3, 0 /* 80382B78 0037E7D8 48 00 00 F0 */ b lbl_80382C68 lbl_80382B7C: /* 80382B7C 0037E7DC 80 7F 00 14 */ lwz r3, 0x14(r31) /* 80382B80 0037E7E0 7E E4 BB 78 */ mr r4, r23 /* 80382B84 0037E7E4 7F 05 C3 78 */ mr r5, r24 /* 80382B88 0037E7E8 7F 26 CB 78 */ mr r6, r25 /* 80382B8C 0037E7EC 3B 83 FE DC */ addi r28, r3, -292 /* 80382B90 0037E7F0 7F 47 D3 78 */ mr r7, r26 /* 80382B94 0037E7F4 7F 83 E3 78 */ mr r3, r28 /* 80382B98 0037E7F8 7F 68 DB 78 */ mr r8, r27 /* 80382B9C 0037E7FC 4B FF DD FD */ bl Acquire__Q44nw4r3snd6detail5VoiceFiiiPFPQ44nw4r3snd6detail5VoiceQ54nw4r3snd6detail5Voice19VoiceCallbackStatusPv_vPv /* 80382BA0 0037E800 2C 03 00 00 */ cmpwi r3, 0 /* 80382BA4 0037E804 40 82 00 14 */ bne lbl_80382BB8 /* 80382BA8 0037E808 7F C3 F3 78 */ mr r3, r30 /* 80382BAC 0037E80C 4B EE BB D9 */ bl OSRestoreInterrupts /* 80382BB0 0037E810 38 60 00 00 */ li r3, 0 /* 80382BB4 0037E814 48 00 00 B4 */ b lbl_80382C68 lbl_80382BB8: /* 80382BB8 0037E818 57 20 06 3E */ clrlwi r0, r25, 0x18 /* 80382BBC 0037E81C 90 1C 00 B4 */ stw r0, 0xb4(r28) /* 80382BC0 0037E820 4B EE BB 9D */ bl OSDisableInterrupts /* 80382BC4 0037E824 3B 7C 01 24 */ addi r27, r28, 0x124 /* 80382BC8 0037E828 7C 7D 1B 78 */ mr r29, r3 /* 80382BCC 0037E82C 7F 64 DB 78 */ mr r4, r27 /* 80382BD0 0037E830 38 7F 00 10 */ addi r3, r31, 0x10 /* 80382BD4 0037E834 4B FE 00 A1 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode /* 80382BD8 0037E838 80 BF 00 08 */ lwz r5, 8(r31) /* 80382BDC 0037E83C 38 7F 00 08 */ addi r3, r31, 8 /* 80382BE0 0037E840 48 00 00 1C */ b lbl_80382BFC lbl_80382BE4: /* 80382BE4 0037E844 80 C3 00 04 */ lwz r6, 4(r3) /* 80382BE8 0037E848 80 1C 00 B4 */ lwz r0, 0xb4(r28) /* 80382BEC 0037E84C 80 86 FF 90 */ lwz r4, -0x70(r6) /* 80382BF0 0037E850 7C 04 00 00 */ cmpw r4, r0 /* 80382BF4 0037E854 40 81 00 10 */ ble lbl_80382C04 /* 80382BF8 0037E858 7C C3 33 78 */ mr r3, r6 lbl_80382BFC: /* 80382BFC 0037E85C 7C 03 28 40 */ cmplw r3, r5 /* 80382C00 0037E860 40 82 FF E4 */ bne lbl_80382BE4 lbl_80382C04: /* 80382C04 0037E864 90 61 00 08 */ stw r3, 8(r1) /* 80382C08 0037E868 7F 65 DB 78 */ mr r5, r27 /* 80382C0C 0037E86C 38 7F 00 04 */ addi r3, r31, 4 /* 80382C10 0037E870 38 81 00 08 */ addi r4, r1, 8 /* 80382C14 0037E874 4B FE 00 35 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode /* 80382C18 0037E878 7F A3 EB 78 */ mr r3, r29 /* 80382C1C 0037E87C 4B EE BB 69 */ bl OSRestoreInterrupts /* 80382C20 0037E880 3B BF 00 08 */ addi r29, r31, 8 /* 80382C24 0037E884 48 00 00 24 */ b lbl_80382C48 lbl_80382C28: /* 80382C28 0037E888 80 1B FF 90 */ lwz r0, -0x70(r27) /* 80382C2C 0037E88C 38 7B FE DC */ addi r3, r27, -292 /* 80382C30 0037E890 2C 00 00 01 */ cmpwi r0, 1 /* 80382C34 0037E894 40 81 00 1C */ ble lbl_80382C50 /* 80382C38 0037E898 2C 00 00 FF */ cmpwi r0, 0xff /* 80382C3C 0037E89C 41 82 00 08 */ beq lbl_80382C44 /* 80382C40 0037E8A0 4B FF E8 C1 */ bl UpdateVoicesPriority__Q44nw4r3snd6detail5VoiceFv lbl_80382C44: /* 80382C44 0037E8A4 83 7B 00 00 */ lwz r27, 0(r27) lbl_80382C48: /* 80382C48 0037E8A8 7C 1B E8 40 */ cmplw r27, r29 /* 80382C4C 0037E8AC 40 82 FF DC */ bne lbl_80382C28 lbl_80382C50: /* 80382C50 0037E8B0 4B FE C6 09 */ bl GetInstance__Q44nw4r3snd6detail22DisposeCallbackManagerFv /* 80382C54 0037E8B4 7F 84 E3 78 */ mr r4, r28 /* 80382C58 0037E8B8 4B FE C6 FD */ bl __dt__Q34nw4r2ut47LinkList$0Q44nw4r3snd6detail15DisposeCallback$40$1Fv /* 80382C5C 0037E8BC 7F C3 F3 78 */ mr r3, r30 /* 80382C60 0037E8C0 4B EE BB 25 */ bl OSRestoreInterrupts /* 80382C64 0037E8C4 7F 83 E3 78 */ mr r3, r28 lbl_80382C68: /* 80382C68 0037E8C8 39 61 00 40 */ addi r11, r1, 0x40 /* 80382C6C 0037E8CC 4B E4 44 F9 */ bl _restgpr_23 /* 80382C70 0037E8D0 80 01 00 44 */ lwz r0, 0x44(r1) /* 80382C74 0037E8D4 7C 08 03 A6 */ mtlr r0 /* 80382C78 0037E8D8 38 21 00 40 */ addi r1, r1, 0x40 /* 80382C7C 0037E8DC 4E 80 00 20 */ blr .global FreeVoice__Q44nw4r3snd6detail12VoiceManagerFPQ44nw4r3snd6detail5Voice FreeVoice__Q44nw4r3snd6detail12VoiceManagerFPQ44nw4r3snd6detail5Voice: /* 80382C80 0037E8E0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80382C84 0037E8E4 7C 08 02 A6 */ mflr r0 /* 80382C88 0037E8E8 90 01 00 24 */ stw r0, 0x24(r1) /* 80382C8C 0037E8EC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80382C90 0037E8F0 93 C1 00 18 */ stw r30, 0x18(r1) /* 80382C94 0037E8F4 93 A1 00 14 */ stw r29, 0x14(r1) /* 80382C98 0037E8F8 7C 9D 23 78 */ mr r29, r4 /* 80382C9C 0037E8FC 93 81 00 10 */ stw r28, 0x10(r1) /* 80382CA0 0037E900 7C 7C 1B 78 */ mr r28, r3 /* 80382CA4 0037E904 4B EE BA B9 */ bl OSDisableInterrupts /* 80382CA8 0037E908 7C 7F 1B 78 */ mr r31, r3 /* 80382CAC 0037E90C 4B FE C5 AD */ bl GetInstance__Q44nw4r3snd6detail22DisposeCallbackManagerFv /* 80382CB0 0037E910 7F A4 EB 78 */ mr r4, r29 /* 80382CB4 0037E914 4B FE C6 F9 */ bl __ct__Q44nw4r3snd6detail22DisposeCallbackManagerFv /* 80382CB8 0037E918 4B EE BA A5 */ bl OSDisableInterrupts /* 80382CBC 0037E91C 3B BD 01 24 */ addi r29, r29, 0x124 /* 80382CC0 0037E920 7C 7E 1B 78 */ mr r30, r3 /* 80382CC4 0037E924 7F A4 EB 78 */ mr r4, r29 /* 80382CC8 0037E928 38 7C 00 04 */ addi r3, r28, 4 /* 80382CCC 0037E92C 4B FD FF A9 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode /* 80382CD0 0037E930 38 1C 00 14 */ addi r0, r28, 0x14 /* 80382CD4 0037E934 7F A5 EB 78 */ mr r5, r29 /* 80382CD8 0037E938 90 01 00 08 */ stw r0, 8(r1) /* 80382CDC 0037E93C 38 7C 00 10 */ addi r3, r28, 0x10 /* 80382CE0 0037E940 38 81 00 08 */ addi r4, r1, 8 /* 80382CE4 0037E944 4B FD FF 65 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode /* 80382CE8 0037E948 7F C3 F3 78 */ mr r3, r30 /* 80382CEC 0037E94C 4B EE BA 99 */ bl OSRestoreInterrupts /* 80382CF0 0037E950 7F E3 FB 78 */ mr r3, r31 /* 80382CF4 0037E954 4B EE BA 91 */ bl OSRestoreInterrupts /* 80382CF8 0037E958 80 01 00 24 */ lwz r0, 0x24(r1) /* 80382CFC 0037E95C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80382D00 0037E960 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80382D04 0037E964 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80382D08 0037E968 83 81 00 10 */ lwz r28, 0x10(r1) /* 80382D0C 0037E96C 7C 08 03 A6 */ mtlr r0 /* 80382D10 0037E970 38 21 00 20 */ addi r1, r1, 0x20 /* 80382D14 0037E974 4E 80 00 20 */ blr .global UpdateAllVoices__Q44nw4r3snd6detail12VoiceManagerFv UpdateAllVoices__Q44nw4r3snd6detail12VoiceManagerFv: /* 80382D18 0037E978 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80382D1C 0037E97C 7C 08 02 A6 */ mflr r0 /* 80382D20 0037E980 90 01 00 24 */ stw r0, 0x24(r1) /* 80382D24 0037E984 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80382D28 0037E988 93 C1 00 18 */ stw r30, 0x18(r1) /* 80382D2C 0037E98C 3B C3 00 08 */ addi r30, r3, 8 /* 80382D30 0037E990 93 A1 00 14 */ stw r29, 0x14(r1) /* 80382D34 0037E994 7C 7D 1B 78 */ mr r29, r3 /* 80382D38 0037E998 83 E3 00 08 */ lwz r31, 8(r3) /* 80382D3C 0037E99C 48 00 00 14 */ b lbl_80382D50 lbl_80382D40: /* 80382D40 0037E9A0 7F E3 FB 78 */ mr r3, r31 /* 80382D44 0037E9A4 83 FF 00 00 */ lwz r31, 0(r31) /* 80382D48 0037E9A8 38 63 FE DC */ addi r3, r3, -292 /* 80382D4C 0037E9AC 4B FF D6 25 */ bl StopFinished__Q44nw4r3snd6detail5VoiceFv lbl_80382D50: /* 80382D50 0037E9B0 7C 1F F0 40 */ cmplw r31, r30 /* 80382D54 0037E9B4 40 82 FF EC */ bne lbl_80382D40 /* 80382D58 0037E9B8 83 DD 00 08 */ lwz r30, 8(r29) /* 80382D5C 0037E9BC 3B FD 00 08 */ addi r31, r29, 8 /* 80382D60 0037E9C0 48 00 00 14 */ b lbl_80382D74 lbl_80382D64: /* 80382D64 0037E9C4 7F C3 F3 78 */ mr r3, r30 /* 80382D68 0037E9C8 83 DE 00 00 */ lwz r30, 0(r30) /* 80382D6C 0037E9CC 38 63 FE DC */ addi r3, r3, -292 /* 80382D70 0037E9D0 4B FF D6 9D */ bl Calc__Q44nw4r3snd6detail5VoiceFv lbl_80382D74: /* 80382D74 0037E9D4 7C 1E F8 40 */ cmplw r30, r31 /* 80382D78 0037E9D8 40 82 FF EC */ bne lbl_80382D64 /* 80382D7C 0037E9DC 4B EE B9 E1 */ bl OSDisableInterrupts /* 80382D80 0037E9E0 87 FD 00 08 */ lwzu r31, 8(r29) /* 80382D84 0037E9E4 7C 7E 1B 78 */ mr r30, r3 /* 80382D88 0037E9E8 48 00 00 14 */ b lbl_80382D9C lbl_80382D8C: /* 80382D8C 0037E9EC 7F E3 FB 78 */ mr r3, r31 /* 80382D90 0037E9F0 83 FF 00 00 */ lwz r31, 0(r31) /* 80382D94 0037E9F4 38 63 FE DC */ addi r3, r3, -292 /* 80382D98 0037E9F8 4B FF D8 C5 */ bl Update__Q44nw4r3snd6detail5VoiceFv lbl_80382D9C: /* 80382D9C 0037E9FC 7C 1F E8 40 */ cmplw r31, r29 /* 80382DA0 0037EA00 40 82 FF EC */ bne lbl_80382D8C /* 80382DA4 0037EA04 7F C3 F3 78 */ mr r3, r30 /* 80382DA8 0037EA08 4B EE B9 DD */ bl OSRestoreInterrupts /* 80382DAC 0037EA0C 80 01 00 24 */ lwz r0, 0x24(r1) /* 80382DB0 0037EA10 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80382DB4 0037EA14 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80382DB8 0037EA18 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80382DBC 0037EA1C 7C 08 03 A6 */ mtlr r0 /* 80382DC0 0037EA20 38 21 00 20 */ addi r1, r1, 0x20 /* 80382DC4 0037EA24 4E 80 00 20 */ blr .global NotifyVoiceUpdate__Q44nw4r3snd6detail12VoiceManagerFv NotifyVoiceUpdate__Q44nw4r3snd6detail12VoiceManagerFv: /* 80382DC8 0037EA28 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80382DCC 0037EA2C 7C 08 02 A6 */ mflr r0 /* 80382DD0 0037EA30 90 01 00 24 */ stw r0, 0x24(r1) /* 80382DD4 0037EA34 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80382DD8 0037EA38 93 C1 00 18 */ stw r30, 0x18(r1) /* 80382DDC 0037EA3C 93 A1 00 14 */ stw r29, 0x14(r1) /* 80382DE0 0037EA40 7C 7D 1B 78 */ mr r29, r3 /* 80382DE4 0037EA44 4B EE B9 79 */ bl OSDisableInterrupts /* 80382DE8 0037EA48 87 DD 00 08 */ lwzu r30, 8(r29) /* 80382DEC 0037EA4C 7C 7F 1B 78 */ mr r31, r3 /* 80382DF0 0037EA50 48 00 00 14 */ b lbl_80382E04 lbl_80382DF4: /* 80382DF4 0037EA54 7F C3 F3 78 */ mr r3, r30 /* 80382DF8 0037EA58 83 DE 00 00 */ lwz r30, 0(r30) /* 80382DFC 0037EA5C 38 63 FE DC */ addi r3, r3, -292 /* 80382E00 0037EA60 4B FF EC 6D */ bl ResetDelta__Q44nw4r3snd6detail5VoiceFv lbl_80382E04: /* 80382E04 0037EA64 7C 1E E8 40 */ cmplw r30, r29 /* 80382E08 0037EA68 40 82 FF EC */ bne lbl_80382DF4 /* 80382E0C 0037EA6C 7F E3 FB 78 */ mr r3, r31 /* 80382E10 0037EA70 4B EE B9 75 */ bl OSRestoreInterrupts /* 80382E14 0037EA74 80 01 00 24 */ lwz r0, 0x24(r1) /* 80382E18 0037EA78 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80382E1C 0037EA7C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80382E20 0037EA80 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80382E24 0037EA84 7C 08 03 A6 */ mtlr r0 /* 80382E28 0037EA88 38 21 00 20 */ addi r1, r1, 0x20 /* 80382E2C 0037EA8C 4E 80 00 20 */ blr .global ChangeVoicePriority__Q44nw4r3snd6detail12VoiceManagerFPQ44nw4r3snd6detail5Voice ChangeVoicePriority__Q44nw4r3snd6detail12VoiceManagerFPQ44nw4r3snd6detail5Voice: /* 80382E30 0037EA90 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80382E34 0037EA94 7C 08 02 A6 */ mflr r0 /* 80382E38 0037EA98 90 01 00 34 */ stw r0, 0x34(r1) /* 80382E3C 0037EA9C 39 61 00 30 */ addi r11, r1, 0x30 /* 80382E40 0037EAA0 4B E4 42 E9 */ bl _savegpr_27 /* 80382E44 0037EAA4 7C 7B 1B 78 */ mr r27, r3 /* 80382E48 0037EAA8 7C 9C 23 78 */ mr r28, r4 /* 80382E4C 0037EAAC 4B EE B9 11 */ bl OSDisableInterrupts /* 80382E50 0037EAB0 7C 7F 1B 78 */ mr r31, r3 /* 80382E54 0037EAB4 4B EE B9 09 */ bl OSDisableInterrupts /* 80382E58 0037EAB8 3B BC 01 24 */ addi r29, r28, 0x124 /* 80382E5C 0037EABC 7C 7E 1B 78 */ mr r30, r3 /* 80382E60 0037EAC0 7F A4 EB 78 */ mr r4, r29 /* 80382E64 0037EAC4 38 7B 00 04 */ addi r3, r27, 4 /* 80382E68 0037EAC8 4B FD FE 0D */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode /* 80382E6C 0037EACC 38 1B 00 14 */ addi r0, r27, 0x14 /* 80382E70 0037EAD0 7F A5 EB 78 */ mr r5, r29 /* 80382E74 0037EAD4 90 01 00 0C */ stw r0, 0xc(r1) /* 80382E78 0037EAD8 38 7B 00 10 */ addi r3, r27, 0x10 /* 80382E7C 0037EADC 38 81 00 0C */ addi r4, r1, 0xc /* 80382E80 0037EAE0 4B FD FD C9 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode /* 80382E84 0037EAE4 7F C3 F3 78 */ mr r3, r30 /* 80382E88 0037EAE8 4B EE B8 FD */ bl OSRestoreInterrupts /* 80382E8C 0037EAEC 4B EE B8 D1 */ bl OSDisableInterrupts /* 80382E90 0037EAF0 7C 7E 1B 78 */ mr r30, r3 /* 80382E94 0037EAF4 7F A4 EB 78 */ mr r4, r29 /* 80382E98 0037EAF8 38 7B 00 10 */ addi r3, r27, 0x10 /* 80382E9C 0037EAFC 4B FD FD D9 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode /* 80382EA0 0037EB00 80 BB 00 08 */ lwz r5, 8(r27) /* 80382EA4 0037EB04 38 7B 00 08 */ addi r3, r27, 8 /* 80382EA8 0037EB08 48 00 00 1C */ b lbl_80382EC4 lbl_80382EAC: /* 80382EAC 0037EB0C 80 C3 00 04 */ lwz r6, 4(r3) /* 80382EB0 0037EB10 80 1C 00 B4 */ lwz r0, 0xb4(r28) /* 80382EB4 0037EB14 80 86 FF 90 */ lwz r4, -0x70(r6) /* 80382EB8 0037EB18 7C 04 00 00 */ cmpw r4, r0 /* 80382EBC 0037EB1C 40 81 00 10 */ ble lbl_80382ECC /* 80382EC0 0037EB20 7C C3 33 78 */ mr r3, r6 lbl_80382EC4: /* 80382EC4 0037EB24 7C 03 28 40 */ cmplw r3, r5 /* 80382EC8 0037EB28 40 82 FF E4 */ bne lbl_80382EAC lbl_80382ECC: /* 80382ECC 0037EB2C 90 61 00 08 */ stw r3, 8(r1) /* 80382ED0 0037EB30 7F A5 EB 78 */ mr r5, r29 /* 80382ED4 0037EB34 38 7B 00 04 */ addi r3, r27, 4 /* 80382ED8 0037EB38 38 81 00 08 */ addi r4, r1, 8 /* 80382EDC 0037EB3C 4B FD FD 6D */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode /* 80382EE0 0037EB40 7F C3 F3 78 */ mr r3, r30 /* 80382EE4 0037EB44 4B EE B8 A1 */ bl OSRestoreInterrupts /* 80382EE8 0037EB48 3B DB 00 08 */ addi r30, r27, 8 /* 80382EEC 0037EB4C 48 00 00 24 */ b lbl_80382F10 lbl_80382EF0: /* 80382EF0 0037EB50 80 1D FF 90 */ lwz r0, -0x70(r29) /* 80382EF4 0037EB54 38 7D FE DC */ addi r3, r29, -292 /* 80382EF8 0037EB58 2C 00 00 01 */ cmpwi r0, 1 /* 80382EFC 0037EB5C 40 81 00 1C */ ble lbl_80382F18 /* 80382F00 0037EB60 2C 00 00 FF */ cmpwi r0, 0xff /* 80382F04 0037EB64 41 82 00 08 */ beq lbl_80382F0C /* 80382F08 0037EB68 4B FF E5 F9 */ bl UpdateVoicesPriority__Q44nw4r3snd6detail5VoiceFv lbl_80382F0C: /* 80382F0C 0037EB6C 83 BD 00 00 */ lwz r29, 0(r29) lbl_80382F10: /* 80382F10 0037EB70 7C 1D F0 40 */ cmplw r29, r30 /* 80382F14 0037EB74 40 82 FF DC */ bne lbl_80382EF0 lbl_80382F18: /* 80382F18 0037EB78 7F E3 FB 78 */ mr r3, r31 /* 80382F1C 0037EB7C 4B EE B8 69 */ bl OSRestoreInterrupts /* 80382F20 0037EB80 39 61 00 30 */ addi r11, r1, 0x30 /* 80382F24 0037EB84 4B E4 42 51 */ bl _restgpr_27 /* 80382F28 0037EB88 80 01 00 34 */ lwz r0, 0x34(r1) /* 80382F2C 0037EB8C 7C 08 03 A6 */ mtlr r0 /* 80382F30 0037EB90 38 21 00 30 */ addi r1, r1, 0x30 /* 80382F34 0037EB94 4E 80 00 20 */ blr .global UpdateAllVoicesSync__Q44nw4r3snd6detail12VoiceManagerFUl UpdateAllVoicesSync__Q44nw4r3snd6detail12VoiceManagerFUl: /* 80382F38 0037EB98 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80382F3C 0037EB9C 7C 08 02 A6 */ mflr r0 /* 80382F40 0037EBA0 90 01 00 14 */ stw r0, 0x14(r1) /* 80382F44 0037EBA4 93 E1 00 0C */ stw r31, 0xc(r1) /* 80382F48 0037EBA8 7C 9F 23 78 */ mr r31, r4 /* 80382F4C 0037EBAC 93 C1 00 08 */ stw r30, 8(r1) /* 80382F50 0037EBB0 7C 7E 1B 78 */ mr r30, r3 /* 80382F54 0037EBB4 4B EE B8 09 */ bl OSDisableInterrupts /* 80382F58 0037EBB8 80 9E 00 08 */ lwz r4, 8(r30) /* 80382F5C 0037EBBC 38 1E 00 08 */ addi r0, r30, 8 /* 80382F60 0037EBC0 48 00 00 24 */ b lbl_80382F84 lbl_80382F64: /* 80382F64 0037EBC4 7C 86 23 78 */ mr r6, r4 /* 80382F68 0037EBC8 80 84 00 00 */ lwz r4, 0(r4) /* 80382F6C 0037EBCC 88 A6 FF 88 */ lbz r5, -0x78(r6) /* 80382F70 0037EBD0 2C 05 00 00 */ cmpwi r5, 0 /* 80382F74 0037EBD4 41 82 00 10 */ beq lbl_80382F84 /* 80382F78 0037EBD8 88 A6 FF 8D */ lbz r5, -0x73(r6) /* 80382F7C 0037EBDC 7C A5 FB 78 */ or r5, r5, r31 /* 80382F80 0037EBE0 98 A6 FF 8D */ stb r5, -0x73(r6) lbl_80382F84: /* 80382F84 0037EBE4 7C 04 00 40 */ cmplw r4, r0 /* 80382F88 0037EBE8 40 82 FF DC */ bne lbl_80382F64 /* 80382F8C 0037EBEC 4B EE B7 F9 */ bl OSRestoreInterrupts /* 80382F90 0037EBF0 80 01 00 14 */ lwz r0, 0x14(r1) /* 80382F94 0037EBF4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80382F98 0037EBF8 83 C1 00 08 */ lwz r30, 8(r1) /* 80382F9C 0037EBFC 7C 08 03 A6 */ mtlr r0 /* 80382FA0 0037EC00 38 21 00 10 */ addi r1, r1, 0x10 /* 80382FA4 0037EC04 4E 80 00 20 */ blr