.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global __ct__Q44nw4r3snd6detail9WsdPlayerFv __ct__Q44nw4r3snd6detail9WsdPlayerFv: /* 80383D24 0037F984 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80383D28 0037F988 7C 08 02 A6 */ mflr r0 /* 80383D2C 0037F98C 90 01 00 14 */ stw r0, 0x14(r1) /* 80383D30 0037F990 93 E1 00 0C */ stw r31, 0xc(r1) /* 80383D34 0037F994 7C 7F 1B 78 */ mr r31, r3 /* 80383D38 0037F998 4B FE 91 4D */ bl __ct__Q44nw4r3snd6detail11BasicPlayerFv /* 80383D3C 0037F99C 3C A0 80 45 */ lis r5, lbl_8044D0C0@ha /* 80383D40 0037F9A0 38 C0 00 00 */ li r6, 0 /* 80383D44 0037F9A4 38 A5 D0 C0 */ addi r5, r5, lbl_8044D0C0@l /* 80383D48 0037F9A8 90 DF 00 74 */ stw r6, 0x74(r31) /* 80383D4C 0037F9AC 38 85 00 24 */ addi r4, r5, 0x24 /* 80383D50 0037F9B0 38 7F 00 D0 */ addi r3, r31, 0xd0 /* 80383D54 0037F9B4 38 05 00 38 */ addi r0, r5, 0x38 /* 80383D58 0037F9B8 90 DF 00 78 */ stw r6, 0x78(r31) /* 80383D5C 0037F9BC 90 DF 00 80 */ stw r6, 0x80(r31) /* 80383D60 0037F9C0 90 DF 00 84 */ stw r6, 0x84(r31) /* 80383D64 0037F9C4 90 BF 00 00 */ stw r5, 0(r31) /* 80383D68 0037F9C8 90 9F 00 7C */ stw r4, 0x7c(r31) /* 80383D6C 0037F9CC 90 1F 00 88 */ stw r0, 0x88(r31) /* 80383D70 0037F9D0 98 DF 00 8C */ stb r6, 0x8c(r31) /* 80383D74 0037F9D4 4B FE DE 89 */ bl Init__Q44nw4r3snd6detail8LfoParamFv /* 80383D78 0037F9D8 38 7F 00 A8 */ addi r3, r31, 0xa8 /* 80383D7C 0037F9DC 4B EE BB 95 */ bl OSInitMutex /* 80383D80 0037F9E0 7F E3 FB 78 */ mr r3, r31 /* 80383D84 0037F9E4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80383D88 0037F9E8 80 01 00 14 */ lwz r0, 0x14(r1) /* 80383D8C 0037F9EC 7C 08 03 A6 */ mtlr r0 /* 80383D90 0037F9F0 38 21 00 10 */ addi r1, r1, 0x10 /* 80383D94 0037F9F4 4E 80 00 20 */ blr .global InitParam__Q44nw4r3snd6detail9WsdPlayerFiPCQ54nw4r3snd6detail9WsdPlayer11WsdCallbackUl InitParam__Q44nw4r3snd6detail9WsdPlayerFiPCQ54nw4r3snd6detail9WsdPlayer11WsdCallbackUl: /* 80383D98 0037F9F8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80383D9C 0037F9FC 7C 08 02 A6 */ mflr r0 /* 80383DA0 0037FA00 90 01 00 24 */ stw r0, 0x24(r1) /* 80383DA4 0037FA04 39 61 00 20 */ addi r11, r1, 0x20 /* 80383DA8 0037FA08 4B E4 33 81 */ bl _savegpr_27 /* 80383DAC 0037FA0C 7C 7B 1B 78 */ mr r27, r3 /* 80383DB0 0037FA10 7C 9C 23 78 */ mr r28, r4 /* 80383DB4 0037FA14 7C BD 2B 78 */ mr r29, r5 /* 80383DB8 0037FA18 7C DE 33 78 */ mr r30, r6 /* 80383DBC 0037FA1C 4B FE 91 0D */ bl InitParam__Q44nw4r3snd6detail11BasicPlayerFv /* 80383DC0 0037FA20 C0 02 A7 F8 */ lfs f0, lbl_80642DF8-_SDA2_BASE_(r2) /* 80383DC4 0037FA24 3B E0 00 00 */ li r31, 0 /* 80383DC8 0037FA28 38 A0 00 40 */ li r5, 0x40 /* 80383DCC 0037FA2C 38 80 FF FF */ li r4, -1 /* 80383DD0 0037FA30 38 00 00 7F */ li r0, 0x7f /* 80383DD4 0037FA34 9B FB 00 8D */ stb r31, 0x8d(r27) /* 80383DD8 0037FA38 38 7B 00 D0 */ addi r3, r27, 0xd0 /* 80383DDC 0037FA3C 9B FB 00 8E */ stb r31, 0x8e(r27) /* 80383DE0 0037FA40 9B FB 00 90 */ stb r31, 0x90(r27) /* 80383DE4 0037FA44 D0 1B 00 94 */ stfs f0, 0x94(r27) /* 80383DE8 0037FA48 93 9B 00 98 */ stw r28, 0x98(r27) /* 80383DEC 0037FA4C 98 BB 00 9C */ stb r5, 0x9c(r27) /* 80383DF0 0037FA50 93 BB 00 A0 */ stw r29, 0xa0(r27) /* 80383DF4 0037FA54 93 DB 00 A4 */ stw r30, 0xa4(r27) /* 80383DF8 0037FA58 93 FB 00 C0 */ stw r31, 0xc0(r27) /* 80383DFC 0037FA5C 90 9B 00 C4 */ stw r4, 0xc4(r27) /* 80383E00 0037FA60 D0 1B 00 E0 */ stfs f0, 0xe0(r27) /* 80383E04 0037FA64 98 BB 00 E4 */ stb r5, 0xe4(r27) /* 80383E08 0037FA68 9B FB 00 E5 */ stb r31, 0xe5(r27) /* 80383E0C 0037FA6C 9B FB 00 E6 */ stb r31, 0xe6(r27) /* 80383E10 0037FA70 9B FB 00 E7 */ stb r31, 0xe7(r27) /* 80383E14 0037FA74 9B FB 00 E8 */ stb r31, 0xe8(r27) /* 80383E18 0037FA78 98 1B 00 E9 */ stb r0, 0xe9(r27) /* 80383E1C 0037FA7C 4B FE DD E1 */ bl Init__Q44nw4r3snd6detail8LfoParamFv /* 80383E20 0037FA80 9B FB 00 8F */ stb r31, 0x8f(r27) /* 80383E24 0037FA84 39 61 00 20 */ addi r11, r1, 0x20 /* 80383E28 0037FA88 93 FB 00 EC */ stw r31, 0xec(r27) /* 80383E2C 0037FA8C 4B E4 33 49 */ bl _restgpr_27 /* 80383E30 0037FA90 80 01 00 24 */ lwz r0, 0x24(r1) /* 80383E34 0037FA94 7C 08 03 A6 */ mtlr r0 /* 80383E38 0037FA98 38 21 00 20 */ addi r1, r1, 0x20 /* 80383E3C 0037FA9C 4E 80 00 20 */ blr .global Prepare__Q44nw4r3snd6detail9WsdPlayerFPCviQ54nw4r3snd6detail9WsdPlayer15StartOffsetTypeiiPCQ54nw4r3snd6detail9WsdPlayer11WsdCallbackUl Prepare__Q44nw4r3snd6detail9WsdPlayerFPCviQ54nw4r3snd6detail9WsdPlayer15StartOffsetTypeiiPCQ54nw4r3snd6detail9WsdPlayer11WsdCallbackUl: /* 80383E40 0037FAA0 94 21 FF C0 */ stwu r1, -0x40(r1) /* 80383E44 0037FAA4 7C 08 02 A6 */ mflr r0 /* 80383E48 0037FAA8 90 01 00 44 */ stw r0, 0x44(r1) /* 80383E4C 0037FAAC 39 61 00 40 */ addi r11, r1, 0x40 /* 80383E50 0037FAB0 4B E4 32 C1 */ bl _savegpr_21 /* 80383E54 0037FAB4 3B E3 00 A8 */ addi r31, r3, 0xa8 /* 80383E58 0037FAB8 7C 77 1B 78 */ mr r23, r3 /* 80383E5C 0037FABC 7C 98 23 78 */ mr r24, r4 /* 80383E60 0037FAC0 7C B9 2B 78 */ mr r25, r5 /* 80383E64 0037FAC4 7C DA 33 78 */ mr r26, r6 /* 80383E68 0037FAC8 7C FB 3B 78 */ mr r27, r7 /* 80383E6C 0037FACC 7D 1C 43 78 */ mr r28, r8 /* 80383E70 0037FAD0 7D 3D 4B 78 */ mr r29, r9 /* 80383E74 0037FAD4 7D 5E 53 78 */ mr r30, r10 /* 80383E78 0037FAD8 7F E3 FB 78 */ mr r3, r31 /* 80383E7C 0037FADC 4B EE BA CD */ bl OSLockMutex /* 80383E80 0037FAE0 88 17 00 8C */ lbz r0, 0x8c(r23) /* 80383E84 0037FAE4 2C 00 00 00 */ cmpwi r0, 0 /* 80383E88 0037FAE8 41 82 00 C8 */ beq lbl_80383F50 /* 80383E8C 0037FAEC 7F F6 FB 78 */ mr r22, r31 /* 80383E90 0037FAF0 7E C3 B3 78 */ mr r3, r22 /* 80383E94 0037FAF4 4B EE BA B5 */ bl OSLockMutex /* 80383E98 0037FAF8 88 17 00 8D */ lbz r0, 0x8d(r23) /* 80383E9C 0037FAFC 2C 00 00 00 */ cmpwi r0, 0 /* 80383EA0 0037FB00 41 82 00 28 */ beq lbl_80383EC8 /* 80383EA4 0037FB04 2C 17 00 00 */ cmpwi r23, 0 /* 80383EA8 0037FB08 7E F5 BB 78 */ mr r21, r23 /* 80383EAC 0037FB0C 41 82 00 08 */ beq lbl_80383EB4 /* 80383EB0 0037FB10 3A B7 00 80 */ addi r21, r23, 0x80 lbl_80383EB4: /* 80383EB4 0037FB14 4B FF 85 9D */ bl GetInstance__Q44nw4r3snd6detail11SoundThreadFv /* 80383EB8 0037FB18 7E A4 AB 78 */ mr r4, r21 /* 80383EBC 0037FB1C 4B FF 89 C5 */ bl UnregisterPlayerCallback__Q44nw4r3snd6detail11SoundThreadFPQ54nw4r3snd6detail11SoundThread14PlayerCallback /* 80383EC0 0037FB20 38 00 00 00 */ li r0, 0 /* 80383EC4 0037FB24 98 17 00 8D */ stb r0, 0x8d(r23) lbl_80383EC8: /* 80383EC8 0037FB28 88 17 00 8C */ lbz r0, 0x8c(r23) /* 80383ECC 0037FB2C 2C 00 00 00 */ cmpwi r0, 0 /* 80383ED0 0037FB30 41 82 00 28 */ beq lbl_80383EF8 /* 80383ED4 0037FB34 2C 17 00 00 */ cmpwi r23, 0 /* 80383ED8 0037FB38 7E F5 BB 78 */ mr r21, r23 /* 80383EDC 0037FB3C 41 82 00 08 */ beq lbl_80383EE4 /* 80383EE0 0037FB40 3A B7 00 74 */ addi r21, r23, 0x74 lbl_80383EE4: /* 80383EE4 0037FB44 4B FE B3 75 */ bl GetInstance__Q44nw4r3snd6detail22DisposeCallbackManagerFv /* 80383EE8 0037FB48 7E A4 AB 78 */ mr r4, r21 /* 80383EEC 0037FB4C 4B FE B4 C1 */ bl __ct__Q44nw4r3snd6detail22DisposeCallbackManagerFv /* 80383EF0 0037FB50 38 00 00 00 */ li r0, 0 /* 80383EF4 0037FB54 98 17 00 8C */ stb r0, 0x8c(r23) lbl_80383EF8: /* 80383EF8 0037FB58 80 97 00 EC */ lwz r4, 0xec(r23) /* 80383EFC 0037FB5C 38 60 00 00 */ li r3, 0 /* 80383F00 0037FB60 2C 04 00 00 */ cmpwi r4, 0 /* 80383F04 0037FB64 41 82 00 14 */ beq lbl_80383F18 /* 80383F08 0037FB68 88 04 00 32 */ lbz r0, 0x32(r4) /* 80383F0C 0037FB6C 2C 00 00 00 */ cmpwi r0, 0 /* 80383F10 0037FB70 41 82 00 08 */ beq lbl_80383F18 /* 80383F14 0037FB74 38 60 00 01 */ li r3, 1 lbl_80383F18: /* 80383F18 0037FB78 2C 03 00 00 */ cmpwi r3, 0 /* 80383F1C 0037FB7C 41 82 00 14 */ beq lbl_80383F30 /* 80383F20 0037FB80 7E E3 BB 78 */ mr r3, r23 /* 80383F24 0037FB84 48 00 08 55 */ bl UpdateChannel__Q44nw4r3snd6detail9WsdPlayerFv /* 80383F28 0037FB88 80 77 00 EC */ lwz r3, 0xec(r23) /* 80383F2C 0037FB8C 4B FE AD B5 */ bl Release__Q44nw4r3snd6detail7ChannelFv lbl_80383F30: /* 80383F30 0037FB90 80 77 00 EC */ lwz r3, 0xec(r23) /* 80383F34 0037FB94 2C 03 00 00 */ cmpwi r3, 0 /* 80383F38 0037FB98 41 82 00 08 */ beq lbl_80383F40 /* 80383F3C 0037FB9C 4B FE B3 05 */ bl FreeChannel__Q44nw4r3snd6detail7ChannelFPQ44nw4r3snd6detail7Channel lbl_80383F40: /* 80383F40 0037FBA0 38 00 00 00 */ li r0, 0 /* 80383F44 0037FBA4 7E C3 B3 78 */ mr r3, r22 /* 80383F48 0037FBA8 90 17 00 EC */ stw r0, 0xec(r23) /* 80383F4C 0037FBAC 4B EE BA D9 */ bl OSUnlockMutex lbl_80383F50: /* 80383F50 0037FBB0 7E E3 BB 78 */ mr r3, r23 /* 80383F54 0037FBB4 7F 84 E3 78 */ mr r4, r28 /* 80383F58 0037FBB8 7F A5 EB 78 */ mr r5, r29 /* 80383F5C 0037FBBC 7F C6 F3 78 */ mr r6, r30 /* 80383F60 0037FBC0 4B FF FE 39 */ bl InitParam__Q44nw4r3snd6detail9WsdPlayerFiPCQ54nw4r3snd6detail9WsdPlayer11WsdCallbackUl /* 80383F64 0037FBC4 2C 17 00 00 */ cmpwi r23, 0 /* 80383F68 0037FBC8 93 17 00 C0 */ stw r24, 0xc0(r23) /* 80383F6C 0037FBCC 7E F5 BB 78 */ mr r21, r23 /* 80383F70 0037FBD0 93 37 00 C4 */ stw r25, 0xc4(r23) /* 80383F74 0037FBD4 93 57 00 C8 */ stw r26, 0xc8(r23) /* 80383F78 0037FBD8 93 77 00 CC */ stw r27, 0xcc(r23) /* 80383F7C 0037FBDC 41 82 00 08 */ beq lbl_80383F84 /* 80383F80 0037FBE0 3A B7 00 74 */ addi r21, r23, 0x74 lbl_80383F84: /* 80383F84 0037FBE4 4B FE B2 D5 */ bl GetInstance__Q44nw4r3snd6detail22DisposeCallbackManagerFv /* 80383F88 0037FBE8 7E A4 AB 78 */ mr r4, r21 /* 80383F8C 0037FBEC 4B FE B3 C9 */ bl __dt__Q34nw4r2ut47LinkList$0Q44nw4r3snd6detail15DisposeCallback$40$1Fv /* 80383F90 0037FBF0 38 00 00 01 */ li r0, 1 /* 80383F94 0037FBF4 7F E3 FB 78 */ mr r3, r31 /* 80383F98 0037FBF8 98 17 00 8C */ stb r0, 0x8c(r23) /* 80383F9C 0037FBFC 4B EE BA 89 */ bl OSUnlockMutex /* 80383FA0 0037FC00 39 61 00 40 */ addi r11, r1, 0x40 /* 80383FA4 0037FC04 38 60 00 01 */ li r3, 1 /* 80383FA8 0037FC08 4B E4 31 B5 */ bl _restgpr_21 /* 80383FAC 0037FC0C 80 01 00 44 */ lwz r0, 0x44(r1) /* 80383FB0 0037FC10 7C 08 03 A6 */ mtlr r0 /* 80383FB4 0037FC14 38 21 00 40 */ addi r1, r1, 0x40 /* 80383FB8 0037FC18 4E 80 00 20 */ blr .global Start__Q44nw4r3snd6detail9WsdPlayerFv Start__Q44nw4r3snd6detail9WsdPlayerFv: /* 80383FBC 0037FC1C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80383FC0 0037FC20 7C 08 02 A6 */ mflr r0 /* 80383FC4 0037FC24 90 01 00 24 */ stw r0, 0x24(r1) /* 80383FC8 0037FC28 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80383FCC 0037FC2C 3B E3 00 A8 */ addi r31, r3, 0xa8 /* 80383FD0 0037FC30 93 C1 00 18 */ stw r30, 0x18(r1) /* 80383FD4 0037FC34 93 A1 00 14 */ stw r29, 0x14(r1) /* 80383FD8 0037FC38 7C 7D 1B 78 */ mr r29, r3 /* 80383FDC 0037FC3C 7F E3 FB 78 */ mr r3, r31 /* 80383FE0 0037FC40 4B EE B9 69 */ bl OSLockMutex /* 80383FE4 0037FC44 2C 1D 00 00 */ cmpwi r29, 0 /* 80383FE8 0037FC48 7F BE EB 78 */ mr r30, r29 /* 80383FEC 0037FC4C 41 82 00 08 */ beq lbl_80383FF4 /* 80383FF0 0037FC50 3B DD 00 80 */ addi r30, r29, 0x80 lbl_80383FF4: /* 80383FF4 0037FC54 4B FF 84 5D */ bl GetInstance__Q44nw4r3snd6detail11SoundThreadFv /* 80383FF8 0037FC58 7F C4 F3 78 */ mr r4, r30 /* 80383FFC 0037FC5C 4B FF 88 21 */ bl RegisterPlayerCallback__Q44nw4r3snd6detail11SoundThreadFPQ54nw4r3snd6detail11SoundThread14PlayerCallback /* 80384000 0037FC60 38 00 00 01 */ li r0, 1 /* 80384004 0037FC64 7F E3 FB 78 */ mr r3, r31 /* 80384008 0037FC68 98 1D 00 8D */ stb r0, 0x8d(r29) /* 8038400C 0037FC6C 4B EE BA 19 */ bl OSUnlockMutex /* 80384010 0037FC70 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80384014 0037FC74 38 60 00 01 */ li r3, 1 /* 80384018 0037FC78 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8038401C 0037FC7C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80384020 0037FC80 80 01 00 24 */ lwz r0, 0x24(r1) /* 80384024 0037FC84 7C 08 03 A6 */ mtlr r0 /* 80384028 0037FC88 38 21 00 20 */ addi r1, r1, 0x20 /* 8038402C 0037FC8C 4E 80 00 20 */ blr .global Stop__Q44nw4r3snd6detail9WsdPlayerFv Stop__Q44nw4r3snd6detail9WsdPlayerFv: /* 80384030 0037FC90 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80384034 0037FC94 7C 08 02 A6 */ mflr r0 /* 80384038 0037FC98 90 01 00 24 */ stw r0, 0x24(r1) /* 8038403C 0037FC9C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80384040 0037FCA0 3B E3 00 A8 */ addi r31, r3, 0xa8 /* 80384044 0037FCA4 93 C1 00 18 */ stw r30, 0x18(r1) /* 80384048 0037FCA8 93 A1 00 14 */ stw r29, 0x14(r1) /* 8038404C 0037FCAC 7C 7D 1B 78 */ mr r29, r3 /* 80384050 0037FCB0 7F E3 FB 78 */ mr r3, r31 /* 80384054 0037FCB4 4B EE B8 F5 */ bl OSLockMutex /* 80384058 0037FCB8 88 1D 00 8D */ lbz r0, 0x8d(r29) /* 8038405C 0037FCBC 2C 00 00 00 */ cmpwi r0, 0 /* 80384060 0037FCC0 41 82 00 28 */ beq lbl_80384088 /* 80384064 0037FCC4 2C 1D 00 00 */ cmpwi r29, 0 /* 80384068 0037FCC8 7F BE EB 78 */ mr r30, r29 /* 8038406C 0037FCCC 41 82 00 08 */ beq lbl_80384074 /* 80384070 0037FCD0 3B DD 00 80 */ addi r30, r29, 0x80 lbl_80384074: /* 80384074 0037FCD4 4B FF 83 DD */ bl GetInstance__Q44nw4r3snd6detail11SoundThreadFv /* 80384078 0037FCD8 7F C4 F3 78 */ mr r4, r30 /* 8038407C 0037FCDC 4B FF 88 05 */ bl UnregisterPlayerCallback__Q44nw4r3snd6detail11SoundThreadFPQ54nw4r3snd6detail11SoundThread14PlayerCallback /* 80384080 0037FCE0 38 00 00 00 */ li r0, 0 /* 80384084 0037FCE4 98 1D 00 8D */ stb r0, 0x8d(r29) lbl_80384088: /* 80384088 0037FCE8 88 1D 00 8C */ lbz r0, 0x8c(r29) /* 8038408C 0037FCEC 2C 00 00 00 */ cmpwi r0, 0 /* 80384090 0037FCF0 41 82 00 28 */ beq lbl_803840B8 /* 80384094 0037FCF4 2C 1D 00 00 */ cmpwi r29, 0 /* 80384098 0037FCF8 7F BE EB 78 */ mr r30, r29 /* 8038409C 0037FCFC 41 82 00 08 */ beq lbl_803840A4 /* 803840A0 0037FD00 3B DD 00 74 */ addi r30, r29, 0x74 lbl_803840A4: /* 803840A4 0037FD04 4B FE B1 B5 */ bl GetInstance__Q44nw4r3snd6detail22DisposeCallbackManagerFv /* 803840A8 0037FD08 7F C4 F3 78 */ mr r4, r30 /* 803840AC 0037FD0C 4B FE B3 01 */ bl __ct__Q44nw4r3snd6detail22DisposeCallbackManagerFv /* 803840B0 0037FD10 38 00 00 00 */ li r0, 0 /* 803840B4 0037FD14 98 1D 00 8C */ stb r0, 0x8c(r29) lbl_803840B8: /* 803840B8 0037FD18 80 9D 00 EC */ lwz r4, 0xec(r29) /* 803840BC 0037FD1C 38 60 00 00 */ li r3, 0 /* 803840C0 0037FD20 2C 04 00 00 */ cmpwi r4, 0 /* 803840C4 0037FD24 41 82 00 14 */ beq lbl_803840D8 /* 803840C8 0037FD28 88 04 00 32 */ lbz r0, 0x32(r4) /* 803840CC 0037FD2C 2C 00 00 00 */ cmpwi r0, 0 /* 803840D0 0037FD30 41 82 00 08 */ beq lbl_803840D8 /* 803840D4 0037FD34 38 60 00 01 */ li r3, 1 lbl_803840D8: /* 803840D8 0037FD38 2C 03 00 00 */ cmpwi r3, 0 /* 803840DC 0037FD3C 41 82 00 14 */ beq lbl_803840F0 /* 803840E0 0037FD40 7F A3 EB 78 */ mr r3, r29 /* 803840E4 0037FD44 48 00 06 95 */ bl UpdateChannel__Q44nw4r3snd6detail9WsdPlayerFv /* 803840E8 0037FD48 80 7D 00 EC */ lwz r3, 0xec(r29) /* 803840EC 0037FD4C 4B FE AB F5 */ bl Release__Q44nw4r3snd6detail7ChannelFv lbl_803840F0: /* 803840F0 0037FD50 80 7D 00 EC */ lwz r3, 0xec(r29) /* 803840F4 0037FD54 2C 03 00 00 */ cmpwi r3, 0 /* 803840F8 0037FD58 41 82 00 08 */ beq lbl_80384100 /* 803840FC 0037FD5C 4B FE B1 45 */ bl FreeChannel__Q44nw4r3snd6detail7ChannelFPQ44nw4r3snd6detail7Channel lbl_80384100: /* 80384100 0037FD60 38 00 00 00 */ li r0, 0 /* 80384104 0037FD64 7F E3 FB 78 */ mr r3, r31 /* 80384108 0037FD68 90 1D 00 EC */ stw r0, 0xec(r29) /* 8038410C 0037FD6C 4B EE B9 19 */ bl OSUnlockMutex /* 80384110 0037FD70 80 01 00 24 */ lwz r0, 0x24(r1) /* 80384114 0037FD74 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80384118 0037FD78 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8038411C 0037FD7C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80384120 0037FD80 7C 08 03 A6 */ mtlr r0 /* 80384124 0037FD84 38 21 00 20 */ addi r1, r1, 0x20 /* 80384128 0037FD88 4E 80 00 20 */ blr /* 8038412C 0037FD8C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80384130 0037FD90 7C 08 02 A6 */ mflr r0 /* 80384134 0037FD94 90 01 00 24 */ stw r0, 0x24(r1) /* 80384138 0037FD98 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8038413C 0037FD9C 3B E3 00 A8 */ addi r31, r3, 0xa8 /* 80384140 0037FDA0 93 C1 00 18 */ stw r30, 0x18(r1) /* 80384144 0037FDA4 7C 9E 23 78 */ mr r30, r4 /* 80384148 0037FDA8 93 A1 00 14 */ stw r29, 0x14(r1) /* 8038414C 0037FDAC 7C 7D 1B 78 */ mr r29, r3 /* 80384150 0037FDB0 7F E3 FB 78 */ mr r3, r31 /* 80384154 0037FDB4 4B EE B7 F5 */ bl OSLockMutex /* 80384158 0037FDB8 57 C3 06 3E */ clrlwi r3, r30, 0x18 /* 8038415C 0037FDBC 80 BD 00 EC */ lwz r5, 0xec(r29) /* 80384160 0037FDC0 7C 03 00 D0 */ neg r0, r3 /* 80384164 0037FDC4 38 80 00 00 */ li r4, 0 /* 80384168 0037FDC8 7C 00 1B 78 */ or r0, r0, r3 /* 8038416C 0037FDCC 2C 05 00 00 */ cmpwi r5, 0 /* 80384170 0037FDD0 54 00 0F FE */ srwi r0, r0, 0x1f /* 80384174 0037FDD4 98 1D 00 8E */ stb r0, 0x8e(r29) /* 80384178 0037FDD8 41 82 00 14 */ beq lbl_8038418C /* 8038417C 0037FDDC 88 05 00 32 */ lbz r0, 0x32(r5) /* 80384180 0037FDE0 2C 00 00 00 */ cmpwi r0, 0 /* 80384184 0037FDE4 41 82 00 08 */ beq lbl_8038418C /* 80384188 0037FDE8 38 80 00 01 */ li r4, 1 lbl_8038418C: /* 8038418C 0037FDEC 2C 04 00 00 */ cmpwi r4, 0 /* 80384190 0037FDF0 41 82 00 30 */ beq lbl_803841C0 /* 80384194 0037FDF4 80 BD 00 EC */ lwz r5, 0xec(r29) /* 80384198 0037FDF8 88 65 00 31 */ lbz r3, 0x31(r5) /* 8038419C 0037FDFC 7C 03 00 D0 */ neg r0, r3 /* 803841A0 0037FE00 7C 00 1B 78 */ or r0, r0, r3 /* 803841A4 0037FE04 54 00 0F FE */ srwi r0, r0, 0x1f /* 803841A8 0037FE08 7C 1E 00 40 */ cmplw r30, r0 /* 803841AC 0037FE0C 41 82 00 14 */ beq lbl_803841C0 /* 803841B0 0037FE10 9B C5 00 31 */ stb r30, 0x31(r5) /* 803841B4 0037FE14 7F C4 F3 78 */ mr r4, r30 /* 803841B8 0037FE18 80 65 00 DC */ lwz r3, 0xdc(r5) /* 803841BC 0037FE1C 4B FF CE 85 */ bl Pause__Q44nw4r3snd6detail5VoiceFb lbl_803841C0: /* 803841C0 0037FE20 7F E3 FB 78 */ mr r3, r31 /* 803841C4 0037FE24 4B EE B8 61 */ bl OSUnlockMutex /* 803841C8 0037FE28 80 01 00 24 */ lwz r0, 0x24(r1) /* 803841CC 0037FE2C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 803841D0 0037FE30 83 C1 00 18 */ lwz r30, 0x18(r1) /* 803841D4 0037FE34 83 A1 00 14 */ lwz r29, 0x14(r1) /* 803841D8 0037FE38 7C 08 03 A6 */ mtlr r0 /* 803841DC 0037FE3C 38 21 00 20 */ addi r1, r1, 0x20 /* 803841E0 0037FE40 4E 80 00 20 */ blr .global SetChannelPriority__Q44nw4r3snd6detail9WsdPlayerFi SetChannelPriority__Q44nw4r3snd6detail9WsdPlayerFi: /* 803841E4 0037FE44 94 21 FF E0 */ stwu r1, -0x20(r1) /* 803841E8 0037FE48 7C 08 02 A6 */ mflr r0 /* 803841EC 0037FE4C 90 01 00 24 */ stw r0, 0x24(r1) /* 803841F0 0037FE50 93 E1 00 1C */ stw r31, 0x1c(r1) /* 803841F4 0037FE54 3B E3 00 A8 */ addi r31, r3, 0xa8 /* 803841F8 0037FE58 93 C1 00 18 */ stw r30, 0x18(r1) /* 803841FC 0037FE5C 7C 9E 23 78 */ mr r30, r4 /* 80384200 0037FE60 93 A1 00 14 */ stw r29, 0x14(r1) /* 80384204 0037FE64 7C 7D 1B 78 */ mr r29, r3 /* 80384208 0037FE68 7F E3 FB 78 */ mr r3, r31 /* 8038420C 0037FE6C 4B EE B7 3D */ bl OSLockMutex /* 80384210 0037FE70 9B DD 00 9C */ stb r30, 0x9c(r29) /* 80384214 0037FE74 7F E3 FB 78 */ mr r3, r31 /* 80384218 0037FE78 4B EE B8 0D */ bl OSUnlockMutex /* 8038421C 0037FE7C 80 01 00 24 */ lwz r0, 0x24(r1) /* 80384220 0037FE80 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80384224 0037FE84 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80384228 0037FE88 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8038422C 0037FE8C 7C 08 03 A6 */ mtlr r0 /* 80384230 0037FE90 38 21 00 20 */ addi r1, r1, 0x20 /* 80384234 0037FE94 4E 80 00 20 */ blr .global SetReleasePriorityFix__Q44nw4r3snd6detail9WsdPlayerFb SetReleasePriorityFix__Q44nw4r3snd6detail9WsdPlayerFb: /* 80384238 0037FE98 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8038423C 0037FE9C 7C 08 02 A6 */ mflr r0 /* 80384240 0037FEA0 90 01 00 24 */ stw r0, 0x24(r1) /* 80384244 0037FEA4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80384248 0037FEA8 3B E3 00 A8 */ addi r31, r3, 0xa8 /* 8038424C 0037FEAC 93 C1 00 18 */ stw r30, 0x18(r1) /* 80384250 0037FEB0 7C 9E 23 78 */ mr r30, r4 /* 80384254 0037FEB4 93 A1 00 14 */ stw r29, 0x14(r1) /* 80384258 0037FEB8 7C 7D 1B 78 */ mr r29, r3 /* 8038425C 0037FEBC 7F E3 FB 78 */ mr r3, r31 /* 80384260 0037FEC0 4B EE B6 E9 */ bl OSLockMutex /* 80384264 0037FEC4 9B DD 00 90 */ stb r30, 0x90(r29) /* 80384268 0037FEC8 7F E3 FB 78 */ mr r3, r31 /* 8038426C 0037FECC 4B EE B7 B9 */ bl OSUnlockMutex /* 80384270 0037FED0 80 01 00 24 */ lwz r0, 0x24(r1) /* 80384274 0037FED4 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80384278 0037FED8 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8038427C 0037FEDC 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80384280 0037FEE0 7C 08 03 A6 */ mtlr r0 /* 80384284 0037FEE4 38 21 00 20 */ addi r1, r1, 0x20 /* 80384288 0037FEE8 4E 80 00 20 */ blr .global InvalidateData__Q44nw4r3snd6detail9WsdPlayerFPCvPCv InvalidateData__Q44nw4r3snd6detail9WsdPlayerFPCvPCv: /* 8038428C 0037FEEC 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80384290 0037FEF0 7C 08 02 A6 */ mflr r0 /* 80384294 0037FEF4 90 01 00 24 */ stw r0, 0x24(r1) /* 80384298 0037FEF8 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8038429C 0037FEFC 7C 9F 23 78 */ mr r31, r4 /* 803842A0 0037FF00 93 C1 00 18 */ stw r30, 0x18(r1) /* 803842A4 0037FF04 3B C3 00 A8 */ addi r30, r3, 0xa8 /* 803842A8 0037FF08 93 A1 00 14 */ stw r29, 0x14(r1) /* 803842AC 0037FF0C 7C BD 2B 78 */ mr r29, r5 /* 803842B0 0037FF10 93 81 00 10 */ stw r28, 0x10(r1) /* 803842B4 0037FF14 7C 7C 1B 78 */ mr r28, r3 /* 803842B8 0037FF18 7F C3 F3 78 */ mr r3, r30 /* 803842BC 0037FF1C 4B EE B6 8D */ bl OSLockMutex /* 803842C0 0037FF20 88 1C 00 8C */ lbz r0, 0x8c(r28) /* 803842C4 0037FF24 2C 00 00 00 */ cmpwi r0, 0 /* 803842C8 0037FF28 41 82 00 DC */ beq lbl_803843A4 /* 803842CC 0037FF2C 80 1C 00 C0 */ lwz r0, 0xc0(r28) /* 803842D0 0037FF30 7C 1F 00 40 */ cmplw r31, r0 /* 803842D4 0037FF34 41 81 00 D0 */ bgt lbl_803843A4 /* 803842D8 0037FF38 7C 00 E8 40 */ cmplw r0, r29 /* 803842DC 0037FF3C 41 81 00 C8 */ bgt lbl_803843A4 /* 803842E0 0037FF40 7F DF F3 78 */ mr r31, r30 /* 803842E4 0037FF44 7F E3 FB 78 */ mr r3, r31 /* 803842E8 0037FF48 4B EE B6 61 */ bl OSLockMutex /* 803842EC 0037FF4C 88 1C 00 8D */ lbz r0, 0x8d(r28) /* 803842F0 0037FF50 2C 00 00 00 */ cmpwi r0, 0 /* 803842F4 0037FF54 41 82 00 28 */ beq lbl_8038431C /* 803842F8 0037FF58 2C 1C 00 00 */ cmpwi r28, 0 /* 803842FC 0037FF5C 7F 9D E3 78 */ mr r29, r28 /* 80384300 0037FF60 41 82 00 08 */ beq lbl_80384308 /* 80384304 0037FF64 3B BC 00 80 */ addi r29, r28, 0x80 lbl_80384308: /* 80384308 0037FF68 4B FF 81 49 */ bl GetInstance__Q44nw4r3snd6detail11SoundThreadFv /* 8038430C 0037FF6C 7F A4 EB 78 */ mr r4, r29 /* 80384310 0037FF70 4B FF 85 71 */ bl UnregisterPlayerCallback__Q44nw4r3snd6detail11SoundThreadFPQ54nw4r3snd6detail11SoundThread14PlayerCallback /* 80384314 0037FF74 38 00 00 00 */ li r0, 0 /* 80384318 0037FF78 98 1C 00 8D */ stb r0, 0x8d(r28) lbl_8038431C: /* 8038431C 0037FF7C 88 1C 00 8C */ lbz r0, 0x8c(r28) /* 80384320 0037FF80 2C 00 00 00 */ cmpwi r0, 0 /* 80384324 0037FF84 41 82 00 28 */ beq lbl_8038434C /* 80384328 0037FF88 2C 1C 00 00 */ cmpwi r28, 0 /* 8038432C 0037FF8C 7F 9D E3 78 */ mr r29, r28 /* 80384330 0037FF90 41 82 00 08 */ beq lbl_80384338 /* 80384334 0037FF94 3B BC 00 74 */ addi r29, r28, 0x74 lbl_80384338: /* 80384338 0037FF98 4B FE AF 21 */ bl GetInstance__Q44nw4r3snd6detail22DisposeCallbackManagerFv /* 8038433C 0037FF9C 7F A4 EB 78 */ mr r4, r29 /* 80384340 0037FFA0 4B FE B0 6D */ bl __ct__Q44nw4r3snd6detail22DisposeCallbackManagerFv /* 80384344 0037FFA4 38 00 00 00 */ li r0, 0 /* 80384348 0037FFA8 98 1C 00 8C */ stb r0, 0x8c(r28) lbl_8038434C: /* 8038434C 0037FFAC 80 9C 00 EC */ lwz r4, 0xec(r28) /* 80384350 0037FFB0 38 60 00 00 */ li r3, 0 /* 80384354 0037FFB4 2C 04 00 00 */ cmpwi r4, 0 /* 80384358 0037FFB8 41 82 00 14 */ beq lbl_8038436C /* 8038435C 0037FFBC 88 04 00 32 */ lbz r0, 0x32(r4) /* 80384360 0037FFC0 2C 00 00 00 */ cmpwi r0, 0 /* 80384364 0037FFC4 41 82 00 08 */ beq lbl_8038436C /* 80384368 0037FFC8 38 60 00 01 */ li r3, 1 lbl_8038436C: /* 8038436C 0037FFCC 2C 03 00 00 */ cmpwi r3, 0 /* 80384370 0037FFD0 41 82 00 14 */ beq lbl_80384384 /* 80384374 0037FFD4 7F 83 E3 78 */ mr r3, r28 /* 80384378 0037FFD8 48 00 04 01 */ bl UpdateChannel__Q44nw4r3snd6detail9WsdPlayerFv /* 8038437C 0037FFDC 80 7C 00 EC */ lwz r3, 0xec(r28) /* 80384380 0037FFE0 4B FE A9 61 */ bl Release__Q44nw4r3snd6detail7ChannelFv lbl_80384384: /* 80384384 0037FFE4 80 7C 00 EC */ lwz r3, 0xec(r28) /* 80384388 0037FFE8 2C 03 00 00 */ cmpwi r3, 0 /* 8038438C 0037FFEC 41 82 00 08 */ beq lbl_80384394 /* 80384390 0037FFF0 4B FE AE B1 */ bl FreeChannel__Q44nw4r3snd6detail7ChannelFPQ44nw4r3snd6detail7Channel lbl_80384394: /* 80384394 0037FFF4 38 00 00 00 */ li r0, 0 /* 80384398 0037FFF8 7F E3 FB 78 */ mr r3, r31 /* 8038439C 0037FFFC 90 1C 00 EC */ stw r0, 0xec(r28) /* 803843A0 00380000 4B EE B6 85 */ bl OSUnlockMutex lbl_803843A4: /* 803843A4 00380004 7F C3 F3 78 */ mr r3, r30 /* 803843A8 00380008 4B EE B6 7D */ bl OSUnlockMutex /* 803843AC 0038000C 80 01 00 24 */ lwz r0, 0x24(r1) /* 803843B0 00380010 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 803843B4 00380014 83 C1 00 18 */ lwz r30, 0x18(r1) /* 803843B8 00380018 83 A1 00 14 */ lwz r29, 0x14(r1) /* 803843BC 0038001C 83 81 00 10 */ lwz r28, 0x10(r1) /* 803843C0 00380020 7C 08 03 A6 */ mtlr r0 /* 803843C4 00380024 38 21 00 20 */ addi r1, r1, 0x20 /* 803843C8 00380028 4E 80 00 20 */ blr .global Update__Q44nw4r3snd6detail9WsdPlayerFv Update__Q44nw4r3snd6detail9WsdPlayerFv: /* 803843CC 0038002C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 803843D0 00380030 7C 08 02 A6 */ mflr r0 /* 803843D4 00380034 90 01 00 24 */ stw r0, 0x24(r1) /* 803843D8 00380038 93 E1 00 1C */ stw r31, 0x1c(r1) /* 803843DC 0038003C 7C 7F 1B 78 */ mr r31, r3 /* 803843E0 00380040 93 C1 00 18 */ stw r30, 0x18(r1) /* 803843E4 00380044 93 A1 00 14 */ stw r29, 0x14(r1) /* 803843E8 00380048 88 03 00 8C */ lbz r0, 0x8c(r3) /* 803843EC 0038004C 2C 00 00 00 */ cmpwi r0, 0 /* 803843F0 00380050 41 82 01 EC */ beq lbl_803845DC /* 803843F4 00380054 88 03 00 8D */ lbz r0, 0x8d(r3) /* 803843F8 00380058 2C 00 00 00 */ cmpwi r0, 0 /* 803843FC 0038005C 41 82 01 E0 */ beq lbl_803845DC /* 80384400 00380060 88 03 00 8E */ lbz r0, 0x8e(r3) /* 80384404 00380064 2C 00 00 00 */ cmpwi r0, 0 /* 80384408 00380068 40 82 01 CC */ bne lbl_803845D4 /* 8038440C 0038006C 88 83 00 8F */ lbz r4, 0x8f(r3) /* 80384410 00380070 2C 04 00 00 */ cmpwi r4, 0 /* 80384414 00380074 41 82 00 D8 */ beq lbl_803844EC /* 80384418 00380078 80 03 00 EC */ lwz r0, 0xec(r3) /* 8038441C 0038007C 2C 00 00 00 */ cmpwi r0, 0 /* 80384420 00380080 40 82 00 CC */ bne lbl_803844EC /* 80384424 00380084 3B C3 00 A8 */ addi r30, r3, 0xa8 /* 80384428 00380088 7F C3 F3 78 */ mr r3, r30 /* 8038442C 0038008C 4B EE B5 1D */ bl OSLockMutex /* 80384430 00380090 88 1F 00 8D */ lbz r0, 0x8d(r31) /* 80384434 00380094 2C 00 00 00 */ cmpwi r0, 0 /* 80384438 00380098 41 82 00 28 */ beq lbl_80384460 /* 8038443C 0038009C 2C 1F 00 00 */ cmpwi r31, 0 /* 80384440 003800A0 7F FD FB 78 */ mr r29, r31 /* 80384444 003800A4 41 82 00 08 */ beq lbl_8038444C /* 80384448 003800A8 3B BF 00 80 */ addi r29, r31, 0x80 lbl_8038444C: /* 8038444C 003800AC 4B FF 80 05 */ bl GetInstance__Q44nw4r3snd6detail11SoundThreadFv /* 80384450 003800B0 7F A4 EB 78 */ mr r4, r29 /* 80384454 003800B4 4B FF 84 2D */ bl UnregisterPlayerCallback__Q44nw4r3snd6detail11SoundThreadFPQ54nw4r3snd6detail11SoundThread14PlayerCallback /* 80384458 003800B8 38 00 00 00 */ li r0, 0 /* 8038445C 003800BC 98 1F 00 8D */ stb r0, 0x8d(r31) lbl_80384460: /* 80384460 003800C0 88 1F 00 8C */ lbz r0, 0x8c(r31) /* 80384464 003800C4 2C 00 00 00 */ cmpwi r0, 0 /* 80384468 003800C8 41 82 00 28 */ beq lbl_80384490 /* 8038446C 003800CC 2C 1F 00 00 */ cmpwi r31, 0 /* 80384470 003800D0 7F FD FB 78 */ mr r29, r31 /* 80384474 003800D4 41 82 00 08 */ beq lbl_8038447C /* 80384478 003800D8 3B BF 00 74 */ addi r29, r31, 0x74 lbl_8038447C: /* 8038447C 003800DC 4B FE AD DD */ bl GetInstance__Q44nw4r3snd6detail22DisposeCallbackManagerFv /* 80384480 003800E0 7F A4 EB 78 */ mr r4, r29 /* 80384484 003800E4 4B FE AF 29 */ bl __ct__Q44nw4r3snd6detail22DisposeCallbackManagerFv /* 80384488 003800E8 38 00 00 00 */ li r0, 0 /* 8038448C 003800EC 98 1F 00 8C */ stb r0, 0x8c(r31) lbl_80384490: /* 80384490 003800F0 80 9F 00 EC */ lwz r4, 0xec(r31) /* 80384494 003800F4 38 60 00 00 */ li r3, 0 /* 80384498 003800F8 2C 04 00 00 */ cmpwi r4, 0 /* 8038449C 003800FC 41 82 00 14 */ beq lbl_803844B0 /* 803844A0 00380100 88 04 00 32 */ lbz r0, 0x32(r4) /* 803844A4 00380104 2C 00 00 00 */ cmpwi r0, 0 /* 803844A8 00380108 41 82 00 08 */ beq lbl_803844B0 /* 803844AC 0038010C 38 60 00 01 */ li r3, 1 lbl_803844B0: /* 803844B0 00380110 2C 03 00 00 */ cmpwi r3, 0 /* 803844B4 00380114 41 82 00 14 */ beq lbl_803844C8 /* 803844B8 00380118 7F E3 FB 78 */ mr r3, r31 /* 803844BC 0038011C 48 00 02 BD */ bl UpdateChannel__Q44nw4r3snd6detail9WsdPlayerFv /* 803844C0 00380120 80 7F 00 EC */ lwz r3, 0xec(r31) /* 803844C4 00380124 4B FE A8 1D */ bl Release__Q44nw4r3snd6detail7ChannelFv lbl_803844C8: /* 803844C8 00380128 80 7F 00 EC */ lwz r3, 0xec(r31) /* 803844CC 0038012C 2C 03 00 00 */ cmpwi r3, 0 /* 803844D0 00380130 41 82 00 08 */ beq lbl_803844D8 /* 803844D4 00380134 4B FE AD 6D */ bl FreeChannel__Q44nw4r3snd6detail7ChannelFPQ44nw4r3snd6detail7Channel lbl_803844D8: /* 803844D8 00380138 38 00 00 00 */ li r0, 0 /* 803844DC 0038013C 7F C3 F3 78 */ mr r3, r30 /* 803844E0 00380140 90 1F 00 EC */ stw r0, 0xec(r31) /* 803844E4 00380144 4B EE B5 41 */ bl OSUnlockMutex /* 803844E8 00380148 48 00 00 F4 */ b lbl_803845DC lbl_803844EC: /* 803844EC 0038014C 2C 04 00 00 */ cmpwi r4, 0 /* 803844F0 00380150 40 82 00 E4 */ bne lbl_803845D4 /* 803844F4 00380154 80 9F 00 A0 */ lwz r4, 0xa0(r31) /* 803844F8 00380158 7F E3 FB 78 */ mr r3, r31 /* 803844FC 0038015C 80 BF 00 A4 */ lwz r5, 0xa4(r31) /* 80384500 00380160 48 00 00 F9 */ bl StartChannel__Q44nw4r3snd6detail9WsdPlayerFPCQ54nw4r3snd6detail9WsdPlayer11WsdCallbackUl /* 80384504 00380164 2C 03 00 00 */ cmpwi r3, 0 /* 80384508 00380168 40 82 00 CC */ bne lbl_803845D4 /* 8038450C 0038016C 3B DF 00 A8 */ addi r30, r31, 0xa8 /* 80384510 00380170 7F C3 F3 78 */ mr r3, r30 /* 80384514 00380174 4B EE B4 35 */ bl OSLockMutex /* 80384518 00380178 88 1F 00 8D */ lbz r0, 0x8d(r31) /* 8038451C 0038017C 2C 00 00 00 */ cmpwi r0, 0 /* 80384520 00380180 41 82 00 28 */ beq lbl_80384548 /* 80384524 00380184 2C 1F 00 00 */ cmpwi r31, 0 /* 80384528 00380188 7F FD FB 78 */ mr r29, r31 /* 8038452C 0038018C 41 82 00 08 */ beq lbl_80384534 /* 80384530 00380190 3B BF 00 80 */ addi r29, r31, 0x80 lbl_80384534: /* 80384534 00380194 4B FF 7F 1D */ bl GetInstance__Q44nw4r3snd6detail11SoundThreadFv /* 80384538 00380198 7F A4 EB 78 */ mr r4, r29 /* 8038453C 0038019C 4B FF 83 45 */ bl UnregisterPlayerCallback__Q44nw4r3snd6detail11SoundThreadFPQ54nw4r3snd6detail11SoundThread14PlayerCallback /* 80384540 003801A0 38 00 00 00 */ li r0, 0 /* 80384544 003801A4 98 1F 00 8D */ stb r0, 0x8d(r31) lbl_80384548: /* 80384548 003801A8 88 1F 00 8C */ lbz r0, 0x8c(r31) /* 8038454C 003801AC 2C 00 00 00 */ cmpwi r0, 0 /* 80384550 003801B0 41 82 00 28 */ beq lbl_80384578 /* 80384554 003801B4 2C 1F 00 00 */ cmpwi r31, 0 /* 80384558 003801B8 7F FD FB 78 */ mr r29, r31 /* 8038455C 003801BC 41 82 00 08 */ beq lbl_80384564 /* 80384560 003801C0 3B BF 00 74 */ addi r29, r31, 0x74 lbl_80384564: /* 80384564 003801C4 4B FE AC F5 */ bl GetInstance__Q44nw4r3snd6detail22DisposeCallbackManagerFv /* 80384568 003801C8 7F A4 EB 78 */ mr r4, r29 /* 8038456C 003801CC 4B FE AE 41 */ bl __ct__Q44nw4r3snd6detail22DisposeCallbackManagerFv /* 80384570 003801D0 38 00 00 00 */ li r0, 0 /* 80384574 003801D4 98 1F 00 8C */ stb r0, 0x8c(r31) lbl_80384578: /* 80384578 003801D8 80 9F 00 EC */ lwz r4, 0xec(r31) /* 8038457C 003801DC 38 60 00 00 */ li r3, 0 /* 80384580 003801E0 2C 04 00 00 */ cmpwi r4, 0 /* 80384584 003801E4 41 82 00 14 */ beq lbl_80384598 /* 80384588 003801E8 88 04 00 32 */ lbz r0, 0x32(r4) /* 8038458C 003801EC 2C 00 00 00 */ cmpwi r0, 0 /* 80384590 003801F0 41 82 00 08 */ beq lbl_80384598 /* 80384594 003801F4 38 60 00 01 */ li r3, 1 lbl_80384598: /* 80384598 003801F8 2C 03 00 00 */ cmpwi r3, 0 /* 8038459C 003801FC 41 82 00 14 */ beq lbl_803845B0 /* 803845A0 00380200 7F E3 FB 78 */ mr r3, r31 /* 803845A4 00380204 48 00 01 D5 */ bl UpdateChannel__Q44nw4r3snd6detail9WsdPlayerFv /* 803845A8 00380208 80 7F 00 EC */ lwz r3, 0xec(r31) /* 803845AC 0038020C 4B FE A7 35 */ bl Release__Q44nw4r3snd6detail7ChannelFv lbl_803845B0: /* 803845B0 00380210 80 7F 00 EC */ lwz r3, 0xec(r31) /* 803845B4 00380214 2C 03 00 00 */ cmpwi r3, 0 /* 803845B8 00380218 41 82 00 08 */ beq lbl_803845C0 /* 803845BC 0038021C 4B FE AC 85 */ bl FreeChannel__Q44nw4r3snd6detail7ChannelFPQ44nw4r3snd6detail7Channel lbl_803845C0: /* 803845C0 00380220 38 00 00 00 */ li r0, 0 /* 803845C4 00380224 7F C3 F3 78 */ mr r3, r30 /* 803845C8 00380228 90 1F 00 EC */ stw r0, 0xec(r31) /* 803845CC 0038022C 4B EE B4 59 */ bl OSUnlockMutex /* 803845D0 00380230 48 00 00 0C */ b lbl_803845DC lbl_803845D4: /* 803845D4 00380234 7F E3 FB 78 */ mr r3, r31 /* 803845D8 00380238 48 00 01 A1 */ bl UpdateChannel__Q44nw4r3snd6detail9WsdPlayerFv lbl_803845DC: /* 803845DC 0038023C 80 01 00 24 */ lwz r0, 0x24(r1) /* 803845E0 00380240 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 803845E4 00380244 83 C1 00 18 */ lwz r30, 0x18(r1) /* 803845E8 00380248 83 A1 00 14 */ lwz r29, 0x14(r1) /* 803845EC 0038024C 7C 08 03 A6 */ mtlr r0 /* 803845F0 00380250 38 21 00 20 */ addi r1, r1, 0x20 /* 803845F4 00380254 4E 80 00 20 */ blr .global StartChannel__Q44nw4r3snd6detail9WsdPlayerFPCQ54nw4r3snd6detail9WsdPlayer11WsdCallbackUl StartChannel__Q44nw4r3snd6detail9WsdPlayerFPCQ54nw4r3snd6detail9WsdPlayer11WsdCallbackUl: /* 803845F8 00380258 94 21 FF 40 */ stwu r1, -0xc0(r1) /* 803845FC 0038025C 7C 08 02 A6 */ mflr r0 /* 80384600 00380260 7C AA 2B 78 */ mr r10, r5 /* 80384604 00380264 39 20 00 00 */ li r9, 0 /* 80384608 00380268 90 01 00 C4 */ stw r0, 0xc4(r1) /* 8038460C 0038026C 38 A1 00 08 */ addi r5, r1, 8 /* 80384610 00380270 93 E1 00 BC */ stw r31, 0xbc(r1) /* 80384614 00380274 7C 7F 1B 78 */ mr r31, r3 /* 80384618 00380278 7C 83 23 78 */ mr r3, r4 /* 8038461C 0038027C 93 C1 00 B8 */ stw r30, 0xb8(r1) /* 80384620 00380280 93 A1 00 B4 */ stw r29, 0xb4(r1) /* 80384624 00380284 81 84 00 00 */ lwz r12, 0(r4) /* 80384628 00380288 38 9F 00 E0 */ addi r4, r31, 0xe0 /* 8038462C 0038028C 88 DF 00 9C */ lbz r6, 0x9c(r31) /* 80384630 00380290 81 8C 00 0C */ lwz r12, 0xc(r12) /* 80384634 00380294 3B C6 00 40 */ addi r30, r6, 0x40 /* 80384638 00380298 38 C1 00 18 */ addi r6, r1, 0x18 /* 8038463C 0038029C 80 FF 00 C0 */ lwz r7, 0xc0(r31) /* 80384640 003802A0 81 1F 00 C4 */ lwz r8, 0xc4(r31) /* 80384644 003802A4 7D 89 03 A6 */ mtctr r12 /* 80384648 003802A8 4E 80 04 21 */ bctrl /* 8038464C 003802AC 2C 03 00 00 */ cmpwi r3, 0 /* 80384650 003802B0 40 82 00 0C */ bne lbl_8038465C /* 80384654 003802B4 38 60 00 00 */ li r3, 0 /* 80384658 003802B8 48 00 01 04 */ b lbl_8038475C lbl_8038465C: /* 8038465C 003802BC 80 1F 00 C8 */ lwz r0, 0xc8(r31) /* 80384660 003802C0 2C 00 00 00 */ cmpwi r0, 0 /* 80384664 003802C4 40 82 00 0C */ bne lbl_80384670 /* 80384668 003802C8 83 BF 00 CC */ lwz r29, 0xcc(r31) /* 8038466C 003802CC 48 00 00 44 */ b lbl_803846B0 lbl_80384670: /* 80384670 003802D0 2C 00 00 01 */ cmpwi r0, 1 /* 80384674 003802D4 40 82 00 3C */ bne lbl_803846B0 /* 80384678 003802D8 81 1F 00 CC */ lwz r8, 0xcc(r31) /* 8038467C 003802DC 38 80 00 00 */ li r4, 0 /* 80384680 003802E0 80 E1 00 1C */ lwz r7, 0x1c(r1) /* 80384684 003802E4 38 C0 03 E8 */ li r6, 0x3e8 /* 80384688 003802E8 7D 00 FE 70 */ srawi r0, r8, 0x1f /* 8038468C 003802EC 38 A0 00 00 */ li r5, 0 /* 80384690 003802F0 7C 67 40 16 */ mulhwu r3, r7, r8 /* 80384694 003802F4 7C 84 41 D6 */ mullw r4, r4, r8 /* 80384698 003802F8 7C 63 22 14 */ add r3, r3, r4 /* 8038469C 003802FC 7C 07 01 D6 */ mullw r0, r7, r0 /* 803846A0 00380300 7C 87 41 D6 */ mullw r4, r7, r8 /* 803846A4 00380304 7C 63 02 14 */ add r3, r3, r0 /* 803846A8 00380308 4B E4 2B D1 */ bl __div2i /* 803846AC 0038030C 7C 9D 23 78 */ mr r29, r4 lbl_803846B0: /* 803846B0 00380310 80 01 00 24 */ lwz r0, 0x24(r1) /* 803846B4 00380314 7C 1D 00 40 */ cmplw r29, r0 /* 803846B8 00380318 40 81 00 0C */ ble lbl_803846C4 /* 803846BC 0038031C 38 60 00 00 */ li r3, 0 /* 803846C0 00380320 48 00 00 9C */ b lbl_8038475C lbl_803846C4: /* 803846C4 00380324 88 01 00 1A */ lbz r0, 0x1a(r1) /* 803846C8 00380328 38 60 00 02 */ li r3, 2 /* 803846CC 0038032C 80 9F 00 98 */ lwz r4, 0x98(r31) /* 803846D0 00380330 2C 00 00 02 */ cmpwi r0, 2 /* 803846D4 00380334 41 81 00 08 */ bgt lbl_803846DC /* 803846D8 00380338 7C 03 03 78 */ mr r3, r0 lbl_803846DC: /* 803846DC 0038033C 3C C0 80 38 */ lis r6, ChannelCallbackFunc__Q44nw4r3snd6detail9WsdPlayerFPQ44nw4r3snd6detail7ChannelQ54nw4r3snd6detail7Channel21ChannelCallbackStatusUl@ha /* 803846E0 00380340 7F C5 F3 78 */ mr r5, r30 /* 803846E4 00380344 7F E7 FB 78 */ mr r7, r31 /* 803846E8 00380348 38 C6 4B 90 */ addi r6, r6, ChannelCallbackFunc__Q44nw4r3snd6detail9WsdPlayerFPQ44nw4r3snd6detail7ChannelQ54nw4r3snd6detail7Channel21ChannelCallbackStatusUl@l /* 803846EC 0038034C 4B FE A9 19 */ bl AllocChannel__Q44nw4r3snd6detail7ChannelFiiiPFPQ44nw4r3snd6detail7ChannelQ54nw4r3snd6detail7Channel21ChannelCallbackStatusUl_vUl /* 803846F0 00380350 2C 03 00 00 */ cmpwi r3, 0 /* 803846F4 00380354 7C 7E 1B 78 */ mr r30, r3 /* 803846F8 00380358 40 82 00 0C */ bne lbl_80384704 /* 803846FC 0038035C 38 60 00 00 */ li r3, 0 /* 80384700 00380360 48 00 00 5C */ b lbl_8038475C lbl_80384704: /* 80384704 00380364 88 81 00 0C */ lbz r4, 0xc(r1) /* 80384708 00380368 4B FE B7 15 */ bl SetAttack__Q44nw4r3snd6detail12EnvGeneratorFi /* 8038470C 0038036C 88 81 00 0D */ lbz r4, 0xd(r1) /* 80384710 00380370 7F C3 F3 78 */ mr r3, r30 /* 80384714 00380374 4B FE B7 21 */ bl SetDecay__Q44nw4r3snd6detail12EnvGeneratorFi /* 80384718 00380378 88 81 00 0E */ lbz r4, 0xe(r1) /* 8038471C 0038037C 7F C3 F3 78 */ mr r3, r30 /* 80384720 00380380 4B FE B7 B5 */ bl SetSustain__Q44nw4r3snd6detail12EnvGeneratorFi /* 80384724 00380384 88 81 00 0F */ lbz r4, 0xf(r1) /* 80384728 00380388 7F C3 F3 78 */ mr r3, r30 /* 8038472C 0038038C 4B FE B7 B1 */ bl SetRelease__Q44nw4r3snd6detail12EnvGeneratorFi /* 80384730 00380390 88 1F 00 90 */ lbz r0, 0x90(r31) /* 80384734 00380394 7F C3 F3 78 */ mr r3, r30 /* 80384738 00380398 7F A6 EB 78 */ mr r6, r29 /* 8038473C 0038039C 38 81 00 18 */ addi r4, r1, 0x18 /* 80384740 003803A0 98 1E 00 35 */ stb r0, 0x35(r30) /* 80384744 003803A4 38 A0 FF FF */ li r5, -1 /* 80384748 003803A8 4B FE A5 19 */ bl Start__Q44nw4r3snd6detail7ChannelFRCQ44nw4r3snd6detail8WaveDataiUl /* 8038474C 003803AC 38 00 00 01 */ li r0, 1 /* 80384750 003803B0 93 DF 00 EC */ stw r30, 0xec(r31) /* 80384754 003803B4 38 60 00 01 */ li r3, 1 /* 80384758 003803B8 98 1F 00 8F */ stb r0, 0x8f(r31) lbl_8038475C: /* 8038475C 003803BC 80 01 00 C4 */ lwz r0, 0xc4(r1) /* 80384760 003803C0 83 E1 00 BC */ lwz r31, 0xbc(r1) /* 80384764 003803C4 83 C1 00 B8 */ lwz r30, 0xb8(r1) /* 80384768 003803C8 83 A1 00 B4 */ lwz r29, 0xb4(r1) /* 8038476C 003803CC 7C 08 03 A6 */ mtlr r0 /* 80384770 003803D0 38 21 00 C0 */ addi r1, r1, 0xc0 /* 80384774 003803D4 4E 80 00 20 */ blr .global UpdateChannel__Q44nw4r3snd6detail9WsdPlayerFv UpdateChannel__Q44nw4r3snd6detail9WsdPlayerFv: /* 80384778 003803D8 94 21 FF 00 */ stwu r1, -0x100(r1) /* 8038477C 003803DC 7C 08 02 A6 */ mflr r0 /* 80384780 003803E0 90 01 01 04 */ stw r0, 0x104(r1) /* 80384784 003803E4 DB E1 00 F0 */ stfd f31, 0xf0(r1) /* 80384788 003803E8 F3 E1 00 F8 */ psq_st f31, 248(r1), 0, qr0 /* 8038478C 003803EC DB C1 00 E0 */ stfd f30, 0xe0(r1) /* 80384790 003803F0 F3 C1 00 E8 */ psq_st f30, 232(r1), 0, qr0 /* 80384794 003803F4 DB A1 00 D0 */ stfd f29, 0xd0(r1) /* 80384798 003803F8 F3 A1 00 D8 */ psq_st f29, 216(r1), 0, qr0 /* 8038479C 003803FC DB 81 00 C0 */ stfd f28, 0xc0(r1) /* 803847A0 00380400 F3 81 00 C8 */ psq_st f28, 200(r1), 0, qr0 /* 803847A4 00380404 DB 61 00 B0 */ stfd f27, 0xb0(r1) /* 803847A8 00380408 F3 61 00 B8 */ psq_st f27, 184(r1), 0, qr0 /* 803847AC 0038040C DB 41 00 A0 */ stfd f26, 0xa0(r1) /* 803847B0 00380410 F3 41 00 A8 */ psq_st f26, 168(r1), 0, qr0 /* 803847B4 00380414 DB 21 00 90 */ stfd f25, 0x90(r1) /* 803847B8 00380418 F3 21 00 98 */ psq_st f25, 152(r1), 0, qr0 /* 803847BC 0038041C DB 01 00 80 */ stfd f24, 0x80(r1) /* 803847C0 00380420 F3 01 00 88 */ psq_st f24, 136(r1), 0, qr0 /* 803847C4 00380424 DA E1 00 70 */ stfd f23, 0x70(r1) /* 803847C8 00380428 F2 E1 00 78 */ psq_st f23, 120(r1), 0, qr0 /* 803847CC 0038042C 39 61 00 70 */ addi r11, r1, 0x70 /* 803847D0 00380430 4B E4 29 55 */ bl _savegpr_26 /* 803847D4 00380434 80 03 00 EC */ lwz r0, 0xec(r3) /* 803847D8 00380438 3C 80 43 30 */ lis r4, 0x4330 /* 803847DC 0038043C 90 81 00 40 */ stw r4, 0x40(r1) /* 803847E0 00380440 7C 7A 1B 78 */ mr r26, r3 /* 803847E4 00380444 2C 00 00 00 */ cmpwi r0, 0 /* 803847E8 00380448 90 81 00 48 */ stw r4, 0x48(r1) /* 803847EC 0038044C 41 82 03 44 */ beq lbl_80384B30 /* 803847F0 00380450 C3 82 A7 F8 */ lfs f28, lbl_80642DF8-_SDA2_BASE_(r2) /* 803847F4 00380454 C0 03 00 0C */ lfs f0, 0xc(r3) /* 803847F8 00380458 88 83 00 E4 */ lbz r4, 0xe4(r3) /* 803847FC 0038045C EF 9C 00 32 */ fmuls f28, f28, f0 /* 80384800 00380460 C0 03 00 E0 */ lfs f0, 0xe0(r3) /* 80384804 00380464 C3 A2 A7 F8 */ lfs f29, lbl_80642DF8-_SDA2_BASE_(r2) /* 80384808 00380468 28 04 00 01 */ cmplwi r4, 1 /* 8038480C 0038046C C0 23 00 08 */ lfs f1, 8(r3) /* 80384810 00380470 EF 9C 00 32 */ fmuls f28, f28, f0 /* 80384814 00380474 EF BD 00 72 */ fmuls f29, f29, f1 /* 80384818 00380478 C3 62 A7 FC */ lfs f27, lbl_80642DFC-_SDA2_BASE_(r2) /* 8038481C 0038047C 41 81 00 2C */ bgt lbl_80384848 /* 80384820 00380480 38 04 FF C1 */ addi r0, r4, -63 /* 80384824 00380484 C8 42 A8 10 */ lfd f2, lbl_80642E10-_SDA2_BASE_(r2) /* 80384828 00380488 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 8038482C 0038048C C0 02 A8 00 */ lfs f0, lbl_80642E00-_SDA2_BASE_(r2) /* 80384830 00380490 90 01 00 44 */ stw r0, 0x44(r1) /* 80384834 00380494 C8 21 00 40 */ lfd f1, 0x40(r1) /* 80384838 00380498 EC 21 10 28 */ fsubs f1, f1, f2 /* 8038483C 0038049C EC 01 00 24 */ fdivs f0, f1, f0 /* 80384840 003804A0 EF 7B 00 2A */ fadds f27, f27, f0 /* 80384844 003804A4 48 00 00 28 */ b lbl_8038486C lbl_80384848: /* 80384848 003804A8 38 04 FF C0 */ addi r0, r4, -64 /* 8038484C 003804AC C8 42 A8 10 */ lfd f2, lbl_80642E10-_SDA2_BASE_(r2) /* 80384850 003804B0 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 80384854 003804B4 C0 02 A8 00 */ lfs f0, lbl_80642E00-_SDA2_BASE_(r2) /* 80384858 003804B8 90 01 00 4C */ stw r0, 0x4c(r1) /* 8038485C 003804BC C8 21 00 48 */ lfd f1, 0x48(r1) /* 80384860 003804C0 EC 21 10 28 */ fsubs f1, f1, f2 /* 80384864 003804C4 EC 01 00 24 */ fdivs f0, f1, f0 /* 80384868 003804C8 EF 7B 00 2A */ fadds f27, f27, f0 lbl_8038486C: /* 8038486C 003804CC C0 03 00 94 */ lfs f0, 0x94(r3) /* 80384870 003804D0 88 83 00 E5 */ lbz r4, 0xe5(r3) /* 80384874 003804D4 EF 7B 00 32 */ fmuls f27, f27, f0 /* 80384878 003804D8 C0 03 00 10 */ lfs f0, 0x10(r3) /* 8038487C 003804DC 28 04 00 01 */ cmplwi r4, 1 /* 80384880 003804E0 C3 42 A7 FC */ lfs f26, lbl_80642DFC-_SDA2_BASE_(r2) /* 80384884 003804E4 EF 7B 00 2A */ fadds f27, f27, f0 /* 80384888 003804E8 41 81 00 2C */ bgt lbl_803848B4 /* 8038488C 003804EC 38 04 00 01 */ addi r0, r4, 1 /* 80384890 003804F0 C8 42 A8 10 */ lfd f2, lbl_80642E10-_SDA2_BASE_(r2) /* 80384894 003804F4 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 80384898 003804F8 C0 02 A8 00 */ lfs f0, lbl_80642E00-_SDA2_BASE_(r2) /* 8038489C 003804FC 90 01 00 44 */ stw r0, 0x44(r1) /* 803848A0 00380500 C8 21 00 40 */ lfd f1, 0x40(r1) /* 803848A4 00380504 EC 21 10 28 */ fsubs f1, f1, f2 /* 803848A8 00380508 EC 01 00 24 */ fdivs f0, f1, f0 /* 803848AC 0038050C EF 5A 00 2A */ fadds f26, f26, f0 /* 803848B0 00380510 48 00 00 20 */ b lbl_803848D0 lbl_803848B4: /* 803848B4 00380514 90 81 00 4C */ stw r4, 0x4c(r1) /* 803848B8 00380518 C8 42 A8 18 */ lfd f2, lbl_80642E18-_SDA2_BASE_(r2) /* 803848BC 0038051C C8 21 00 48 */ lfd f1, 0x48(r1) /* 803848C0 00380520 C0 02 A8 00 */ lfs f0, lbl_80642E00-_SDA2_BASE_(r2) /* 803848C4 00380524 EC 21 10 28 */ fsubs f1, f1, f2 /* 803848C8 00380528 EC 01 00 24 */ fdivs f0, f1, f0 /* 803848CC 0038052C EF 5A 00 2A */ fadds f26, f26, f0 lbl_803848D0: /* 803848D0 00380530 88 03 00 E9 */ lbz r0, 0xe9(r3) /* 803848D4 00380534 3B 61 00 30 */ addi r27, r1, 0x30 /* 803848D8 00380538 90 81 00 44 */ stw r4, 0x44(r1) /* 803848DC 0038053C 3B 81 00 08 */ addi r28, r1, 8 /* 803848E0 00380540 C3 02 A7 FC */ lfs f24, lbl_80642DFC-_SDA2_BASE_(r2) /* 803848E4 00380544 3B A0 00 00 */ li r29, 0 /* 803848E8 00380548 90 01 00 4C */ stw r0, 0x4c(r1) /* 803848EC 0038054C CB C2 A8 18 */ lfd f30, lbl_80642E18-_SDA2_BASE_(r2) /* 803848F0 00380550 FF 20 C0 90 */ fmr f25, f24 /* 803848F4 00380554 C8 01 00 48 */ lfd f0, 0x48(r1) /* 803848F8 00380558 C8 21 00 40 */ lfd f1, 0x40(r1) /* 803848FC 0038055C EC 00 F0 28 */ fsubs f0, f0, f30 /* 80384900 00380560 C3 E2 A8 08 */ lfs f31, lbl_80642E08-_SDA2_BASE_(r2) /* 80384904 00380564 EC 61 F0 28 */ fsubs f3, f1, f30 /* 80384908 00380568 C0 42 A8 04 */ lfs f2, lbl_80642E04-_SDA2_BASE_(r2) /* 8038490C 0038056C 88 A3 00 E6 */ lbz r5, 0xe6(r3) /* 80384910 00380570 EC 20 F8 24 */ fdivs f1, f0, f31 /* 80384914 00380574 C0 02 A7 F8 */ lfs f0, lbl_80642DF8-_SDA2_BASE_(r2) /* 80384918 00380578 88 83 00 E7 */ lbz r4, 0xe7(r3) /* 8038491C 0038057C 88 03 00 E8 */ lbz r0, 0xe8(r3) /* 80384920 00380580 C0 83 00 14 */ lfs f4, 0x14(r3) /* 80384924 00380584 98 A1 00 08 */ stb r5, 8(r1) /* 80384928 00380588 EC 43 00 B2 */ fmuls f2, f3, f2 /* 8038492C 0038058C C0 63 00 18 */ lfs f3, 0x18(r3) /* 80384930 00380590 EC 01 00 28 */ fsubs f0, f1, f0 /* 80384934 00380594 C0 23 00 28 */ lfs f1, 0x28(r3) /* 80384938 00380598 EF 39 18 2A */ fadds f25, f25, f3 /* 8038493C 0038059C 98 81 00 09 */ stb r4, 9(r1) /* 80384940 003805A0 EF 5A 10 2A */ fadds f26, f26, f2 /* 80384944 003805A4 8B E3 00 68 */ lbz r31, 0x68(r3) /* 80384948 003805A8 EF 18 00 2A */ fadds f24, f24, f0 /* 8038494C 003805AC 98 01 00 0A */ stb r0, 0xa(r1) /* 80384950 003805B0 C2 E2 A7 FC */ lfs f23, lbl_80642DFC-_SDA2_BASE_(r2) /* 80384954 003805B4 EF 5A 20 2A */ fadds f26, f26, f4 /* 80384958 003805B8 EF 18 08 2A */ fadds f24, f24, f1 lbl_8038495C: /* 8038495C 003805BC 88 1C 00 00 */ lbz r0, 0(r28) /* 80384960 003805C0 7F 43 D3 78 */ mr r3, r26 /* 80384964 003805C4 D2 FB 00 00 */ stfs f23, 0(r27) /* 80384968 003805C8 7F A4 EB 78 */ mr r4, r29 /* 8038496C 003805CC 90 01 00 44 */ stw r0, 0x44(r1) /* 80384970 003805D0 C0 1B 00 00 */ lfs f0, 0(r27) /* 80384974 003805D4 C8 21 00 40 */ lfd f1, 0x40(r1) /* 80384978 003805D8 EC 21 F0 28 */ fsubs f1, f1, f30 /* 8038497C 003805DC EC 21 F8 24 */ fdivs f1, f1, f31 /* 80384980 003805E0 EC 00 08 2A */ fadds f0, f0, f1 /* 80384984 003805E4 D0 1B 00 00 */ stfs f0, 0(r27) /* 80384988 003805E8 4B FE 85 CD */ bl GetFxSend__Q44nw4r3snd6detail11BasicPlayerCFQ34nw4r3snd6AuxBus /* 8038498C 003805EC C0 1B 00 00 */ lfs f0, 0(r27) /* 80384990 003805F0 3B BD 00 01 */ addi r29, r29, 1 /* 80384994 003805F4 2C 1D 00 03 */ cmpwi r29, 3 /* 80384998 003805F8 3B 9C 00 01 */ addi r28, r28, 1 /* 8038499C 003805FC EC 00 08 2A */ fadds f0, f0, f1 /* 803849A0 00380600 D0 1B 00 00 */ stfs f0, 0(r27) /* 803849A4 00380604 3B 7B 00 04 */ addi r27, r27, 4 /* 803849A8 00380608 41 80 FF B4 */ blt lbl_8038495C /* 803849AC 0038060C C3 C2 A7 FC */ lfs f30, lbl_80642DFC-_SDA2_BASE_(r2) /* 803849B0 00380610 3B 61 00 20 */ addi r27, r1, 0x20 /* 803849B4 00380614 3B 81 00 10 */ addi r28, r1, 0x10 /* 803849B8 00380618 3B A0 00 00 */ li r29, 0 lbl_803849BC: /* 803849BC 0038061C D3 DB 00 00 */ stfs f30, 0(r27) /* 803849C0 00380620 7F 43 D3 78 */ mr r3, r26 /* 803849C4 00380624 7F A4 EB 78 */ mr r4, r29 /* 803849C8 00380628 4B FE 85 BD */ bl GetRemoteSend__Q44nw4r3snd6detail11BasicPlayerCFi /* 803849CC 0038062C C0 1B 00 00 */ lfs f0, 0(r27) /* 803849D0 00380630 7F 43 D3 78 */ mr r3, r26 /* 803849D4 00380634 D3 DC 00 00 */ stfs f30, 0(r28) /* 803849D8 00380638 7F A4 EB 78 */ mr r4, r29 /* 803849DC 0038063C EC 00 08 2A */ fadds f0, f0, f1 /* 803849E0 00380640 D0 1B 00 00 */ stfs f0, 0(r27) /* 803849E4 00380644 4B FE 85 B1 */ bl GetRemoteFxSend__Q44nw4r3snd6detail11BasicPlayerCFi /* 803849E8 00380648 C0 1C 00 00 */ lfs f0, 0(r28) /* 803849EC 0038064C 3B BD 00 01 */ addi r29, r29, 1 /* 803849F0 00380650 2C 1D 00 04 */ cmpwi r29, 4 /* 803849F4 00380654 3B 7B 00 04 */ addi r27, r27, 4 /* 803849F8 00380658 EC 00 08 2A */ fadds f0, f0, f1 /* 803849FC 0038065C D0 1C 00 00 */ stfs f0, 0(r28) /* 80384A00 00380660 3B 9C 00 04 */ addi r28, r28, 4 /* 80384A04 00380664 41 80 FF B8 */ blt lbl_803849BC /* 80384A08 00380668 80 1A 00 6C */ lwz r0, 0x6c(r26) /* 80384A0C 0038066C 3B A1 00 20 */ addi r29, r1, 0x20 /* 80384A10 00380670 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384A14 00380674 3B 81 00 10 */ addi r28, r1, 0x10 /* 80384A18 00380678 C0 01 00 30 */ lfs f0, 0x30(r1) /* 80384A1C 0038067C 3B 60 00 00 */ li r27, 0 /* 80384A20 00380680 90 03 00 CC */ stw r0, 0xcc(r3) /* 80384A24 00380684 3B C0 00 00 */ li r30, 0 /* 80384A28 00380688 C0 61 00 34 */ lfs f3, 0x34(r1) /* 80384A2C 0038068C 80 1A 00 70 */ lwz r0, 0x70(r26) /* 80384A30 00380690 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384A34 00380694 C0 41 00 38 */ lfs f2, 0x38(r1) /* 80384A38 00380698 90 03 00 D0 */ stw r0, 0xd0(r3) /* 80384A3C 0038069C 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384A40 003806A0 D3 A3 00 38 */ stfs f29, 0x38(r3) /* 80384A44 003806A4 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384A48 003806A8 D3 83 00 3C */ stfs f28, 0x3c(r3) /* 80384A4C 003806AC 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384A50 003806B0 D3 63 00 40 */ stfs f27, 0x40(r3) /* 80384A54 003806B4 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384A58 003806B8 D3 43 00 44 */ stfs f26, 0x44(r3) /* 80384A5C 003806BC 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384A60 003806C0 D3 23 00 48 */ stfs f25, 0x48(r3) /* 80384A64 003806C4 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384A68 003806C8 93 E3 00 4C */ stw r31, 0x4c(r3) /* 80384A6C 003806CC 80 1A 00 20 */ lwz r0, 0x20(r26) /* 80384A70 003806D0 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384A74 003806D4 90 03 00 50 */ stw r0, 0x50(r3) /* 80384A78 003806D8 C0 3A 00 24 */ lfs f1, 0x24(r26) /* 80384A7C 003806DC 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384A80 003806E0 D0 23 00 54 */ stfs f1, 0x54(r3) /* 80384A84 003806E4 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384A88 003806E8 D3 03 00 58 */ stfs f24, 0x58(r3) /* 80384A8C 003806EC 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384A90 003806F0 D0 03 00 5C */ stfs f0, 0x5c(r3) /* 80384A94 003806F4 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384A98 003806F8 D0 63 00 60 */ stfs f3, 0x60(r3) /* 80384A9C 003806FC 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384AA0 00380700 D0 43 00 64 */ stfs f2, 0x64(r3) lbl_80384AA4: /* 80384AA4 00380704 7F 43 D3 78 */ mr r3, r26 /* 80384AA8 00380708 7F 64 DB 78 */ mr r4, r27 /* 80384AAC 0038070C 4B FE 84 C9 */ bl GetRemoteOutVolume__Q44nw4r3snd6detail11BasicPlayerCFi /* 80384AB0 00380710 80 1A 00 EC */ lwz r0, 0xec(r26) /* 80384AB4 00380714 3B 7B 00 01 */ addi r27, r27, 1 /* 80384AB8 00380718 C0 1D 00 00 */ lfs f0, 0(r29) /* 80384ABC 0038071C 2C 1B 00 04 */ cmpwi r27, 4 /* 80384AC0 00380720 7C 60 F2 14 */ add r3, r0, r30 /* 80384AC4 00380724 C0 5C 00 00 */ lfs f2, 0(r28) /* 80384AC8 00380728 D0 23 00 68 */ stfs f1, 0x68(r3) /* 80384ACC 0038072C 3B BD 00 04 */ addi r29, r29, 4 /* 80384AD0 00380730 3B 9C 00 04 */ addi r28, r28, 4 /* 80384AD4 00380734 80 1A 00 EC */ lwz r0, 0xec(r26) /* 80384AD8 00380738 7C 60 F2 14 */ add r3, r0, r30 /* 80384ADC 0038073C D0 03 00 78 */ stfs f0, 0x78(r3) /* 80384AE0 00380740 80 1A 00 EC */ lwz r0, 0xec(r26) /* 80384AE4 00380744 7C 60 F2 14 */ add r3, r0, r30 /* 80384AE8 00380748 3B DE 00 04 */ addi r30, r30, 4 /* 80384AEC 0038074C D0 43 00 88 */ stfs f2, 0x88(r3) /* 80384AF0 00380750 41 80 FF B4 */ blt lbl_80384AA4 /* 80384AF4 00380754 80 7A 00 EC */ lwz r3, 0xec(r26) /* 80384AF8 00380758 C0 1A 00 D0 */ lfs f0, 0xd0(r26) /* 80384AFC 0038075C D0 03 00 18 */ stfs f0, 0x18(r3) /* 80384B00 00380760 C0 1A 00 D4 */ lfs f0, 0xd4(r26) /* 80384B04 00380764 D0 03 00 1C */ stfs f0, 0x1c(r3) /* 80384B08 00380768 80 1A 00 D8 */ lwz r0, 0xd8(r26) /* 80384B0C 0038076C 90 03 00 20 */ stw r0, 0x20(r3) /* 80384B10 00380770 88 1A 00 DC */ lbz r0, 0xdc(r26) /* 80384B14 00380774 98 03 00 24 */ stb r0, 0x24(r3) /* 80384B18 00380778 88 1A 00 DD */ lbz r0, 0xdd(r26) /* 80384B1C 0038077C 98 03 00 25 */ stb r0, 0x25(r3) /* 80384B20 00380780 88 1A 00 DE */ lbz r0, 0xde(r26) /* 80384B24 00380784 98 03 00 26 */ stb r0, 0x26(r3) /* 80384B28 00380788 88 1A 00 DF */ lbz r0, 0xdf(r26) /* 80384B2C 0038078C 98 03 00 27 */ stb r0, 0x27(r3) lbl_80384B30: /* 80384B30 00380790 E3 E1 00 F8 */ psq_l f31, 248(r1), 0, qr0 /* 80384B34 00380794 CB E1 00 F0 */ lfd f31, 0xf0(r1) /* 80384B38 00380798 E3 C1 00 E8 */ psq_l f30, 232(r1), 0, qr0 /* 80384B3C 0038079C CB C1 00 E0 */ lfd f30, 0xe0(r1) /* 80384B40 003807A0 E3 A1 00 D8 */ psq_l f29, 216(r1), 0, qr0 /* 80384B44 003807A4 CB A1 00 D0 */ lfd f29, 0xd0(r1) /* 80384B48 003807A8 E3 81 00 C8 */ psq_l f28, 200(r1), 0, qr0 /* 80384B4C 003807AC CB 81 00 C0 */ lfd f28, 0xc0(r1) /* 80384B50 003807B0 E3 61 00 B8 */ psq_l f27, 184(r1), 0, qr0 /* 80384B54 003807B4 CB 61 00 B0 */ lfd f27, 0xb0(r1) /* 80384B58 003807B8 E3 41 00 A8 */ psq_l f26, 168(r1), 0, qr0 /* 80384B5C 003807BC CB 41 00 A0 */ lfd f26, 0xa0(r1) /* 80384B60 003807C0 E3 21 00 98 */ psq_l f25, 152(r1), 0, qr0 /* 80384B64 003807C4 CB 21 00 90 */ lfd f25, 0x90(r1) /* 80384B68 003807C8 E3 01 00 88 */ psq_l f24, 136(r1), 0, qr0 /* 80384B6C 003807CC CB 01 00 80 */ lfd f24, 0x80(r1) /* 80384B70 003807D0 E2 E1 00 78 */ psq_l f23, 120(r1), 0, qr0 /* 80384B74 003807D4 39 61 00 70 */ addi r11, r1, 0x70 /* 80384B78 003807D8 CA E1 00 70 */ lfd f23, 0x70(r1) /* 80384B7C 003807DC 4B E4 25 F5 */ bl _restgpr_26 /* 80384B80 003807E0 80 01 01 04 */ lwz r0, 0x104(r1) /* 80384B84 003807E4 7C 08 03 A6 */ mtlr r0 /* 80384B88 003807E8 38 21 01 00 */ addi r1, r1, 0x100 /* 80384B8C 003807EC 4E 80 00 20 */ blr .global ChannelCallbackFunc__Q44nw4r3snd6detail9WsdPlayerFPQ44nw4r3snd6detail7ChannelQ54nw4r3snd6detail7Channel21ChannelCallbackStatusUl ChannelCallbackFunc__Q44nw4r3snd6detail9WsdPlayerFPQ44nw4r3snd6detail7ChannelQ54nw4r3snd6detail7Channel21ChannelCallbackStatusUl: /* 80384B90 003807F0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80384B94 003807F4 7C 08 02 A6 */ mflr r0 /* 80384B98 003807F8 2C 04 00 02 */ cmpwi r4, 2 /* 80384B9C 003807FC 90 01 00 14 */ stw r0, 0x14(r1) /* 80384BA0 00380800 93 E1 00 0C */ stw r31, 0xc(r1) /* 80384BA4 00380804 7C BF 2B 78 */ mr r31, r5 /* 80384BA8 00380808 40 82 00 08 */ bne lbl_80384BB0 /* 80384BAC 0038080C 4B FE A6 95 */ bl FreeChannel__Q44nw4r3snd6detail7ChannelFPQ44nw4r3snd6detail7Channel lbl_80384BB0: /* 80384BB0 00380810 38 00 00 00 */ li r0, 0 /* 80384BB4 00380814 90 1F 00 EC */ stw r0, 0xec(r31) /* 80384BB8 00380818 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80384BBC 0038081C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80384BC0 00380820 7C 08 03 A6 */ mtlr r0 /* 80384BC4 00380824 38 21 00 10 */ addi r1, r1, 0x10 /* 80384BC8 00380828 4E 80 00 20 */ blr .global OnUpdateFrameSoundThread__Q44nw4r3snd6detail9WsdPlayerFv OnUpdateFrameSoundThread__Q44nw4r3snd6detail9WsdPlayerFv: /* 80384BCC 0038082C 4B FF F8 00 */ b Update__Q44nw4r3snd6detail9WsdPlayerFv .global OnShutdownSoundThread__Q44nw4r3snd6detail9WsdPlayerFv OnShutdownSoundThread__Q44nw4r3snd6detail9WsdPlayerFv: /* 80384BD0 00380830 81 83 00 00 */ lwz r12, 0(r3) /* 80384BD4 00380834 81 8C 00 10 */ lwz r12, 0x10(r12) /* 80384BD8 00380838 7D 89 03 A6 */ mtctr r12 /* 80384BDC 0038083C 4E 80 04 20 */ bctr .global InvalidateWaveData__Q44nw4r3snd6detail9WsdPlayerFPCvPCv InvalidateWaveData__Q44nw4r3snd6detail9WsdPlayerFPCvPCv: /* 80384BE0 00380840 4E 80 00 20 */ blr .global IsPause__Q44nw4r3snd6detail9WsdPlayerCFv IsPause__Q44nw4r3snd6detail9WsdPlayerCFv: /* 80384BE4 00380844 88 63 00 8E */ lbz r3, 0x8e(r3) /* 80384BE8 00380848 7C 03 00 D0 */ neg r0, r3 /* 80384BEC 0038084C 7C 00 1B 78 */ or r0, r0, r3 /* 80384BF0 00380850 54 03 0F FE */ srwi r3, r0, 0x1f /* 80384BF4 00380854 4E 80 00 20 */ blr .global IsStarted__Q44nw4r3snd6detail9WsdPlayerCFv IsStarted__Q44nw4r3snd6detail9WsdPlayerCFv: /* 80384BF8 00380858 88 63 00 8D */ lbz r3, 0x8d(r3) /* 80384BFC 0038085C 7C 03 00 D0 */ neg r0, r3 /* 80384C00 00380860 7C 00 1B 78 */ or r0, r0, r3 /* 80384C04 00380864 54 03 0F FE */ srwi r3, r0, 0x1f /* 80384C08 00380868 4E 80 00 20 */ blr .global IsActive__Q44nw4r3snd6detail9WsdPlayerCFv IsActive__Q44nw4r3snd6detail9WsdPlayerCFv: /* 80384C0C 0038086C 88 63 00 8C */ lbz r3, 0x8c(r3) /* 80384C10 00380870 7C 03 00 D0 */ neg r0, r3 /* 80384C14 00380874 7C 00 1B 78 */ or r0, r0, r3 /* 80384C18 00380878 54 03 0F FE */ srwi r3, r0, 0x1f /* 80384C1C 0038087C 4E 80 00 20 */ blr /* virtual thunks */ /* 80384C20 00380880 38 63 FF 8C */ addi r3, r3, -116 /* 80384C24 00380884 4B FF FF BC */ b InvalidateWaveData__Q44nw4r3snd6detail9WsdPlayerFPCvPCv /* 80384C28 00380888 38 63 FF 8C */ addi r3, r3, -116 /* 80384C2C 0038088C 4B FF F6 60 */ b InvalidateData__Q44nw4r3snd6detail9WsdPlayerFPCvPCv /* 80384C30 00380890 38 63 FF 8C */ addi r3, r3, -116 /* 80384C34 00380894 4B FF EA 78 */ b __dt__Q44nw4r3snd6detail9WsdPlayerFv /* 80384C38 00380898 38 63 FF 80 */ addi r3, r3, -128 /* 80384C3C 0038089C 4B FF FF 94 */ b OnShutdownSoundThread__Q44nw4r3snd6detail9WsdPlayerFv /* 80384C40 003808A0 38 63 FF 80 */ addi r3, r3, -128 /* 80384C44 003808A4 4B FF FF 88 */ b OnUpdateFrameSoundThread__Q44nw4r3snd6detail9WsdPlayerFv /* 80384C48 003808A8 38 63 FF 80 */ addi r3, r3, -128 /* 80384C4C 003808AC 4B FF EA 60 */ b __dt__Q44nw4r3snd6detail9WsdPlayerFv