summaryrefslogtreecommitdiff
path: root/asm/code_8025AD84.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/code_8025AD84.s')
-rw-r--r--asm/code_8025AD84.s299
1 files changed, 299 insertions, 0 deletions
diff --git a/asm/code_8025AD84.s b/asm/code_8025AD84.s
new file mode 100644
index 0000000..0fa3167
--- /dev/null
+++ b/asm/code_8025AD84.s
@@ -0,0 +1,299 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global func_8025AD84
+func_8025AD84:
+/* 8025AD84 002569E4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8025AD88 002569E8 7C 08 02 A6 */ mflr r0
+/* 8025AD8C 002569EC 3C 80 01 F3 */ lis r4, 0x01F34C7C@ha
+/* 8025AD90 002569F0 3C A0 80 26 */ lis r5, lbl_8025AE7C@ha
+/* 8025AD94 002569F4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8025AD98 002569F8 38 84 4C 7C */ addi r4, r4, 0x01F34C7C@l
+/* 8025AD9C 002569FC 38 A5 AE 7C */ addi r5, r5, lbl_8025AE7C@l
+/* 8025ADA0 00256A00 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8025ADA4 00256A04 7C 7F 1B 78 */ mr r31, r3
+/* 8025ADA8 00256A08 80 03 01 98 */ lwz r0, 0x198(r3)
+/* 8025ADAC 00256A0C 80 6D A3 40 */ lwz r3, lbl_8063F600-_SDA_BASE_(r13)
+/* 8025ADB0 00256A10 2C 00 00 00 */ cmpwi r0, 0
+/* 8025ADB4 00256A14 41 82 00 0C */ beq lbl_8025ADC0
+/* 8025ADB8 00256A18 3C A0 80 26 */ lis r5, lbl_8025AEF8@ha
+/* 8025ADBC 00256A1C 38 A5 AE F8 */ addi r5, r5, lbl_8025AEF8@l
+lbl_8025ADC0:
+/* 8025ADC0 00256A20 7F E6 FB 78 */ mr r6, r31
+/* 8025ADC4 00256A24 38 E0 10 00 */ li r7, 0x1000
+/* 8025ADC8 00256A28 39 00 00 0A */ li r8, 0xa
+/* 8025ADCC 00256A2C 39 20 00 01 */ li r9, 1
+/* 8025ADD0 00256A30 4B FC 94 45 */ bl func_80224214
+/* 8025ADD4 00256A34 2C 03 00 00 */ cmpwi r3, 0
+/* 8025ADD8 00256A38 90 7F 02 08 */ stw r3, 0x208(r31)
+/* 8025ADDC 00256A3C 40 82 00 0C */ bne lbl_8025ADE8
+/* 8025ADE0 00256A40 38 60 00 00 */ li r3, 0
+/* 8025ADE4 00256A44 48 00 00 28 */ b lbl_8025AE0C
+lbl_8025ADE8:
+/* 8025ADE8 00256A48 38 7F 03 68 */ addi r3, r31, 0x368
+/* 8025ADEC 00256A4C 38 9F 03 88 */ addi r4, r31, 0x388
+/* 8025ADF0 00256A50 38 A0 00 06 */ li r5, 6
+/* 8025ADF4 00256A54 48 01 41 05 */ bl OSInitMessageQueue
+/* 8025ADF8 00256A58 38 7F 03 A0 */ addi r3, r31, 0x3a0
+/* 8025ADFC 00256A5C 38 9F 03 C0 */ addi r4, r31, 0x3c0
+/* 8025AE00 00256A60 38 A0 00 06 */ li r5, 6
+/* 8025AE04 00256A64 48 01 40 F5 */ bl OSInitMessageQueue
+/* 8025AE08 00256A68 38 60 00 01 */ li r3, 1
+lbl_8025AE0C:
+/* 8025AE0C 00256A6C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8025AE10 00256A70 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8025AE14 00256A74 7C 08 03 A6 */ mtlr r0
+/* 8025AE18 00256A78 38 21 00 10 */ addi r1, r1, 0x10
+/* 8025AE1C 00256A7C 4E 80 00 20 */ blr
+
+.global func_8025AE20
+func_8025AE20:
+/* 8025AE20 00256A80 80 63 02 08 */ lwz r3, 0x208(r3)
+/* 8025AE24 00256A84 2C 03 00 00 */ cmpwi r3, 0
+/* 8025AE28 00256A88 4D 82 00 20 */ beqlr
+/* 8025AE2C 00256A8C 4B FC 98 6C */ b func_80224698
+/* 8025AE30 00256A90 4E 80 00 20 */ blr
+
+.global func_8025AE34
+func_8025AE34:
+/* 8025AE34 00256A94 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8025AE38 00256A98 7C 08 02 A6 */ mflr r0
+/* 8025AE3C 00256A9C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8025AE40 00256AA0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8025AE44 00256AA4 7C 7F 1B 78 */ mr r31, r3
+/* 8025AE48 00256AA8 80 03 02 08 */ lwz r0, 0x208(r3)
+/* 8025AE4C 00256AAC 2C 00 00 00 */ cmpwi r0, 0
+/* 8025AE50 00256AB0 41 82 00 18 */ beq lbl_8025AE68
+/* 8025AE54 00256AB4 7C 03 03 78 */ mr r3, r0
+/* 8025AE58 00256AB8 38 80 00 00 */ li r4, 0
+/* 8025AE5C 00256ABC 4B FC 98 51 */ bl func_802246AC
+/* 8025AE60 00256AC0 38 00 00 00 */ li r0, 0
+/* 8025AE64 00256AC4 90 1F 02 08 */ stw r0, 0x208(r31)
+lbl_8025AE68:
+/* 8025AE68 00256AC8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8025AE6C 00256ACC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8025AE70 00256AD0 7C 08 03 A6 */ mtlr r0
+/* 8025AE74 00256AD4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8025AE78 00256AD8 4E 80 00 20 */ blr
+lbl_8025AE7C:
+/* 8025AE7C 00256ADC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8025AE80 00256AE0 7C 08 02 A6 */ mflr r0
+/* 8025AE84 00256AE4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8025AE88 00256AE8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8025AE8C 00256AEC 7C 7F 1B 78 */ mr r31, r3
+/* 8025AE90 00256AF0 93 C1 00 08 */ stw r30, 8(r1)
+lbl_8025AE94:
+/* 8025AE94 00256AF4 80 AD A3 D8 */ lwz r5, lbl_8063F698-_SDA_BASE_(r13)
+/* 8025AE98 00256AF8 38 60 00 01 */ li r3, 1
+/* 8025AE9C 00256AFC 88 85 00 82 */ lbz r4, 0x82(r5)
+/* 8025AEA0 00256B00 2C 04 00 00 */ cmpwi r4, 0
+/* 8025AEA4 00256B04 40 82 00 14 */ bne lbl_8025AEB8
+/* 8025AEA8 00256B08 88 05 00 83 */ lbz r0, 0x83(r5)
+/* 8025AEAC 00256B0C 2C 00 00 00 */ cmpwi r0, 0
+/* 8025AEB0 00256B10 40 82 00 08 */ bne lbl_8025AEB8
+/* 8025AEB4 00256B14 38 60 00 00 */ li r3, 0
+lbl_8025AEB8:
+/* 8025AEB8 00256B18 2C 03 00 00 */ cmpwi r3, 0
+/* 8025AEBC 00256B1C 40 82 00 30 */ bne lbl_8025AEEC
+/* 8025AEC0 00256B20 2C 04 00 00 */ cmpwi r4, 0
+/* 8025AEC4 00256B24 40 82 00 28 */ bne lbl_8025AEEC
+/* 8025AEC8 00256B28 7F E3 FB 78 */ mr r3, r31
+/* 8025AECC 00256B2C 4B FF FE 21 */ bl func_8025ACEC
+/* 8025AED0 00256B30 7C 7E 1B 78 */ mr r30, r3
+/* 8025AED4 00256B34 7F E3 FB 78 */ mr r3, r31
+/* 8025AED8 00256B38 7F C4 F3 78 */ mr r4, r30
+/* 8025AEDC 00256B3C 48 00 01 01 */ bl func_8025AFDC
+/* 8025AEE0 00256B40 7F E3 FB 78 */ mr r3, r31
+/* 8025AEE4 00256B44 7F C4 F3 78 */ mr r4, r30
+/* 8025AEE8 00256B48 4B FF FE 71 */ bl func_8025AD58
+lbl_8025AEEC:
+/* 8025AEEC 00256B4C 80 7F 02 08 */ lwz r3, 0x208(r31)
+/* 8025AEF0 00256B50 4B FC 97 4D */ bl func_8022463C
+/* 8025AEF4 00256B54 4B FF FF A0 */ b lbl_8025AE94
+lbl_8025AEF8:
+/* 8025AEF8 00256B58 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8025AEFC 00256B5C 7C 08 02 A6 */ mflr r0
+/* 8025AF00 00256B60 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8025AF04 00256B64 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8025AF08 00256B68 7C 7F 1B 78 */ mr r31, r3
+/* 8025AF0C 00256B6C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8025AF10 00256B70 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8025AF14 00256B74 3B A0 00 00 */ li r29, 0
+/* 8025AF18 00256B78 83 C3 00 8C */ lwz r30, 0x8c(r3)
+/* 8025AF1C 00256B7C 80 03 01 98 */ lwz r0, 0x198(r3)
+/* 8025AF20 00256B80 90 01 00 08 */ stw r0, 8(r1)
+lbl_8025AF24:
+/* 8025AF24 00256B84 80 AD A3 D8 */ lwz r5, lbl_8063F698-_SDA_BASE_(r13)
+/* 8025AF28 00256B88 38 60 00 01 */ li r3, 1
+/* 8025AF2C 00256B8C 88 85 00 82 */ lbz r4, 0x82(r5)
+/* 8025AF30 00256B90 2C 04 00 00 */ cmpwi r4, 0
+/* 8025AF34 00256B94 40 82 00 14 */ bne lbl_8025AF48
+/* 8025AF38 00256B98 88 05 00 83 */ lbz r0, 0x83(r5)
+/* 8025AF3C 00256B9C 2C 00 00 00 */ cmpwi r0, 0
+/* 8025AF40 00256BA0 40 82 00 08 */ bne lbl_8025AF48
+/* 8025AF44 00256BA4 38 60 00 00 */ li r3, 0
+lbl_8025AF48:
+/* 8025AF48 00256BA8 2C 03 00 00 */ cmpwi r3, 0
+/* 8025AF4C 00256BAC 40 82 00 84 */ bne lbl_8025AFD0
+/* 8025AF50 00256BB0 2C 04 00 00 */ cmpwi r4, 0
+/* 8025AF54 00256BB4 40 82 00 7C */ bne lbl_8025AFD0
+/* 8025AF58 00256BB8 93 A1 00 0C */ stw r29, 0xc(r1)
+/* 8025AF5C 00256BBC 7F E3 FB 78 */ mr r3, r31
+/* 8025AF60 00256BC0 38 81 00 08 */ addi r4, r1, 8
+/* 8025AF64 00256BC4 48 00 00 79 */ bl func_8025AFDC
+/* 8025AF68 00256BC8 80 1F 00 90 */ lwz r0, 0x90(r31)
+/* 8025AF6C 00256BCC 80 BF 00 18 */ lwz r5, 0x18(r31)
+/* 8025AF70 00256BD0 7C 9D 02 14 */ add r4, r29, r0
+/* 8025AF74 00256BD4 7C 64 2B 96 */ divwu r3, r4, r5
+/* 8025AF78 00256BD8 38 05 FF FF */ addi r0, r5, -1
+/* 8025AF7C 00256BDC 7C 63 29 D6 */ mullw r3, r3, r5
+/* 8025AF80 00256BE0 7C 63 20 50 */ subf r3, r3, r4
+/* 8025AF84 00256BE4 7C 03 00 40 */ cmplw r3, r0
+/* 8025AF88 00256BE8 40 82 00 30 */ bne lbl_8025AFB8
+/* 8025AF8C 00256BEC 88 1F 00 6E */ lbz r0, 0x6e(r31)
+/* 8025AF90 00256BF0 2C 00 00 00 */ cmpwi r0, 0
+/* 8025AF94 00256BF4 41 82 00 18 */ beq lbl_8025AFAC
+/* 8025AF98 00256BF8 80 61 00 08 */ lwz r3, 8(r1)
+/* 8025AF9C 00256BFC 80 1F 00 78 */ lwz r0, 0x78(r31)
+/* 8025AFA0 00256C00 83 C3 00 00 */ lwz r30, 0(r3)
+/* 8025AFA4 00256C04 90 01 00 08 */ stw r0, 8(r1)
+/* 8025AFA8 00256C08 48 00 00 24 */ b lbl_8025AFCC
+lbl_8025AFAC:
+/* 8025AFAC 00256C0C 80 7F 02 08 */ lwz r3, 0x208(r31)
+/* 8025AFB0 00256C10 4B FC 97 7D */ bl func_8022472C
+/* 8025AFB4 00256C14 48 00 00 18 */ b lbl_8025AFCC
+lbl_8025AFB8:
+/* 8025AFB8 00256C18 80 61 00 08 */ lwz r3, 8(r1)
+/* 8025AFBC 00256C1C 80 83 00 00 */ lwz r4, 0(r3)
+/* 8025AFC0 00256C20 7C 03 F2 14 */ add r0, r3, r30
+/* 8025AFC4 00256C24 90 01 00 08 */ stw r0, 8(r1)
+/* 8025AFC8 00256C28 7C 9E 23 78 */ mr r30, r4
+lbl_8025AFCC:
+/* 8025AFCC 00256C2C 3B BD 00 01 */ addi r29, r29, 1
+lbl_8025AFD0:
+/* 8025AFD0 00256C30 80 7F 02 08 */ lwz r3, 0x208(r31)
+/* 8025AFD4 00256C34 4B FC 96 69 */ bl func_8022463C
+/* 8025AFD8 00256C38 4B FF FF 4C */ b lbl_8025AF24
+
+.global func_8025AFDC
+func_8025AFDC:
+/* 8025AFDC 00256C3C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8025AFE0 00256C40 7C 08 02 A6 */ mflr r0
+/* 8025AFE4 00256C44 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8025AFE8 00256C48 39 61 00 20 */ addi r11, r1, 0x20
+/* 8025AFEC 00256C4C 4B F6 C1 3D */ bl _savegpr_27
+/* 8025AFF0 00256C50 80 84 00 00 */ lwz r4, 0(r4)
+/* 8025AFF4 00256C54 7C 7B 1B 78 */ mr r27, r3
+/* 8025AFF8 00256C58 80 03 00 34 */ lwz r0, 0x34(r3)
+/* 8025AFFC 00256C5C 3B A4 00 08 */ addi r29, r4, 8
+/* 8025B000 00256C60 54 00 10 3A */ slwi r0, r0, 2
+/* 8025B004 00256C64 7F 9D 02 14 */ add r28, r29, r0
+/* 8025B008 00256C68 48 00 00 8D */ bl func_8025B094
+/* 8025B00C 00256C6C 7C 7F 1B 78 */ mr r31, r3
+/* 8025B010 00256C70 3B C0 00 00 */ li r30, 0
+/* 8025B014 00256C74 48 00 00 5C */ b lbl_8025B070
+lbl_8025B018:
+/* 8025B018 00256C78 7C 7B F2 14 */ add r3, r27, r30
+/* 8025B01C 00256C7C 88 03 00 38 */ lbz r0, 0x38(r3)
+/* 8025B020 00256C80 2C 00 00 01 */ cmpwi r0, 1
+/* 8025B024 00256C84 41 82 00 08 */ beq lbl_8025B02C
+/* 8025B028 00256C88 48 00 00 38 */ b lbl_8025B060
+lbl_8025B02C:
+/* 8025B02C 00256C8C 80 9D 00 00 */ lwz r4, 0(r29)
+/* 8025B030 00256C90 38 A0 00 00 */ li r5, 0
+/* 8025B034 00256C94 80 1B 00 BC */ lwz r0, 0xbc(r27)
+/* 8025B038 00256C98 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8025B03C 00256C9C 7C 04 01 D6 */ mullw r0, r4, r0
+/* 8025B040 00256CA0 7C 9C 02 14 */ add r4, r28, r0
+/* 8025B044 00256CA4 48 04 3E B9 */ bl THPAudioDecode
+/* 8025B048 00256CA8 90 7F 00 08 */ stw r3, 8(r31)
+/* 8025B04C 00256CAC 7F 63 DB 78 */ mr r3, r27
+/* 8025B050 00256CB0 7F E4 FB 78 */ mr r4, r31
+/* 8025B054 00256CB4 80 1F 00 00 */ lwz r0, 0(r31)
+/* 8025B058 00256CB8 90 1F 00 04 */ stw r0, 4(r31)
+/* 8025B05C 00256CBC 48 00 00 DD */ bl func_8025B138
+lbl_8025B060:
+/* 8025B060 00256CC0 80 1D 00 00 */ lwz r0, 0(r29)
+/* 8025B064 00256CC4 3B BD 00 04 */ addi r29, r29, 4
+/* 8025B068 00256CC8 3B DE 00 01 */ addi r30, r30, 1
+/* 8025B06C 00256CCC 7F 9C 02 14 */ add r28, r28, r0
+lbl_8025B070:
+/* 8025B070 00256CD0 80 1B 00 34 */ lwz r0, 0x34(r27)
+/* 8025B074 00256CD4 7C 1E 00 40 */ cmplw r30, r0
+/* 8025B078 00256CD8 41 80 FF A0 */ blt lbl_8025B018
+/* 8025B07C 00256CDC 39 61 00 20 */ addi r11, r1, 0x20
+/* 8025B080 00256CE0 4B F6 C0 F5 */ bl _restgpr_27
+/* 8025B084 00256CE4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8025B088 00256CE8 7C 08 03 A6 */ mtlr r0
+/* 8025B08C 00256CEC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8025B090 00256CF0 4E 80 00 20 */ blr
+
+.global func_8025B094
+func_8025B094:
+/* 8025B094 00256CF4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8025B098 00256CF8 7C 08 02 A6 */ mflr r0
+/* 8025B09C 00256CFC 38 A0 00 01 */ li r5, 1
+/* 8025B0A0 00256D00 38 63 03 68 */ addi r3, r3, 0x368
+/* 8025B0A4 00256D04 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8025B0A8 00256D08 38 81 00 08 */ addi r4, r1, 8
+/* 8025B0AC 00256D0C 48 01 3F 75 */ bl OSReceiveMessage
+/* 8025B0B0 00256D10 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8025B0B4 00256D14 80 61 00 08 */ lwz r3, 8(r1)
+/* 8025B0B8 00256D18 7C 08 03 A6 */ mtlr r0
+/* 8025B0BC 00256D1C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8025B0C0 00256D20 4E 80 00 20 */ blr
+
+.global func_8025B0C4
+func_8025B0C4:
+/* 8025B0C4 00256D24 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8025B0C8 00256D28 7C 08 02 A6 */ mflr r0
+/* 8025B0CC 00256D2C 38 A0 00 00 */ li r5, 0
+/* 8025B0D0 00256D30 38 63 03 68 */ addi r3, r3, 0x368
+/* 8025B0D4 00256D34 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8025B0D8 00256D38 48 01 3E 81 */ bl OSSendMessage
+/* 8025B0DC 00256D3C 7C 03 00 D0 */ neg r0, r3
+/* 8025B0E0 00256D40 7C 00 1B 78 */ or r0, r0, r3
+/* 8025B0E4 00256D44 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8025B0E8 00256D48 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8025B0EC 00256D4C 7C 08 03 A6 */ mtlr r0
+/* 8025B0F0 00256D50 38 21 00 10 */ addi r1, r1, 0x10
+/* 8025B0F4 00256D54 4E 80 00 20 */ blr
+
+.global func_8025B0F8
+func_8025B0F8:
+/* 8025B0F8 00256D58 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8025B0FC 00256D5C 7C 08 02 A6 */ mflr r0
+/* 8025B100 00256D60 38 A0 00 00 */ li r5, 0
+/* 8025B104 00256D64 38 63 03 A0 */ addi r3, r3, 0x3a0
+/* 8025B108 00256D68 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8025B10C 00256D6C 38 81 00 08 */ addi r4, r1, 8
+/* 8025B110 00256D70 48 01 3F 11 */ bl OSReceiveMessage
+/* 8025B114 00256D74 2C 03 00 00 */ cmpwi r3, 0
+/* 8025B118 00256D78 41 82 00 0C */ beq lbl_8025B124
+/* 8025B11C 00256D7C 80 61 00 08 */ lwz r3, 8(r1)
+/* 8025B120 00256D80 48 00 00 08 */ b lbl_8025B128
+lbl_8025B124:
+/* 8025B124 00256D84 38 60 00 00 */ li r3, 0
+lbl_8025B128:
+/* 8025B128 00256D88 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8025B12C 00256D8C 7C 08 03 A6 */ mtlr r0
+/* 8025B130 00256D90 38 21 00 10 */ addi r1, r1, 0x10
+/* 8025B134 00256D94 4E 80 00 20 */ blr
+
+.global func_8025B138
+func_8025B138:
+/* 8025B138 00256D98 38 A0 00 01 */ li r5, 1
+/* 8025B13C 00256D9C 38 63 03 A0 */ addi r3, r3, 0x3a0
+/* 8025B140 00256DA0 48 01 3E 18 */ b OSSendMessage
+
+.global func_8025B144
+func_8025B144:
+/* 8025B144 00256DA4 38 A0 00 01 */ li r5, 1
+/* 8025B148 00256DA8 38 6D A6 80 */ addi r3, r13, lbl_8063F940-_SDA_BASE_
+/* 8025B14C 00256DAC 38 80 00 04 */ li r4, 4
+/* 8025B150 00256DB0 38 00 00 00 */ li r0, 0
+/* 8025B154 00256DB4 98 AD A6 80 */ stb r5, lbl_8063F940-_SDA_BASE_(r13)
+/* 8025B158 00256DB8 B0 83 00 02 */ sth r4, 2(r3)
+/* 8025B15C 00256DBC 98 03 00 04 */ stb r0, 4(r3)
+/* 8025B160 00256DC0 4E 80 00 20 */ blr