.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global GetInstance__Q44nw4r3snd6detail11SoundThreadFv GetInstance__Q44nw4r3snd6detail11SoundThreadFv: /* 8037C450 003780B0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8037C454 003780B4 7C 08 02 A6 */ mflr r0 /* 8037C458 003780B8 90 01 00 14 */ stw r0, 0x14(r1) /* 8037C45C 003780BC 93 E1 00 0C */ stw r31, 0xc(r1) /* 8037C460 003780C0 88 0D B2 78 */ lbz r0, lbl_80640538-_SDA_BASE_(r13) /* 8037C464 003780C4 7C 00 07 75 */ extsb. r0, r0 /* 8037C468 003780C8 40 82 00 90 */ bne lbl_8037C4F8 /* 8037C46C 003780CC 3F E0 80 64 */ lis r31, lbl_806389C0@ha /* 8037C470 003780D0 38 00 00 00 */ li r0, 0 /* 8037C474 003780D4 3B FF 89 C0 */ addi r31, r31, lbl_806389C0@l /* 8037C478 003780D8 38 A0 00 04 */ li r5, 4 /* 8037C47C 003780DC 90 1F 03 7C */ stw r0, 0x37c(r31) /* 8037C480 003780E0 38 FF 03 7C */ addi r7, r31, 0x37c /* 8037C484 003780E4 38 DF 03 88 */ addi r6, r31, 0x388 /* 8037C488 003780E8 38 7F 03 20 */ addi r3, r31, 0x320 /* 8037C48C 003780EC 90 1F 03 80 */ stw r0, 0x380(r31) /* 8037C490 003780F0 38 9F 03 40 */ addi r4, r31, 0x340 /* 8037C494 003780F4 90 1F 03 88 */ stw r0, 0x388(r31) /* 8037C498 003780F8 90 1F 03 8C */ stw r0, 0x38c(r31) /* 8037C49C 003780FC 90 1F 03 50 */ stw r0, 0x350(r31) /* 8037C4A0 00378100 90 1F 03 6C */ stw r0, 0x36c(r31) /* 8037C4A4 00378104 90 1F 03 70 */ stw r0, 0x370(r31) /* 8037C4A8 00378108 90 1F 03 78 */ stw r0, 0x378(r31) /* 8037C4AC 0037810C 90 FF 03 7C */ stw r7, 0x37c(r31) /* 8037C4B0 00378110 90 FF 03 80 */ stw r7, 0x380(r31) /* 8037C4B4 00378114 90 1F 03 84 */ stw r0, 0x384(r31) /* 8037C4B8 00378118 90 DF 03 88 */ stw r6, 0x388(r31) /* 8037C4BC 0037811C 90 DF 03 8C */ stw r6, 0x38c(r31) /* 8037C4C0 00378120 98 1F 03 94 */ stb r0, 0x394(r31) /* 8037C4C4 00378124 4B EF 2A 35 */ bl OSInitMessageQueue /* 8037C4C8 00378128 38 7F 03 18 */ addi r3, r31, 0x318 /* 8037C4CC 0037812C 4B EF 4E 1D */ bl OSInitThreadQueue /* 8037C4D0 00378130 38 7F 03 54 */ addi r3, r31, 0x354 /* 8037C4D4 00378134 4B EF 34 3D */ bl OSInitMutex /* 8037C4D8 00378138 3C 80 80 38 */ lis r4, __dt__Q44nw4r3snd6detail11SoundThreadFv@ha /* 8037C4DC 0037813C 3C A0 80 64 */ lis r5, lbl_806389B0@ha /* 8037C4E0 00378140 7F E3 FB 78 */ mr r3, r31 /* 8037C4E4 00378144 38 84 C5 14 */ addi r4, r4, __dt__Q44nw4r3snd6detail11SoundThreadFv@l /* 8037C4E8 00378148 38 A5 89 B0 */ addi r5, r5, lbl_806389B0@l /* 8037C4EC 0037814C 4B E4 A7 5D */ bl __register_global_object_tmp /* 8037C4F0 00378150 38 00 00 01 */ li r0, 1 /* 8037C4F4 00378154 98 0D B2 78 */ stb r0, lbl_80640538-_SDA_BASE_(r13) lbl_8037C4F8: /* 8037C4F8 00378158 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8037C4FC 0037815C 3C 60 80 64 */ lis r3, lbl_806389C0@ha /* 8037C500 00378160 80 01 00 14 */ lwz r0, 0x14(r1) /* 8037C504 00378164 38 63 89 C0 */ addi r3, r3, lbl_806389C0@l /* 8037C508 00378168 7C 08 03 A6 */ mtlr r0 /* 8037C50C 0037816C 38 21 00 10 */ addi r1, r1, 0x10 /* 8037C510 00378170 4E 80 00 20 */ blr .global __dt__Q44nw4r3snd6detail11SoundThreadFv __dt__Q44nw4r3snd6detail11SoundThreadFv: /* 8037C514 00378174 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8037C518 00378178 7C 08 02 A6 */ mflr r0 /* 8037C51C 0037817C 2C 03 00 00 */ cmpwi r3, 0 /* 8037C520 00378180 90 01 00 14 */ stw r0, 0x14(r1) /* 8037C524 00378184 93 E1 00 0C */ stw r31, 0xc(r1) /* 8037C528 00378188 7C 9F 23 78 */ mr r31, r4 /* 8037C52C 0037818C 93 C1 00 08 */ stw r30, 8(r1) /* 8037C530 00378190 7C 7E 1B 78 */ mr r30, r3 /* 8037C534 00378194 41 82 00 34 */ beq lbl_8037C568 /* 8037C538 00378198 34 63 03 84 */ addic. r3, r3, 0x384 /* 8037C53C 0037819C 41 82 00 0C */ beq lbl_8037C548 /* 8037C540 003781A0 38 80 00 00 */ li r4, 0 /* 8037C544 003781A4 4B FE 65 F5 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv lbl_8037C548: /* 8037C548 003781A8 34 7E 03 78 */ addic. r3, r30, 0x378 /* 8037C54C 003781AC 41 82 00 0C */ beq lbl_8037C558 /* 8037C550 003781B0 38 80 00 00 */ li r4, 0 /* 8037C554 003781B4 4B FE 65 E5 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv lbl_8037C558: /* 8037C558 003781B8 2C 1F 00 00 */ cmpwi r31, 0 /* 8037C55C 003781BC 40 81 00 0C */ ble lbl_8037C568 /* 8037C560 003781C0 7F C3 F3 78 */ mr r3, r30 /* 8037C564 003781C4 4B E5 E5 55 */ bl __dl__FPv lbl_8037C568: /* 8037C568 003781C8 7F C3 F3 78 */ mr r3, r30 /* 8037C56C 003781CC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8037C570 003781D0 83 C1 00 08 */ lwz r30, 8(r1) /* 8037C574 003781D4 80 01 00 14 */ lwz r0, 0x14(r1) /* 8037C578 003781D8 7C 08 03 A6 */ mtlr r0 /* 8037C57C 003781DC 38 21 00 10 */ addi r1, r1, 0x10 /* 8037C580 003781E0 4E 80 00 20 */ blr .global Create__Q44nw4r3snd6detail11SoundThreadFlPvUl Create__Q44nw4r3snd6detail11SoundThreadFlPvUl: /* 8037C584 003781E4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8037C588 003781E8 7C 08 02 A6 */ mflr r0 /* 8037C58C 003781EC 90 01 00 24 */ stw r0, 0x24(r1) /* 8037C590 003781F0 39 61 00 20 */ addi r11, r1, 0x20 /* 8037C594 003781F4 4B E4 AB 91 */ bl _savegpr_26 /* 8037C598 003781F8 88 03 03 94 */ lbz r0, 0x394(r3) /* 8037C59C 003781FC 7C 7A 1B 78 */ mr r26, r3 /* 8037C5A0 00378200 7C 9B 23 78 */ mr r27, r4 /* 8037C5A4 00378204 7C BC 2B 78 */ mr r28, r5 /* 8037C5A8 00378208 2C 00 00 00 */ cmpwi r0, 0 /* 8037C5AC 0037820C 7C DD 33 78 */ mr r29, r6 /* 8037C5B0 00378210 41 82 00 0C */ beq lbl_8037C5BC /* 8037C5B4 00378214 38 60 00 01 */ li r3, 1 /* 8037C5B8 00378218 48 00 00 EC */ b lbl_8037C6A4 lbl_8037C5BC: /* 8037C5BC 0037821C 3B E0 00 01 */ li r31, 1 /* 8037C5C0 00378220 90 A3 03 50 */ stw r5, 0x350(r3) /* 8037C5C4 00378224 9B E3 03 94 */ stb r31, 0x394(r3) /* 8037C5C8 00378228 88 0D B2 78 */ lbz r0, lbl_80640538-_SDA_BASE_(r13) /* 8037C5CC 0037822C 7C 00 07 75 */ extsb. r0, r0 /* 8037C5D0 00378230 40 82 00 8C */ bne lbl_8037C65C /* 8037C5D4 00378234 3F C0 80 64 */ lis r30, lbl_806389C0@ha /* 8037C5D8 00378238 38 00 00 00 */ li r0, 0 /* 8037C5DC 0037823C 3B DE 89 C0 */ addi r30, r30, lbl_806389C0@l /* 8037C5E0 00378240 38 A0 00 04 */ li r5, 4 /* 8037C5E4 00378244 90 1E 03 7C */ stw r0, 0x37c(r30) /* 8037C5E8 00378248 38 DE 03 7C */ addi r6, r30, 0x37c /* 8037C5EC 0037824C 38 FE 03 88 */ addi r7, r30, 0x388 /* 8037C5F0 00378250 38 7E 03 20 */ addi r3, r30, 0x320 /* 8037C5F4 00378254 90 1E 03 80 */ stw r0, 0x380(r30) /* 8037C5F8 00378258 38 9E 03 40 */ addi r4, r30, 0x340 /* 8037C5FC 0037825C 90 1E 03 88 */ stw r0, 0x388(r30) /* 8037C600 00378260 90 1E 03 8C */ stw r0, 0x38c(r30) /* 8037C604 00378264 90 1E 03 50 */ stw r0, 0x350(r30) /* 8037C608 00378268 90 1E 03 6C */ stw r0, 0x36c(r30) /* 8037C60C 0037826C 90 1E 03 70 */ stw r0, 0x370(r30) /* 8037C610 00378270 90 1E 03 78 */ stw r0, 0x378(r30) /* 8037C614 00378274 90 DE 03 7C */ stw r6, 0x37c(r30) /* 8037C618 00378278 90 DE 03 80 */ stw r6, 0x380(r30) /* 8037C61C 0037827C 90 1E 03 84 */ stw r0, 0x384(r30) /* 8037C620 00378280 90 FE 03 88 */ stw r7, 0x388(r30) /* 8037C624 00378284 90 FE 03 8C */ stw r7, 0x38c(r30) /* 8037C628 00378288 98 1E 03 94 */ stb r0, 0x394(r30) /* 8037C62C 0037828C 4B EF 28 CD */ bl OSInitMessageQueue /* 8037C630 00378290 38 7E 03 18 */ addi r3, r30, 0x318 /* 8037C634 00378294 4B EF 4C B5 */ bl OSInitThreadQueue /* 8037C638 00378298 38 7E 03 54 */ addi r3, r30, 0x354 /* 8037C63C 0037829C 4B EF 32 D5 */ bl OSInitMutex /* 8037C640 003782A0 3C 80 80 38 */ lis r4, __dt__Q44nw4r3snd6detail11SoundThreadFv@ha /* 8037C644 003782A4 3C A0 80 64 */ lis r5, lbl_806389B0@ha /* 8037C648 003782A8 7F C3 F3 78 */ mr r3, r30 /* 8037C64C 003782AC 38 84 C5 14 */ addi r4, r4, __dt__Q44nw4r3snd6detail11SoundThreadFv@l /* 8037C650 003782B0 38 A5 89 B0 */ addi r5, r5, lbl_806389B0@l /* 8037C654 003782B4 4B E4 A5 F5 */ bl __register_global_object_tmp /* 8037C658 003782B8 9B ED B2 78 */ stb r31, lbl_80640538-_SDA_BASE_(r13) lbl_8037C65C: /* 8037C65C 003782BC 3C 80 80 38 */ lis r4, SoundThreadFunc__Q44nw4r3snd6detail11SoundThreadFPv@ha /* 8037C660 003782C0 3C A0 80 64 */ lis r5, lbl_806389C0@ha /* 8037C664 003782C4 7F 43 D3 78 */ mr r3, r26 /* 8037C668 003782C8 7F A7 EB 78 */ mr r7, r29 /* 8037C66C 003782CC 7F 68 DB 78 */ mr r8, r27 /* 8037C670 003782D0 38 84 C7 C8 */ addi r4, r4, SoundThreadFunc__Q44nw4r3snd6detail11SoundThreadFPv@l /* 8037C674 003782D4 38 A5 89 C0 */ addi r5, r5, lbl_806389C0@l /* 8037C678 003782D8 7C DC EA 14 */ add r6, r28, r29 /* 8037C67C 003782DC 39 20 00 00 */ li r9, 0 /* 8037C680 003782E0 4B EF 52 61 */ bl OSCreateThread /* 8037C684 003782E4 2C 03 00 00 */ cmpwi r3, 0 /* 8037C688 003782E8 7C 7F 1B 78 */ mr r31, r3 /* 8037C68C 003782EC 41 82 00 0C */ beq lbl_8037C698 /* 8037C690 003782F0 7F 43 D3 78 */ mr r3, r26 /* 8037C694 003782F4 4B EF 58 B5 */ bl OSResumeThread lbl_8037C698: /* 8037C698 003782F8 7C 1F 00 D0 */ neg r0, r31 /* 8037C69C 003782FC 7C 00 FB 78 */ or r0, r0, r31 /* 8037C6A0 00378300 54 03 0F FE */ srwi r3, r0, 0x1f lbl_8037C6A4: /* 8037C6A4 00378304 39 61 00 20 */ addi r11, r1, 0x20 /* 8037C6A8 00378308 4B E4 AA C9 */ bl _restgpr_26 /* 8037C6AC 0037830C 80 01 00 24 */ lwz r0, 0x24(r1) /* 8037C6B0 00378310 7C 08 03 A6 */ mtlr r0 /* 8037C6B4 00378314 38 21 00 20 */ addi r1, r1, 0x20 /* 8037C6B8 00378318 4E 80 00 20 */ blr .global AxCallbackFunc__Q44nw4r3snd6detail11SoundThreadFv AxCallbackFunc__Q44nw4r3snd6detail11SoundThreadFv: /* 8037C6BC 0037831C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8037C6C0 00378320 7C 08 02 A6 */ mflr r0 /* 8037C6C4 00378324 90 01 00 14 */ stw r0, 0x14(r1) /* 8037C6C8 00378328 93 E1 00 0C */ stw r31, 0xc(r1) /* 8037C6CC 0037832C 93 C1 00 08 */ stw r30, 8(r1) /* 8037C6D0 00378330 88 0D B2 78 */ lbz r0, lbl_80640538-_SDA_BASE_(r13) /* 8037C6D4 00378334 7C 00 07 75 */ extsb. r0, r0 /* 8037C6D8 00378338 40 82 00 90 */ bne lbl_8037C768 /* 8037C6DC 0037833C 3F C0 80 64 */ lis r30, lbl_806389C0@ha /* 8037C6E0 00378340 38 00 00 00 */ li r0, 0 /* 8037C6E4 00378344 3B DE 89 C0 */ addi r30, r30, lbl_806389C0@l /* 8037C6E8 00378348 38 A0 00 04 */ li r5, 4 /* 8037C6EC 0037834C 90 1E 03 7C */ stw r0, 0x37c(r30) /* 8037C6F0 00378350 38 DE 03 7C */ addi r6, r30, 0x37c /* 8037C6F4 00378354 38 FE 03 88 */ addi r7, r30, 0x388 /* 8037C6F8 00378358 38 7E 03 20 */ addi r3, r30, 0x320 /* 8037C6FC 0037835C 90 1E 03 80 */ stw r0, 0x380(r30) /* 8037C700 00378360 38 9E 03 40 */ addi r4, r30, 0x340 /* 8037C704 00378364 90 1E 03 88 */ stw r0, 0x388(r30) /* 8037C708 00378368 90 1E 03 8C */ stw r0, 0x38c(r30) /* 8037C70C 0037836C 90 1E 03 50 */ stw r0, 0x350(r30) /* 8037C710 00378370 90 1E 03 6C */ stw r0, 0x36c(r30) /* 8037C714 00378374 90 1E 03 70 */ stw r0, 0x370(r30) /* 8037C718 00378378 90 1E 03 78 */ stw r0, 0x378(r30) /* 8037C71C 0037837C 90 DE 03 7C */ stw r6, 0x37c(r30) /* 8037C720 00378380 90 DE 03 80 */ stw r6, 0x380(r30) /* 8037C724 00378384 90 1E 03 84 */ stw r0, 0x384(r30) /* 8037C728 00378388 90 FE 03 88 */ stw r7, 0x388(r30) /* 8037C72C 0037838C 90 FE 03 8C */ stw r7, 0x38c(r30) /* 8037C730 00378390 98 1E 03 94 */ stb r0, 0x394(r30) /* 8037C734 00378394 4B EF 27 C5 */ bl OSInitMessageQueue /* 8037C738 00378398 38 7E 03 18 */ addi r3, r30, 0x318 /* 8037C73C 0037839C 4B EF 4B AD */ bl OSInitThreadQueue /* 8037C740 003783A0 38 7E 03 54 */ addi r3, r30, 0x354 /* 8037C744 003783A4 4B EF 31 CD */ bl OSInitMutex /* 8037C748 003783A8 3C 80 80 38 */ lis r4, __dt__Q44nw4r3snd6detail11SoundThreadFv@ha /* 8037C74C 003783AC 3C A0 80 64 */ lis r5, lbl_806389B0@ha /* 8037C750 003783B0 7F C3 F3 78 */ mr r3, r30 /* 8037C754 003783B4 38 84 C5 14 */ addi r4, r4, __dt__Q44nw4r3snd6detail11SoundThreadFv@l /* 8037C758 003783B8 38 A5 89 B0 */ addi r5, r5, lbl_806389B0@l /* 8037C75C 003783BC 4B E4 A4 ED */ bl __register_global_object_tmp /* 8037C760 003783C0 38 00 00 01 */ li r0, 1 /* 8037C764 003783C4 98 0D B2 78 */ stb r0, lbl_80640538-_SDA_BASE_(r13) lbl_8037C768: /* 8037C768 003783C8 3F C0 80 64 */ lis r30, lbl_806389C0@ha /* 8037C76C 003783CC 38 80 00 01 */ li r4, 1 /* 8037C770 003783D0 3B DE 89 C0 */ addi r30, r30, lbl_806389C0@l /* 8037C774 003783D4 38 A0 00 00 */ li r5, 0 /* 8037C778 003783D8 38 7E 03 20 */ addi r3, r30, 0x320 /* 8037C77C 003783DC 4B EF 27 DD */ bl OSSendMessage /* 8037C780 003783E0 87 FE 03 88 */ lwzu r31, 0x388(r30) /* 8037C784 003783E4 48 00 00 1C */ b lbl_8037C7A0 lbl_8037C788: /* 8037C788 003783E8 7F E3 FB 78 */ mr r3, r31 /* 8037C78C 003783EC 83 FF 00 00 */ lwz r31, 0(r31) /* 8037C790 003783F0 81 83 00 08 */ lwz r12, 8(r3) /* 8037C794 003783F4 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8037C798 003783F8 7D 89 03 A6 */ mtctr r12 /* 8037C79C 003783FC 4E 80 04 21 */ bctrl lbl_8037C7A0: /* 8037C7A0 00378400 7C 1F F0 40 */ cmplw r31, r30 /* 8037C7A4 00378404 40 82 FF E4 */ bne lbl_8037C788 /* 8037C7A8 00378408 48 00 61 59 */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv /* 8037C7AC 0037840C 48 00 66 1D */ bl NotifyVoiceUpdate__Q44nw4r3snd6detail12VoiceManagerFv /* 8037C7B0 00378410 80 01 00 14 */ lwz r0, 0x14(r1) /* 8037C7B4 00378414 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8037C7B8 00378418 83 C1 00 08 */ lwz r30, 8(r1) /* 8037C7BC 0037841C 7C 08 03 A6 */ mtlr r0 /* 8037C7C0 00378420 38 21 00 10 */ addi r1, r1, 0x10 /* 8037C7C4 00378424 4E 80 00 20 */ blr .global SoundThreadFunc__Q44nw4r3snd6detail11SoundThreadFPv SoundThreadFunc__Q44nw4r3snd6detail11SoundThreadFPv: /* 8037C7C8 00378428 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8037C7CC 0037842C 7C 08 02 A6 */ mflr r0 /* 8037C7D0 00378430 90 01 00 14 */ stw r0, 0x14(r1) /* 8037C7D4 00378434 93 E1 00 0C */ stw r31, 0xc(r1) /* 8037C7D8 00378438 7C 7F 1B 78 */ mr r31, r3 /* 8037C7DC 0037843C 4B FE BC E9 */ bl GetInstance__Q44nw4r3snd6detail9AxManagerFv /* 8037C7E0 00378440 3C A0 80 38 */ lis r5, AxCallbackFunc__Q44nw4r3snd6detail11SoundThreadFv@ha /* 8037C7E4 00378444 38 9F 03 6C */ addi r4, r31, 0x36c /* 8037C7E8 00378448 38 A5 C6 BC */ addi r5, r5, AxCallbackFunc__Q44nw4r3snd6detail11SoundThreadFv@l /* 8037C7EC 0037844C 4B FE C3 29 */ bl RegisterCallback__Q44nw4r3snd6detail9AxManagerFPQ54nw4r3snd6detail9AxManager16CallbackListNodePFv_v /* 8037C7F0 00378450 7F E3 FB 78 */ mr r3, r31 /* 8037C7F4 00378454 48 00 00 E5 */ bl SoundThreadProc__Q44nw4r3snd6detail11SoundThreadFv /* 8037C7F8 00378458 4B FE BC CD */ bl GetInstance__Q44nw4r3snd6detail9AxManagerFv /* 8037C7FC 0037845C 38 9F 03 6C */ addi r4, r31, 0x36c /* 8037C800 00378460 4B FE C3 81 */ bl UnregisterCallback__Q44nw4r3snd6detail9AxManagerFPQ54nw4r3snd6detail9AxManager16CallbackListNode /* 8037C804 00378464 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8037C808 00378468 38 60 00 00 */ li r3, 0 /* 8037C80C 0037846C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8037C810 00378470 7C 08 03 A6 */ mtlr r0 /* 8037C814 00378474 38 21 00 10 */ addi r1, r1, 0x10 /* 8037C818 00378478 4E 80 00 20 */ blr .global RegisterPlayerCallback__Q44nw4r3snd6detail11SoundThreadFPQ54nw4r3snd6detail11SoundThread14PlayerCallback RegisterPlayerCallback__Q44nw4r3snd6detail11SoundThreadFPQ54nw4r3snd6detail11SoundThread14PlayerCallback: /* 8037C81C 0037847C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8037C820 00378480 7C 08 02 A6 */ mflr r0 /* 8037C824 00378484 90 01 00 24 */ stw r0, 0x24(r1) /* 8037C828 00378488 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8037C82C 0037848C 93 C1 00 18 */ stw r30, 0x18(r1) /* 8037C830 00378490 7C 9E 23 78 */ mr r30, r4 /* 8037C834 00378494 93 A1 00 14 */ stw r29, 0x14(r1) /* 8037C838 00378498 7C 7D 1B 78 */ mr r29, r3 /* 8037C83C 0037849C 4B EF 1F 21 */ bl OSDisableInterrupts /* 8037C840 003784A0 38 1D 03 88 */ addi r0, r29, 0x388 /* 8037C844 003784A4 7C 7F 1B 78 */ mr r31, r3 /* 8037C848 003784A8 90 01 00 08 */ stw r0, 8(r1) /* 8037C84C 003784AC 7F C5 F3 78 */ mr r5, r30 /* 8037C850 003784B0 38 7D 03 84 */ addi r3, r29, 0x384 /* 8037C854 003784B4 38 81 00 08 */ addi r4, r1, 8 /* 8037C858 003784B8 4B FE 63 F1 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode /* 8037C85C 003784BC 7F E3 FB 78 */ mr r3, r31 /* 8037C860 003784C0 4B EF 1F 25 */ bl OSRestoreInterrupts /* 8037C864 003784C4 80 01 00 24 */ lwz r0, 0x24(r1) /* 8037C868 003784C8 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8037C86C 003784CC 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8037C870 003784D0 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8037C874 003784D4 7C 08 03 A6 */ mtlr r0 /* 8037C878 003784D8 38 21 00 20 */ addi r1, r1, 0x20 /* 8037C87C 003784DC 4E 80 00 20 */ blr .global UnregisterPlayerCallback__Q44nw4r3snd6detail11SoundThreadFPQ54nw4r3snd6detail11SoundThread14PlayerCallback UnregisterPlayerCallback__Q44nw4r3snd6detail11SoundThreadFPQ54nw4r3snd6detail11SoundThread14PlayerCallback: /* 8037C880 003784E0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8037C884 003784E4 7C 08 02 A6 */ mflr r0 /* 8037C888 003784E8 90 01 00 24 */ stw r0, 0x24(r1) /* 8037C88C 003784EC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8037C890 003784F0 93 C1 00 18 */ stw r30, 0x18(r1) /* 8037C894 003784F4 7C 9E 23 78 */ mr r30, r4 /* 8037C898 003784F8 93 A1 00 14 */ stw r29, 0x14(r1) /* 8037C89C 003784FC 7C 7D 1B 78 */ mr r29, r3 /* 8037C8A0 00378500 4B EF 1E BD */ bl OSDisableInterrupts /* 8037C8A4 00378504 7C 7F 1B 78 */ mr r31, r3 /* 8037C8A8 00378508 7F C4 F3 78 */ mr r4, r30 /* 8037C8AC 0037850C 38 7D 03 84 */ addi r3, r29, 0x384 /* 8037C8B0 00378510 4B FE 63 C5 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode /* 8037C8B4 00378514 7F E3 FB 78 */ mr r3, r31 /* 8037C8B8 00378518 4B EF 1E CD */ bl OSRestoreInterrupts /* 8037C8BC 0037851C 80 01 00 24 */ lwz r0, 0x24(r1) /* 8037C8C0 00378520 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8037C8C4 00378524 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8037C8C8 00378528 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8037C8CC 0037852C 7C 08 03 A6 */ mtlr r0 /* 8037C8D0 00378530 38 21 00 20 */ addi r1, r1, 0x20 /* 8037C8D4 00378534 4E 80 00 20 */ blr .global SoundThreadProc__Q44nw4r3snd6detail11SoundThreadFv SoundThreadProc__Q44nw4r3snd6detail11SoundThreadFv: /* 8037C8D8 00378538 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8037C8DC 0037853C 7C 08 02 A6 */ mflr r0 /* 8037C8E0 00378540 90 01 00 34 */ stw r0, 0x34(r1) /* 8037C8E4 00378544 39 61 00 30 */ addi r11, r1, 0x30 /* 8037C8E8 00378548 4B E4 A8 39 */ bl _savegpr_25 /* 8037C8EC 0037854C 7C 7F 1B 78 */ mr r31, r3 lbl_8037C8F0: /* 8037C8F0 00378550 38 7F 03 20 */ addi r3, r31, 0x320 /* 8037C8F4 00378554 38 81 00 08 */ addi r4, r1, 8 /* 8037C8F8 00378558 38 A0 00 01 */ li r5, 1 /* 8037C8FC 0037855C 4B EF 27 25 */ bl OSReceiveMessage /* 8037C900 00378560 80 01 00 08 */ lwz r0, 8(r1) /* 8037C904 00378564 28 00 00 01 */ cmplwi r0, 1 /* 8037C908 00378568 40 82 01 50 */ bne lbl_8037CA58 /* 8037C90C 0037856C 3B 5F 03 54 */ addi r26, r31, 0x354 /* 8037C910 00378570 7F 43 D3 78 */ mr r3, r26 /* 8037C914 00378574 4B EF 30 35 */ bl OSLockMutex /* 8037C918 00378578 4B EF 1E 45 */ bl OSDisableInterrupts /* 8037C91C 0037857C 7C 79 1B 78 */ mr r25, r3 /* 8037C920 00378580 4B EF 1E 3D */ bl OSDisableInterrupts /* 8037C924 00378584 83 BF 03 7C */ lwz r29, 0x37c(r31) /* 8037C928 00378588 7C 7E 1B 78 */ mr r30, r3 /* 8037C92C 0037858C 3B 9F 03 7C */ addi r28, r31, 0x37c /* 8037C930 00378590 48 00 00 30 */ b lbl_8037C960 lbl_8037C934: /* 8037C934 00378594 7F BB EB 78 */ mr r27, r29 /* 8037C938 00378598 83 BD 00 00 */ lwz r29, 0(r29) /* 8037C93C 0037859C 7F 23 CB 78 */ mr r3, r25 /* 8037C940 003785A0 4B EF 1E 45 */ bl OSRestoreInterrupts /* 8037C944 003785A4 81 9B 00 08 */ lwz r12, 8(r27) /* 8037C948 003785A8 7F 63 DB 78 */ mr r3, r27 /* 8037C94C 003785AC 81 8C 00 0C */ lwz r12, 0xc(r12) /* 8037C950 003785B0 7D 89 03 A6 */ mtctr r12 /* 8037C954 003785B4 4E 80 04 21 */ bctrl /* 8037C958 003785B8 4B EF 1E 05 */ bl OSDisableInterrupts /* 8037C95C 003785BC 7C 79 1B 78 */ mr r25, r3 lbl_8037C960: /* 8037C960 003785C0 7C 1D E0 40 */ cmplw r29, r28 /* 8037C964 003785C4 40 82 FF D0 */ bne lbl_8037C934 /* 8037C968 003785C8 7F 23 CB 78 */ mr r3, r25 /* 8037C96C 003785CC 4B EF 1E 19 */ bl OSRestoreInterrupts /* 8037C970 003785D0 7F C3 F3 78 */ mr r3, r30 /* 8037C974 003785D4 4B EF 1E 11 */ bl OSRestoreInterrupts /* 8037C978 003785D8 4B EF 5E 59 */ bl OSGetTick /* 8037C97C 003785DC 7C 7B 1B 78 */ mr r27, r3 /* 8037C980 003785E0 4B FE F6 25 */ bl GetInstance__Q44nw4r3snd6detail14AxVoiceManagerFv /* 8037C984 003785E4 4B FE FB E1 */ bl FreeAllReservedAxVoice__Q44nw4r3snd6detail14AxVoiceManagerFv /* 8037C988 003785E8 4B FE BB 3D */ bl GetInstance__Q44nw4r3snd6detail9AxManagerFv /* 8037C98C 003785EC 4B FE BD 55 */ bl Update__Q44nw4r3snd6detail9AxManagerFv /* 8037C990 003785F0 4B FE BB 35 */ bl GetInstance__Q44nw4r3snd6detail9AxManagerFv /* 8037C994 003785F4 88 03 00 1A */ lbz r0, 0x1a(r3) /* 8037C998 003785F8 2C 00 00 00 */ cmpwi r0, 0 /* 8037C99C 003785FC 40 82 00 4C */ bne lbl_8037C9E8 /* 8037C9A0 00378600 4B EF 1D BD */ bl OSDisableInterrupts /* 8037C9A4 00378604 83 9F 03 88 */ lwz r28, 0x388(r31) /* 8037C9A8 00378608 3B BF 03 88 */ addi r29, r31, 0x388 /* 8037C9AC 0037860C 48 00 00 28 */ b lbl_8037C9D4 lbl_8037C9B0: /* 8037C9B0 00378610 7F 9E E3 78 */ mr r30, r28 /* 8037C9B4 00378614 83 9C 00 00 */ lwz r28, 0(r28) /* 8037C9B8 00378618 4B EF 1D CD */ bl OSRestoreInterrupts /* 8037C9BC 0037861C 81 9E 00 08 */ lwz r12, 8(r30) /* 8037C9C0 00378620 7F C3 F3 78 */ mr r3, r30 /* 8037C9C4 00378624 81 8C 00 0C */ lwz r12, 0xc(r12) /* 8037C9C8 00378628 7D 89 03 A6 */ mtctr r12 /* 8037C9CC 0037862C 4E 80 04 21 */ bctrl /* 8037C9D0 00378630 4B EF 1D 8D */ bl OSDisableInterrupts lbl_8037C9D4: /* 8037C9D4 00378634 7C 1C E8 40 */ cmplw r28, r29 /* 8037C9D8 00378638 40 82 FF D8 */ bne lbl_8037C9B0 /* 8037C9DC 0037863C 4B EF 1D A9 */ bl OSRestoreInterrupts /* 8037C9E0 00378640 4B FF 17 B9 */ bl GetInstance__Q44nw4r3snd6detail14ChannelManagerFv /* 8037C9E4 00378644 4B FF 19 61 */ bl __ct__Q44nw4r3snd6detail7ChannelFv lbl_8037C9E8: /* 8037C9E8 00378648 48 00 69 DD */ bl CalcRandom__Q44nw4r3snd6detail4UtilFv /* 8037C9EC 0037864C 48 00 5F 15 */ bl GetInstance__Q44nw4r3snd6detail12VoiceManagerFv /* 8037C9F0 00378650 48 00 63 29 */ bl UpdateAllVoices__Q44nw4r3snd6detail12VoiceManagerFv /* 8037C9F4 00378654 4B EF 5D DD */ bl OSGetTick /* 8037C9F8 00378658 7C 1B 18 50 */ subf r0, r27, r3 /* 8037C9FC 0037865C 90 1F 03 90 */ stw r0, 0x390(r31) /* 8037CA00 00378660 4B EF 1D 5D */ bl OSDisableInterrupts /* 8037CA04 00378664 83 9F 03 7C */ lwz r28, 0x37c(r31) /* 8037CA08 00378668 7C 79 1B 78 */ mr r25, r3 /* 8037CA0C 0037866C 3B BF 03 7C */ addi r29, r31, 0x37c /* 8037CA10 00378670 48 00 00 2C */ b lbl_8037CA3C lbl_8037CA14: /* 8037CA14 00378674 7F 9E E3 78 */ mr r30, r28 /* 8037CA18 00378678 83 9C 00 00 */ lwz r28, 0(r28) /* 8037CA1C 0037867C 7F 23 CB 78 */ mr r3, r25 /* 8037CA20 00378680 4B EF 1D 65 */ bl OSRestoreInterrupts /* 8037CA24 00378684 81 9E 00 08 */ lwz r12, 8(r30) /* 8037CA28 00378688 7F C3 F3 78 */ mr r3, r30 /* 8037CA2C 0037868C 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8037CA30 00378690 7D 89 03 A6 */ mtctr r12 /* 8037CA34 00378694 4E 80 04 21 */ bctrl /* 8037CA38 00378698 4B EF 1D 25 */ bl OSDisableInterrupts lbl_8037CA3C: /* 8037CA3C 0037869C 7C 1C E8 40 */ cmplw r28, r29 /* 8037CA40 003786A0 40 82 FF D4 */ bne lbl_8037CA14 /* 8037CA44 003786A4 7F 23 CB 78 */ mr r3, r25 /* 8037CA48 003786A8 4B EF 1D 3D */ bl OSRestoreInterrupts /* 8037CA4C 003786AC 7F 43 D3 78 */ mr r3, r26 /* 8037CA50 003786B0 4B EF 2F D5 */ bl OSUnlockMutex /* 8037CA54 003786B4 4B FF FE 9C */ b lbl_8037C8F0 lbl_8037CA58: /* 8037CA58 003786B8 28 00 00 02 */ cmplwi r0, 2 /* 8037CA5C 003786BC 40 82 FE 94 */ bne lbl_8037C8F0 /* 8037CA60 003786C0 4B EF 1C FD */ bl OSDisableInterrupts /* 8037CA64 003786C4 83 9F 03 88 */ lwz r28, 0x388(r31) /* 8037CA68 003786C8 7C 79 1B 78 */ mr r25, r3 /* 8037CA6C 003786CC 3B BF 03 88 */ addi r29, r31, 0x388 /* 8037CA70 003786D0 48 00 00 2C */ b lbl_8037CA9C lbl_8037CA74: /* 8037CA74 003786D4 7F 9E E3 78 */ mr r30, r28 /* 8037CA78 003786D8 83 9C 00 00 */ lwz r28, 0(r28) /* 8037CA7C 003786DC 7F 23 CB 78 */ mr r3, r25 /* 8037CA80 003786E0 4B EF 1D 05 */ bl OSRestoreInterrupts /* 8037CA84 003786E4 81 9E 00 08 */ lwz r12, 8(r30) /* 8037CA88 003786E8 7F C3 F3 78 */ mr r3, r30 /* 8037CA8C 003786EC 81 8C 00 14 */ lwz r12, 0x14(r12) /* 8037CA90 003786F0 7D 89 03 A6 */ mtctr r12 /* 8037CA94 003786F4 4E 80 04 21 */ bctrl /* 8037CA98 003786F8 4B EF 1C C5 */ bl OSDisableInterrupts lbl_8037CA9C: /* 8037CA9C 003786FC 7C 1C E8 40 */ cmplw r28, r29 /* 8037CAA0 00378700 40 82 FF D4 */ bne lbl_8037CA74 /* 8037CAA4 00378704 7F 23 CB 78 */ mr r3, r25 /* 8037CAA8 00378708 4B EF 1C DD */ bl OSRestoreInterrupts /* 8037CAAC 0037870C 39 61 00 30 */ addi r11, r1, 0x30 /* 8037CAB0 00378710 4B E4 A6 BD */ bl _restgpr_25 /* 8037CAB4 00378714 80 01 00 34 */ lwz r0, 0x34(r1) /* 8037CAB8 00378718 7C 08 03 A6 */ mtlr r0 /* 8037CABC 0037871C 38 21 00 30 */ addi r1, r1, 0x30 /* 8037CAC0 00378720 4E 80 00 20 */ blr