.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global __ct__Q34nw4r3snd13RemoteSpeakerFv __ct__Q34nw4r3snd13RemoteSpeakerFv: /* 80372F94 0036EBF4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80372F98 0036EBF8 7C 08 02 A6 */ mflr r0 /* 80372F9C 0036EBFC 90 01 00 14 */ stw r0, 0x14(r1) /* 80372FA0 0036EC00 38 00 00 00 */ li r0, 0 /* 80372FA4 0036EC04 93 E1 00 0C */ stw r31, 0xc(r1) /* 80372FA8 0036EC08 7C 7F 1B 78 */ mr r31, r3 /* 80372FAC 0036EC0C 98 03 00 00 */ stb r0, 0(r3) /* 80372FB0 0036EC10 98 03 00 01 */ stb r0, 1(r3) /* 80372FB4 0036EC14 98 03 00 02 */ stb r0, 2(r3) /* 80372FB8 0036EC18 98 03 00 03 */ stb r0, 3(r3) /* 80372FBC 0036EC1C 98 03 00 04 */ stb r0, 4(r3) /* 80372FC0 0036EC20 98 03 00 05 */ stb r0, 5(r3) /* 80372FC4 0036EC24 98 03 00 06 */ stb r0, 6(r3) /* 80372FC8 0036EC28 90 03 00 0C */ stw r0, 0xc(r3) /* 80372FCC 0036EC2C 90 03 00 10 */ stw r0, 0x10(r3) /* 80372FD0 0036EC30 90 03 00 14 */ stw r0, 0x14(r3) /* 80372FD4 0036EC34 90 03 00 3C */ stw r0, 0x3c(r3) /* 80372FD8 0036EC38 38 63 00 40 */ addi r3, r3, 0x40 /* 80372FDC 0036EC3C 4B EF 67 49 */ bl OSCreateAlarm /* 80372FE0 0036EC40 7F E4 FB 78 */ mr r4, r31 /* 80372FE4 0036EC44 38 7F 00 40 */ addi r3, r31, 0x40 /* 80372FE8 0036EC48 4B EF 6E B9 */ bl OSSetAlarmUserData /* 80372FEC 0036EC4C 38 7F 00 70 */ addi r3, r31, 0x70 /* 80372FF0 0036EC50 4B EF 67 35 */ bl OSCreateAlarm /* 80372FF4 0036EC54 7F E4 FB 78 */ mr r4, r31 /* 80372FF8 0036EC58 38 7F 00 70 */ addi r3, r31, 0x70 /* 80372FFC 0036EC5C 4B EF 6E A5 */ bl OSSetAlarmUserData /* 80373000 0036EC60 7F E3 FB 78 */ mr r3, r31 /* 80373004 0036EC64 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80373008 0036EC68 80 01 00 14 */ lwz r0, 0x14(r1) /* 8037300C 0036EC6C 7C 08 03 A6 */ mtlr r0 /* 80373010 0036EC70 38 21 00 10 */ addi r1, r1, 0x10 /* 80373014 0036EC74 4E 80 00 20 */ blr .global Update__Q34nw4r3snd13RemoteSpeakerFv Update__Q34nw4r3snd13RemoteSpeakerFv: /* 80373018 0036EC78 88 03 00 05 */ lbz r0, 5(r3) /* 8037301C 0036EC7C 2C 00 00 00 */ cmpwi r0, 0 /* 80373020 0036EC80 4C 82 00 20 */ bnelr /* 80373024 0036EC84 80 83 00 10 */ lwz r4, 0x10(r3) /* 80373028 0036EC88 2C 04 00 00 */ cmpwi r4, 0 /* 8037302C 0036EC8C 41 82 00 08 */ beq lbl_80373034 /* 80373030 0036EC90 48 00 00 08 */ b lbl_80373038 lbl_80373034: /* 80373034 0036EC94 80 83 00 14 */ lwz r4, 0x14(r3) lbl_80373038: /* 80373038 0036EC98 38 00 00 00 */ li r0, 0 /* 8037303C 0036EC9C 90 03 00 10 */ stw r0, 0x10(r3) /* 80373040 0036ECA0 90 03 00 14 */ stw r0, 0x14(r3) /* 80373044 0036ECA4 48 00 00 08 */ b ExecCommand__Q34nw4r3snd13RemoteSpeakerFQ44nw4r3snd13RemoteSpeaker14SpeakerCommand /* 80373048 0036ECA8 4E 80 00 20 */ blr .global ExecCommand__Q34nw4r3snd13RemoteSpeakerFQ44nw4r3snd13RemoteSpeaker14SpeakerCommand ExecCommand__Q34nw4r3snd13RemoteSpeakerFQ44nw4r3snd13RemoteSpeaker14SpeakerCommand: /* 8037304C 0036ECAC 2C 04 00 02 */ cmpwi r4, 2 /* 80373050 0036ECB0 41 82 00 48 */ beq lbl_80373098 /* 80373054 0036ECB4 40 80 00 14 */ bge lbl_80373068 /* 80373058 0036ECB8 2C 04 00 00 */ cmpwi r4, 0 /* 8037305C 0036ECBC 4D 82 00 20 */ beqlr /* 80373060 0036ECC0 40 80 00 14 */ bge lbl_80373074 /* 80373064 0036ECC4 4E 80 00 20 */ blr lbl_80373068: /* 80373068 0036ECC8 2C 04 00 04 */ cmpwi r4, 4 /* 8037306C 0036ECCC 4C 80 00 20 */ bgelr /* 80373070 0036ECD0 48 00 00 50 */ b lbl_803730C0 lbl_80373074: /* 80373074 0036ECD4 38 00 00 01 */ li r0, 1 /* 80373078 0036ECD8 3C A0 80 37 */ lis r5, SpeakerOnCallback__Q34nw4r3snd13RemoteSpeakerFll@ha /* 8037307C 0036ECDC 98 03 00 04 */ stb r0, 4(r3) /* 80373080 0036ECE0 38 A5 34 00 */ addi r5, r5, SpeakerOnCallback__Q34nw4r3snd13RemoteSpeakerFll@l /* 80373084 0036ECE4 38 80 00 01 */ li r4, 1 /* 80373088 0036ECE8 98 03 00 05 */ stb r0, 5(r3) /* 8037308C 0036ECEC 90 03 00 0C */ stw r0, 0xc(r3) /* 80373090 0036ECF0 80 63 00 38 */ lwz r3, 0x38(r3) /* 80373094 0036ECF4 4B F3 6B 80 */ b WPADControlSpeaker lbl_80373098: /* 80373098 0036ECF8 38 C0 00 01 */ li r6, 1 /* 8037309C 0036ECFC 38 00 00 03 */ li r0, 3 /* 803730A0 0036ED00 3C A0 80 37 */ lis r5, SpeakerPlayCallback__Q34nw4r3snd13RemoteSpeakerFll@ha /* 803730A4 0036ED04 98 C3 00 04 */ stb r6, 4(r3) /* 803730A8 0036ED08 38 A5 35 0C */ addi r5, r5, SpeakerPlayCallback__Q34nw4r3snd13RemoteSpeakerFll@l /* 803730AC 0036ED0C 38 80 00 04 */ li r4, 4 /* 803730B0 0036ED10 98 C3 00 05 */ stb r6, 5(r3) /* 803730B4 0036ED14 90 03 00 0C */ stw r0, 0xc(r3) /* 803730B8 0036ED18 80 63 00 38 */ lwz r3, 0x38(r3) /* 803730BC 0036ED1C 4B F3 6B 58 */ b WPADControlSpeaker lbl_803730C0: /* 803730C0 0036ED20 38 C0 00 01 */ li r6, 1 /* 803730C4 0036ED24 38 00 00 05 */ li r0, 5 /* 803730C8 0036ED28 3C A0 80 37 */ lis r5, SpeakerOffCallback__Q34nw4r3snd13RemoteSpeakerFll@ha /* 803730CC 0036ED2C 98 C3 00 04 */ stb r6, 4(r3) /* 803730D0 0036ED30 38 A5 35 F4 */ addi r5, r5, SpeakerOffCallback__Q34nw4r3snd13RemoteSpeakerFll@l /* 803730D4 0036ED34 38 80 00 00 */ li r4, 0 /* 803730D8 0036ED38 98 C3 00 05 */ stb r6, 5(r3) /* 803730DC 0036ED3C 90 03 00 0C */ stw r0, 0xc(r3) /* 803730E0 0036ED40 80 63 00 38 */ lwz r3, 0x38(r3) /* 803730E4 0036ED44 4B F3 6B 30 */ b WPADControlSpeaker /* 803730E8 0036ED48 4E 80 00 20 */ blr .global UpdateStreamData__Q34nw4r3snd13RemoteSpeakerFPCs UpdateStreamData__Q34nw4r3snd13RemoteSpeakerFPCs: /* 803730EC 0036ED4C 94 21 FF C0 */ stwu r1, -0x40(r1) /* 803730F0 0036ED50 7C 08 02 A6 */ mflr r0 /* 803730F4 0036ED54 90 01 00 44 */ stw r0, 0x44(r1) /* 803730F8 0036ED58 39 61 00 40 */ addi r11, r1, 0x40 /* 803730FC 0036ED5C 4B E5 40 25 */ bl _savegpr_25 /* 80373100 0036ED60 80 03 00 0C */ lwz r0, 0xc(r3) /* 80373104 0036ED64 7C 7D 1B 78 */ mr r29, r3 /* 80373108 0036ED68 7C 99 23 78 */ mr r25, r4 /* 8037310C 0036ED6C 2C 00 00 04 */ cmpwi r0, 4 /* 80373110 0036ED70 40 82 02 D8 */ bne lbl_803733E8 /* 80373114 0036ED74 88 03 00 02 */ lbz r0, 2(r3) /* 80373118 0036ED78 3B C0 00 01 */ li r30, 1 /* 8037311C 0036ED7C 2C 00 00 00 */ cmpwi r0, 0 /* 80373120 0036ED80 41 82 00 F0 */ beq lbl_80373210 /* 80373124 0036ED84 38 00 00 02 */ li r0, 2 /* 80373128 0036ED88 7F 26 CB 78 */ mr r6, r25 /* 8037312C 0036ED8C 38 A0 00 01 */ li r5, 1 /* 80373130 0036ED90 38 80 00 00 */ li r4, 0 /* 80373134 0036ED94 7C 09 03 A6 */ mtctr r0 lbl_80373138: /* 80373138 0036ED98 80 06 00 00 */ lwz r0, 0(r6) /* 8037313C 0036ED9C 2C 00 00 00 */ cmpwi r0, 0 /* 80373140 0036EDA0 41 82 00 0C */ beq lbl_8037314C /* 80373144 0036EDA4 38 A0 00 00 */ li r5, 0 /* 80373148 0036EDA8 48 00 00 CC */ b lbl_80373214 lbl_8037314C: /* 8037314C 0036EDAC 80 06 00 04 */ lwz r0, 4(r6) /* 80373150 0036EDB0 2C 00 00 00 */ cmpwi r0, 0 /* 80373154 0036EDB4 41 82 00 0C */ beq lbl_80373160 /* 80373158 0036EDB8 38 A0 00 00 */ li r5, 0 /* 8037315C 0036EDBC 48 00 00 B8 */ b lbl_80373214 lbl_80373160: /* 80373160 0036EDC0 80 06 00 08 */ lwz r0, 8(r6) /* 80373164 0036EDC4 2C 00 00 00 */ cmpwi r0, 0 /* 80373168 0036EDC8 41 82 00 0C */ beq lbl_80373174 /* 8037316C 0036EDCC 38 A0 00 00 */ li r5, 0 /* 80373170 0036EDD0 48 00 00 A4 */ b lbl_80373214 lbl_80373174: /* 80373174 0036EDD4 80 06 00 0C */ lwz r0, 0xc(r6) /* 80373178 0036EDD8 2C 00 00 00 */ cmpwi r0, 0 /* 8037317C 0036EDDC 41 82 00 0C */ beq lbl_80373188 /* 80373180 0036EDE0 38 A0 00 00 */ li r5, 0 /* 80373184 0036EDE4 48 00 00 90 */ b lbl_80373214 lbl_80373188: /* 80373188 0036EDE8 80 06 00 10 */ lwz r0, 0x10(r6) /* 8037318C 0036EDEC 2C 00 00 00 */ cmpwi r0, 0 /* 80373190 0036EDF0 41 82 00 0C */ beq lbl_8037319C /* 80373194 0036EDF4 38 A0 00 00 */ li r5, 0 /* 80373198 0036EDF8 48 00 00 7C */ b lbl_80373214 lbl_8037319C: /* 8037319C 0036EDFC 80 06 00 14 */ lwz r0, 0x14(r6) /* 803731A0 0036EE00 2C 00 00 00 */ cmpwi r0, 0 /* 803731A4 0036EE04 41 82 00 0C */ beq lbl_803731B0 /* 803731A8 0036EE08 38 A0 00 00 */ li r5, 0 /* 803731AC 0036EE0C 48 00 00 68 */ b lbl_80373214 lbl_803731B0: /* 803731B0 0036EE10 80 06 00 18 */ lwz r0, 0x18(r6) /* 803731B4 0036EE14 2C 00 00 00 */ cmpwi r0, 0 /* 803731B8 0036EE18 41 82 00 0C */ beq lbl_803731C4 /* 803731BC 0036EE1C 38 A0 00 00 */ li r5, 0 /* 803731C0 0036EE20 48 00 00 54 */ b lbl_80373214 lbl_803731C4: /* 803731C4 0036EE24 80 06 00 1C */ lwz r0, 0x1c(r6) /* 803731C8 0036EE28 2C 00 00 00 */ cmpwi r0, 0 /* 803731CC 0036EE2C 41 82 00 0C */ beq lbl_803731D8 /* 803731D0 0036EE30 38 A0 00 00 */ li r5, 0 /* 803731D4 0036EE34 48 00 00 40 */ b lbl_80373214 lbl_803731D8: /* 803731D8 0036EE38 80 06 00 20 */ lwz r0, 0x20(r6) /* 803731DC 0036EE3C 2C 00 00 00 */ cmpwi r0, 0 /* 803731E0 0036EE40 41 82 00 0C */ beq lbl_803731EC /* 803731E4 0036EE44 38 A0 00 00 */ li r5, 0 /* 803731E8 0036EE48 48 00 00 2C */ b lbl_80373214 lbl_803731EC: /* 803731EC 0036EE4C 80 06 00 24 */ lwz r0, 0x24(r6) /* 803731F0 0036EE50 2C 00 00 00 */ cmpwi r0, 0 /* 803731F4 0036EE54 41 82 00 0C */ beq lbl_80373200 /* 803731F8 0036EE58 38 A0 00 00 */ li r5, 0 /* 803731FC 0036EE5C 48 00 00 18 */ b lbl_80373214 lbl_80373200: /* 80373200 0036EE60 38 C6 00 28 */ addi r6, r6, 0x28 /* 80373204 0036EE64 38 84 00 09 */ addi r4, r4, 9 /* 80373208 0036EE68 42 00 FF 30 */ bdnz lbl_80373138 /* 8037320C 0036EE6C 48 00 00 08 */ b lbl_80373214 lbl_80373210: /* 80373210 0036EE70 38 A0 00 01 */ li r5, 1 lbl_80373214: /* 80373214 0036EE74 2C 05 00 00 */ cmpwi r5, 0 /* 80373218 0036EE78 40 82 00 10 */ bne lbl_80373228 /* 8037321C 0036EE7C 88 03 00 06 */ lbz r0, 6(r3) /* 80373220 0036EE80 2C 00 00 00 */ cmpwi r0, 0 /* 80373224 0036EE84 41 82 00 08 */ beq lbl_8037322C lbl_80373228: /* 80373228 0036EE88 3B C0 00 00 */ li r30, 0 lbl_8037322C: /* 8037322C 0036EE8C 88 03 00 01 */ lbz r0, 1(r3) /* 80373230 0036EE90 3B 40 00 00 */ li r26, 0 /* 80373234 0036EE94 2C 00 00 00 */ cmpwi r0, 0 /* 80373238 0036EE98 40 82 00 10 */ bne lbl_80373248 /* 8037323C 0036EE9C 2C 1E 00 00 */ cmpwi r30, 0 /* 80373240 0036EEA0 41 82 00 08 */ beq lbl_80373248 /* 80373244 0036EEA4 3B 40 00 01 */ li r26, 1 lbl_80373248: /* 80373248 0036EEA8 2C 00 00 00 */ cmpwi r0, 0 /* 8037324C 0036EEAC 3B E0 00 00 */ li r31, 0 /* 80373250 0036EEB0 41 82 00 10 */ beq lbl_80373260 /* 80373254 0036EEB4 2C 1E 00 00 */ cmpwi r30, 0 /* 80373258 0036EEB8 40 82 00 08 */ bne lbl_80373260 /* 8037325C 0036EEBC 3B E0 00 01 */ li r31, 1 lbl_80373260: /* 80373260 0036EEC0 2C 1E 00 00 */ cmpwi r30, 0 /* 80373264 0036EEC4 41 82 00 BC */ beq lbl_80373320 /* 80373268 0036EEC8 4B EF B4 F5 */ bl OSDisableInterrupts /* 8037326C 0036EECC 7C 7C 1B 78 */ mr r28, r3 /* 80373270 0036EED0 80 7D 00 38 */ lwz r3, 0x38(r29) /* 80373274 0036EED4 4B F3 81 79 */ bl WPADCanSendStreamData /* 80373278 0036EED8 2C 03 00 00 */ cmpwi r3, 0 /* 8037327C 0036EEDC 40 82 00 10 */ bne lbl_8037328C /* 80373280 0036EEE0 7F 83 E3 78 */ mr r3, r28 /* 80373284 0036EEE4 4B EF B5 01 */ bl OSRestoreInterrupts /* 80373288 0036EEE8 48 00 01 60 */ b lbl_803733E8 lbl_8037328C: /* 8037328C 0036EEEC 88 1D 00 03 */ lbz r0, 3(r29) /* 80373290 0036EEF0 3B 60 00 00 */ li r27, 0 /* 80373294 0036EEF4 7F 25 CB 78 */ mr r5, r25 /* 80373298 0036EEF8 38 7D 00 18 */ addi r3, r29, 0x18 /* 8037329C 0036EEFC 7C 00 00 34 */ cntlzw r0, r0 /* 803732A0 0036EF00 9B 7D 00 03 */ stb r27, 3(r29) /* 803732A4 0036EF04 54 04 D9 7E */ srwi r4, r0, 5 /* 803732A8 0036EF08 38 E1 00 08 */ addi r7, r1, 8 /* 803732AC 0036EF0C 38 C0 00 28 */ li r6, 0x28 /* 803732B0 0036EF10 4B F7 97 71 */ bl WENCGetEncodeData /* 803732B4 0036EF14 80 7D 00 38 */ lwz r3, 0x38(r29) /* 803732B8 0036EF18 38 81 00 08 */ addi r4, r1, 8 /* 803732BC 0036EF1C 38 A0 00 14 */ li r5, 0x14 /* 803732C0 0036EF20 4B F3 81 B1 */ bl WPADSendStreamData /* 803732C4 0036EF24 2C 03 00 00 */ cmpwi r3, 0 /* 803732C8 0036EF28 41 82 00 50 */ beq lbl_80373318 /* 803732CC 0036EF2C 3B C0 00 01 */ li r30, 1 /* 803732D0 0036EF30 93 7D 00 0C */ stw r27, 0xc(r29) /* 803732D4 0036EF34 38 7D 00 40 */ addi r3, r29, 0x40 /* 803732D8 0036EF38 93 DD 00 14 */ stw r30, 0x14(r29) /* 803732DC 0036EF3C 9B 7D 00 01 */ stb r27, 1(r29) /* 803732E0 0036EF40 9B 7D 00 02 */ stb r27, 2(r29) /* 803732E4 0036EF44 4B EF 67 95 */ bl OSCancelAlarm /* 803732E8 0036EF48 9B 7D 00 07 */ stb r27, 7(r29) /* 803732EC 0036EF4C 38 7D 00 70 */ addi r3, r29, 0x70 /* 803732F0 0036EF50 4B EF 67 89 */ bl OSCancelAlarm /* 803732F4 0036EF54 9B 7D 00 08 */ stb r27, 8(r29) /* 803732F8 0036EF58 7F 83 E3 78 */ mr r3, r28 /* 803732FC 0036EF5C 9B 7D 00 06 */ stb r27, 6(r29) /* 80373300 0036EF60 9B 7D 00 07 */ stb r27, 7(r29) /* 80373304 0036EF64 9B 7D 00 01 */ stb r27, 1(r29) /* 80373308 0036EF68 9B DD 00 02 */ stb r30, 2(r29) /* 8037330C 0036EF6C 9B 7D 00 08 */ stb r27, 8(r29) /* 80373310 0036EF70 4B EF B4 75 */ bl OSRestoreInterrupts /* 80373314 0036EF74 48 00 00 D4 */ b lbl_803733E8 lbl_80373318: /* 80373318 0036EF78 7F 83 E3 78 */ mr r3, r28 /* 8037331C 0036EF7C 4B EF B4 69 */ bl OSRestoreInterrupts lbl_80373320: /* 80373320 0036EF80 2C 1A 00 00 */ cmpwi r26, 0 /* 80373324 0036EF84 41 82 00 78 */ beq lbl_8037339C /* 80373328 0036EF88 4B EF B4 35 */ bl OSDisableInterrupts /* 8037332C 0036EF8C 88 1D 00 07 */ lbz r0, 7(r29) /* 80373330 0036EF90 7C 7C 1B 78 */ mr r28, r3 /* 80373334 0036EF94 2C 00 00 00 */ cmpwi r0, 0 /* 80373338 0036EF98 40 82 00 4C */ bne lbl_80373384 /* 8037333C 0036EF9C 3C 60 80 00 */ lis r3, 0x800000F8@ha /* 80373340 0036EFA0 3C E0 80 37 */ lis r7, ContinueAlarmHandler__Q34nw4r3snd13RemoteSpeakerFP7OSAlarmP9OSContext@ha /* 80373344 0036EFA4 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3) /* 80373348 0036EFA8 38 80 01 E0 */ li r4, 0x1e0 /* 8037334C 0036EFAC 38 A0 00 00 */ li r5, 0 /* 80373350 0036EFB0 38 7D 00 40 */ addi r3, r29, 0x40 /* 80373354 0036EFB4 54 06 F0 BE */ srwi r6, r0, 2 /* 80373358 0036EFB8 38 E7 36 DC */ addi r7, r7, ContinueAlarmHandler__Q34nw4r3snd13RemoteSpeakerFP7OSAlarmP9OSContext@l /* 8037335C 0036EFBC 7C 06 20 16 */ mulhwu r0, r6, r4 /* 80373360 0036EFC0 7C 85 21 D6 */ mullw r4, r5, r4 /* 80373364 0036EFC4 1C C6 01 E0 */ mulli r6, r6, 0x1e0 /* 80373368 0036EFC8 7C A0 22 14 */ add r5, r0, r4 /* 8037336C 0036EFCC 4B EF 66 19 */ bl OSSetAlarm /* 80373370 0036EFD0 4B EF F4 49 */ bl OSGetTime /* 80373374 0036EFD4 38 00 00 01 */ li r0, 1 /* 80373378 0036EFD8 90 9D 00 A4 */ stw r4, 0xa4(r29) /* 8037337C 0036EFDC 90 7D 00 A0 */ stw r3, 0xa0(r29) /* 80373380 0036EFE0 98 1D 00 07 */ stb r0, 7(r29) lbl_80373384: /* 80373384 0036EFE4 38 7D 00 70 */ addi r3, r29, 0x70 /* 80373388 0036EFE8 4B EF 66 F1 */ bl OSCancelAlarm /* 8037338C 0036EFEC 38 00 00 00 */ li r0, 0 /* 80373390 0036EFF0 7F 83 E3 78 */ mr r3, r28 /* 80373394 0036EFF4 98 1D 00 08 */ stb r0, 8(r29) /* 80373398 0036EFF8 4B EF B3 ED */ bl OSRestoreInterrupts lbl_8037339C: /* 8037339C 0036EFFC 2C 1F 00 00 */ cmpwi r31, 0 /* 803733A0 0036F000 41 82 00 44 */ beq lbl_803733E4 /* 803733A4 0036F004 4B EF B3 B9 */ bl OSDisableInterrupts /* 803733A8 0036F008 38 00 00 01 */ li r0, 1 /* 803733AC 0036F00C 7C 7C 1B 78 */ mr r28, r3 /* 803733B0 0036F010 98 1D 00 08 */ stb r0, 8(r29) /* 803733B4 0036F014 38 7D 00 70 */ addi r3, r29, 0x70 /* 803733B8 0036F018 4B EF 66 C1 */ bl OSCancelAlarm /* 803733BC 0036F01C 3C 60 80 00 */ lis r3, 0x800000F8@ha /* 803733C0 0036F020 3C E0 80 37 */ lis r7, IntervalAlarmHandler__Q34nw4r3snd13RemoteSpeakerFP7OSAlarmP9OSContext@ha /* 803733C4 0036F024 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3) /* 803733C8 0036F028 38 7D 00 70 */ addi r3, r29, 0x70 /* 803733CC 0036F02C 38 E7 37 34 */ addi r7, r7, IntervalAlarmHandler__Q34nw4r3snd13RemoteSpeakerFP7OSAlarmP9OSContext@l /* 803733D0 0036F030 38 A0 00 00 */ li r5, 0 /* 803733D4 0036F034 54 06 F0 BE */ srwi r6, r0, 2 /* 803733D8 0036F038 4B EF 65 AD */ bl OSSetAlarm /* 803733DC 0036F03C 7F 83 E3 78 */ mr r3, r28 /* 803733E0 0036F040 4B EF B3 A5 */ bl OSRestoreInterrupts lbl_803733E4: /* 803733E4 0036F044 9B DD 00 01 */ stb r30, 1(r29) lbl_803733E8: /* 803733E8 0036F048 39 61 00 40 */ addi r11, r1, 0x40 /* 803733EC 0036F04C 4B E5 3D 81 */ bl _restgpr_25 /* 803733F0 0036F050 80 01 00 44 */ lwz r0, 0x44(r1) /* 803733F4 0036F054 7C 08 03 A6 */ mtlr r0 /* 803733F8 0036F058 38 21 00 40 */ addi r1, r1, 0x40 /* 803733FC 0036F05C 4E 80 00 20 */ blr .global SpeakerOnCallback__Q34nw4r3snd13RemoteSpeakerFll SpeakerOnCallback__Q34nw4r3snd13RemoteSpeakerFll: /* 80373400 0036F060 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80373404 0036F064 7C 08 02 A6 */ mflr r0 /* 80373408 0036F068 90 01 00 24 */ stw r0, 0x24(r1) /* 8037340C 0036F06C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80373410 0036F070 93 C1 00 18 */ stw r30, 0x18(r1) /* 80373414 0036F074 7C 9E 23 78 */ mr r30, r4 /* 80373418 0036F078 93 A1 00 14 */ stw r29, 0x14(r1) /* 8037341C 0036F07C 7C 7D 1B 78 */ mr r29, r3 /* 80373420 0036F080 48 00 03 89 */ bl GetInstance__Q44nw4r3snd6detail20RemoteSpeakerManagerFv /* 80373424 0036F084 7F A4 EB 78 */ mr r4, r29 /* 80373428 0036F088 48 00 04 19 */ bl GetRemoteSpeaker__Q44nw4r3snd6detail20RemoteSpeakerManagerFi /* 8037342C 0036F08C 2C 1E FF FF */ cmpwi r30, -1 /* 80373430 0036F090 7C 7F 1B 78 */ mr r31, r3 /* 80373434 0036F094 41 82 00 60 */ beq lbl_80373494 /* 80373438 0036F098 40 80 00 14 */ bge lbl_8037344C /* 8037343C 0036F09C 2C 1E FF FD */ cmpwi r30, -3 /* 80373440 0036F0A0 41 82 00 48 */ beq lbl_80373488 /* 80373444 0036F0A4 40 80 00 38 */ bge lbl_8037347C /* 80373448 0036F0A8 48 00 00 58 */ b lbl_803734A0 lbl_8037344C: /* 8037344C 0036F0AC 2C 1E 00 01 */ cmpwi r30, 1 /* 80373450 0036F0B0 40 80 00 50 */ bge lbl_803734A0 /* 80373454 0036F0B4 38 00 00 01 */ li r0, 1 /* 80373458 0036F0B8 38 80 00 00 */ li r4, 0 /* 8037345C 0036F0BC 98 03 00 03 */ stb r0, 3(r3) /* 80373460 0036F0C0 38 A0 00 20 */ li r5, 0x20 /* 80373464 0036F0C4 38 63 00 18 */ addi r3, r3, 0x18 /* 80373468 0036F0C8 4B C9 0C 9D */ bl memset /* 8037346C 0036F0CC 38 00 00 02 */ li r0, 2 /* 80373470 0036F0D0 90 1F 00 0C */ stw r0, 0xc(r31) /* 80373474 0036F0D4 90 1F 00 14 */ stw r0, 0x14(r31) /* 80373478 0036F0D8 48 00 00 30 */ b lbl_803734A8 lbl_8037347C: /* 8037347C 0036F0DC 38 00 00 01 */ li r0, 1 /* 80373480 0036F0E0 90 03 00 14 */ stw r0, 0x14(r3) /* 80373484 0036F0E4 48 00 00 24 */ b lbl_803734A8 lbl_80373488: /* 80373488 0036F0E8 38 00 00 00 */ li r0, 0 /* 8037348C 0036F0EC 90 03 00 0C */ stw r0, 0xc(r3) /* 80373490 0036F0F0 48 00 00 18 */ b lbl_803734A8 lbl_80373494: /* 80373494 0036F0F4 38 00 00 00 */ li r0, 0 /* 80373498 0036F0F8 90 03 00 0C */ stw r0, 0xc(r3) /* 8037349C 0036F0FC 48 00 00 0C */ b lbl_803734A8 lbl_803734A0: /* 803734A0 0036F100 38 00 00 00 */ li r0, 0 /* 803734A4 0036F104 90 03 00 0C */ stw r0, 0xc(r3) lbl_803734A8: /* 803734A8 0036F108 2C 1E 00 00 */ cmpwi r30, 0 /* 803734AC 0036F10C 41 82 00 3C */ beq lbl_803734E8 /* 803734B0 0036F110 2C 1E FF FE */ cmpwi r30, -2 /* 803734B4 0036F114 41 82 00 34 */ beq lbl_803734E8 /* 803734B8 0036F118 88 1F 00 04 */ lbz r0, 4(r31) /* 803734BC 0036F11C 2C 00 00 00 */ cmpwi r0, 0 /* 803734C0 0036F120 41 82 00 28 */ beq lbl_803734E8 /* 803734C4 0036F124 81 9F 00 3C */ lwz r12, 0x3c(r31) /* 803734C8 0036F128 2C 0C 00 00 */ cmpwi r12, 0 /* 803734CC 0036F12C 41 82 00 1C */ beq lbl_803734E8 /* 803734D0 0036F130 7F A3 EB 78 */ mr r3, r29 /* 803734D4 0036F134 7F C4 F3 78 */ mr r4, r30 /* 803734D8 0036F138 7D 89 03 A6 */ mtctr r12 /* 803734DC 0036F13C 4E 80 04 21 */ bctrl /* 803734E0 0036F140 38 00 00 00 */ li r0, 0 /* 803734E4 0036F144 90 1F 00 3C */ stw r0, 0x3c(r31) lbl_803734E8: /* 803734E8 0036F148 38 00 00 00 */ li r0, 0 /* 803734EC 0036F14C 98 1F 00 05 */ stb r0, 5(r31) /* 803734F0 0036F150 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 803734F4 0036F154 83 C1 00 18 */ lwz r30, 0x18(r1) /* 803734F8 0036F158 83 A1 00 14 */ lwz r29, 0x14(r1) /* 803734FC 0036F15C 80 01 00 24 */ lwz r0, 0x24(r1) /* 80373500 0036F160 7C 08 03 A6 */ mtlr r0 /* 80373504 0036F164 38 21 00 20 */ addi r1, r1, 0x20 /* 80373508 0036F168 4E 80 00 20 */ blr .global SpeakerPlayCallback__Q34nw4r3snd13RemoteSpeakerFll SpeakerPlayCallback__Q34nw4r3snd13RemoteSpeakerFll: /* 8037350C 0036F16C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80373510 0036F170 7C 08 02 A6 */ mflr r0 /* 80373514 0036F174 90 01 00 24 */ stw r0, 0x24(r1) /* 80373518 0036F178 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8037351C 0036F17C 93 C1 00 18 */ stw r30, 0x18(r1) /* 80373520 0036F180 7C 9E 23 78 */ mr r30, r4 /* 80373524 0036F184 93 A1 00 14 */ stw r29, 0x14(r1) /* 80373528 0036F188 7C 7D 1B 78 */ mr r29, r3 /* 8037352C 0036F18C 48 00 02 7D */ bl GetInstance__Q44nw4r3snd6detail20RemoteSpeakerManagerFv /* 80373530 0036F190 7F A4 EB 78 */ mr r4, r29 /* 80373534 0036F194 48 00 03 0D */ bl GetRemoteSpeaker__Q44nw4r3snd6detail20RemoteSpeakerManagerFi /* 80373538 0036F198 2C 1E FF FF */ cmpwi r30, -1 /* 8037353C 0036F19C 7C 7F 1B 78 */ mr r31, r3 /* 80373540 0036F1A0 41 82 00 44 */ beq lbl_80373584 /* 80373544 0036F1A4 40 80 00 14 */ bge lbl_80373558 /* 80373548 0036F1A8 2C 1E FF FD */ cmpwi r30, -3 /* 8037354C 0036F1AC 41 82 00 2C */ beq lbl_80373578 /* 80373550 0036F1B0 40 80 00 1C */ bge lbl_8037356C /* 80373554 0036F1B4 48 00 00 3C */ b lbl_80373590 lbl_80373558: /* 80373558 0036F1B8 2C 1E 00 01 */ cmpwi r30, 1 /* 8037355C 0036F1BC 40 80 00 34 */ bge lbl_80373590 /* 80373560 0036F1C0 38 00 00 04 */ li r0, 4 /* 80373564 0036F1C4 90 03 00 0C */ stw r0, 0xc(r3) /* 80373568 0036F1C8 48 00 00 30 */ b lbl_80373598 lbl_8037356C: /* 8037356C 0036F1CC 38 00 00 02 */ li r0, 2 /* 80373570 0036F1D0 90 03 00 14 */ stw r0, 0x14(r3) /* 80373574 0036F1D4 48 00 00 24 */ b lbl_80373598 lbl_80373578: /* 80373578 0036F1D8 38 00 00 00 */ li r0, 0 /* 8037357C 0036F1DC 90 03 00 0C */ stw r0, 0xc(r3) /* 80373580 0036F1E0 48 00 00 18 */ b lbl_80373598 lbl_80373584: /* 80373584 0036F1E4 38 00 00 00 */ li r0, 0 /* 80373588 0036F1E8 90 03 00 0C */ stw r0, 0xc(r3) /* 8037358C 0036F1EC 48 00 00 0C */ b lbl_80373598 lbl_80373590: /* 80373590 0036F1F0 38 00 00 00 */ li r0, 0 /* 80373594 0036F1F4 90 03 00 0C */ stw r0, 0xc(r3) lbl_80373598: /* 80373598 0036F1F8 2C 1E FF FE */ cmpwi r30, -2 /* 8037359C 0036F1FC 41 82 00 34 */ beq lbl_803735D0 /* 803735A0 0036F200 88 03 00 04 */ lbz r0, 4(r3) /* 803735A4 0036F204 2C 00 00 00 */ cmpwi r0, 0 /* 803735A8 0036F208 41 82 00 28 */ beq lbl_803735D0 /* 803735AC 0036F20C 81 83 00 3C */ lwz r12, 0x3c(r3) /* 803735B0 0036F210 2C 0C 00 00 */ cmpwi r12, 0 /* 803735B4 0036F214 41 82 00 1C */ beq lbl_803735D0 /* 803735B8 0036F218 7F A3 EB 78 */ mr r3, r29 /* 803735BC 0036F21C 7F C4 F3 78 */ mr r4, r30 /* 803735C0 0036F220 7D 89 03 A6 */ mtctr r12 /* 803735C4 0036F224 4E 80 04 21 */ bctrl /* 803735C8 0036F228 38 00 00 00 */ li r0, 0 /* 803735CC 0036F22C 90 1F 00 3C */ stw r0, 0x3c(r31) lbl_803735D0: /* 803735D0 0036F230 38 00 00 00 */ li r0, 0 /* 803735D4 0036F234 98 1F 00 05 */ stb r0, 5(r31) /* 803735D8 0036F238 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 803735DC 0036F23C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 803735E0 0036F240 83 A1 00 14 */ lwz r29, 0x14(r1) /* 803735E4 0036F244 80 01 00 24 */ lwz r0, 0x24(r1) /* 803735E8 0036F248 7C 08 03 A6 */ mtlr r0 /* 803735EC 0036F24C 38 21 00 20 */ addi r1, r1, 0x20 /* 803735F0 0036F250 4E 80 00 20 */ blr .global SpeakerOffCallback__Q34nw4r3snd13RemoteSpeakerFll SpeakerOffCallback__Q34nw4r3snd13RemoteSpeakerFll: /* 803735F4 0036F254 94 21 FF E0 */ stwu r1, -0x20(r1) /* 803735F8 0036F258 7C 08 02 A6 */ mflr r0 /* 803735FC 0036F25C 90 01 00 24 */ stw r0, 0x24(r1) /* 80373600 0036F260 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80373604 0036F264 93 C1 00 18 */ stw r30, 0x18(r1) /* 80373608 0036F268 7C 9E 23 78 */ mr r30, r4 /* 8037360C 0036F26C 93 A1 00 14 */ stw r29, 0x14(r1) /* 80373610 0036F270 7C 7D 1B 78 */ mr r29, r3 /* 80373614 0036F274 48 00 01 95 */ bl GetInstance__Q44nw4r3snd6detail20RemoteSpeakerManagerFv /* 80373618 0036F278 7F A4 EB 78 */ mr r4, r29 /* 8037361C 0036F27C 48 00 02 25 */ bl GetRemoteSpeaker__Q44nw4r3snd6detail20RemoteSpeakerManagerFi /* 80373620 0036F280 2C 1E FF FF */ cmpwi r30, -1 /* 80373624 0036F284 7C 7F 1B 78 */ mr r31, r3 /* 80373628 0036F288 41 82 00 44 */ beq lbl_8037366C /* 8037362C 0036F28C 40 80 00 14 */ bge lbl_80373640 /* 80373630 0036F290 2C 1E FF FD */ cmpwi r30, -3 /* 80373634 0036F294 41 82 00 2C */ beq lbl_80373660 /* 80373638 0036F298 40 80 00 1C */ bge lbl_80373654 /* 8037363C 0036F29C 48 00 00 3C */ b lbl_80373678 lbl_80373640: /* 80373640 0036F2A0 2C 1E 00 01 */ cmpwi r30, 1 /* 80373644 0036F2A4 40 80 00 34 */ bge lbl_80373678 /* 80373648 0036F2A8 38 00 00 06 */ li r0, 6 /* 8037364C 0036F2AC 90 03 00 0C */ stw r0, 0xc(r3) /* 80373650 0036F2B0 48 00 00 30 */ b lbl_80373680 lbl_80373654: /* 80373654 0036F2B4 38 00 00 03 */ li r0, 3 /* 80373658 0036F2B8 90 03 00 14 */ stw r0, 0x14(r3) /* 8037365C 0036F2BC 48 00 00 24 */ b lbl_80373680 lbl_80373660: /* 80373660 0036F2C0 38 00 00 00 */ li r0, 0 /* 80373664 0036F2C4 90 03 00 0C */ stw r0, 0xc(r3) /* 80373668 0036F2C8 48 00 00 18 */ b lbl_80373680 lbl_8037366C: /* 8037366C 0036F2CC 38 00 00 00 */ li r0, 0 /* 80373670 0036F2D0 90 03 00 0C */ stw r0, 0xc(r3) /* 80373674 0036F2D4 48 00 00 0C */ b lbl_80373680 lbl_80373678: /* 80373678 0036F2D8 38 00 00 00 */ li r0, 0 /* 8037367C 0036F2DC 90 03 00 0C */ stw r0, 0xc(r3) lbl_80373680: /* 80373680 0036F2E0 2C 1E FF FE */ cmpwi r30, -2 /* 80373684 0036F2E4 41 82 00 34 */ beq lbl_803736B8 /* 80373688 0036F2E8 88 03 00 04 */ lbz r0, 4(r3) /* 8037368C 0036F2EC 2C 00 00 00 */ cmpwi r0, 0 /* 80373690 0036F2F0 41 82 00 28 */ beq lbl_803736B8 /* 80373694 0036F2F4 81 83 00 3C */ lwz r12, 0x3c(r3) /* 80373698 0036F2F8 2C 0C 00 00 */ cmpwi r12, 0 /* 8037369C 0036F2FC 41 82 00 1C */ beq lbl_803736B8 /* 803736A0 0036F300 7F A3 EB 78 */ mr r3, r29 /* 803736A4 0036F304 7F C4 F3 78 */ mr r4, r30 /* 803736A8 0036F308 7D 89 03 A6 */ mtctr r12 /* 803736AC 0036F30C 4E 80 04 21 */ bctrl /* 803736B0 0036F310 38 00 00 00 */ li r0, 0 /* 803736B4 0036F314 90 1F 00 3C */ stw r0, 0x3c(r31) lbl_803736B8: /* 803736B8 0036F318 38 00 00 00 */ li r0, 0 /* 803736BC 0036F31C 98 1F 00 05 */ stb r0, 5(r31) /* 803736C0 0036F320 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 803736C4 0036F324 83 C1 00 18 */ lwz r30, 0x18(r1) /* 803736C8 0036F328 83 A1 00 14 */ lwz r29, 0x14(r1) /* 803736CC 0036F32C 80 01 00 24 */ lwz r0, 0x24(r1) /* 803736D0 0036F330 7C 08 03 A6 */ mtlr r0 /* 803736D4 0036F334 38 21 00 20 */ addi r1, r1, 0x20 /* 803736D8 0036F338 4E 80 00 20 */ blr .global ContinueAlarmHandler__Q34nw4r3snd13RemoteSpeakerFP7OSAlarmP9OSContext ContinueAlarmHandler__Q34nw4r3snd13RemoteSpeakerFP7OSAlarmP9OSContext: /* 803736DC 0036F33C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803736E0 0036F340 7C 08 02 A6 */ mflr r0 /* 803736E4 0036F344 90 01 00 14 */ stw r0, 0x14(r1) /* 803736E8 0036F348 93 E1 00 0C */ stw r31, 0xc(r1) /* 803736EC 0036F34C 93 C1 00 08 */ stw r30, 8(r1) /* 803736F0 0036F350 7C 7E 1B 78 */ mr r30, r3 /* 803736F4 0036F354 4B EF B0 69 */ bl OSDisableInterrupts /* 803736F8 0036F358 7C 7F 1B 78 */ mr r31, r3 /* 803736FC 0036F35C 7F C3 F3 78 */ mr r3, r30 /* 80373700 0036F360 4B EF 67 A9 */ bl OSGetAlarmUserData /* 80373704 0036F364 38 80 00 01 */ li r4, 1 /* 80373708 0036F368 38 00 00 00 */ li r0, 0 /* 8037370C 0036F36C 98 83 00 06 */ stb r4, 6(r3) /* 80373710 0036F370 98 03 00 07 */ stb r0, 7(r3) /* 80373714 0036F374 7F E3 FB 78 */ mr r3, r31 /* 80373718 0036F378 4B EF B0 6D */ bl OSRestoreInterrupts /* 8037371C 0036F37C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80373720 0036F380 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80373724 0036F384 83 C1 00 08 */ lwz r30, 8(r1) /* 80373728 0036F388 7C 08 03 A6 */ mtlr r0 /* 8037372C 0036F38C 38 21 00 10 */ addi r1, r1, 0x10 /* 80373730 0036F390 4E 80 00 20 */ blr .global IntervalAlarmHandler__Q34nw4r3snd13RemoteSpeakerFP7OSAlarmP9OSContext IntervalAlarmHandler__Q34nw4r3snd13RemoteSpeakerFP7OSAlarmP9OSContext: /* 80373734 0036F394 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80373738 0036F398 7C 08 02 A6 */ mflr r0 /* 8037373C 0036F39C 90 01 00 14 */ stw r0, 0x14(r1) /* 80373740 0036F3A0 93 E1 00 0C */ stw r31, 0xc(r1) /* 80373744 0036F3A4 93 C1 00 08 */ stw r30, 8(r1) /* 80373748 0036F3A8 7C 7E 1B 78 */ mr r30, r3 /* 8037374C 0036F3AC 4B EF B0 11 */ bl OSDisableInterrupts /* 80373750 0036F3B0 7C 7F 1B 78 */ mr r31, r3 /* 80373754 0036F3B4 7F C3 F3 78 */ mr r3, r30 /* 80373758 0036F3B8 4B EF 67 51 */ bl OSGetAlarmUserData /* 8037375C 0036F3BC 88 03 00 08 */ lbz r0, 8(r3) /* 80373760 0036F3C0 7C 7E 1B 78 */ mr r30, r3 /* 80373764 0036F3C4 2C 00 00 00 */ cmpwi r0, 0 /* 80373768 0036F3C8 41 82 00 18 */ beq lbl_80373780 /* 8037376C 0036F3CC 38 63 00 40 */ addi r3, r3, 0x40 /* 80373770 0036F3D0 4B EF 63 09 */ bl OSCancelAlarm /* 80373774 0036F3D4 38 00 00 00 */ li r0, 0 /* 80373778 0036F3D8 98 1E 00 06 */ stb r0, 6(r30) /* 8037377C 0036F3DC 98 1E 00 07 */ stb r0, 7(r30) lbl_80373780: /* 80373780 0036F3E0 38 00 00 00 */ li r0, 0 /* 80373784 0036F3E4 7F E3 FB 78 */ mr r3, r31 /* 80373788 0036F3E8 98 1E 00 08 */ stb r0, 8(r30) /* 8037378C 0036F3EC 4B EF AF F9 */ bl OSRestoreInterrupts /* 80373790 0036F3F0 80 01 00 14 */ lwz r0, 0x14(r1) /* 80373794 0036F3F4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80373798 0036F3F8 83 C1 00 08 */ lwz r30, 8(r1) /* 8037379C 0036F3FC 7C 08 03 A6 */ mtlr r0 /* 803737A0 0036F400 38 21 00 10 */ addi r1, r1, 0x10 /* 803737A4 0036F404 4E 80 00 20 */ blr