.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global GetInstance__Q44nw4r3snd6detail14AxVoiceManagerFv GetInstance__Q44nw4r3snd6detail14AxVoiceManagerFv: /* 8036BFA4 00367C04 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8036BFA8 00367C08 7C 08 02 A6 */ mflr r0 /* 8036BFAC 00367C0C 90 01 00 14 */ stw r0, 0x14(r1) /* 8036BFB0 00367C10 88 0D B1 E0 */ lbz r0, lbl_806404A0-_SDA_BASE_(r13) /* 8036BFB4 00367C14 7C 00 07 75 */ extsb. r0, r0 /* 8036BFB8 00367C18 40 82 00 78 */ bne lbl_8036C030 /* 8036BFBC 00367C1C 3C C0 80 62 */ lis r6, lbl_8062194C@ha /* 8036BFC0 00367C20 38 00 00 00 */ li r0, 0 /* 8036BFC4 00367C24 38 66 19 4C */ addi r3, r6, lbl_8062194C@l /* 8036BFC8 00367C28 3C 80 80 37 */ lis r4, __dt__Q44nw4r3snd6detail14AxVoiceManagerFv@ha /* 8036BFCC 00367C2C 90 03 00 04 */ stw r0, 4(r3) /* 8036BFD0 00367C30 39 23 00 04 */ addi r9, r3, 4 /* 8036BFD4 00367C34 39 03 00 10 */ addi r8, r3, 0x10 /* 8036BFD8 00367C38 38 E3 00 1C */ addi r7, r3, 0x1c /* 8036BFDC 00367C3C 90 03 00 08 */ stw r0, 8(r3) /* 8036BFE0 00367C40 3C A0 80 62 */ lis r5, lbl_80621940@ha /* 8036BFE4 00367C44 38 84 C0 48 */ addi r4, r4, __dt__Q44nw4r3snd6detail14AxVoiceManagerFv@l /* 8036BFE8 00367C48 90 03 00 10 */ stw r0, 0x10(r3) /* 8036BFEC 00367C4C 38 A5 19 40 */ addi r5, r5, lbl_80621940@l /* 8036BFF0 00367C50 90 03 00 14 */ stw r0, 0x14(r3) /* 8036BFF4 00367C54 90 03 00 1C */ stw r0, 0x1c(r3) /* 8036BFF8 00367C58 90 03 00 20 */ stw r0, 0x20(r3) /* 8036BFFC 00367C5C 90 06 19 4C */ stw r0, 0x194c(r6) /* 8036C000 00367C60 91 23 00 04 */ stw r9, 4(r3) /* 8036C004 00367C64 91 23 00 08 */ stw r9, 8(r3) /* 8036C008 00367C68 90 03 00 0C */ stw r0, 0xc(r3) /* 8036C00C 00367C6C 91 03 00 10 */ stw r8, 0x10(r3) /* 8036C010 00367C70 91 03 00 14 */ stw r8, 0x14(r3) /* 8036C014 00367C74 90 03 00 18 */ stw r0, 0x18(r3) /* 8036C018 00367C78 90 E3 00 1C */ stw r7, 0x1c(r3) /* 8036C01C 00367C7C 90 E3 00 20 */ stw r7, 0x20(r3) /* 8036C020 00367C80 98 03 00 24 */ stb r0, 0x24(r3) /* 8036C024 00367C84 4B E5 AC 25 */ bl __register_global_object_tmp /* 8036C028 00367C88 38 00 00 01 */ li r0, 1 /* 8036C02C 00367C8C 98 0D B1 E0 */ stb r0, lbl_806404A0-_SDA_BASE_(r13) lbl_8036C030: /* 8036C030 00367C90 80 01 00 14 */ lwz r0, 0x14(r1) /* 8036C034 00367C94 3C 60 80 62 */ lis r3, lbl_8062194C@ha /* 8036C038 00367C98 38 63 19 4C */ addi r3, r3, lbl_8062194C@l /* 8036C03C 00367C9C 7C 08 03 A6 */ mtlr r0 /* 8036C040 00367CA0 38 21 00 10 */ addi r1, r1, 0x10 /* 8036C044 00367CA4 4E 80 00 20 */ blr .global __dt__Q44nw4r3snd6detail14AxVoiceManagerFv __dt__Q44nw4r3snd6detail14AxVoiceManagerFv: /* 8036C048 00367CA8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8036C04C 00367CAC 7C 08 02 A6 */ mflr r0 /* 8036C050 00367CB0 2C 03 00 00 */ cmpwi r3, 0 /* 8036C054 00367CB4 90 01 00 14 */ stw r0, 0x14(r1) /* 8036C058 00367CB8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8036C05C 00367CBC 7C 9F 23 78 */ mr r31, r4 /* 8036C060 00367CC0 93 C1 00 08 */ stw r30, 8(r1) /* 8036C064 00367CC4 7C 7E 1B 78 */ mr r30, r3 /* 8036C068 00367CC8 41 82 00 48 */ beq lbl_8036C0B0 /* 8036C06C 00367CCC 34 63 00 18 */ addic. r3, r3, 0x18 /* 8036C070 00367CD0 41 82 00 0C */ beq lbl_8036C07C /* 8036C074 00367CD4 38 80 00 00 */ li r4, 0 /* 8036C078 00367CD8 4B FF 6A C1 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv lbl_8036C07C: /* 8036C07C 00367CDC 34 7E 00 0C */ addic. r3, r30, 0xc /* 8036C080 00367CE0 41 82 00 0C */ beq lbl_8036C08C /* 8036C084 00367CE4 38 80 00 00 */ li r4, 0 /* 8036C088 00367CE8 4B FF 6A B1 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv lbl_8036C08C: /* 8036C08C 00367CEC 2C 1E 00 00 */ cmpwi r30, 0 /* 8036C090 00367CF0 41 82 00 10 */ beq lbl_8036C0A0 /* 8036C094 00367CF4 7F C3 F3 78 */ mr r3, r30 /* 8036C098 00367CF8 38 80 00 00 */ li r4, 0 /* 8036C09C 00367CFC 4B FF 6A 9D */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv lbl_8036C0A0: /* 8036C0A0 00367D00 2C 1F 00 00 */ cmpwi r31, 0 /* 8036C0A4 00367D04 40 81 00 0C */ ble lbl_8036C0B0 /* 8036C0A8 00367D08 7F C3 F3 78 */ mr r3, r30 /* 8036C0AC 00367D0C 4B E6 EA 0D */ bl __dl__FPv lbl_8036C0B0: /* 8036C0B0 00367D10 7F C3 F3 78 */ mr r3, r30 /* 8036C0B4 00367D14 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8036C0B8 00367D18 83 C1 00 08 */ lwz r30, 8(r1) /* 8036C0BC 00367D1C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8036C0C0 00367D20 7C 08 03 A6 */ mtlr r0 /* 8036C0C4 00367D24 38 21 00 10 */ addi r1, r1, 0x10 /* 8036C0C8 00367D28 4E 80 00 20 */ blr .global GetRequiredMemSize__Q44nw4r3snd6detail14AxVoiceManagerFv GetRequiredMemSize__Q44nw4r3snd6detail14AxVoiceManagerFv: /* 8036C0CC 00367D2C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8036C0D0 00367D30 7C 08 02 A6 */ mflr r0 /* 8036C0D4 00367D34 90 01 00 14 */ stw r0, 0x14(r1) /* 8036C0D8 00367D38 4B F2 62 45 */ bl AXGetMaxVoices /* 8036C0DC 00367D3C 38 03 00 10 */ addi r0, r3, 0x10 /* 8036C0E0 00367D40 1C 60 00 48 */ mulli r3, r0, 0x48 /* 8036C0E4 00367D44 80 01 00 14 */ lwz r0, 0x14(r1) /* 8036C0E8 00367D48 7C 08 03 A6 */ mtlr r0 /* 8036C0EC 00367D4C 38 21 00 10 */ addi r1, r1, 0x10 /* 8036C0F0 00367D50 4E 80 00 20 */ blr .global Setup__Q44nw4r3snd6detail14AxVoiceManagerFPvUl Setup__Q44nw4r3snd6detail14AxVoiceManagerFPvUl: /* 8036C0F4 00367D54 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8036C0F8 00367D58 7C 08 02 A6 */ mflr r0 /* 8036C0FC 00367D5C 90 01 00 24 */ stw r0, 0x24(r1) /* 8036C100 00367D60 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8036C104 00367D64 93 C1 00 18 */ stw r30, 0x18(r1) /* 8036C108 00367D68 93 A1 00 14 */ stw r29, 0x14(r1) /* 8036C10C 00367D6C 93 81 00 10 */ stw r28, 0x10(r1) /* 8036C110 00367D70 7C 7C 1B 78 */ mr r28, r3 /* 8036C114 00367D74 88 03 00 24 */ lbz r0, 0x24(r3) /* 8036C118 00367D78 2C 00 00 00 */ cmpwi r0, 0 /* 8036C11C 00367D7C 40 82 00 5C */ bne lbl_8036C178 /* 8036C120 00367D80 3C C0 38 E4 */ lis r6, 0x38E38E39@ha /* 8036C124 00367D84 7C 9E 23 78 */ mr r30, r4 /* 8036C128 00367D88 38 06 8E 39 */ addi r0, r6, 0x38E38E39@l /* 8036C12C 00367D8C 3B A0 00 00 */ li r29, 0 /* 8036C130 00367D90 7C 00 28 16 */ mulhwu r0, r0, r5 /* 8036C134 00367D94 54 00 E1 3F */ rlwinm. r0, r0, 0x1c, 4, 0x1f /* 8036C138 00367D98 90 03 00 28 */ stw r0, 0x28(r3) /* 8036C13C 00367D9C 41 82 00 34 */ beq lbl_8036C170 /* 8036C140 00367DA0 3B E3 00 10 */ addi r31, r3, 0x10 /* 8036C144 00367DA4 48 00 00 20 */ b lbl_8036C164 lbl_8036C148: /* 8036C148 00367DA8 93 E1 00 08 */ stw r31, 8(r1) /* 8036C14C 00367DAC 38 7C 00 0C */ addi r3, r28, 0xc /* 8036C150 00367DB0 38 81 00 08 */ addi r4, r1, 8 /* 8036C154 00367DB4 38 BE 00 40 */ addi r5, r30, 0x40 /* 8036C158 00367DB8 4B FF 6A F1 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode /* 8036C15C 00367DBC 3B DE 00 48 */ addi r30, r30, 0x48 /* 8036C160 00367DC0 3B BD 00 01 */ addi r29, r29, 1 lbl_8036C164: /* 8036C164 00367DC4 80 1C 00 28 */ lwz r0, 0x28(r28) /* 8036C168 00367DC8 7C 1D 00 40 */ cmplw r29, r0 /* 8036C16C 00367DCC 41 80 FF DC */ blt lbl_8036C148 lbl_8036C170: /* 8036C170 00367DD0 38 00 00 01 */ li r0, 1 /* 8036C174 00367DD4 98 1C 00 24 */ stb r0, 0x24(r28) lbl_8036C178: /* 8036C178 00367DD8 80 01 00 24 */ lwz r0, 0x24(r1) /* 8036C17C 00367DDC 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8036C180 00367DE0 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8036C184 00367DE4 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8036C188 00367DE8 83 81 00 10 */ lwz r28, 0x10(r1) /* 8036C18C 00367DEC 7C 08 03 A6 */ mtlr r0 /* 8036C190 00367DF0 38 21 00 20 */ addi r1, r1, 0x20 /* 8036C194 00367DF4 4E 80 00 20 */ blr .global AcquireAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFUlPFPQ44nw4r3snd6detail7AxVoiceQ54nw4r3snd6detail7AxVoice21AxVoiceCallbackStatusPv_vPv AcquireAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFUlPFPQ44nw4r3snd6detail7AxVoiceQ54nw4r3snd6detail7AxVoice21AxVoiceCallbackStatusPv_vPv: /* 8036C198 00367DF8 94 21 FF A0 */ stwu r1, -0x60(r1) /* 8036C19C 00367DFC 7C 08 02 A6 */ mflr r0 /* 8036C1A0 00367E00 90 01 00 64 */ stw r0, 0x64(r1) /* 8036C1A4 00367E04 39 61 00 60 */ addi r11, r1, 0x60 /* 8036C1A8 00367E08 4B E5 AF 55 */ bl _savegpr_16 /* 8036C1AC 00367E0C 7C 75 1B 78 */ mr r21, r3 /* 8036C1B0 00367E10 7C 96 23 78 */ mr r22, r4 /* 8036C1B4 00367E14 7C B7 2B 78 */ mr r23, r5 /* 8036C1B8 00367E18 7C D8 33 78 */ mr r24, r6 /* 8036C1BC 00367E1C 4B F0 25 A1 */ bl OSDisableInterrupts /* 8036C1C0 00367E20 7C 74 1B 78 */ mr r20, r3 /* 8036C1C4 00367E24 4B F0 25 99 */ bl OSDisableInterrupts /* 8036C1C8 00367E28 80 15 00 18 */ lwz r0, 0x18(r21) /* 8036C1CC 00367E2C 7C 73 1B 78 */ mr r19, r3 /* 8036C1D0 00367E30 2C 00 00 00 */ cmpwi r0, 0 /* 8036C1D4 00367E34 41 82 01 48 */ beq lbl_8036C31C /* 8036C1D8 00367E38 3F 60 80 62 */ lis r27, lbl_8062194C@ha /* 8036C1DC 00367E3C 3B 80 00 00 */ li r28, 0 /* 8036C1E0 00367E40 3B 5B 19 4C */ addi r26, r27, lbl_8062194C@l /* 8036C1E4 00367E44 3F A0 80 37 */ lis r29, 0x8037 /* 8036C1E8 00367E48 3F C0 80 62 */ lis r30, 0x8062 /* 8036C1EC 00367E4C 3B E0 00 01 */ li r31, 1 /* 8036C1F0 00367E50 3A 1A 00 10 */ addi r16, r26, 0x10 /* 8036C1F4 00367E54 48 00 01 1C */ b lbl_8036C310 lbl_8036C1F8: /* 8036C1F8 00367E58 80 75 00 1C */ lwz r3, 0x1c(r21) /* 8036C1FC 00367E5C 81 83 FF F8 */ lwz r12, -8(r3) /* 8036C200 00367E60 3B 23 FF C0 */ addi r25, r3, -64 /* 8036C204 00367E64 2C 0C 00 00 */ cmpwi r12, 0 /* 8036C208 00367E68 41 82 00 18 */ beq lbl_8036C220 /* 8036C20C 00367E6C 7F 23 CB 78 */ mr r3, r25 /* 8036C210 00367E70 80 B9 00 3C */ lwz r5, 0x3c(r25) /* 8036C214 00367E74 38 80 00 01 */ li r4, 1 /* 8036C218 00367E78 7D 89 03 A6 */ mtctr r12 /* 8036C21C 00367E7C 4E 80 04 21 */ bctrl lbl_8036C220: /* 8036C220 00367E80 88 0D B1 E0 */ lbz r0, lbl_806404A0-_SDA_BASE_(r13) /* 8036C224 00367E84 7C 00 07 75 */ extsb. r0, r0 /* 8036C228 00367E88 40 82 00 64 */ bne lbl_8036C28C /* 8036C22C 00367E8C 93 9A 00 04 */ stw r28, 4(r26) /* 8036C230 00367E90 38 DA 00 04 */ addi r6, r26, 4 /* 8036C234 00367E94 38 FA 00 10 */ addi r7, r26, 0x10 /* 8036C238 00367E98 39 1A 00 1C */ addi r8, r26, 0x1c /* 8036C23C 00367E9C 93 9A 00 08 */ stw r28, 8(r26) /* 8036C240 00367EA0 7F 43 D3 78 */ mr r3, r26 /* 8036C244 00367EA4 38 9D C0 48 */ addi r4, r29, -16312 /* 8036C248 00367EA8 38 BE 19 40 */ addi r5, r30, 0x1940 /* 8036C24C 00367EAC 93 9A 00 10 */ stw r28, 0x10(r26) /* 8036C250 00367EB0 93 9A 00 14 */ stw r28, 0x14(r26) /* 8036C254 00367EB4 93 9A 00 1C */ stw r28, 0x1c(r26) /* 8036C258 00367EB8 93 9A 00 20 */ stw r28, 0x20(r26) /* 8036C25C 00367EBC 93 9B 19 4C */ stw r28, 0x194c(r27) /* 8036C260 00367EC0 90 DA 00 04 */ stw r6, 4(r26) /* 8036C264 00367EC4 90 DA 00 08 */ stw r6, 8(r26) /* 8036C268 00367EC8 93 9A 00 0C */ stw r28, 0xc(r26) /* 8036C26C 00367ECC 90 FA 00 10 */ stw r7, 0x10(r26) /* 8036C270 00367ED0 90 FA 00 14 */ stw r7, 0x14(r26) /* 8036C274 00367ED4 93 9A 00 18 */ stw r28, 0x18(r26) /* 8036C278 00367ED8 91 1A 00 1C */ stw r8, 0x1c(r26) /* 8036C27C 00367EDC 91 1A 00 20 */ stw r8, 0x20(r26) /* 8036C280 00367EE0 9B 9A 00 24 */ stb r28, 0x24(r26) /* 8036C284 00367EE4 4B E5 A9 C5 */ bl __register_global_object_tmp /* 8036C288 00367EE8 9B ED B1 E0 */ stb r31, lbl_806404A0-_SDA_BASE_(r13) lbl_8036C28C: /* 8036C28C 00367EEC 4B F0 24 D1 */ bl OSDisableInterrupts /* 8036C290 00367EF0 80 19 00 00 */ lwz r0, 0(r25) /* 8036C294 00367EF4 7C 72 1B 78 */ mr r18, r3 /* 8036C298 00367EF8 2C 00 00 00 */ cmpwi r0, 0 /* 8036C29C 00367EFC 41 82 00 0C */ beq lbl_8036C2A8 /* 8036C2A0 00367F00 7C 03 03 78 */ mr r3, r0 /* 8036C2A4 00367F04 4B F2 30 11 */ bl AXFreeVoice lbl_8036C2A8: /* 8036C2A8 00367F08 7F 23 CB 78 */ mr r3, r25 /* 8036C2AC 00367F0C 38 80 FF FF */ li r4, -1 /* 8036C2B0 00367F10 4B FF D3 C9 */ bl __dt__Q44nw4r3snd6detail7AxVoiceFv /* 8036C2B4 00367F14 4B F0 24 A9 */ bl OSDisableInterrupts /* 8036C2B8 00367F18 88 19 00 1D */ lbz r0, 0x1d(r25) /* 8036C2BC 00367F1C 7C 71 1B 78 */ mr r17, r3 /* 8036C2C0 00367F20 2C 00 00 00 */ cmpwi r0, 0 /* 8036C2C4 00367F24 41 82 00 18 */ beq lbl_8036C2DC /* 8036C2C8 00367F28 3B 39 00 40 */ addi r25, r25, 0x40 /* 8036C2CC 00367F2C 38 7A 00 18 */ addi r3, r26, 0x18 /* 8036C2D0 00367F30 7F 24 CB 78 */ mr r4, r25 /* 8036C2D4 00367F34 4B FF 69 A1 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode /* 8036C2D8 00367F38 48 00 00 14 */ b lbl_8036C2EC lbl_8036C2DC: /* 8036C2DC 00367F3C 3B 39 00 40 */ addi r25, r25, 0x40 /* 8036C2E0 00367F40 7F 43 D3 78 */ mr r3, r26 /* 8036C2E4 00367F44 7F 24 CB 78 */ mr r4, r25 /* 8036C2E8 00367F48 4B FF 69 8D */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode lbl_8036C2EC: /* 8036C2EC 00367F4C 92 01 00 08 */ stw r16, 8(r1) /* 8036C2F0 00367F50 7F 25 CB 78 */ mr r5, r25 /* 8036C2F4 00367F54 38 7A 00 0C */ addi r3, r26, 0xc /* 8036C2F8 00367F58 38 81 00 08 */ addi r4, r1, 8 /* 8036C2FC 00367F5C 4B FF 69 4D */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode /* 8036C300 00367F60 7E 23 8B 78 */ mr r3, r17 /* 8036C304 00367F64 4B F0 24 81 */ bl OSRestoreInterrupts /* 8036C308 00367F68 7E 43 93 78 */ mr r3, r18 /* 8036C30C 00367F6C 4B F0 24 79 */ bl OSRestoreInterrupts lbl_8036C310: /* 8036C310 00367F70 80 15 00 18 */ lwz r0, 0x18(r21) /* 8036C314 00367F74 2C 00 00 00 */ cmpwi r0, 0 /* 8036C318 00367F78 40 82 FE E0 */ bne lbl_8036C1F8 lbl_8036C31C: /* 8036C31C 00367F7C 80 15 00 0C */ lwz r0, 0xc(r21) /* 8036C320 00367F80 2C 00 00 00 */ cmpwi r0, 0 /* 8036C324 00367F84 40 82 00 14 */ bne lbl_8036C338 /* 8036C328 00367F88 7E 63 9B 78 */ mr r3, r19 /* 8036C32C 00367F8C 4B F0 24 59 */ bl OSRestoreInterrupts /* 8036C330 00367F90 3A 20 00 00 */ li r17, 0 /* 8036C334 00367F94 48 00 00 54 */ b lbl_8036C388 lbl_8036C338: /* 8036C338 00367F98 80 B5 00 10 */ lwz r5, 0x10(r21) /* 8036C33C 00367F9C 38 75 00 0C */ addi r3, r21, 0xc /* 8036C340 00367FA0 38 81 00 0C */ addi r4, r1, 0xc /* 8036C344 00367FA4 90 A1 00 0C */ stw r5, 0xc(r1) /* 8036C348 00367FA8 3A 05 FF C0 */ addi r16, r5, -64 /* 8036C34C 00367FAC 4B FF 68 71 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator /* 8036C350 00367FB0 2C 10 00 00 */ cmpwi r16, 0 /* 8036C354 00367FB4 7E 11 83 78 */ mr r17, r16 /* 8036C358 00367FB8 41 82 00 10 */ beq lbl_8036C368 /* 8036C35C 00367FBC 7E 03 83 78 */ mr r3, r16 /* 8036C360 00367FC0 4B FF D2 D5 */ bl __ct__Q44nw4r3snd6detail7AxVoiceFv /* 8036C364 00367FC4 7C 71 1B 78 */ mr r17, r3 lbl_8036C368: /* 8036C368 00367FC8 38 15 00 04 */ addi r0, r21, 4 /* 8036C36C 00367FCC 7E A3 AB 78 */ mr r3, r21 /* 8036C370 00367FD0 90 01 00 10 */ stw r0, 0x10(r1) /* 8036C374 00367FD4 38 81 00 10 */ addi r4, r1, 0x10 /* 8036C378 00367FD8 38 B0 00 40 */ addi r5, r16, 0x40 /* 8036C37C 00367FDC 4B FF 68 CD */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode /* 8036C380 00367FE0 7E 63 9B 78 */ mr r3, r19 /* 8036C384 00367FE4 4B F0 24 01 */ bl OSRestoreInterrupts lbl_8036C388: /* 8036C388 00367FE8 2C 11 00 00 */ cmpwi r17, 0 /* 8036C38C 00367FEC 40 82 00 14 */ bne lbl_8036C3A0 /* 8036C390 00367FF0 7E 83 A3 78 */ mr r3, r20 /* 8036C394 00367FF4 4B F0 23 F1 */ bl OSRestoreInterrupts /* 8036C398 00367FF8 38 60 00 00 */ li r3, 0 /* 8036C39C 00367FFC 48 00 00 50 */ b lbl_8036C3EC lbl_8036C3A0: /* 8036C3A0 00368000 3C 80 80 37 */ lis r4, VoiceCallback__Q44nw4r3snd6detail7AxVoiceFPv@ha /* 8036C3A4 00368004 7E C3 B3 78 */ mr r3, r22 /* 8036C3A8 00368008 7E 25 8B 78 */ mr r5, r17 /* 8036C3AC 0036800C 38 84 9F B4 */ addi r4, r4, VoiceCallback__Q44nw4r3snd6detail7AxVoiceFPv@l /* 8036C3B0 00368010 4B F2 2F 81 */ bl AXAcquireVoice /* 8036C3B4 00368014 2C 03 00 00 */ cmpwi r3, 0 /* 8036C3B8 00368018 7C 64 1B 78 */ mr r4, r3 /* 8036C3BC 0036801C 40 82 00 14 */ bne lbl_8036C3D0 /* 8036C3C0 00368020 7E 83 A3 78 */ mr r3, r20 /* 8036C3C4 00368024 4B F0 23 C1 */ bl OSRestoreInterrupts /* 8036C3C8 00368028 38 60 00 00 */ li r3, 0 /* 8036C3CC 0036802C 48 00 00 20 */ b lbl_8036C3EC lbl_8036C3D0: /* 8036C3D0 00368030 7E 23 8B 78 */ mr r3, r17 /* 8036C3D4 00368034 4B FF F4 DD */ bl Set__Q44nw4r3snd6detail17AxVoiceParamBlockFP6_AXVPB /* 8036C3D8 00368038 92 F1 00 38 */ stw r23, 0x38(r17) /* 8036C3DC 0036803C 7E 83 A3 78 */ mr r3, r20 /* 8036C3E0 00368040 93 11 00 3C */ stw r24, 0x3c(r17) /* 8036C3E4 00368044 4B F0 23 A1 */ bl OSRestoreInterrupts /* 8036C3E8 00368048 7E 23 8B 78 */ mr r3, r17 lbl_8036C3EC: /* 8036C3EC 0036804C 39 61 00 60 */ addi r11, r1, 0x60 /* 8036C3F0 00368050 4B E5 AD 59 */ bl _restgpr_16 /* 8036C3F4 00368054 80 01 00 64 */ lwz r0, 0x64(r1) /* 8036C3F8 00368058 7C 08 03 A6 */ mtlr r0 /* 8036C3FC 0036805C 38 21 00 60 */ addi r1, r1, 0x60 /* 8036C400 00368060 4E 80 00 20 */ blr .global FreeAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFPQ44nw4r3snd6detail7AxVoice FreeAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFPQ44nw4r3snd6detail7AxVoice: /* 8036C404 00368064 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8036C408 00368068 7C 08 02 A6 */ mflr r0 /* 8036C40C 0036806C 90 01 00 24 */ stw r0, 0x24(r1) /* 8036C410 00368070 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8036C414 00368074 93 C1 00 18 */ stw r30, 0x18(r1) /* 8036C418 00368078 93 A1 00 14 */ stw r29, 0x14(r1) /* 8036C41C 0036807C 7C 9D 23 78 */ mr r29, r4 /* 8036C420 00368080 93 81 00 10 */ stw r28, 0x10(r1) /* 8036C424 00368084 7C 7C 1B 78 */ mr r28, r3 /* 8036C428 00368088 4B F0 23 35 */ bl OSDisableInterrupts /* 8036C42C 0036808C 80 1D 00 00 */ lwz r0, 0(r29) /* 8036C430 00368090 7C 7F 1B 78 */ mr r31, r3 /* 8036C434 00368094 2C 00 00 00 */ cmpwi r0, 0 /* 8036C438 00368098 41 82 00 0C */ beq lbl_8036C444 /* 8036C43C 0036809C 7C 03 03 78 */ mr r3, r0 /* 8036C440 003680A0 4B F2 2E 75 */ bl AXFreeVoice lbl_8036C444: /* 8036C444 003680A4 7F A3 EB 78 */ mr r3, r29 /* 8036C448 003680A8 38 80 FF FF */ li r4, -1 /* 8036C44C 003680AC 4B FF D2 2D */ bl __dt__Q44nw4r3snd6detail7AxVoiceFv /* 8036C450 003680B0 4B F0 23 0D */ bl OSDisableInterrupts /* 8036C454 003680B4 88 1D 00 1D */ lbz r0, 0x1d(r29) /* 8036C458 003680B8 7C 7E 1B 78 */ mr r30, r3 /* 8036C45C 003680BC 2C 00 00 00 */ cmpwi r0, 0 /* 8036C460 003680C0 41 82 00 18 */ beq lbl_8036C478 /* 8036C464 003680C4 3B BD 00 40 */ addi r29, r29, 0x40 /* 8036C468 003680C8 38 7C 00 18 */ addi r3, r28, 0x18 /* 8036C46C 003680CC 7F A4 EB 78 */ mr r4, r29 /* 8036C470 003680D0 4B FF 68 05 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode /* 8036C474 003680D4 48 00 00 14 */ b lbl_8036C488 lbl_8036C478: /* 8036C478 003680D8 3B BD 00 40 */ addi r29, r29, 0x40 /* 8036C47C 003680DC 7F 83 E3 78 */ mr r3, r28 /* 8036C480 003680E0 7F A4 EB 78 */ mr r4, r29 /* 8036C484 003680E4 4B FF 67 F1 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode lbl_8036C488: /* 8036C488 003680E8 38 1C 00 10 */ addi r0, r28, 0x10 /* 8036C48C 003680EC 7F A5 EB 78 */ mr r5, r29 /* 8036C490 003680F0 90 01 00 08 */ stw r0, 8(r1) /* 8036C494 003680F4 38 7C 00 0C */ addi r3, r28, 0xc /* 8036C498 003680F8 38 81 00 08 */ addi r4, r1, 8 /* 8036C49C 003680FC 4B FF 67 AD */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode /* 8036C4A0 00368100 7F C3 F3 78 */ mr r3, r30 /* 8036C4A4 00368104 4B F0 22 E1 */ bl OSRestoreInterrupts /* 8036C4A8 00368108 7F E3 FB 78 */ mr r3, r31 /* 8036C4AC 0036810C 4B F0 22 D9 */ bl OSRestoreInterrupts /* 8036C4B0 00368110 80 01 00 24 */ lwz r0, 0x24(r1) /* 8036C4B4 00368114 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8036C4B8 00368118 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8036C4BC 0036811C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8036C4C0 00368120 83 81 00 10 */ lwz r28, 0x10(r1) /* 8036C4C4 00368124 7C 08 03 A6 */ mtlr r0 /* 8036C4C8 00368128 38 21 00 20 */ addi r1, r1, 0x20 /* 8036C4CC 0036812C 4E 80 00 20 */ blr .global ReserveForFreeAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFPQ44nw4r3snd6detail7AxVoice ReserveForFreeAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFPQ44nw4r3snd6detail7AxVoice: /* 8036C4D0 00368130 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8036C4D4 00368134 7C 08 02 A6 */ mflr r0 /* 8036C4D8 00368138 90 01 00 24 */ stw r0, 0x24(r1) /* 8036C4DC 0036813C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8036C4E0 00368140 93 C1 00 18 */ stw r30, 0x18(r1) /* 8036C4E4 00368144 93 A1 00 14 */ stw r29, 0x14(r1) /* 8036C4E8 00368148 7C 9D 23 78 */ mr r29, r4 /* 8036C4EC 0036814C 93 81 00 10 */ stw r28, 0x10(r1) /* 8036C4F0 00368150 7C 7C 1B 78 */ mr r28, r3 /* 8036C4F4 00368154 4B F0 22 69 */ bl OSDisableInterrupts /* 8036C4F8 00368158 38 00 00 01 */ li r0, 1 /* 8036C4FC 0036815C 7C 7F 1B 78 */ mr r31, r3 /* 8036C500 00368160 98 1D 00 1D */ stb r0, 0x1d(r29) /* 8036C504 00368164 4B F0 22 59 */ bl OSDisableInterrupts /* 8036C508 00368168 3B BD 00 40 */ addi r29, r29, 0x40 /* 8036C50C 0036816C 7C 7E 1B 78 */ mr r30, r3 /* 8036C510 00368170 7F 83 E3 78 */ mr r3, r28 /* 8036C514 00368174 7F A4 EB 78 */ mr r4, r29 /* 8036C518 00368178 4B FF 67 5D */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode /* 8036C51C 0036817C 38 1C 00 1C */ addi r0, r28, 0x1c /* 8036C520 00368180 7F A5 EB 78 */ mr r5, r29 /* 8036C524 00368184 90 01 00 08 */ stw r0, 8(r1) /* 8036C528 00368188 38 7C 00 18 */ addi r3, r28, 0x18 /* 8036C52C 0036818C 38 81 00 08 */ addi r4, r1, 8 /* 8036C530 00368190 4B FF 67 19 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode /* 8036C534 00368194 7F C3 F3 78 */ mr r3, r30 /* 8036C538 00368198 4B F0 22 4D */ bl OSRestoreInterrupts /* 8036C53C 0036819C 7F E3 FB 78 */ mr r3, r31 /* 8036C540 003681A0 4B F0 22 45 */ bl OSRestoreInterrupts /* 8036C544 003681A4 80 01 00 24 */ lwz r0, 0x24(r1) /* 8036C548 003681A8 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8036C54C 003681AC 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8036C550 003681B0 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8036C554 003681B4 83 81 00 10 */ lwz r28, 0x10(r1) /* 8036C558 003681B8 7C 08 03 A6 */ mtlr r0 /* 8036C55C 003681BC 38 21 00 20 */ addi r1, r1, 0x20 /* 8036C560 003681C0 4E 80 00 20 */ blr .global FreeAllReservedAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFv FreeAllReservedAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFv: /* 8036C564 003681C4 94 21 FF C0 */ stwu r1, -0x40(r1) /* 8036C568 003681C8 7C 08 02 A6 */ mflr r0 /* 8036C56C 003681CC 90 01 00 44 */ stw r0, 0x44(r1) /* 8036C570 003681D0 39 61 00 40 */ addi r11, r1, 0x40 /* 8036C574 003681D4 4B E5 AB 9D */ bl _savegpr_21 /* 8036C578 003681D8 80 03 00 18 */ lwz r0, 0x18(r3) /* 8036C57C 003681DC 7C 7F 1B 78 */ mr r31, r3 /* 8036C580 003681E0 2C 00 00 00 */ cmpwi r0, 0 /* 8036C584 003681E4 41 82 01 48 */ beq lbl_8036C6CC /* 8036C588 003681E8 3E E0 80 62 */ lis r23, lbl_8062194C@ha /* 8036C58C 003681EC 3B 00 00 00 */ li r24, 0 /* 8036C590 003681F0 3A D7 19 4C */ addi r22, r23, lbl_8062194C@l /* 8036C594 003681F4 3F 20 80 37 */ lis r25, 0x8037 /* 8036C598 003681F8 3F 40 80 62 */ lis r26, 0x8062 /* 8036C59C 003681FC 3B 60 00 01 */ li r27, 1 /* 8036C5A0 00368200 3B 96 00 10 */ addi r28, r22, 0x10 /* 8036C5A4 00368204 48 00 01 1C */ b lbl_8036C6C0 lbl_8036C5A8: /* 8036C5A8 00368208 80 7F 00 1C */ lwz r3, 0x1c(r31) /* 8036C5AC 0036820C 81 83 FF F8 */ lwz r12, -8(r3) /* 8036C5B0 00368210 3A A3 FF C0 */ addi r21, r3, -64 /* 8036C5B4 00368214 2C 0C 00 00 */ cmpwi r12, 0 /* 8036C5B8 00368218 41 82 00 18 */ beq lbl_8036C5D0 /* 8036C5BC 0036821C 7E A3 AB 78 */ mr r3, r21 /* 8036C5C0 00368220 80 B5 00 3C */ lwz r5, 0x3c(r21) /* 8036C5C4 00368224 38 80 00 01 */ li r4, 1 /* 8036C5C8 00368228 7D 89 03 A6 */ mtctr r12 /* 8036C5CC 0036822C 4E 80 04 21 */ bctrl lbl_8036C5D0: /* 8036C5D0 00368230 88 0D B1 E0 */ lbz r0, lbl_806404A0-_SDA_BASE_(r13) /* 8036C5D4 00368234 7C 00 07 75 */ extsb. r0, r0 /* 8036C5D8 00368238 40 82 00 64 */ bne lbl_8036C63C /* 8036C5DC 0036823C 93 16 00 04 */ stw r24, 4(r22) /* 8036C5E0 00368240 38 D6 00 04 */ addi r6, r22, 4 /* 8036C5E4 00368244 38 F6 00 10 */ addi r7, r22, 0x10 /* 8036C5E8 00368248 39 16 00 1C */ addi r8, r22, 0x1c /* 8036C5EC 0036824C 93 16 00 08 */ stw r24, 8(r22) /* 8036C5F0 00368250 7E C3 B3 78 */ mr r3, r22 /* 8036C5F4 00368254 38 99 C0 48 */ addi r4, r25, -16312 /* 8036C5F8 00368258 38 BA 19 40 */ addi r5, r26, 0x1940 /* 8036C5FC 0036825C 93 16 00 10 */ stw r24, 0x10(r22) /* 8036C600 00368260 93 16 00 14 */ stw r24, 0x14(r22) /* 8036C604 00368264 93 16 00 1C */ stw r24, 0x1c(r22) /* 8036C608 00368268 93 16 00 20 */ stw r24, 0x20(r22) /* 8036C60C 0036826C 93 17 19 4C */ stw r24, 0x194c(r23) /* 8036C610 00368270 90 D6 00 04 */ stw r6, 4(r22) /* 8036C614 00368274 90 D6 00 08 */ stw r6, 8(r22) /* 8036C618 00368278 93 16 00 0C */ stw r24, 0xc(r22) /* 8036C61C 0036827C 90 F6 00 10 */ stw r7, 0x10(r22) /* 8036C620 00368280 90 F6 00 14 */ stw r7, 0x14(r22) /* 8036C624 00368284 93 16 00 18 */ stw r24, 0x18(r22) /* 8036C628 00368288 91 16 00 1C */ stw r8, 0x1c(r22) /* 8036C62C 0036828C 91 16 00 20 */ stw r8, 0x20(r22) /* 8036C630 00368290 9B 16 00 24 */ stb r24, 0x24(r22) /* 8036C634 00368294 4B E5 A6 15 */ bl __register_global_object_tmp /* 8036C638 00368298 9B 6D B1 E0 */ stb r27, lbl_806404A0-_SDA_BASE_(r13) lbl_8036C63C: /* 8036C63C 0036829C 4B F0 21 21 */ bl OSDisableInterrupts /* 8036C640 003682A0 80 15 00 00 */ lwz r0, 0(r21) /* 8036C644 003682A4 7C 7E 1B 78 */ mr r30, r3 /* 8036C648 003682A8 2C 00 00 00 */ cmpwi r0, 0 /* 8036C64C 003682AC 41 82 00 0C */ beq lbl_8036C658 /* 8036C650 003682B0 7C 03 03 78 */ mr r3, r0 /* 8036C654 003682B4 4B F2 2C 61 */ bl AXFreeVoice lbl_8036C658: /* 8036C658 003682B8 7E A3 AB 78 */ mr r3, r21 /* 8036C65C 003682BC 38 80 FF FF */ li r4, -1 /* 8036C660 003682C0 4B FF D0 19 */ bl __dt__Q44nw4r3snd6detail7AxVoiceFv /* 8036C664 003682C4 4B F0 20 F9 */ bl OSDisableInterrupts /* 8036C668 003682C8 88 15 00 1D */ lbz r0, 0x1d(r21) /* 8036C66C 003682CC 7C 7D 1B 78 */ mr r29, r3 /* 8036C670 003682D0 2C 00 00 00 */ cmpwi r0, 0 /* 8036C674 003682D4 41 82 00 18 */ beq lbl_8036C68C /* 8036C678 003682D8 3A B5 00 40 */ addi r21, r21, 0x40 /* 8036C67C 003682DC 38 76 00 18 */ addi r3, r22, 0x18 /* 8036C680 003682E0 7E A4 AB 78 */ mr r4, r21 /* 8036C684 003682E4 4B FF 65 F1 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode /* 8036C688 003682E8 48 00 00 14 */ b lbl_8036C69C lbl_8036C68C: /* 8036C68C 003682EC 3A B5 00 40 */ addi r21, r21, 0x40 /* 8036C690 003682F0 7E C3 B3 78 */ mr r3, r22 /* 8036C694 003682F4 7E A4 AB 78 */ mr r4, r21 /* 8036C698 003682F8 4B FF 65 DD */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode lbl_8036C69C: /* 8036C69C 003682FC 93 81 00 08 */ stw r28, 8(r1) /* 8036C6A0 00368300 7E A5 AB 78 */ mr r5, r21 /* 8036C6A4 00368304 38 76 00 0C */ addi r3, r22, 0xc /* 8036C6A8 00368308 38 81 00 08 */ addi r4, r1, 8 /* 8036C6AC 0036830C 4B FF 65 9D */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode /* 8036C6B0 00368310 7F A3 EB 78 */ mr r3, r29 /* 8036C6B4 00368314 4B F0 20 D1 */ bl OSRestoreInterrupts /* 8036C6B8 00368318 7F C3 F3 78 */ mr r3, r30 /* 8036C6BC 0036831C 4B F0 20 C9 */ bl OSRestoreInterrupts lbl_8036C6C0: /* 8036C6C0 00368320 80 1F 00 18 */ lwz r0, 0x18(r31) /* 8036C6C4 00368324 2C 00 00 00 */ cmpwi r0, 0 /* 8036C6C8 00368328 40 82 FE E0 */ bne lbl_8036C5A8 lbl_8036C6CC: /* 8036C6CC 0036832C 39 61 00 40 */ addi r11, r1, 0x40 /* 8036C6D0 00368330 4B E5 AA 8D */ bl _restgpr_21 /* 8036C6D4 00368334 80 01 00 44 */ lwz r0, 0x44(r1) /* 8036C6D8 00368338 7C 08 03 A6 */ mtlr r0 /* 8036C6DC 0036833C 38 21 00 40 */ addi r1, r1, 0x40 /* 8036C6E0 00368340 4E 80 00 20 */ blr