donut-decomp/asm/libMobiclip/MoSdkAudioDecoder.s

281 lines
13 KiB
ArmAsm

.include "macros.inc"
.section .text1, "ax" # 0x80006A00 - 0x80406260
.global __ct__20MoSdkAudioRepositoryFv
__ct__20MoSdkAudioRepositoryFv:
/* 80151E70 0014DCB0 38 00 00 00 */ li r0, 0
/* 80151E74 0014DCB4 90 03 00 8C */ stw r0, 0x8c(r3)
/* 80151E78 0014DCB8 90 03 00 84 */ stw r0, 0x84(r3)
/* 80151E7C 0014DCBC 90 03 00 80 */ stw r0, 0x80(r3)
/* 80151E80 0014DCC0 90 03 00 88 */ stw r0, 0x88(r3)
/* 80151E84 0014DCC4 90 03 00 90 */ stw r0, 0x90(r3)
/* 80151E88 0014DCC8 4E 80 00 20 */ blr
/* 80151E8C 0014DCCC 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
.global __dt__20MoSdkAudioRepositoryFv
__dt__20MoSdkAudioRepositoryFv:
/* 80151E90 0014DCD0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80151E94 0014DCD4 7C 08 02 A6 */ mflr r0
/* 80151E98 0014DCD8 2C 03 00 00 */ cmpwi r3, 0
/* 80151E9C 0014DCDC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80151EA0 0014DCE0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80151EA4 0014DCE4 7C 9F 23 78 */ mr r31, r4
/* 80151EA8 0014DCE8 93 C1 00 08 */ stw r30, 8(r1)
/* 80151EAC 0014DCEC 7C 7E 1B 78 */ mr r30, r3
/* 80151EB0 0014DCF0 41 82 00 24 */ beq lbl_80151ED4
/* 80151EB4 0014DCF4 80 63 00 80 */ lwz r3, 0x80(r3)
/* 80151EB8 0014DCF8 2C 03 00 00 */ cmpwi r3, 0
/* 80151EBC 0014DCFC 41 82 00 08 */ beq lbl_80151EC4
/* 80151EC0 0014DD00 48 00 19 11 */ bl MOiFree__FPv
lbl_80151EC4:
/* 80151EC4 0014DD04 2C 1F 00 00 */ cmpwi r31, 0
/* 80151EC8 0014DD08 40 81 00 0C */ ble lbl_80151ED4
/* 80151ECC 0014DD0C 7F C3 F3 78 */ mr r3, r30
/* 80151ED0 0014DD10 48 06 D8 45 */ bl __dl__FPv
lbl_80151ED4:
/* 80151ED4 0014DD14 7F C3 F3 78 */ mr r3, r30
/* 80151ED8 0014DD18 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80151EDC 0014DD1C 83 C1 00 08 */ lwz r30, 8(r1)
/* 80151EE0 0014DD20 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80151EE4 0014DD24 7C 08 03 A6 */ mtlr r0
/* 80151EE8 0014DD28 38 21 00 10 */ addi r1, r1, 0x10
/* 80151EEC 0014DD2C 4E 80 00 20 */ blr
.global allocAudioBuffer__20MoSdkAudioRepositoryFii
allocAudioBuffer__20MoSdkAudioRepositoryFii:
/* 80151EF0 0014DD30 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80151EF4 0014DD34 7C 08 02 A6 */ mflr r0
/* 80151EF8 0014DD38 90 01 00 24 */ stw r0, 0x24(r1)
/* 80151EFC 0014DD3C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80151F00 0014DD40 7C BF 2B 78 */ mr r31, r5
/* 80151F04 0014DD44 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80151F08 0014DD48 7C 9E 23 78 */ mr r30, r4
/* 80151F0C 0014DD4C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80151F10 0014DD50 7C 7D 1B 78 */ mr r29, r3
/* 80151F14 0014DD54 80 03 00 80 */ lwz r0, 0x80(r3)
/* 80151F18 0014DD58 2C 00 00 00 */ cmpwi r0, 0
/* 80151F1C 0014DD5C 41 82 00 0C */ beq lbl_80151F28
/* 80151F20 0014DD60 7C 03 03 78 */ mr r3, r0
/* 80151F24 0014DD64 48 00 18 AD */ bl MOiFree__FPv
lbl_80151F28:
/* 80151F28 0014DD68 7C 1E F9 D6 */ mullw r0, r30, r31
/* 80151F2C 0014DD6C 54 03 08 3C */ slwi r3, r0, 1
/* 80151F30 0014DD70 90 7D 00 84 */ stw r3, 0x84(r29)
/* 80151F34 0014DD74 48 00 17 ED */ bl MOiAlloc__FUi
/* 80151F38 0014DD78 2C 03 00 00 */ cmpwi r3, 0
/* 80151F3C 0014DD7C 90 7D 00 80 */ stw r3, 0x80(r29)
/* 80151F40 0014DD80 40 82 00 0C */ bne lbl_80151F4C
/* 80151F44 0014DD84 38 60 00 00 */ li r3, 0
/* 80151F48 0014DD88 48 00 00 08 */ b lbl_80151F50
lbl_80151F4C:
/* 80151F4C 0014DD8C 38 60 00 01 */ li r3, 1
lbl_80151F50:
/* 80151F50 0014DD90 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80151F54 0014DD94 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80151F58 0014DD98 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80151F5C 0014DD9C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80151F60 0014DDA0 7C 08 03 A6 */ mtlr r0
/* 80151F64 0014DDA4 38 21 00 20 */ addi r1, r1, 0x20
/* 80151F68 0014DDA8 4E 80 00 20 */ blr
/* 80151F6C 0014DDAC 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
.global getPacket__20MoSdkAudioRepositoryFPPUcPUl
getPacket__20MoSdkAudioRepositoryFPPUcPUl:
/* 80151F70 0014DDB0 80 C3 00 88 */ lwz r6, 0x88(r3)
/* 80151F74 0014DDB4 80 03 00 8C */ lwz r0, 0x8c(r3)
/* 80151F78 0014DDB8 7C 06 00 40 */ cmplw r6, r0
/* 80151F7C 0014DDBC 41 80 00 0C */ blt lbl_80151F88
/* 80151F80 0014DDC0 38 60 00 00 */ li r3, 0
/* 80151F84 0014DDC4 4E 80 00 20 */ blr
lbl_80151F88:
/* 80151F88 0014DDC8 80 C3 00 88 */ lwz r6, 0x88(r3)
/* 80151F8C 0014DDCC 38 00 00 00 */ li r0, 0
/* 80151F90 0014DDD0 54 C6 1E 78 */ rlwinm r6, r6, 3, 0x19, 0x1c
/* 80151F94 0014DDD4 7C E3 32 14 */ add r7, r3, r6
/* 80151F98 0014DDD8 7C C3 30 2E */ lwzx r6, r3, r6
/* 80151F9C 0014DDDC 90 C4 00 00 */ stw r6, 0(r4)
/* 80151FA0 0014DDE0 80 87 00 04 */ lwz r4, 4(r7)
/* 80151FA4 0014DDE4 90 85 00 00 */ stw r4, 0(r5)
/* 80151FA8 0014DDE8 90 07 00 00 */ stw r0, 0(r7)
/* 80151FAC 0014DDEC 90 07 00 04 */ stw r0, 4(r7)
/* 80151FB0 0014DDF0 80 83 00 88 */ lwz r4, 0x88(r3)
/* 80151FB4 0014DDF4 38 04 00 01 */ addi r0, r4, 1
/* 80151FB8 0014DDF8 90 03 00 88 */ stw r0, 0x88(r3)
/* 80151FBC 0014DDFC 38 60 00 01 */ li r3, 1
/* 80151FC0 0014DE00 4E 80 00 20 */ blr
/* 80151FC4 0014DE04 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
/* 80151FC8 0014DE08 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
/* 80151FCC 0014DE0C 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
.global getNextPacketSize__20MoSdkAudioRepositoryFv
getNextPacketSize__20MoSdkAudioRepositoryFv:
/* 80151FD0 0014DE10 80 83 00 88 */ lwz r4, 0x88(r3)
/* 80151FD4 0014DE14 80 03 00 8C */ lwz r0, 0x8c(r3)
/* 80151FD8 0014DE18 7C 04 00 40 */ cmplw r4, r0
/* 80151FDC 0014DE1C 41 80 00 10 */ blt lbl_80151FEC
/* 80151FE0 0014DE20 3C 60 80 00 */ lis r3, 0x7FFFFFFF@ha
/* 80151FE4 0014DE24 38 63 FF FF */ addi r3, r3, 0x7FFFFFFF@l
/* 80151FE8 0014DE28 4E 80 00 20 */ blr
lbl_80151FEC:
/* 80151FEC 0014DE2C 80 03 00 88 */ lwz r0, 0x88(r3)
/* 80151FF0 0014DE30 54 00 1E 78 */ rlwinm r0, r0, 3, 0x19, 0x1c
/* 80151FF4 0014DE34 7C 63 02 14 */ add r3, r3, r0
/* 80151FF8 0014DE38 80 63 00 04 */ lwz r3, 4(r3)
/* 80151FFC 0014DE3C 4E 80 00 20 */ blr
.global skipPacket__20MoSdkAudioRepositoryFv
skipPacket__20MoSdkAudioRepositoryFv:
/* 80152000 0014DE40 80 83 00 88 */ lwz r4, 0x88(r3)
/* 80152004 0014DE44 80 03 00 8C */ lwz r0, 0x8c(r3)
/* 80152008 0014DE48 7C 04 00 40 */ cmplw r4, r0
/* 8015200C 0014DE4C 41 80 00 0C */ blt lbl_80152018
/* 80152010 0014DE50 38 60 00 00 */ li r3, 0
/* 80152014 0014DE54 4E 80 00 20 */ blr
lbl_80152018:
/* 80152018 0014DE58 80 83 00 88 */ lwz r4, 0x88(r3)
/* 8015201C 0014DE5C 38 04 00 01 */ addi r0, r4, 1
/* 80152020 0014DE60 90 03 00 88 */ stw r0, 0x88(r3)
/* 80152024 0014DE64 38 60 00 01 */ li r3, 1
/* 80152028 0014DE68 4E 80 00 20 */ blr
/* 8015202C 0014DE6C 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
.global __ct__17MoSdkAudioDecoderFP20MoSdkAudioRepositoryPvUlUl
__ct__17MoSdkAudioDecoderFP20MoSdkAudioRepositoryPvUlUl:
/* 80152030 0014DE70 3D 00 80 45 */ lis r8, __vt__17MoSdkAudioDecoder@ha
/* 80152034 0014DE74 90 A3 00 0C */ stw r5, 0xc(r3)
/* 80152038 0014DE78 39 08 82 54 */ addi r8, r8, __vt__17MoSdkAudioDecoder@l
/* 8015203C 0014DE7C 91 03 00 10 */ stw r8, 0x10(r3)
/* 80152040 0014DE80 90 E3 00 00 */ stw r7, 0(r3)
/* 80152044 0014DE84 90 C3 00 04 */ stw r6, 4(r3)
/* 80152048 0014DE88 90 83 00 08 */ stw r4, 8(r3)
/* 8015204C 0014DE8C 4E 80 00 20 */ blr
.global __dt__17MoSdkAudioDecoderFv
__dt__17MoSdkAudioDecoderFv:
/* 80152050 0014DE90 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80152054 0014DE94 7C 08 02 A6 */ mflr r0
/* 80152058 0014DE98 2C 03 00 00 */ cmpwi r3, 0
/* 8015205C 0014DE9C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80152060 0014DEA0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80152064 0014DEA4 7C 9F 23 78 */ mr r31, r4
/* 80152068 0014DEA8 93 C1 00 08 */ stw r30, 8(r1)
/* 8015206C 0014DEAC 7C 7E 1B 78 */ mr r30, r3
/* 80152070 0014DEB0 41 82 00 34 */ beq lbl_801520A4
/* 80152074 0014DEB4 3C A0 80 45 */ lis r5, __vt__17MoSdkAudioDecoder@ha
/* 80152078 0014DEB8 3C 80 80 45 */ lis r4, $$22532@ha
/* 8015207C 0014DEBC 38 A5 82 54 */ addi r5, r5, __vt__17MoSdkAudioDecoder@l
/* 80152080 0014DEC0 90 A3 00 10 */ stw r5, 0x10(r3)
/* 80152084 0014DEC4 80 63 00 0C */ lwz r3, 0xc(r3)
/* 80152088 0014DEC8 38 84 81 F8 */ addi r4, r4, $$22532@l
/* 8015208C 0014DECC 4C C6 31 82 */ crclr 6
/* 80152090 0014DED0 4B FF D8 F1 */ bl MoLog
/* 80152094 0014DED4 2C 1F 00 00 */ cmpwi r31, 0
/* 80152098 0014DED8 40 81 00 0C */ ble lbl_801520A4
/* 8015209C 0014DEDC 7F C3 F3 78 */ mr r3, r30
/* 801520A0 0014DEE0 48 06 D6 75 */ bl __dl__FPv
lbl_801520A4:
/* 801520A4 0014DEE4 7F C3 F3 78 */ mr r3, r30
/* 801520A8 0014DEE8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801520AC 0014DEEC 83 C1 00 08 */ lwz r30, 8(r1)
/* 801520B0 0014DEF0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801520B4 0014DEF4 7C 08 03 A6 */ mtlr r0
/* 801520B8 0014DEF8 38 21 00 10 */ addi r1, r1, 0x10
/* 801520BC 0014DEFC 4E 80 00 20 */ blr
.global decode__17MoSdkAudioDecoderFPCUcUl
decode__17MoSdkAudioDecoderFPCUcUl:
/* 801520C0 0014DF00 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 801520C4 0014DF04 7C 08 02 A6 */ mflr r0
/* 801520C8 0014DF08 90 01 00 34 */ stw r0, 0x34(r1)
/* 801520CC 0014DF0C 39 61 00 30 */ addi r11, r1, 0x30
/* 801520D0 0014DF10 4B EB 52 6D */ bl func_8000733C
/* 801520D4 0014DF14 81 83 00 10 */ lwz r12, 0x10(r3)
/* 801520D8 0014DF18 7C BC 2B 78 */ mr r28, r5
/* 801520DC 0014DF1C 7C 9B 23 78 */ mr r27, r4
/* 801520E0 0014DF20 7C 7F 1B 78 */ mr r31, r3
/* 801520E4 0014DF24 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 801520E8 0014DF28 7F 84 E3 78 */ mr r4, r28
/* 801520EC 0014DF2C 7D 89 03 A6 */ mtctr r12
/* 801520F0 0014DF30 4E 80 04 21 */ bctrl
/* 801520F4 0014DF34 80 BF 00 08 */ lwz r5, 8(r31)
/* 801520F8 0014DF38 7C 7E 1B 78 */ mr r30, r3
/* 801520FC 0014DF3C 80 85 00 90 */ lwz r4, 0x90(r5)
/* 80152100 0014DF40 80 05 00 84 */ lwz r0, 0x84(r5)
/* 80152104 0014DF44 7C 64 1A 14 */ add r3, r4, r3
/* 80152108 0014DF48 7C 03 00 40 */ cmplw r3, r0
/* 8015210C 0014DF4C 40 80 00 10 */ bge lbl_8015211C
/* 80152110 0014DF50 80 05 00 80 */ lwz r0, 0x80(r5)
/* 80152114 0014DF54 7F A0 22 14 */ add r29, r0, r4
/* 80152118 0014DF58 48 00 00 14 */ b lbl_8015212C
lbl_8015211C:
/* 8015211C 0014DF5C 38 00 00 00 */ li r0, 0
/* 80152120 0014DF60 90 05 00 90 */ stw r0, 0x90(r5)
/* 80152124 0014DF64 80 7F 00 08 */ lwz r3, 8(r31)
/* 80152128 0014DF68 83 A3 00 80 */ lwz r29, 0x80(r3)
lbl_8015212C:
/* 8015212C 0014DF6C 81 9F 00 10 */ lwz r12, 0x10(r31)
/* 80152130 0014DF70 7F E3 FB 78 */ mr r3, r31
/* 80152134 0014DF74 7F 64 DB 78 */ mr r4, r27
/* 80152138 0014DF78 7F 85 E3 78 */ mr r5, r28
/* 8015213C 0014DF7C 81 8C 00 08 */ lwz r12, 8(r12)
/* 80152140 0014DF80 7F A6 EB 78 */ mr r6, r29
/* 80152144 0014DF84 38 E1 00 08 */ addi r7, r1, 8
/* 80152148 0014DF88 7D 89 03 A6 */ mtctr r12
/* 8015214C 0014DF8C 4E 80 04 21 */ bctrl
/* 80152150 0014DF90 28 03 00 01 */ cmplwi r3, 1
/* 80152154 0014DF94 41 82 00 20 */ beq lbl_80152174
/* 80152158 0014DF98 3C 80 80 45 */ lis r4, $$22549@ha
/* 8015215C 0014DF9C 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 80152160 0014DFA0 38 84 82 14 */ addi r4, r4, $$22549@l
/* 80152164 0014DFA4 4C C6 31 82 */ crclr 6
/* 80152168 0014DFA8 4B FF D8 19 */ bl MoLog
/* 8015216C 0014DFAC 38 60 00 00 */ li r3, 0
/* 80152170 0014DFB0 48 00 00 5C */ b lbl_801521CC
lbl_80152174:
/* 80152174 0014DFB4 80 01 00 08 */ lwz r0, 8(r1)
/* 80152178 0014DFB8 7C 00 F0 40 */ cmplw r0, r30
/* 8015217C 0014DFBC 41 82 00 18 */ beq lbl_80152194
/* 80152180 0014DFC0 3C 80 80 45 */ lis r4, $$22550@ha
/* 80152184 0014DFC4 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 80152188 0014DFC8 38 84 82 30 */ addi r4, r4, $$22550@l
/* 8015218C 0014DFCC 4C C6 31 82 */ crclr 6
/* 80152190 0014DFD0 4B FF D8 C1 */ bl MoThrowError
lbl_80152194:
/* 80152194 0014DFD4 80 9F 00 08 */ lwz r4, 8(r31)
/* 80152198 0014DFD8 38 60 00 01 */ li r3, 1
/* 8015219C 0014DFDC 80 04 00 8C */ lwz r0, 0x8c(r4)
/* 801521A0 0014DFE0 54 00 1E 78 */ rlwinm r0, r0, 3, 0x19, 0x1c
/* 801521A4 0014DFE4 7F A4 01 6E */ stwux r29, r4, r0
/* 801521A8 0014DFE8 93 C4 00 04 */ stw r30, 4(r4)
/* 801521AC 0014DFEC 80 9F 00 08 */ lwz r4, 8(r31)
/* 801521B0 0014DFF0 80 04 00 90 */ lwz r0, 0x90(r4)
/* 801521B4 0014DFF4 7C 00 F2 14 */ add r0, r0, r30
/* 801521B8 0014DFF8 90 04 00 90 */ stw r0, 0x90(r4)
/* 801521BC 0014DFFC 80 BF 00 08 */ lwz r5, 8(r31)
/* 801521C0 0014E000 80 85 00 8C */ lwz r4, 0x8c(r5)
/* 801521C4 0014E004 38 04 00 01 */ addi r0, r4, 1
/* 801521C8 0014E008 90 05 00 8C */ stw r0, 0x8c(r5)
lbl_801521CC:
/* 801521CC 0014E00C 39 61 00 30 */ addi r11, r1, 0x30
/* 801521D0 0014E010 4B EB 51 B9 */ bl func_80007388
/* 801521D4 0014E014 80 01 00 34 */ lwz r0, 0x34(r1)
/* 801521D8 0014E018 7C 08 03 A6 */ mtlr r0
/* 801521DC 0014E01C 38 21 00 30 */ addi r1, r1, 0x30
/* 801521E0 0014E020 4E 80 00 20 */ blr
/* 801521E4 0014E024 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
/* 801521E8 0014E028 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
/* 801521EC 0014E02C 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
.section .data5, "wa" # 0x80421040 - 0x80496700
.global $$22532
$$22532:
.incbin "baserom.dol", 0x4442F8, 0x1C
.global $$22549
$$22549:
.incbin "baserom.dol", 0x444314, 0x1C
.global $$22550
$$22550:
.incbin "baserom.dol", 0x444330, 0x24
.global __vt__17MoSdkAudioDecoder
__vt__17MoSdkAudioDecoder:
.incbin "baserom.dol", 0x444354, 0x1C