prime/asm/Kyoto/Audio/CStaticAudioPlayer.s

1066 lines
50 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .ctors, "wa"
lbl_ctor:
.4byte __sinit_CStaticAudioPlayer_cpp
.section .sbss, "wa"
.global lbl_805A96A0
lbl_805A96A0:
.skip 0x8
.global lbl_805A96A8
lbl_805A96A8:
.skip 0x4
.global lbl_805A96AC
lbl_805A96AC:
.skip 0x4
.section .text, "ax"
.global SetVolume__18CStaticAudioPlayerFc
SetVolume__18CStaticAudioPlayerFc:
/* 8036BC34 00368B94 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 8036BC38 00368B98 28 00 00 7F */ cmplwi r0, 0x7f
/* 8036BC3C 00368B9C 40 81 00 08 */ ble lbl_8036BC44
/* 8036BC40 00368BA0 38 80 00 7F */ li r4, 0x7f
lbl_8036BC44:
/* 8036BC44 00368BA4 3C A0 80 3E */ lis r5, lbl_803D8110@ha
/* 8036BC48 00368BA8 54 80 0D FC */ rlwinm r0, r4, 1, 0x17, 0x1e
/* 8036BC4C 00368BAC 38 85 81 10 */ addi r4, r5, lbl_803D8110@l
/* 8036BC50 00368BB0 7C 04 02 2E */ lhzx r0, r4, r0
/* 8036BC54 00368BB4 B0 03 00 C0 */ sth r0, 0xc0(r3)
/* 8036BC58 00368BB8 4E 80 00 20 */ blr
.global DecodeMonoAndMix__18CStaticAudioPlayerCFv
DecodeMonoAndMix__18CStaticAudioPlayerCFv:
/* 8036BC5C 00368BBC 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8036BC60 00368BC0 7C 08 02 A6 */ mflr r0
/* 8036BC64 00368BC4 90 01 00 54 */ stw r0, 0x54(r1)
/* 8036BC68 00368BC8 54 C0 0F FE */ srwi r0, r6, 0x1f
/* 8036BC6C 00368BCC 7C 00 32 14 */ add r0, r0, r6
/* 8036BC70 00368BD0 BE 81 00 20 */ stmw r20, 0x20(r1)
/* 8036BC74 00368BD4 7C 75 1B 78 */ mr r21, r3
/* 8036BC78 00368BD8 83 01 00 58 */ lwz r24, 0x58(r1)
/* 8036BC7C 00368BDC 7D 16 43 78 */ mr r22, r8
/* 8036BC80 00368BE0 7D 57 53 78 */ mr r23, r10
/* 8036BC84 00368BE4 7C FD 3B 78 */ mr r29, r7
/* 8036BC88 00368BE8 7C BC 2B 78 */ mr r28, r5
/* 8036BC8C 00368BEC 7C 9B 23 78 */ mr r27, r4
/* 8036BC90 00368BF0 7D 3F 4B 78 */ mr r31, r9
/* 8036BC94 00368BF4 7C 1E 0E 70 */ srawi r30, r0, 1
/* 8036BC98 00368BF8 48 00 01 3C */ b lbl_8036BDD4
lbl_8036BC9C:
/* 8036BC9C 00368BFC 7F A0 8E 70 */ srawi r0, r29, 0x11
/* 8036BCA0 00368C00 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8036BCA4 00368C04 7C A0 01 94 */ addze r5, r0
/* 8036BCA8 00368C08 38 61 00 10 */ addi r3, r1, 0x10
/* 8036BCAC 00368C0C 38 05 00 01 */ addi r0, r5, 1
/* 8036BCB0 00368C10 54 00 88 1C */ slwi r0, r0, 0x11
/* 8036BCB4 00368C14 7C 1D 00 50 */ subf r0, r29, r0
/* 8036BCB8 00368C18 7C 00 F0 00 */ cmpw r0, r30
/* 8036BCBC 00368C1C 90 01 00 0C */ stw r0, 0xc(r1)
/* 8036BCC0 00368C20 40 80 00 08 */ bge lbl_8036BCC8
/* 8036BCC4 00368C24 38 61 00 0C */ addi r3, r1, 0xc
lbl_8036BCC8:
/* 8036BCC8 00368C28 80 83 00 00 */ lwz r4, 0(r3)
/* 8036BCCC 00368C2C 7C 1D B0 50 */ subf r0, r29, r22
/* 8036BCD0 00368C30 38 61 00 10 */ addi r3, r1, 0x10
/* 8036BCD4 00368C34 7C 00 20 00 */ cmpw r0, r4
/* 8036BCD8 00368C38 90 81 00 10 */ stw r4, 0x10(r1)
/* 8036BCDC 00368C3C 90 01 00 08 */ stw r0, 8(r1)
/* 8036BCE0 00368C40 40 80 00 08 */ bge lbl_8036BCE8
/* 8036BCE4 00368C44 38 61 00 08 */ addi r3, r1, 8
lbl_8036BCE8:
/* 8036BCE8 00368C48 80 83 00 00 */ lwz r4, 0(r3)
/* 8036BCEC 00368C4C 54 A3 18 38 */ slwi r3, r5, 3
/* 8036BCF0 00368C50 54 A0 88 1C */ slwi r0, r5, 0x11
/* 8036BCF4 00368C54 3B 20 00 00 */ li r25, 0
/* 8036BCF8 00368C58 90 81 00 10 */ stw r4, 0x10(r1)
/* 8036BCFC 00368C5C 38 63 00 04 */ addi r3, r3, 4
/* 8036BD00 00368C60 7C 00 E8 50 */ subf r0, r0, r29
/* 8036BD04 00368C64 80 95 00 54 */ lwz r4, 0x54(r21)
/* 8036BD08 00368C68 7C 64 18 2E */ lwzx r3, r4, r3
/* 8036BD0C 00368C6C 7F 43 02 14 */ add r26, r3, r0
/* 8036BD10 00368C70 48 00 00 A4 */ b lbl_8036BDB4
lbl_8036BD14:
/* 8036BD14 00368C74 88 1A 00 00 */ lbz r0, 0(r26)
/* 8036BD18 00368C78 7F 04 C3 78 */ mr r4, r24
/* 8036BD1C 00368C7C 54 03 07 3E */ clrlwi r3, r0, 0x1c
/* 8036BD20 00368C80 4B FF F5 99 */ bl g721_decoder__FiP10g72x_state
/* 8036BD24 00368C84 7C B7 19 D6 */ mullw r5, r23, r3
/* 8036BD28 00368C88 A8 7C 00 00 */ lha r3, 0(r28)
/* 8036BD2C 00368C8C 88 1A 00 00 */ lbz r0, 0(r26)
/* 8036BD30 00368C90 7F 04 C3 78 */ mr r4, r24
/* 8036BD34 00368C94 7C A5 7E 70 */ srawi r5, r5, 0xf
/* 8036BD38 00368C98 7E 83 2A 14 */ add r20, r3, r5
/* 8036BD3C 00368C9C 7C 03 26 70 */ srawi r3, r0, 4
/* 8036BD40 00368CA0 4B FF F5 79 */ bl g721_decoder__FiP10g72x_state
/* 8036BD44 00368CA4 7C 77 19 D6 */ mullw r3, r23, r3
/* 8036BD48 00368CA8 2C 14 80 00 */ cmpwi r20, -32768
/* 8036BD4C 00368CAC A8 1C 00 04 */ lha r0, 4(r28)
/* 8036BD50 00368CB0 7C 63 7E 70 */ srawi r3, r3, 0xf
/* 8036BD54 00368CB4 7C 60 1A 14 */ add r3, r0, r3
/* 8036BD58 00368CB8 40 80 00 0C */ bge lbl_8036BD64
/* 8036BD5C 00368CBC 38 00 80 00 */ li r0, -32768
/* 8036BD60 00368CC0 48 00 00 18 */ b lbl_8036BD78
lbl_8036BD64:
/* 8036BD64 00368CC4 2C 14 7F FF */ cmpwi r20, 0x7fff
/* 8036BD68 00368CC8 40 81 00 0C */ ble lbl_8036BD74
/* 8036BD6C 00368CCC 38 00 7F FF */ li r0, 0x7fff
/* 8036BD70 00368CD0 48 00 00 08 */ b lbl_8036BD78
lbl_8036BD74:
/* 8036BD74 00368CD4 7E 80 07 34 */ extsh r0, r20
lbl_8036BD78:
/* 8036BD78 00368CD8 2C 03 80 00 */ cmpwi r3, -32768
/* 8036BD7C 00368CDC B0 1B 00 00 */ sth r0, 0(r27)
/* 8036BD80 00368CE0 40 80 00 0C */ bge lbl_8036BD8C
/* 8036BD84 00368CE4 38 00 80 00 */ li r0, -32768
/* 8036BD88 00368CE8 48 00 00 18 */ b lbl_8036BDA0
lbl_8036BD8C:
/* 8036BD8C 00368CEC 2C 03 7F FF */ cmpwi r3, 0x7fff
/* 8036BD90 00368CF0 40 81 00 0C */ ble lbl_8036BD9C
/* 8036BD94 00368CF4 38 00 7F FF */ li r0, 0x7fff
/* 8036BD98 00368CF8 48 00 00 08 */ b lbl_8036BDA0
lbl_8036BD9C:
/* 8036BD9C 00368CFC 7C 60 07 34 */ extsh r0, r3
lbl_8036BDA0:
/* 8036BDA0 00368D00 B0 1B 00 04 */ sth r0, 4(r27)
/* 8036BDA4 00368D04 3B 7B 00 08 */ addi r27, r27, 8
/* 8036BDA8 00368D08 3B 5A 00 01 */ addi r26, r26, 1
/* 8036BDAC 00368D0C 3B 9C 00 08 */ addi r28, r28, 8
/* 8036BDB0 00368D10 3B 39 00 01 */ addi r25, r25, 1
lbl_8036BDB4:
/* 8036BDB4 00368D14 80 01 00 10 */ lwz r0, 0x10(r1)
/* 8036BDB8 00368D18 7C 19 00 00 */ cmpw r25, r0
/* 8036BDBC 00368D1C 41 80 FF 58 */ blt lbl_8036BD14
/* 8036BDC0 00368D20 7F BD 02 14 */ add r29, r29, r0
/* 8036BDC4 00368D24 7F C0 F0 50 */ subf r30, r0, r30
/* 8036BDC8 00368D28 7C 1D B0 00 */ cmpw r29, r22
/* 8036BDCC 00368D2C 40 82 00 08 */ bne lbl_8036BDD4
/* 8036BDD0 00368D30 7F FD FB 78 */ mr r29, r31
lbl_8036BDD4:
/* 8036BDD4 00368D34 2C 1E 00 00 */ cmpwi r30, 0
/* 8036BDD8 00368D38 40 82 FE C4 */ bne lbl_8036BC9C
/* 8036BDDC 00368D3C BA 81 00 20 */ lmw r20, 0x20(r1)
/* 8036BDE0 00368D40 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8036BDE4 00368D44 7C 08 03 A6 */ mtlr r0
/* 8036BDE8 00368D48 38 21 00 50 */ addi r1, r1, 0x50
/* 8036BDEC 00368D4C 4E 80 00 20 */ blr
.global Decode__18CStaticAudioPlayerFv
Decode__18CStaticAudioPlayerFv:
/* 8036BDF0 00368D50 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8036BDF4 00368D54 7C 08 02 A6 */ mflr r0
/* 8036BDF8 00368D58 90 01 00 44 */ stw r0, 0x44(r1)
/* 8036BDFC 00368D5C BF 21 00 24 */ stmw r25, 0x24(r1)
/* 8036BE00 00368D60 7C 7D 1B 78 */ mr r29, r3
/* 8036BE04 00368D64 38 1D 00 58 */ addi r0, r29, 0x58
/* 8036BE08 00368D68 7C DF 33 78 */ mr r31, r6
/* 8036BE0C 00368D6C 7C 9E 23 78 */ mr r30, r4
/* 8036BE10 00368D70 7C B9 2B 78 */ mr r25, r5
/* 8036BE14 00368D74 81 43 00 18 */ lwz r10, 0x18(r3)
/* 8036BE18 00368D78 81 23 00 20 */ lwz r9, 0x20(r3)
/* 8036BE1C 00368D7C 80 E3 00 1C */ lwz r7, 0x1c(r3)
/* 8036BE20 00368D80 55 48 0F FE */ srwi r8, r10, 0x1f
/* 8036BE24 00368D84 7D 48 52 14 */ add r10, r8, r10
/* 8036BE28 00368D88 55 28 0F FE */ srwi r8, r9, 0x1f
/* 8036BE2C 00368D8C 90 01 00 08 */ stw r0, 8(r1)
/* 8036BE30 00368D90 7D 5C 0E 70 */ srawi r28, r10, 1
/* 8036BE34 00368D94 54 E0 0F FE */ srwi r0, r7, 0x1f
/* 8036BE38 00368D98 7D 08 4A 14 */ add r8, r8, r9
/* 8036BE3C 00368D9C A1 43 00 C0 */ lhz r10, 0xc0(r3)
/* 8036BE40 00368DA0 7D 1B 0E 70 */ srawi r27, r8, 1
/* 8036BE44 00368DA4 7C 00 3A 14 */ add r0, r0, r7
/* 8036BE48 00368DA8 7C 1A 0E 70 */ srawi r26, r0, 1
/* 8036BE4C 00368DAC 7F 87 E3 78 */ mr r7, r28
/* 8036BE50 00368DB0 7F 68 DB 78 */ mr r8, r27
/* 8036BE54 00368DB4 7F 49 D3 78 */ mr r9, r26
/* 8036BE58 00368DB8 4B FF FE 05 */ bl DecodeMonoAndMix__18CStaticAudioPlayerCFv
/* 8036BE5C 00368DBC 80 9D 00 14 */ lwz r4, 0x14(r29)
/* 8036BE60 00368DC0 38 1D 00 8C */ addi r0, r29, 0x8c
/* 8036BE64 00368DC4 7F A3 EB 78 */ mr r3, r29
/* 8036BE68 00368DC8 7F E6 FB 78 */ mr r6, r31
/* 8036BE6C 00368DCC 90 01 00 08 */ stw r0, 8(r1)
/* 8036BE70 00368DD0 54 80 0F FE */ srwi r0, r4, 0x1f
/* 8036BE74 00368DD4 7C 00 22 14 */ add r0, r0, r4
/* 8036BE78 00368DD8 38 9E 00 02 */ addi r4, r30, 2
/* 8036BE7C 00368DDC 7C 00 0E 70 */ srawi r0, r0, 1
/* 8036BE80 00368DE0 A1 5D 00 C0 */ lhz r10, 0xc0(r29)
/* 8036BE84 00368DE4 38 B9 00 02 */ addi r5, r25, 2
/* 8036BE88 00368DE8 7C FC 02 14 */ add r7, r28, r0
/* 8036BE8C 00368DEC 7D 1B 02 14 */ add r8, r27, r0
/* 8036BE90 00368DF0 7D 3A 02 14 */ add r9, r26, r0
/* 8036BE94 00368DF4 4B FF FD C9 */ bl DecodeMonoAndMix__18CStaticAudioPlayerCFv
/* 8036BE98 00368DF8 7F E5 FB 78 */ mr r5, r31
/* 8036BE9C 00368DFC 48 00 00 5C */ b lbl_8036BEF8
lbl_8036BEA0:
/* 8036BEA0 00368E00 90 A1 00 14 */ stw r5, 0x14(r1)
/* 8036BEA4 00368E04 38 61 00 14 */ addi r3, r1, 0x14
/* 8036BEA8 00368E08 80 9D 00 18 */ lwz r4, 0x18(r29)
/* 8036BEAC 00368E0C 80 1D 00 20 */ lwz r0, 0x20(r29)
/* 8036BEB0 00368E10 7C 04 00 50 */ subf r0, r4, r0
/* 8036BEB4 00368E14 7C 00 28 00 */ cmpw r0, r5
/* 8036BEB8 00368E18 90 01 00 10 */ stw r0, 0x10(r1)
/* 8036BEBC 00368E1C 40 80 00 08 */ bge lbl_8036BEC4
/* 8036BEC0 00368E20 38 61 00 10 */ addi r3, r1, 0x10
lbl_8036BEC4:
/* 8036BEC4 00368E24 80 63 00 00 */ lwz r3, 0(r3)
/* 8036BEC8 00368E28 90 61 00 14 */ stw r3, 0x14(r1)
/* 8036BECC 00368E2C 80 1D 00 18 */ lwz r0, 0x18(r29)
/* 8036BED0 00368E30 7C 00 1A 14 */ add r0, r0, r3
/* 8036BED4 00368E34 90 1D 00 18 */ stw r0, 0x18(r29)
/* 8036BED8 00368E38 80 7D 00 18 */ lwz r3, 0x18(r29)
/* 8036BEDC 00368E3C 80 1D 00 20 */ lwz r0, 0x20(r29)
/* 8036BEE0 00368E40 80 81 00 14 */ lwz r4, 0x14(r1)
/* 8036BEE4 00368E44 7C 03 00 00 */ cmpw r3, r0
/* 8036BEE8 00368E48 7C A4 28 50 */ subf r5, r4, r5
/* 8036BEEC 00368E4C 40 82 00 0C */ bne lbl_8036BEF8
/* 8036BEF0 00368E50 80 1D 00 1C */ lwz r0, 0x1c(r29)
/* 8036BEF4 00368E54 90 1D 00 18 */ stw r0, 0x18(r29)
lbl_8036BEF8:
/* 8036BEF8 00368E58 2C 05 00 00 */ cmpwi r5, 0
/* 8036BEFC 00368E5C 40 82 FF A4 */ bne lbl_8036BEA0
/* 8036BF00 00368E60 BB 21 00 24 */ lmw r25, 0x24(r1)
/* 8036BF04 00368E64 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8036BF08 00368E68 7C 08 03 A6 */ mtlr r0
/* 8036BF0C 00368E6C 38 21 00 40 */ addi r1, r1, 0x40
/* 8036BF10 00368E70 4E 80 00 20 */ blr
.global DoMix__18CStaticAudioPlayer
DoMix__18CStaticAudioPlayer:
/* 8036BF14 00368E74 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8036BF18 00368E78 7C 08 02 A6 */ mflr r0
/* 8036BF1C 00368E7C 90 01 00 24 */ stw r0, 0x24(r1)
/* 8036BF20 00368E80 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8036BF24 00368E84 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8036BF28 00368E88 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8036BF2C 00368E8C 93 81 00 10 */ stw r28, 0x10(r1)
/* 8036BF30 00368E90 7C 7C 1B 78 */ mr r28, r3
/* 8036BF34 00368E94 48 00 11 05 */ bl AIGetDMAStartAddr
/* 8036BF38 00368E98 80 1C 00 24 */ lwz r0, 0x24(r28)
/* 8036BF3C 00368E9C 3F E3 80 00 */ addis r31, r3, 0x8000
/* 8036BF40 00368EA0 68 00 00 01 */ xori r0, r0, 1
/* 8036BF44 00368EA4 90 1C 00 24 */ stw r0, 0x24(r28)
/* 8036BF48 00368EA8 80 1C 00 24 */ lwz r0, 0x24(r28)
/* 8036BF4C 00368EAC 2C 00 00 00 */ cmpwi r0, 0
/* 8036BF50 00368EB0 41 82 00 0C */ beq lbl_8036BF5C
/* 8036BF54 00368EB4 83 DC 00 34 */ lwz r30, 0x34(r28)
/* 8036BF58 00368EB8 48 00 00 08 */ b lbl_8036BF60
lbl_8036BF5C:
/* 8036BF5C 00368EBC 83 DC 00 2C */ lwz r30, 0x2c(r28)
lbl_8036BF60:
/* 8036BF60 00368EC0 7F C3 F3 78 */ mr r3, r30
/* 8036BF64 00368EC4 38 80 02 80 */ li r4, 0x280
/* 8036BF68 00368EC8 48 00 10 19 */ bl AIInitDMA
/* 8036BF6C 00368ECC 48 01 57 09 */ bl OSEnableInterrupts
/* 8036BF70 00368ED0 28 1F 00 00 */ cmplwi r31, 0
/* 8036BF74 00368ED4 7C 7D 1B 78 */ mr r29, r3
/* 8036BF78 00368ED8 41 82 00 10 */ beq lbl_8036BF88
/* 8036BF7C 00368EDC 7F E3 FB 78 */ mr r3, r31
/* 8036BF80 00368EE0 38 80 02 80 */ li r4, 0x280
/* 8036BF84 00368EE4 48 01 2B 01 */ bl DCInvalidateRange
lbl_8036BF88:
/* 8036BF88 00368EE8 7F 83 E3 78 */ mr r3, r28
/* 8036BF8C 00368EEC 7F C4 F3 78 */ mr r4, r30
/* 8036BF90 00368EF0 7F E5 FB 78 */ mr r5, r31
/* 8036BF94 00368EF4 38 C0 00 A0 */ li r6, 0xa0
/* 8036BF98 00368EF8 4B FF FE 59 */ bl Decode__18CStaticAudioPlayerFv
/* 8036BF9C 00368EFC 7F C3 F3 78 */ mr r3, r30
/* 8036BFA0 00368F00 38 80 02 80 */ li r4, 0x280
/* 8036BFA4 00368F04 48 01 2B 0D */ bl DCFlushRange
/* 8036BFA8 00368F08 7F A3 EB 78 */ mr r3, r29
/* 8036BFAC 00368F0C 48 01 56 DD */ bl OSRestoreInterrupts
/* 8036BFB0 00368F10 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8036BFB4 00368F14 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8036BFB8 00368F18 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8036BFBC 00368F1C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8036BFC0 00368F20 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8036BFC4 00368F24 7C 08 03 A6 */ mtlr r0
/* 8036BFC8 00368F28 38 21 00 20 */ addi r1, r1, 0x20
/* 8036BFCC 00368F2C 4E 80 00 20 */ blr
.global MixCallback__18CStaticAudioPlayerFv
MixCallback__18CStaticAudioPlayerFv:
/* 8036BFD0 00368F30 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8036BFD4 00368F34 7C 08 02 A6 */ mflr r0
/* 8036BFD8 00368F38 90 01 00 14 */ stw r0, 0x14(r1)
/* 8036BFDC 00368F3C 80 6D AA E0 */ lwz r3, lbl_805A96A0@sda21(r13)
/* 8036BFE0 00368F40 4B FF FF 35 */ bl DoMix__18CStaticAudioPlayer
/* 8036BFE4 00368F44 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8036BFE8 00368F48 7C 08 03 A6 */ mtlr r0
/* 8036BFEC 00368F4C 38 21 00 10 */ addi r1, r1, 0x10
/* 8036BFF0 00368F50 4E 80 00 20 */ blr
.global StopMixOut__18CStaticAudioPlayerFv
StopMixOut__18CStaticAudioPlayerFv:
/* 8036BFF4 00368F54 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8036BFF8 00368F58 7C 08 02 A6 */ mflr r0
/* 8036BFFC 00368F5C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8036C000 00368F60 80 0D AA E0 */ lwz r0, lbl_805A96A0@sda21(r13)
/* 8036C004 00368F64 7C 00 18 40 */ cmplw r0, r3
/* 8036C008 00368F68 40 82 00 18 */ bne lbl_8036C020
/* 8036C00C 00368F6C 3C 60 80 37 */ lis r3, MixCallback__18CStaticAudioPlayerFv@ha
/* 8036C010 00368F70 38 63 BF D0 */ addi r3, r3, MixCallback__18CStaticAudioPlayerFv@l
/* 8036C014 00368F74 48 00 06 F1 */ bl sub_8036c704
/* 8036C018 00368F78 38 00 00 00 */ li r0, 0
/* 8036C01C 00368F7C 90 0D AA E0 */ stw r0, lbl_805A96A0@sda21(r13)
lbl_8036C020:
/* 8036C020 00368F80 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8036C024 00368F84 7C 08 03 A6 */ mtlr r0
/* 8036C028 00368F88 38 21 00 10 */ addi r1, r1, 0x10
/* 8036C02C 00368F8C 4E 80 00 20 */ blr
.global StartMixOut__18CStaticAudioPlayerFv
StartMixOut__18CStaticAudioPlayerFv:
/* 8036C030 00368F90 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8036C034 00368F94 7C 08 02 A6 */ mflr r0
/* 8036C038 00368F98 90 01 00 34 */ stw r0, 0x34(r1)
/* 8036C03C 00368F9C 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8036C040 00368FA0 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8036C044 00368FA4 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8036C048 00368FA8 7C 7D 1B 78 */ mr r29, r3
/* 8036C04C 00368FAC 80 0D AA E0 */ lwz r0, lbl_805A96A0@sda21(r13)
/* 8036C050 00368FB0 7C 00 E8 40 */ cmplw r0, r29
/* 8036C054 00368FB4 41 82 00 94 */ beq lbl_8036C0E8
/* 8036C058 00368FB8 80 1D 00 3C */ lwz r0, 0x3c(r29)
/* 8036C05C 00368FBC 83 DD 00 44 */ lwz r30, 0x44(r29)
/* 8036C060 00368FC0 54 00 18 38 */ slwi r0, r0, 3
/* 8036C064 00368FC4 7F FE 02 14 */ add r31, r30, r0
/* 8036C068 00368FC8 93 C1 00 0C */ stw r30, 0xc(r1)
/* 8036C06C 00368FCC 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8036C070 00368FD0 93 E1 00 10 */ stw r31, 0x10(r1)
/* 8036C074 00368FD4 93 C1 00 08 */ stw r30, 8(r1)
/* 8036C078 00368FD8 48 00 00 3C */ b lbl_8036C0B4
lbl_8036C07C:
/* 8036C07C 00368FDC 28 1E 00 00 */ cmplwi r30, 0
/* 8036C080 00368FE0 41 82 00 30 */ beq lbl_8036C0B0
/* 8036C084 00368FE4 88 1E 00 00 */ lbz r0, 0(r30)
/* 8036C088 00368FE8 28 00 00 00 */ cmplwi r0, 0
/* 8036C08C 00368FEC 41 82 00 24 */ beq lbl_8036C0B0
/* 8036C090 00368FF0 80 7E 00 04 */ lwz r3, 4(r30)
/* 8036C094 00368FF4 28 03 00 00 */ cmplwi r3, 0
/* 8036C098 00368FF8 41 82 00 18 */ beq lbl_8036C0B0
/* 8036C09C 00368FFC 81 83 00 00 */ lwz r12, 0(r3)
/* 8036C0A0 00369000 38 80 00 01 */ li r4, 1
/* 8036C0A4 00369004 81 8C 00 08 */ lwz r12, 8(r12)
/* 8036C0A8 00369008 7D 89 03 A6 */ mtctr r12
/* 8036C0AC 0036900C 4E 80 04 21 */ bctrl
lbl_8036C0B0:
/* 8036C0B0 00369010 3B DE 00 08 */ addi r30, r30, 8
lbl_8036C0B4:
/* 8036C0B4 00369014 7C 1E F8 40 */ cmplw r30, r31
/* 8036C0B8 00369018 40 82 FF C4 */ bne lbl_8036C07C
/* 8036C0BC 0036901C 38 00 00 00 */ li r0, 0
/* 8036C0C0 00369020 38 7D 00 58 */ addi r3, r29, 0x58
/* 8036C0C4 00369024 90 1D 00 3C */ stw r0, 0x3c(r29)
/* 8036C0C8 00369028 90 1D 00 18 */ stw r0, 0x18(r29)
/* 8036C0CC 0036902C 4B FF F9 E1 */ bl g72x_init_state__FP10g72x_state
/* 8036C0D0 00369030 38 7D 00 8C */ addi r3, r29, 0x8c
/* 8036C0D4 00369034 4B FF F9 D9 */ bl g72x_init_state__FP10g72x_state
/* 8036C0D8 00369038 3C 60 80 37 */ lis r3, MixCallback__18CStaticAudioPlayerFv@ha
/* 8036C0DC 0036903C 93 AD AA E0 */ stw r29, lbl_805A96A0@sda21(r13)
/* 8036C0E0 00369040 38 63 BF D0 */ addi r3, r3, MixCallback__18CStaticAudioPlayerFv@l
/* 8036C0E4 00369044 48 00 06 F9 */ bl RunDMACallback__18CStaticAudioPlayerFv
lbl_8036C0E8:
/* 8036C0E8 00369048 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8036C0EC 0036904C 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8036C0F0 00369050 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8036C0F4 00369054 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8036C0F8 00369058 7C 08 03 A6 */ mtlr r0
/* 8036C0FC 0036905C 38 21 00 30 */ addi r1, r1, 0x30
/* 8036C100 00369060 4E 80 00 20 */ blr
.global IsReady__18CStaticAudioPlayer
IsReady__18CStaticAudioPlayer:
/* 8036C104 00369064 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8036C108 00369068 7C 08 02 A6 */ mflr r0
/* 8036C10C 0036906C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8036C110 00369070 80 83 00 3C */ lwz r4, 0x3c(r3)
/* 8036C114 00369074 2C 04 00 00 */ cmpwi r4, 0
/* 8036C118 00369078 41 82 00 2C */ beq lbl_8036C144
/* 8036C11C 0036907C 38 04 FF FF */ addi r0, r4, -1
/* 8036C120 00369080 80 83 00 44 */ lwz r4, 0x44(r3)
/* 8036C124 00369084 54 03 18 38 */ slwi r3, r0, 3
/* 8036C128 00369088 38 03 00 04 */ addi r0, r3, 4
/* 8036C12C 0036908C 7C 64 00 2E */ lwzx r3, r4, r0
/* 8036C130 00369090 81 83 00 00 */ lwz r12, 0(r3)
/* 8036C134 00369094 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8036C138 00369098 7D 89 03 A6 */ mtctr r12
/* 8036C13C 0036909C 4E 80 04 21 */ bctrl
/* 8036C140 003690A0 48 00 00 08 */ b lbl_8036C148
lbl_8036C144:
/* 8036C144 003690A4 38 60 00 01 */ li r3, 1
lbl_8036C148:
/* 8036C148 003690A8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8036C14C 003690AC 7C 08 03 A6 */ mtlr r0
/* 8036C150 003690B0 38 21 00 10 */ addi r1, r1, 0x10
/* 8036C154 003690B4 4E 80 00 20 */ blr
.global __dt__18CStaticAudioPlayer
__dt__18CStaticAudioPlayer:
/* 8036C158 003690B8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8036C15C 003690BC 7C 08 02 A6 */ mflr r0
/* 8036C160 003690C0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8036C164 003690C4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8036C168 003690C8 7C 9F 23 78 */ mr r31, r4
/* 8036C16C 003690CC 93 C1 00 08 */ stw r30, 8(r1)
/* 8036C170 003690D0 7C 7E 1B 79 */ or. r30, r3, r3
/* 8036C174 003690D4 41 82 00 78 */ beq lbl_8036C1EC
/* 8036C178 003690D8 4B FF FE 7D */ bl StopMixOut__18CStaticAudioPlayerFv
/* 8036C17C 003690DC 38 7E 00 48 */ addi r3, r30, 0x48
/* 8036C180 003690E0 38 80 FF FF */ li r4, -1
/* 8036C184 003690E4 4B FF 08 45 */ bl "__dt__Q24rstl56vector<Q24rstl12auto_ptr<Uc>,Q24rstl17rmemory_allocator>Fv"
/* 8036C188 003690E8 38 7E 00 38 */ addi r3, r30, 0x38
/* 8036C18C 003690EC 38 80 FF FF */ li r4, -1
/* 8036C190 003690F0 48 00 00 79 */ bl sub_8036c208
/* 8036C194 003690F4 34 1E 00 30 */ addic. r0, r30, 0x30
/* 8036C198 003690F8 41 82 00 18 */ beq lbl_8036C1B0
/* 8036C19C 003690FC 88 1E 00 30 */ lbz r0, 0x30(r30)
/* 8036C1A0 00369100 28 00 00 00 */ cmplwi r0, 0
/* 8036C1A4 00369104 41 82 00 0C */ beq lbl_8036C1B0
/* 8036C1A8 00369108 80 7E 00 34 */ lwz r3, 0x34(r30)
/* 8036C1AC 0036910C 4B FA 97 85 */ bl Free__7CMemoryFPCv
lbl_8036C1B0:
/* 8036C1B0 00369110 34 1E 00 28 */ addic. r0, r30, 0x28
/* 8036C1B4 00369114 41 82 00 18 */ beq lbl_8036C1CC
/* 8036C1B8 00369118 88 1E 00 28 */ lbz r0, 0x28(r30)
/* 8036C1BC 0036911C 28 00 00 00 */ cmplwi r0, 0
/* 8036C1C0 00369120 41 82 00 0C */ beq lbl_8036C1CC
/* 8036C1C4 00369124 80 7E 00 2C */ lwz r3, 0x2c(r30)
/* 8036C1C8 00369128 4B FA 97 69 */ bl Free__7CMemoryFPCv
lbl_8036C1CC:
/* 8036C1CC 0036912C 28 1E 00 00 */ cmplwi r30, 0
/* 8036C1D0 00369130 41 82 00 0C */ beq lbl_8036C1DC
/* 8036C1D4 00369134 7F C3 F3 78 */ mr r3, r30
/* 8036C1D8 00369138 4B FD 19 09 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_8036C1DC:
/* 8036C1DC 0036913C 7F E0 07 35 */ extsh. r0, r31
/* 8036C1E0 00369140 40 81 00 0C */ ble lbl_8036C1EC
/* 8036C1E4 00369144 7F C3 F3 78 */ mr r3, r30
/* 8036C1E8 00369148 4B FA 97 49 */ bl Free__7CMemoryFPCv
lbl_8036C1EC:
/* 8036C1EC 0036914C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8036C1F0 00369150 7F C3 F3 78 */ mr r3, r30
/* 8036C1F4 00369154 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8036C1F8 00369158 83 C1 00 08 */ lwz r30, 8(r1)
/* 8036C1FC 0036915C 7C 08 03 A6 */ mtlr r0
/* 8036C200 00369160 38 21 00 10 */ addi r1, r1, 0x10
/* 8036C204 00369164 4E 80 00 20 */ blr
.global sub_8036c208
sub_8036c208:
/* 8036C208 00369168 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8036C20C 0036916C 7C 08 02 A6 */ mflr r0
/* 8036C210 00369170 90 01 00 34 */ stw r0, 0x34(r1)
/* 8036C214 00369174 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8036C218 00369178 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8036C21C 0036917C 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8036C220 00369180 7C 9D 23 78 */ mr r29, r4
/* 8036C224 00369184 93 81 00 20 */ stw r28, 0x20(r1)
/* 8036C228 00369188 7C 7C 1B 79 */ or. r28, r3, r3
/* 8036C22C 0036918C 41 82 00 88 */ beq lbl_8036C2B4
/* 8036C230 00369190 80 1C 00 04 */ lwz r0, 4(r28)
/* 8036C234 00369194 83 DC 00 0C */ lwz r30, 0xc(r28)
/* 8036C238 00369198 54 00 18 38 */ slwi r0, r0, 3
/* 8036C23C 0036919C 7F FE 02 14 */ add r31, r30, r0
/* 8036C240 003691A0 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8036C244 003691A4 93 E1 00 08 */ stw r31, 8(r1)
/* 8036C248 003691A8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8036C24C 003691AC 93 C1 00 14 */ stw r30, 0x14(r1)
/* 8036C250 003691B0 48 00 00 3C */ b lbl_8036C28C
lbl_8036C254:
/* 8036C254 003691B4 28 1E 00 00 */ cmplwi r30, 0
/* 8036C258 003691B8 41 82 00 30 */ beq lbl_8036C288
/* 8036C25C 003691BC 88 1E 00 00 */ lbz r0, 0(r30)
/* 8036C260 003691C0 28 00 00 00 */ cmplwi r0, 0
/* 8036C264 003691C4 41 82 00 24 */ beq lbl_8036C288
/* 8036C268 003691C8 80 7E 00 04 */ lwz r3, 4(r30)
/* 8036C26C 003691CC 28 03 00 00 */ cmplwi r3, 0
/* 8036C270 003691D0 41 82 00 18 */ beq lbl_8036C288
/* 8036C274 003691D4 81 83 00 00 */ lwz r12, 0(r3)
/* 8036C278 003691D8 38 80 00 01 */ li r4, 1
/* 8036C27C 003691DC 81 8C 00 08 */ lwz r12, 8(r12)
/* 8036C280 003691E0 7D 89 03 A6 */ mtctr r12
/* 8036C284 003691E4 4E 80 04 21 */ bctrl
lbl_8036C288:
/* 8036C288 003691E8 3B DE 00 08 */ addi r30, r30, 8
lbl_8036C28C:
/* 8036C28C 003691EC 7C 1E F8 40 */ cmplw r30, r31
/* 8036C290 003691F0 40 82 FF C4 */ bne lbl_8036C254
/* 8036C294 003691F4 80 7C 00 0C */ lwz r3, 0xc(r28)
/* 8036C298 003691F8 28 03 00 00 */ cmplwi r3, 0
/* 8036C29C 003691FC 41 82 00 08 */ beq lbl_8036C2A4
/* 8036C2A0 00369200 4B FA 96 91 */ bl Free__7CMemoryFPCv
lbl_8036C2A4:
/* 8036C2A4 00369204 7F A0 07 35 */ extsh. r0, r29
/* 8036C2A8 00369208 40 81 00 0C */ ble lbl_8036C2B4
/* 8036C2AC 0036920C 7F 83 E3 78 */ mr r3, r28
/* 8036C2B0 00369210 4B FA 96 81 */ bl Free__7CMemoryFPCv
lbl_8036C2B4:
/* 8036C2B4 00369214 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8036C2B8 00369218 7F 83 E3 78 */ mr r3, r28
/* 8036C2BC 0036921C 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8036C2C0 00369220 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8036C2C4 00369224 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8036C2C8 00369228 83 81 00 20 */ lwz r28, 0x20(r1)
/* 8036C2CC 0036922C 7C 08 03 A6 */ mtlr r0
/* 8036C2D0 00369230 38 21 00 30 */ addi r1, r1, 0x30
/* 8036C2D4 00369234 4E 80 00 20 */ blr
.global __ct__18CStaticAudioPlayerFRCQ24rstl12basic_stringii
__ct__18CStaticAudioPlayerFRCQ24rstl12basic_stringii:
/* 8036C2D8 00369238 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8036C2DC 0036923C 7C 08 02 A6 */ mflr r0
/* 8036C2E0 00369240 90 01 00 74 */ stw r0, 0x74(r1)
/* 8036C2E4 00369244 BF 41 00 58 */ stmw r26, 0x58(r1)
/* 8036C2E8 00369248 7C 7A 1B 78 */ mr r26, r3
/* 8036C2EC 0036924C 7C 9B 23 78 */ mr r27, r4
/* 8036C2F0 00369250 7C BD 2B 78 */ mr r29, r5
/* 8036C2F4 00369254 7C DC 33 78 */ mr r28, r6
/* 8036C2F8 00369258 4B FD 1E 69 */ bl "__ct__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8036C2FC 0036925C 38 00 FF FF */ li r0, -1
/* 8036C300 00369260 3C 80 80 3E */ lis r4, lbl_803D8560@ha
/* 8036C304 00369264 90 1A 00 10 */ stw r0, 0x10(r26)
/* 8036C308 00369268 38 E0 00 00 */ li r7, 0
/* 8036C30C 0036926C 38 A4 85 60 */ addi r5, r4, lbl_803D8560@l
/* 8036C310 00369270 3C 60 80 3D */ lis r3, lbl_803D6AA8@ha
/* 8036C314 00369274 90 FA 00 18 */ stw r7, 0x18(r26)
/* 8036C318 00369278 57 A4 00 3C */ rlwinm r4, r29, 0, 0, 0x1e
/* 8036C31C 0036927C 38 C3 6A A8 */ addi r6, r3, lbl_803D6AA8@l
/* 8036C320 00369280 57 80 00 3C */ rlwinm r0, r28, 0, 0, 0x1e
/* 8036C324 00369284 90 9A 00 1C */ stw r4, 0x1c(r26)
/* 8036C328 00369288 38 61 00 20 */ addi r3, r1, 0x20
/* 8036C32C 0036928C 38 80 FF FF */ li r4, -1
/* 8036C330 00369290 90 1A 00 20 */ stw r0, 0x20(r26)
/* 8036C334 00369294 90 FA 00 24 */ stw r7, 0x24(r26)
/* 8036C338 00369298 4B F6 A0 9D */ bl __ct__10CCallStackFUiPCcPCc
/* 8036C33C 0036929C 7C 67 1B 78 */ mr r7, r3
/* 8036C340 003692A0 38 60 02 80 */ li r3, 0x280
/* 8036C344 003692A4 38 80 00 02 */ li r4, 2
/* 8036C348 003692A8 38 A0 00 01 */ li r5, 1
/* 8036C34C 003692AC 38 C0 00 00 */ li r6, 0
/* 8036C350 003692B0 4B FA 96 45 */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
/* 8036C354 003692B4 7C 03 00 D0 */ neg r0, r3
/* 8036C358 003692B8 3C A0 80 3E */ lis r5, lbl_803D8560@ha
/* 8036C35C 003692BC 7C 00 1B 78 */ or r0, r0, r3
/* 8036C360 003692C0 3C 80 80 3D */ lis r4, lbl_803D6AA8@ha
/* 8036C364 003692C4 54 00 0F FE */ srwi r0, r0, 0x1f
/* 8036C368 003692C8 38 A5 85 60 */ addi r5, r5, lbl_803D8560@l
/* 8036C36C 003692CC 98 1A 00 28 */ stb r0, 0x28(r26)
/* 8036C370 003692D0 38 C4 6A A8 */ addi r6, r4, lbl_803D6AA8@l
/* 8036C374 003692D4 38 80 FF FF */ li r4, -1
/* 8036C378 003692D8 90 7A 00 2C */ stw r3, 0x2c(r26)
/* 8036C37C 003692DC 38 61 00 18 */ addi r3, r1, 0x18
/* 8036C380 003692E0 4B F6 A0 55 */ bl __ct__10CCallStackFUiPCcPCc
/* 8036C384 003692E4 7C 67 1B 78 */ mr r7, r3
/* 8036C388 003692E8 38 60 02 80 */ li r3, 0x280
/* 8036C38C 003692EC 38 80 00 02 */ li r4, 2
/* 8036C390 003692F0 38 A0 00 01 */ li r5, 1
/* 8036C394 003692F4 38 C0 00 00 */ li r6, 0
/* 8036C398 003692F8 4B FA 95 FD */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
/* 8036C39C 003692FC 7C 03 00 D0 */ neg r0, r3
/* 8036C3A0 00369300 3C 80 00 01 */ lis r4, 0x00008000@ha
/* 8036C3A4 00369304 7C 00 1B 78 */ or r0, r0, r3
/* 8036C3A8 00369308 38 A0 00 00 */ li r5, 0
/* 8036C3AC 0036930C 54 06 0F FE */ srwi r6, r0, 0x1f
/* 8036C3B0 00369310 38 04 80 00 */ addi r0, r4, 0x00008000@l
/* 8036C3B4 00369314 98 DA 00 30 */ stb r6, 0x30(r26)
/* 8036C3B8 00369318 90 7A 00 34 */ stw r3, 0x34(r26)
/* 8036C3BC 0036931C 38 61 00 30 */ addi r3, r1, 0x30
/* 8036C3C0 00369320 90 BA 00 3C */ stw r5, 0x3c(r26)
/* 8036C3C4 00369324 90 BA 00 40 */ stw r5, 0x40(r26)
/* 8036C3C8 00369328 90 BA 00 44 */ stw r5, 0x44(r26)
/* 8036C3CC 0036932C 90 BA 00 4C */ stw r5, 0x4c(r26)
/* 8036C3D0 00369330 90 BA 00 50 */ stw r5, 0x50(r26)
/* 8036C3D4 00369334 90 BA 00 54 */ stw r5, 0x54(r26)
/* 8036C3D8 00369338 B0 1A 00 C0 */ sth r0, 0xc0(r26)
/* 8036C3DC 0036933C 80 9B 00 00 */ lwz r4, 0(r27)
/* 8036C3E0 00369340 4B FE 38 F1 */ bl __ct__8CDvdFileFPCc
/* 8036C3E4 00369344 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8036C3E8 00369348 38 7A 00 48 */ addi r3, r26, 0x48
/* 8036C3EC 0036934C 90 1A 00 10 */ stw r0, 0x10(r26)
/* 8036C3F0 00369350 80 1A 00 10 */ lwz r0, 0x10(r26)
/* 8036C3F4 00369354 90 1A 00 14 */ stw r0, 0x14(r26)
/* 8036C3F8 00369358 80 9A 00 10 */ lwz r4, 0x10(r26)
/* 8036C3FC 0036935C 3C 84 00 02 */ addis r4, r4, 2
/* 8036C400 00369360 38 04 FF FF */ addi r0, r4, -1
/* 8036C404 00369364 7C 00 8E 70 */ srawi r0, r0, 0x11
/* 8036C408 00369368 7F 60 01 94 */ addze r27, r0
/* 8036C40C 0036936C 7F 64 DB 78 */ mr r4, r27
/* 8036C410 00369370 4B FF 15 F9 */ bl "reserve__Q24rstl56vector<Q24rstl12auto_ptr<Uc>,Q24rstl17rmemory_allocator>Fi"
/* 8036C414 00369374 7F 64 DB 78 */ mr r4, r27
/* 8036C418 00369378 38 7A 00 38 */ addi r3, r26, 0x38
/* 8036C41C 0036937C 48 00 01 C9 */ bl sub_8036c5e4
/* 8036C420 00369380 3C 80 80 3E */ lis r4, lbl_803D8560@ha
/* 8036C424 00369384 3C 60 80 3D */ lis r3, lbl_803D6AA8@ha
/* 8036C428 00369388 83 9A 00 10 */ lwz r28, 0x10(r26)
/* 8036C42C 0036938C 3B C4 85 60 */ addi r30, r4, lbl_803D8560@l
/* 8036C430 00369390 3B E3 6A A8 */ addi r31, r3, lbl_803D6AA8@l
/* 8036C434 00369394 3F A0 00 02 */ lis r29, 2
/* 8036C438 00369398 48 00 01 80 */ b lbl_8036C5B8
lbl_8036C43C:
/* 8036C43C 0036939C 7C 1C E8 00 */ cmpw r28, r29
/* 8036C440 003693A0 3F 60 00 02 */ lis r27, 2
/* 8036C444 003693A4 41 81 00 0C */ bgt lbl_8036C450
/* 8036C448 003693A8 38 1C 00 1F */ addi r0, r28, 0x1f
/* 8036C44C 003693AC 54 1B 00 34 */ rlwinm r27, r0, 0, 0, 0x1a
lbl_8036C450:
/* 8036C450 003693B0 7F C5 F3 78 */ mr r5, r30
/* 8036C454 003693B4 7F E6 FB 78 */ mr r6, r31
/* 8036C458 003693B8 38 61 00 10 */ addi r3, r1, 0x10
/* 8036C45C 003693BC 38 80 FF FF */ li r4, -1
/* 8036C460 003693C0 4B F6 9F 75 */ bl __ct__10CCallStackFUiPCcPCc
/* 8036C464 003693C4 7C 67 1B 78 */ mr r7, r3
/* 8036C468 003693C8 7F 63 DB 78 */ mr r3, r27
/* 8036C46C 003693CC 38 80 00 02 */ li r4, 2
/* 8036C470 003693D0 38 A0 00 01 */ li r5, 1
/* 8036C474 003693D4 38 C0 00 00 */ li r6, 0
/* 8036C478 003693D8 4B FA 95 1D */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
/* 8036C47C 003693DC 7C 83 00 D0 */ neg r4, r3
/* 8036C480 003693E0 80 1A 00 4C */ lwz r0, 0x4c(r26)
/* 8036C484 003693E4 80 BA 00 50 */ lwz r5, 0x50(r26)
/* 8036C488 003693E8 7C 84 1B 78 */ or r4, r4, r3
/* 8036C48C 003693EC 54 84 0F FE */ srwi r4, r4, 0x1f
/* 8036C490 003693F0 90 61 00 2C */ stw r3, 0x2c(r1)
/* 8036C494 003693F4 7C 00 28 00 */ cmpw r0, r5
/* 8036C498 003693F8 98 81 00 28 */ stb r4, 0x28(r1)
/* 8036C49C 003693FC 41 80 00 1C */ blt lbl_8036C4B8
/* 8036C4A0 00369400 2C 05 00 00 */ cmpwi r5, 0
/* 8036C4A4 00369404 38 7A 00 48 */ addi r3, r26, 0x48
/* 8036C4A8 00369408 38 80 00 04 */ li r4, 4
/* 8036C4AC 0036940C 41 82 00 08 */ beq lbl_8036C4B4
/* 8036C4B0 00369410 54 A4 08 3C */ slwi r4, r5, 1
lbl_8036C4B4:
/* 8036C4B4 00369414 4B FF 15 55 */ bl "reserve__Q24rstl56vector<Q24rstl12auto_ptr<Uc>,Q24rstl17rmemory_allocator>Fi"
lbl_8036C4B8:
/* 8036C4B8 00369418 80 1A 00 4C */ lwz r0, 0x4c(r26)
/* 8036C4BC 0036941C 80 7A 00 54 */ lwz r3, 0x54(r26)
/* 8036C4C0 00369420 54 00 18 38 */ slwi r0, r0, 3
/* 8036C4C4 00369424 7C A3 02 15 */ add. r5, r3, r0
/* 8036C4C8 00369428 41 82 00 1C */ beq lbl_8036C4E4
/* 8036C4CC 0036942C 88 81 00 28 */ lbz r4, 0x28(r1)
/* 8036C4D0 00369430 38 00 00 00 */ li r0, 0
/* 8036C4D4 00369434 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 8036C4D8 00369438 98 85 00 00 */ stb r4, 0(r5)
/* 8036C4DC 0036943C 90 65 00 04 */ stw r3, 4(r5)
/* 8036C4E0 00369440 98 01 00 28 */ stb r0, 0x28(r1)
lbl_8036C4E4:
/* 8036C4E4 00369444 80 DA 00 4C */ lwz r6, 0x4c(r26)
/* 8036C4E8 00369448 7F 65 DB 78 */ mr r5, r27
/* 8036C4EC 0036944C 80 81 00 2C */ lwz r4, 0x2c(r1)
/* 8036C4F0 00369450 38 61 00 30 */ addi r3, r1, 0x30
/* 8036C4F4 00369454 38 06 00 01 */ addi r0, r6, 1
/* 8036C4F8 00369458 90 1A 00 4C */ stw r0, 0x4c(r26)
/* 8036C4FC 0036945C 4B FE 36 ED */ bl SyncRead__8CDvdFileFPvUi
/* 8036C500 00369460 7C 83 00 D0 */ neg r4, r3
/* 8036C504 00369464 80 1A 00 3C */ lwz r0, 0x3c(r26)
/* 8036C508 00369468 80 BA 00 40 */ lwz r5, 0x40(r26)
/* 8036C50C 0036946C 7C 84 1B 78 */ or r4, r4, r3
/* 8036C510 00369470 54 84 0F FE */ srwi r4, r4, 0x1f
/* 8036C514 00369474 90 61 00 0C */ stw r3, 0xc(r1)
/* 8036C518 00369478 7C 00 28 00 */ cmpw r0, r5
/* 8036C51C 0036947C 98 81 00 08 */ stb r4, 8(r1)
/* 8036C520 00369480 41 80 00 1C */ blt lbl_8036C53C
/* 8036C524 00369484 2C 05 00 00 */ cmpwi r5, 0
/* 8036C528 00369488 38 7A 00 38 */ addi r3, r26, 0x38
/* 8036C52C 0036948C 38 80 00 04 */ li r4, 4
/* 8036C530 00369490 41 82 00 08 */ beq lbl_8036C538
/* 8036C534 00369494 54 A4 08 3C */ slwi r4, r5, 1
lbl_8036C538:
/* 8036C538 00369498 48 00 00 AD */ bl sub_8036c5e4
lbl_8036C53C:
/* 8036C53C 0036949C 80 1A 00 3C */ lwz r0, 0x3c(r26)
/* 8036C540 003694A0 80 7A 00 44 */ lwz r3, 0x44(r26)
/* 8036C544 003694A4 54 00 18 38 */ slwi r0, r0, 3
/* 8036C548 003694A8 7C A3 02 15 */ add. r5, r3, r0
/* 8036C54C 003694AC 41 82 00 1C */ beq lbl_8036C568
/* 8036C550 003694B0 88 81 00 08 */ lbz r4, 8(r1)
/* 8036C554 003694B4 38 00 00 00 */ li r0, 0
/* 8036C558 003694B8 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8036C55C 003694BC 98 85 00 00 */ stb r4, 0(r5)
/* 8036C560 003694C0 90 65 00 04 */ stw r3, 4(r5)
/* 8036C564 003694C4 98 01 00 08 */ stb r0, 8(r1)
lbl_8036C568:
/* 8036C568 003694C8 80 7A 00 3C */ lwz r3, 0x3c(r26)
/* 8036C56C 003694CC 88 01 00 08 */ lbz r0, 8(r1)
/* 8036C570 003694D0 38 63 00 01 */ addi r3, r3, 1
/* 8036C574 003694D4 28 00 00 00 */ cmplwi r0, 0
/* 8036C578 003694D8 90 7A 00 3C */ stw r3, 0x3c(r26)
/* 8036C57C 003694DC 41 82 00 24 */ beq lbl_8036C5A0
/* 8036C580 003694E0 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8036C584 003694E4 28 03 00 00 */ cmplwi r3, 0
/* 8036C588 003694E8 41 82 00 18 */ beq lbl_8036C5A0
/* 8036C58C 003694EC 81 83 00 00 */ lwz r12, 0(r3)
/* 8036C590 003694F0 38 80 00 01 */ li r4, 1
/* 8036C594 003694F4 81 8C 00 08 */ lwz r12, 8(r12)
/* 8036C598 003694F8 7D 89 03 A6 */ mtctr r12
/* 8036C59C 003694FC 4E 80 04 21 */ bctrl
lbl_8036C5A0:
/* 8036C5A0 00369500 88 01 00 28 */ lbz r0, 0x28(r1)
/* 8036C5A4 00369504 28 00 00 00 */ cmplwi r0, 0
/* 8036C5A8 00369508 41 82 00 0C */ beq lbl_8036C5B4
/* 8036C5AC 0036950C 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 8036C5B0 00369510 4B FA 93 81 */ bl Free__7CMemoryFPCv
lbl_8036C5B4:
/* 8036C5B4 00369514 3F 9C FF FE */ addis r28, r28, 0xfffe
lbl_8036C5B8:
/* 8036C5B8 00369518 2C 1C 00 00 */ cmpwi r28, 0
/* 8036C5BC 0036951C 41 81 FE 80 */ bgt lbl_8036C43C
/* 8036C5C0 00369520 38 61 00 30 */ addi r3, r1, 0x30
/* 8036C5C4 00369524 38 80 FF FF */ li r4, -1
/* 8036C5C8 00369528 4B FE 36 49 */ bl __dt__8CDvdFileFv
/* 8036C5CC 0036952C 7F 43 D3 78 */ mr r3, r26
/* 8036C5D0 00369530 BB 41 00 58 */ lmw r26, 0x58(r1)
/* 8036C5D4 00369534 80 01 00 74 */ lwz r0, 0x74(r1)
/* 8036C5D8 00369538 7C 08 03 A6 */ mtlr r0
/* 8036C5DC 0036953C 38 21 00 70 */ addi r1, r1, 0x70
/* 8036C5E0 00369540 4E 80 00 20 */ blr
.global sub_8036c5e4
sub_8036c5e4:
/* 8036C5E4 00369544 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8036C5E8 00369548 7C 08 02 A6 */ mflr r0
/* 8036C5EC 0036954C 90 01 00 34 */ stw r0, 0x34(r1)
/* 8036C5F0 00369550 BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 8036C5F4 00369554 7C 9F 23 78 */ mr r31, r4
/* 8036C5F8 00369558 7C 7E 1B 78 */ mr r30, r3
/* 8036C5FC 0036955C 80 03 00 08 */ lwz r0, 8(r3)
/* 8036C600 00369560 7C 1F 00 00 */ cmpw r31, r0
/* 8036C604 00369564 40 81 00 EC */ ble lbl_8036C6F0
/* 8036C608 00369568 57 E3 18 39 */ rlwinm. r3, r31, 3, 0, 0x1c
/* 8036C60C 0036956C 40 82 00 0C */ bne lbl_8036C618
/* 8036C610 00369570 3B A0 00 00 */ li r29, 0
/* 8036C614 00369574 48 00 00 18 */ b lbl_8036C62C
lbl_8036C618:
/* 8036C618 00369578 3C 80 80 3E */ lis r4, lbl_803D8560@ha
/* 8036C61C 0036957C 38 A0 00 00 */ li r5, 0
/* 8036C620 00369580 38 84 85 60 */ addi r4, r4, lbl_803D8560@l
/* 8036C624 00369584 4B FA 91 F5 */ bl __nwa__FUlPCcPCc
/* 8036C628 00369588 7C 7D 1B 78 */ mr r29, r3
lbl_8036C62C:
/* 8036C62C 0036958C 80 7E 00 04 */ lwz r3, 4(r30)
/* 8036C630 00369590 7F A5 EB 78 */ mr r5, r29
/* 8036C634 00369594 80 DE 00 0C */ lwz r6, 0xc(r30)
/* 8036C638 00369598 38 00 00 00 */ li r0, 0
/* 8036C63C 0036959C 54 63 18 38 */ slwi r3, r3, 3
/* 8036C640 003695A0 7C 86 1A 14 */ add r4, r6, r3
/* 8036C644 003695A4 90 C1 00 10 */ stw r6, 0x10(r1)
/* 8036C648 003695A8 90 81 00 08 */ stw r4, 8(r1)
/* 8036C64C 003695AC 90 81 00 0C */ stw r4, 0xc(r1)
/* 8036C650 003695B0 90 C1 00 14 */ stw r6, 0x14(r1)
/* 8036C654 003695B4 48 00 00 28 */ b lbl_8036C67C
lbl_8036C658:
/* 8036C658 003695B8 28 05 00 00 */ cmplwi r5, 0
/* 8036C65C 003695BC 41 82 00 18 */ beq lbl_8036C674
/* 8036C660 003695C0 88 66 00 00 */ lbz r3, 0(r6)
/* 8036C664 003695C4 98 65 00 00 */ stb r3, 0(r5)
/* 8036C668 003695C8 80 66 00 04 */ lwz r3, 4(r6)
/* 8036C66C 003695CC 90 65 00 04 */ stw r3, 4(r5)
/* 8036C670 003695D0 98 06 00 00 */ stb r0, 0(r6)
lbl_8036C674:
/* 8036C674 003695D4 38 A5 00 08 */ addi r5, r5, 8
/* 8036C678 003695D8 38 C6 00 08 */ addi r6, r6, 8
lbl_8036C67C:
/* 8036C67C 003695DC 7C 06 20 40 */ cmplw r6, r4
/* 8036C680 003695E0 40 82 FF D8 */ bne lbl_8036C658
/* 8036C684 003695E4 80 1E 00 04 */ lwz r0, 4(r30)
/* 8036C688 003695E8 83 7E 00 0C */ lwz r27, 0xc(r30)
/* 8036C68C 003695EC 54 00 18 38 */ slwi r0, r0, 3
/* 8036C690 003695F0 7F 9B 02 14 */ add r28, r27, r0
/* 8036C694 003695F4 48 00 00 3C */ b lbl_8036C6D0
lbl_8036C698:
/* 8036C698 003695F8 28 1B 00 00 */ cmplwi r27, 0
/* 8036C69C 003695FC 41 82 00 30 */ beq lbl_8036C6CC
/* 8036C6A0 00369600 88 1B 00 00 */ lbz r0, 0(r27)
/* 8036C6A4 00369604 28 00 00 00 */ cmplwi r0, 0
/* 8036C6A8 00369608 41 82 00 24 */ beq lbl_8036C6CC
/* 8036C6AC 0036960C 80 7B 00 04 */ lwz r3, 4(r27)
/* 8036C6B0 00369610 28 03 00 00 */ cmplwi r3, 0
/* 8036C6B4 00369614 41 82 00 18 */ beq lbl_8036C6CC
/* 8036C6B8 00369618 81 83 00 00 */ lwz r12, 0(r3)
/* 8036C6BC 0036961C 38 80 00 01 */ li r4, 1
/* 8036C6C0 00369620 81 8C 00 08 */ lwz r12, 8(r12)
/* 8036C6C4 00369624 7D 89 03 A6 */ mtctr r12
/* 8036C6C8 00369628 4E 80 04 21 */ bctrl
lbl_8036C6CC:
/* 8036C6CC 0036962C 3B 7B 00 08 */ addi r27, r27, 8
lbl_8036C6D0:
/* 8036C6D0 00369630 7C 1B E0 40 */ cmplw r27, r28
/* 8036C6D4 00369634 40 82 FF C4 */ bne lbl_8036C698
/* 8036C6D8 00369638 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 8036C6DC 0036963C 28 03 00 00 */ cmplwi r3, 0
/* 8036C6E0 00369640 41 82 00 08 */ beq lbl_8036C6E8
/* 8036C6E4 00369644 4B FA 92 4D */ bl Free__7CMemoryFPCv
lbl_8036C6E8:
/* 8036C6E8 00369648 93 BE 00 0C */ stw r29, 0xc(r30)
/* 8036C6EC 0036964C 93 FE 00 08 */ stw r31, 8(r30)
lbl_8036C6F0:
/* 8036C6F0 00369650 BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 8036C6F4 00369654 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8036C6F8 00369658 7C 08 03 A6 */ mtlr r0
/* 8036C6FC 0036965C 38 21 00 30 */ addi r1, r1, 0x30
/* 8036C700 00369660 4E 80 00 20 */ blr
.global sub_8036c704
sub_8036c704:
/* 8036C704 00369664 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8036C708 00369668 7C 08 02 A6 */ mflr r0
/* 8036C70C 0036966C 90 01 00 24 */ stw r0, 0x24(r1)
/* 8036C710 00369670 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8036C714 00369674 7C 7F 1B 78 */ mr r31, r3
/* 8036C718 00369678 48 01 4F 49 */ bl OSDisableInterrupts
/* 8036C71C 0036967C 7C 03 00 D0 */ neg r0, r3
/* 8036C720 00369680 3C 80 80 54 */ lis r4, lbl_80540004@ha
/* 8036C724 00369684 7C 03 1B 78 */ or r3, r0, r3
/* 8036C728 00369688 84 04 0A 2C */ lwzu r0, 0xa2c(r4)
/* 8036C72C 0036968C 54 63 0F FE */ srwi r3, r3, 0x1f
/* 8036C730 00369690 38 C4 00 04 */ addi r6, r4, lbl_80540004@l
/* 8036C734 00369694 54 00 10 3A */ slwi r0, r0, 2
/* 8036C738 00369698 98 61 00 08 */ stb r3, 8(r1)
/* 8036C73C 0036969C 7C C5 33 78 */ mr r5, r6
/* 8036C740 003696A0 7C 66 02 14 */ add r3, r6, r0
/* 8036C744 003696A4 48 00 00 08 */ b lbl_8036C74C
lbl_8036C748:
/* 8036C748 003696A8 38 A5 00 04 */ addi r5, r5, 4
lbl_8036C74C:
/* 8036C74C 003696AC 7C 05 18 40 */ cmplw r5, r3
/* 8036C750 003696B0 41 82 00 10 */ beq lbl_8036C760
/* 8036C754 003696B4 80 05 00 00 */ lwz r0, 0(r5)
/* 8036C758 003696B8 7C 00 F8 40 */ cmplw r0, r31
/* 8036C75C 003696BC 40 82 FF EC */ bne lbl_8036C748
lbl_8036C760:
/* 8036C760 003696C0 7C 05 18 40 */ cmplw r5, r3
/* 8036C764 003696C4 41 82 00 58 */ beq lbl_8036C7BC
/* 8036C768 003696C8 7C 05 30 40 */ cmplw r5, r6
/* 8036C76C 003696CC 41 80 00 50 */ blt lbl_8036C7BC
/* 8036C770 003696D0 7C 05 18 40 */ cmplw r5, r3
/* 8036C774 003696D4 40 80 00 48 */ bge lbl_8036C7BC
/* 8036C778 003696D8 3C 60 80 54 */ lis r3, lbl_80540A2C@ha
/* 8036C77C 003696DC 38 83 0A 2C */ addi r4, r3, lbl_80540A2C@l
/* 8036C780 003696E0 48 00 00 10 */ b lbl_8036C790
lbl_8036C784:
/* 8036C784 003696E4 80 05 00 04 */ lwz r0, 4(r5)
/* 8036C788 003696E8 90 05 00 00 */ stw r0, 0(r5)
/* 8036C78C 003696EC 38 A5 00 04 */ addi r5, r5, 4
lbl_8036C790:
/* 8036C790 003696F0 80 04 00 00 */ lwz r0, 0(r4)
/* 8036C794 003696F4 54 03 10 3A */ slwi r3, r0, 2
/* 8036C798 003696F8 38 03 FF FC */ addi r0, r3, -4
/* 8036C79C 003696FC 7C 06 02 14 */ add r0, r6, r0
/* 8036C7A0 00369700 7C 05 00 40 */ cmplw r5, r0
/* 8036C7A4 00369704 41 80 FF E0 */ blt lbl_8036C784
/* 8036C7A8 00369708 3C 60 80 54 */ lis r3, lbl_80540A2C@ha
/* 8036C7AC 0036970C 38 83 0A 2C */ addi r4, r3, lbl_80540A2C@l
/* 8036C7B0 00369710 80 64 00 00 */ lwz r3, 0(r4)
/* 8036C7B4 00369714 38 03 FF FF */ addi r0, r3, -1
/* 8036C7B8 00369718 90 04 00 00 */ stw r0, 0(r4)
lbl_8036C7BC:
/* 8036C7BC 0036971C 48 00 01 35 */ bl sub_8036c8f0
/* 8036C7C0 00369720 88 61 00 08 */ lbz r3, 8(r1)
/* 8036C7C4 00369724 48 01 4E C5 */ bl OSRestoreInterrupts
/* 8036C7C8 00369728 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8036C7CC 0036972C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8036C7D0 00369730 7C 08 03 A6 */ mtlr r0
/* 8036C7D4 00369734 38 21 00 20 */ addi r1, r1, 0x20
/* 8036C7D8 00369738 4E 80 00 20 */ blr
.global RunDMACallback__18CStaticAudioPlayerFv
RunDMACallback__18CStaticAudioPlayerFv:
/* 8036C7DC 0036973C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8036C7E0 00369740 7C 08 02 A6 */ mflr r0
/* 8036C7E4 00369744 90 01 00 24 */ stw r0, 0x24(r1)
/* 8036C7E8 00369748 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8036C7EC 0036974C 7C 7F 1B 78 */ mr r31, r3
/* 8036C7F0 00369750 48 01 4E 71 */ bl OSDisableInterrupts
/* 8036C7F4 00369754 7C 03 00 D0 */ neg r0, r3
/* 8036C7F8 00369758 3C 80 80 54 */ lis r4, lbl_80540004@ha
/* 8036C7FC 0036975C 7C 03 1B 78 */ or r3, r0, r3
/* 8036C800 00369760 84 04 0A 2C */ lwzu r0, 0xa2c(r4)
/* 8036C804 00369764 54 63 0F FE */ srwi r3, r3, 0x1f
/* 8036C808 00369768 38 84 00 04 */ addi r4, r4, lbl_80540004@l
/* 8036C80C 0036976C 54 00 10 3A */ slwi r0, r0, 2
/* 8036C810 00369770 98 61 00 08 */ stb r3, 8(r1)
/* 8036C814 00369774 7C 64 02 14 */ add r3, r4, r0
/* 8036C818 00369778 48 00 00 08 */ b lbl_8036C820
lbl_8036C81C:
/* 8036C81C 0036977C 38 84 00 04 */ addi r4, r4, 4
lbl_8036C820:
/* 8036C820 00369780 7C 04 18 40 */ cmplw r4, r3
/* 8036C824 00369784 41 82 00 10 */ beq lbl_8036C834
/* 8036C828 00369788 80 04 00 00 */ lwz r0, 0(r4)
/* 8036C82C 0036978C 7C 00 F8 40 */ cmplw r0, r31
/* 8036C830 00369790 40 82 FF EC */ bne lbl_8036C81C
lbl_8036C834:
/* 8036C834 00369794 7C 04 18 40 */ cmplw r4, r3
/* 8036C838 00369798 40 82 00 24 */ bne lbl_8036C85C
/* 8036C83C 0036979C 28 03 00 00 */ cmplwi r3, 0
/* 8036C840 003697A0 41 82 00 08 */ beq lbl_8036C848
/* 8036C844 003697A4 93 E3 00 00 */ stw r31, 0(r3)
lbl_8036C848:
/* 8036C848 003697A8 3C 60 80 54 */ lis r3, lbl_80540A2C@ha
/* 8036C84C 003697AC 38 83 0A 2C */ addi r4, r3, lbl_80540A2C@l
/* 8036C850 003697B0 80 64 00 00 */ lwz r3, 0(r4)
/* 8036C854 003697B4 38 03 00 01 */ addi r0, r3, 1
/* 8036C858 003697B8 90 04 00 00 */ stw r0, 0(r4)
lbl_8036C85C:
/* 8036C85C 003697BC 48 00 00 95 */ bl sub_8036c8f0
/* 8036C860 003697C0 88 61 00 08 */ lbz r3, 8(r1)
/* 8036C864 003697C4 48 01 4E 25 */ bl OSRestoreInterrupts
/* 8036C868 003697C8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8036C86C 003697CC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8036C870 003697D0 7C 08 03 A6 */ mtlr r0
/* 8036C874 003697D4 38 21 00 20 */ addi r1, r1, 0x20
/* 8036C878 003697D8 4E 80 00 20 */ blr
.global sub_8036c87c
sub_8036c87c:
/* 8036C87C 003697DC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8036C880 003697E0 7C 08 02 A6 */ mflr r0
/* 8036C884 003697E4 90 01 00 24 */ stw r0, 0x24(r1)
/* 8036C888 003697E8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8036C88C 003697EC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8036C890 003697F0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8036C894 003697F4 81 8D AA EC */ lwz r12, lbl_805A96AC@sda21(r13)
/* 8036C898 003697F8 7D 89 03 A6 */ mtctr r12
/* 8036C89C 003697FC 4E 80 04 21 */ bctrl
/* 8036C8A0 00369800 3C 60 80 54 */ lis r3, lbl_80540A2C@ha
/* 8036C8A4 00369804 3B A0 00 00 */ li r29, 0
/* 8036C8A8 00369808 3B E3 0A 2C */ addi r31, r3, lbl_80540A2C@l
/* 8036C8AC 0036980C 3B DF 00 04 */ addi r30, r31, 4
/* 8036C8B0 00369810 48 00 00 18 */ b lbl_8036C8C8
lbl_8036C8B4:
/* 8036C8B4 00369814 81 9E 00 00 */ lwz r12, 0(r30)
/* 8036C8B8 00369818 7D 89 03 A6 */ mtctr r12
/* 8036C8BC 0036981C 4E 80 04 21 */ bctrl
/* 8036C8C0 00369820 3B DE 00 04 */ addi r30, r30, 4
/* 8036C8C4 00369824 3B BD 00 01 */ addi r29, r29, 1
lbl_8036C8C8:
/* 8036C8C8 00369828 80 1F 00 00 */ lwz r0, 0(r31)
/* 8036C8CC 0036982C 7C 1D 00 00 */ cmpw r29, r0
/* 8036C8D0 00369830 41 80 FF E4 */ blt lbl_8036C8B4
/* 8036C8D4 00369834 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8036C8D8 00369838 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8036C8DC 0036983C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8036C8E0 00369840 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8036C8E4 00369844 7C 08 03 A6 */ mtlr r0
/* 8036C8E8 00369848 38 21 00 20 */ addi r1, r1, 0x20
/* 8036C8EC 0036984C 4E 80 00 20 */ blr
.global sub_8036c8f0
sub_8036c8f0:
/* 8036C8F0 00369850 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8036C8F4 00369854 7C 08 02 A6 */ mflr r0
/* 8036C8F8 00369858 90 01 00 14 */ stw r0, 0x14(r1)
/* 8036C8FC 0036985C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8036C900 00369860 4B FD DE A5 */ bl sub_8034a7a4
/* 8036C904 00369864 7C 60 1B 78 */ mr r0, r3
/* 8036C908 00369868 38 60 00 01 */ li r3, 1
/* 8036C90C 0036986C 7C 1F 03 78 */ mr r31, r0
/* 8036C910 00369870 4B FD DE 9D */ bl sub_8034a7ac
/* 8036C914 00369874 88 8D AA E8 */ lbz r4, lbl_805A96A8@sda21(r13)
/* 8036C918 00369878 28 04 00 00 */ cmplwi r4, 0
/* 8036C91C 0036987C 40 82 00 30 */ bne lbl_8036C94C
/* 8036C920 00369880 3C 60 80 54 */ lis r3, lbl_80540A2C@ha
/* 8036C924 00369884 80 03 0A 2C */ lwz r0, lbl_80540A2C@l(r3)
/* 8036C928 00369888 2C 00 00 00 */ cmpwi r0, 0
/* 8036C92C 0036988C 41 82 00 20 */ beq lbl_8036C94C
/* 8036C930 00369890 3C 60 80 37 */ lis r3, sub_8036c87c@ha
/* 8036C934 00369894 38 63 C8 7C */ addi r3, r3, sub_8036c87c@l
/* 8036C938 00369898 48 00 06 05 */ bl AIRegisterDMACallback
/* 8036C93C 0036989C 38 00 00 01 */ li r0, 1
/* 8036C940 003698A0 90 6D AA EC */ stw r3, lbl_805A96AC@sda21(r13)
/* 8036C944 003698A4 98 0D AA E8 */ stb r0, lbl_805A96A8@sda21(r13)
/* 8036C948 003698A8 48 00 00 30 */ b lbl_8036C978
lbl_8036C94C:
/* 8036C94C 003698AC 28 04 00 00 */ cmplwi r4, 0
/* 8036C950 003698B0 41 82 00 28 */ beq lbl_8036C978
/* 8036C954 003698B4 3C 60 80 54 */ lis r3, lbl_80540A2C@ha
/* 8036C958 003698B8 80 03 0A 2C */ lwz r0, lbl_80540A2C@l(r3)
/* 8036C95C 003698BC 2C 00 00 00 */ cmpwi r0, 0
/* 8036C960 003698C0 40 82 00 18 */ bne lbl_8036C978
/* 8036C964 003698C4 80 6D AA EC */ lwz r3, lbl_805A96AC@sda21(r13)
/* 8036C968 003698C8 48 00 05 D5 */ bl AIRegisterDMACallback
/* 8036C96C 003698CC 38 00 00 00 */ li r0, 0
/* 8036C970 003698D0 90 0D AA EC */ stw r0, lbl_805A96AC@sda21(r13)
/* 8036C974 003698D4 98 0D AA E8 */ stb r0, lbl_805A96A8@sda21(r13)
lbl_8036C978:
/* 8036C978 003698D8 7F E3 FB 78 */ mr r3, r31
/* 8036C97C 003698DC 4B FD DE 31 */ bl sub_8034a7ac
/* 8036C980 003698E0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8036C984 003698E4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8036C988 003698E8 7C 08 03 A6 */ mtlr r0
/* 8036C98C 003698EC 38 21 00 10 */ addi r1, r1, 0x10
/* 8036C990 003698F0 4E 80 00 20 */ blr
.global __sinit_CStaticAudioPlayer_cpp
__sinit_CStaticAudioPlayer_cpp:
/* 8036C994 003698F4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8036C998 003698F8 7C 08 02 A6 */ mflr r0
/* 8036C99C 003698FC 3C 80 80 37 */ lis r4, sub_8036c9d0@ha
/* 8036C9A0 00369900 3C A0 80 54 */ lis r5, lbl_80540A20@ha
/* 8036C9A4 00369904 90 01 00 14 */ stw r0, 0x14(r1)
/* 8036C9A8 00369908 38 00 00 00 */ li r0, 0
/* 8036C9AC 0036990C 3C 60 80 54 */ lis r3, lbl_80540A2C@ha
/* 8036C9B0 00369910 38 84 C9 D0 */ addi r4, r4, sub_8036c9d0@l
/* 8036C9B4 00369914 94 03 0A 2C */ stwu r0, lbl_80540A2C@l(r3)
/* 8036C9B8 00369918 38 A5 0A 20 */ addi r5, r5, lbl_80540A20@l
/* 8036C9BC 0036991C 48 01 CC D1 */ bl __register_global_object
/* 8036C9C0 00369920 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8036C9C4 00369924 7C 08 03 A6 */ mtlr r0
/* 8036C9C8 00369928 38 21 00 10 */ addi r1, r1, 0x10
/* 8036C9CC 0036992C 4E 80 00 20 */ blr
.global sub_8036c9d0
sub_8036c9d0:
/* 8036C9D0 00369930 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8036C9D4 00369934 7C 08 02 A6 */ mflr r0
/* 8036C9D8 00369938 90 01 00 14 */ stw r0, 0x14(r1)
/* 8036C9DC 0036993C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8036C9E0 00369940 7C 7F 1B 79 */ or. r31, r3, r3
/* 8036C9E4 00369944 41 82 00 68 */ beq lbl_8036CA4C
/* 8036C9E8 00369948 80 DF 00 00 */ lwz r6, 0(r31)
/* 8036C9EC 0036994C 38 60 00 00 */ li r3, 0
/* 8036C9F0 00369950 2C 06 00 00 */ cmpwi r6, 0
/* 8036C9F4 00369954 40 81 00 40 */ ble lbl_8036CA34
/* 8036C9F8 00369958 2C 06 00 08 */ cmpwi r6, 8
/* 8036C9FC 0036995C 38 A6 FF F8 */ addi r5, r6, -8
/* 8036CA00 00369960 40 81 00 20 */ ble lbl_8036CA20
/* 8036CA04 00369964 38 05 00 07 */ addi r0, r5, 7
/* 8036CA08 00369968 54 00 E8 FE */ srwi r0, r0, 3
/* 8036CA0C 0036996C 7C 09 03 A6 */ mtctr r0
/* 8036CA10 00369970 2C 05 00 00 */ cmpwi r5, 0
/* 8036CA14 00369974 40 81 00 0C */ ble lbl_8036CA20
lbl_8036CA18:
/* 8036CA18 00369978 38 63 00 08 */ addi r3, r3, 8
/* 8036CA1C 0036997C 42 00 FF FC */ bdnz lbl_8036CA18
lbl_8036CA20:
/* 8036CA20 00369980 7C 03 30 50 */ subf r0, r3, r6
/* 8036CA24 00369984 7C 09 03 A6 */ mtctr r0
/* 8036CA28 00369988 7C 03 30 00 */ cmpw r3, r6
/* 8036CA2C 0036998C 40 80 00 08 */ bge lbl_8036CA34
lbl_8036CA30:
/* 8036CA30 00369990 42 00 00 00 */ bdnz lbl_8036CA30
lbl_8036CA34:
/* 8036CA34 00369994 38 60 00 00 */ li r3, 0
/* 8036CA38 00369998 7C 80 07 35 */ extsh. r0, r4
/* 8036CA3C 0036999C 90 7F 00 00 */ stw r3, 0(r31)
/* 8036CA40 003699A0 40 81 00 0C */ ble lbl_8036CA4C
/* 8036CA44 003699A4 7F E3 FB 78 */ mr r3, r31
/* 8036CA48 003699A8 4B FA 8E E9 */ bl Free__7CMemoryFPCv
lbl_8036CA4C:
/* 8036CA4C 003699AC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8036CA50 003699B0 7F E3 FB 78 */ mr r3, r31
/* 8036CA54 003699B4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8036CA58 003699B8 7C 08 03 A6 */ mtlr r0
/* 8036CA5C 003699BC 38 21 00 10 */ addi r1, r1, 0x10
/* 8036CA60 003699C0 4E 80 00 20 */ blr
.section .rodata
.global lbl_803D8560
lbl_803D8560:
# ROM: 0x3D5560
.asciz "??(??)"
.balign 4